My Custom Functions - Version 4.0

Version Description

  • The design of the plugin settings page is completely redone.
  • Added additional donate link to the "Plugins" page.
  • The 'Using' section renamed to 'Usage'.
  • My Unicode signature added to the main file.
  • The donate button replaced with new.
  • The 'Donate' section renamed to 'Support'.
  • The 'donate.png' image removed.
  • Options from the settings page moved to a separate file.
  • The "Usage" section removed from the sidebar area.
  • Additional "Support" section added.
  • Added tab navigation menu for the settings page.
  • Added additional tabs on the settings page.
  • Code of the 'admin.css' file improved and better commented.
  • A full version of the Bootstrap framework is integrated.
  • The 'MCFunctions_load_scripts' function renamed to 'MCFunctions_load_scripts_admin'.
  • Added the CSS code for the custom list numbers on the plugin settings page.
  • The main font is changed to "Verdana".
  • All PHP and HTML code is better formatted.
  • The header on the settings page of plugin is redesigned.
  • The "LICENSE.txt" file renamed to "license.txt".
  • The "humans.txt" file added.
  • Messages from the plugin settings page moved to a separate file "messages.php".
  • The "_service_info" setting added to the data-base.
  • Added function for managing information about the version number of the plugin.
  • Added the "Hello" message that show when the plugin is just installed.
  • Added the "Error" message that show when user is trying to degrade the version number of the plugin.
  • Fixed the parameter that contain the path to source files in all translation files.
  • The POT file updated.
  • Translations updated.
Download this release

Release Info

Developer Arthur Gareginyan
Plugin Icon 128x128 My Custom Functions
Version 4.0
Comparing to
See all releases

Code changes from version 3.5 to 4.0

humans.txt ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ***************************************************************************************
2
+ * *
3
+ * █████╗ ██████╗ ████████╗██╗ ██╗██╗ ██╗██████╗ *
4
+ * ██╔══██╗██╔══██╗╚══██╔══╝██║ ██║██║ ██║██╔══██╗ *
5
+ * ███████║██████╔╝ ██║ ███████║██║ ██║██████╔╝ *
6
+ * ██╔══██║██╔══██╗ ██║ ██╔══██║██║ ██║██╔══██╗ *
7
+ * ██║ ██║██║ ██║ ██║ ██║ ██║╚██████╔╝██║ ██║ *
8
+ * ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ *
9
+ * *
10
+ * ██████╗ █████╗ ██████╗ ███████╗ ██████╗ ██╗███╗ ██╗██╗ ██╗ █████╗ ███╗ ██╗ *
11
+ * ██╔════╝ ██╔══██╗██╔══██╗██╔════╝██╔════╝ ██║████╗ ██║╚██╗ ██╔╝██╔══██╗████╗ ██║ *
12
+ * ██║ ███╗███████║██████╔╝█████╗ ██║ ███╗██║██╔██╗ ██║ ╚████╔╝ ███████║██╔██╗ ██║ *
13
+ * ██║ ██║██╔══██║██╔══██╗██╔══╝ ██║ ██║██║██║╚██╗██║ ╚██╔╝ ██╔══██║██║╚██╗██║ *
14
+ * ╚██████╔╝██║ ██║██║ ██║███████╗╚██████╔╝██║██║ ╚████║ ██║ ██║ ██║██║ ╚████║ *
15
+ * ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ *
16
+ * *
17
+ ***************************************************************************************
18
+
19
+ We are the humans behind the plugin
20
+
21
+ /* TEAM */
22
+ Name: Arthur Gareginyan
23
+ Site: www.arthurgareginyan.com
24
+ Title: Founding Developer
25
+ Twitter: AGareginyan
26
+ Location: Moscow, Russia
27
+
28
+ Name: Milena Kiseleva
29
+ Title: Muse
30
+ Twitter: MilavaKiseleva
31
+ Location: Moscow, Russia
32
+
33
+
34
+ /* THANKS */
35
+
36
+
37
+ /* META */
38
+ Last update: 2017/04/28
39
+ See: http://humanstxt.org/
inc/css/admin.css CHANGED
@@ -1,40 +1,128 @@
1
  /*
2
  * Style sheet for plugin settings page
3
  *
4
- * Copyright (c) 2016 Arthur Gareginyan ( http://www.arthurgareginyan.com ).
5
- * All Rights Reserved.
 
 
 
6
  */
7
 
8
 
9
- /* Titles
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  -------------------------------------------------------------- */
11
  h2 {
 
 
 
 
 
12
  text-align: center;
13
- font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  }
15
-
16
  h2 span {
17
- margin-top: 1px;
18
- font-size: 0.6em;
19
- color: black;
20
- display: inline;
21
- padding: 0;
 
 
 
 
 
 
 
 
 
 
22
  }
23
-
24
- h2 span a {
25
- display: inline;
26
- padding: 0;
 
 
 
 
 
27
  }
28
 
 
 
29
  h3.title {
30
  font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
 
 
31
  border-bottom: 1px solid #eee;
32
  }
33
 
34
- /* Messages
35
  -------------------------------------------------------------- */
36
- #setting-error-settings_updated {
37
- display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  }
39
 
40
  /* Sidebar
@@ -51,17 +139,296 @@ h3.title {
51
  margin: 0;
52
  }
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  /* Responsive page
55
  -------------------------------------------------------------- */
56
  @media (max-width: 860px) {
57
  .inner-sidebar {
58
  display: none !important;
59
  }
 
 
 
60
  #post-body-content {
61
  margin-right: 0 !important;
62
  }
63
  }
64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  /* CodeMirror Editor
66
  -------------------------------------------------------------- */
67
  .CodeMirror {
@@ -71,10 +438,10 @@ h3.title {
71
  margin-right: 5px;
72
  }
73
 
74
- /* Other
75
  -------------------------------------------------------------- */
76
- .postbox a {
77
- text-decoration: none;
78
  }
79
 
80
  /* On/Off Trigger
@@ -82,8 +449,7 @@ h3.title {
82
  .trigger {
83
  margin-left: auto;
84
  margin-right: 0;
85
- margin-top: -20px;
86
- height: 23px;
87
  padding-top: 5px;
88
  width: 80px;
89
  background: #f2f2f2;
@@ -150,4 +516,4 @@ h3.title {
150
 
151
  .trigger input[type=checkbox]:checked + label {
152
  left: 43px;
153
- }
1
  /*
2
  * Style sheet for plugin settings page
3
  *
4
+ * @package My Custom Functions
5
+ * @uthor Arthur Gareginyan
6
+ * @link http://www.arthurgareginyan.com
7
+ * @copyright Copyright (c) 2016-2017 Arthur Gareginyan. All Rights Reserved.
8
+ * @since 4.0
9
  */
10
 
11
 
12
+ /* Main
13
+ -------------------------------------------------------------- */
14
+ body {
15
+ background: #f1f1f1 !important;
16
+ }
17
+ p {
18
+ font-family: Verdana, Geneva, sans-serif;
19
+ font-size: 13px;
20
+ }
21
+ .postbox a {
22
+ text-decoration: none;
23
+ }
24
+
25
+ /* Title and Description of page
26
  -------------------------------------------------------------- */
27
  h2 {
28
+ padding: 30px 30px !important;
29
+ background-color: #333;
30
+ color: #e0dfdc !important;
31
+ font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif !important;
32
+ font-size: 60px !important;
33
  text-align: center;
34
+ text-transform: uppercase;
35
+ text-rendering: optimizeLegibility;
36
+ text-shadow: 0 -1px 0 #fff,
37
+ 0 1px 0 #2e2e2e,
38
+ 0 2px 0 #2a2a2a,
39
+ 0 3px 0 #262626,
40
+ 0 4px 0 #222,
41
+ 0 5px 0 #1e1e1e,
42
+ 0 6px 0 #1a1a1a,
43
+ 0 7px 0 #161616,
44
+ 0 8px 0 #121212,
45
+ 0 22px 30px rgba(0, 0, 0, 0.9);
46
+ letter-spacing: .1em;
47
+ line-height: 50px !important;
48
+ overflow: hidden;
49
  }
 
50
  h2 span {
51
+ content: '\A';
52
+ display: block ;
53
+ margin-top: 15px;
54
+ font-size: 16px;
55
+ text-shadow: 0 -1px 0 #fff,
56
+ 0 1px 0 #2e2e2e,
57
+ 0 2px 0 #2a2a2a,
58
+ 0 3px 0 #262626,
59
+ 0 4px 0 #222,
60
+ 0 5px 0 #1e1e1e,
61
+ 0 6px 0 #1a1a1a,
62
+ 0 7px 0 #161616,
63
+ 0 8px 0 #121212,
64
+ 0 22px 30px rgba(0, 0, 0, 0.9);
65
+ line-height: 20px !important;
66
  }
67
+ h2 span a,
68
+ h2 span a:hover {
69
+ color: #ffffff;
70
+ }
71
+ h2 span a:hover {
72
+ text-shadow: none;
73
+ text-decoration: none;
74
+ -webkit-transition: all 0.2s ease-in-out;
75
+ transition: all 0.2s ease-in-out;
76
  }
77
 
78
+ /* Titles and Descriptions of sections
79
+ -------------------------------------------------------------- */
80
  h3.title {
81
  font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
82
+ font-size: 16px !important;
83
+ font-weight: 400;
84
  border-bottom: 1px solid #eee;
85
  }
86
 
87
+ /* Modal - PopUp windows
88
  -------------------------------------------------------------- */
89
+ .modal-dialog {
90
+ margin-top: 15% !important;
91
+ }
92
+ .hello-message .modal-body {
93
+ height: 180px;
94
+ }
95
+ .hello-message .modal-body img {
96
+ float: left;
97
+ width: 150px;
98
+ height: 150px;
99
+ padding: 10px;
100
+ margin-right: 20px;
101
+ border-radius: 15px;
102
+ }
103
+ .hello-message .modal-body p {
104
+ font-size: 16px;
105
+ }
106
+ .hello-message .modal-body p:first-of-type {
107
+ padding-top: 5%;
108
+ }
109
+ .error-message .modal-body {
110
+ padding: 30px;
111
+ text-align: center;
112
+ }
113
+
114
+ /* Notes
115
+ -------------------------------------------------------------- */
116
+ .note {
117
+ padding: 0.30em 1.0em;
118
+ border-left: 3px solid #05c2ff;
119
+ border-right: 3px solid #05c2ff;
120
+ background: rgba(5, 194, 255, 0.09);
121
+ font-family: Verdana, Geneva, sans-serif;
122
+ font-size: 13px;
123
+ color: #646464;
124
+ padding-left: 15px;
125
+ letter-spacing: 0.1px;
126
  }
127
 
128
  /* Sidebar
139
  margin: 0;
140
  }
141
 
142
+ #side-sortables .paypal {
143
+ font-size: 18px;
144
+ }
145
+
146
+ /* Support - addition section
147
+ -------------------------------------------------------------- */
148
+ #support-addition {
149
+ display: none;
150
+ }
151
+ #support-addition .paypal {
152
+ font-size: 18px;
153
+ }
154
+
155
  /* Responsive page
156
  -------------------------------------------------------------- */
157
  @media (max-width: 860px) {
158
  .inner-sidebar {
159
  display: none !important;
160
  }
161
+ #support-addition {
162
+ display: block;
163
+ }
164
  #post-body-content {
165
  margin-right: 0 !important;
166
  }
167
  }
168
 
169
+ /* Tabs pages
170
+ -------------------------------------------------------------- */
171
+ .tab-page {
172
+ display: none;
173
+ }
174
+ .tab-page.active {
175
+ display: block;
176
+ }
177
+ .tab-page li {
178
+ font-family: Verdana, Geneva, sans-serif;
179
+ font-size: 13px;
180
+ }
181
+
182
+ /* Tabs navigation menu
183
+ -------------------------------------------------------------- */
184
+ .tabs-nav {
185
+ font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
186
+ font-weight: 400;
187
+ font-size: 16px;
188
+ display: -webkit-box;
189
+ display: -webkit-flex;
190
+ display: -ms-flexbox;
191
+ display: flex;
192
+ height: 50px;
193
+ margin: -11px 0px 18px 0px;
194
+ background: #ffffff;
195
+ border: 1px solid rgba(34, 36, 38, 0.15);
196
+ box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
197
+ border-radius: 0.30rem;
198
+ }
199
+ .tabs-nav:after {
200
+ content: '';
201
+ display: block;
202
+ height: 0px;
203
+ clear: both;
204
+ visibility: hidden;
205
+ }
206
+
207
+ .tabs-nav li {
208
+ position: relative;
209
+ display: block;
210
+ float: left;
211
+ margin-bottom: 0px;
212
+ }
213
+ .tabs-nav li:first-of-type a {
214
+ border-radius: 3px 0 0 3px;
215
+ }
216
+ .tabs-nav li.active:before {
217
+ position: absolute;
218
+ content: '';
219
+ top: 0%;
220
+ right: 0px;
221
+ height: 100%;
222
+ width: 1px;
223
+ background: rgba(34, 36, 38, 0.1);
224
+ }
225
+ .tabs-nav li.active:after {
226
+ background-color: #f2f2f2;
227
+ position: absolute;
228
+ content: '';
229
+ top: 100%;
230
+ left: 50%;
231
+ -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);
232
+ -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg);
233
+ transform: translateX(-50%) translateY(-50%) rotate(45deg);
234
+ margin: 0.8px 0em 0em;
235
+ width: 0.6em;
236
+ height: 0.6em;
237
+ border: none;
238
+ border-bottom: 1px solid #d4d4d5;
239
+ border-right: 1px solid #d4d4d5;
240
+ -webkit-transition: background 0.1s ease;
241
+ transition: background 0.1s ease;
242
+ }
243
+
244
+ .tabs-nav li a {
245
+ position: relative;
246
+ display: block;
247
+ padding: 10px 15px;
248
+ text-decoration: none;
249
+ line-height: 1.8;
250
+ color: grey;
251
+ border-left: 1px solid;
252
+ border-right: 1px solid;
253
+ border-color: #ffffff;
254
+ }
255
+ .tabs-nav li a:hover,
256
+ .tabs-nav li a:focus {
257
+ text-decoration: none;
258
+ background: rgba(0, 0, 0, 0.03);
259
+ border-color: #eeeeee;
260
+ }
261
+ .tabs-nav li.active a,
262
+ .tabs-nav li.active a:hover,
263
+ .tabs-nav li.active a:focus {
264
+ background: rgba(0, 0, 0, 0.05);
265
+ color: rgba(0, 0, 0, 0.95);
266
+ font-weight: normal;
267
+ border-color: #eeeeee;
268
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
269
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
270
+ }
271
+
272
+ @media (max-width:500px) {
273
+ .tabs-nav li:last-of-type {
274
+ display: none;
275
+ }
276
+ }
277
+ @media (max-width:413px) {
278
+ .tabs-nav li:nth-last-of-type(2) {
279
+ display: none;
280
+ }
281
+ }
282
+
283
+ /* Spoilers
284
+ -------------------------------------------------------------- */
285
+ .panel-group {
286
+ margin-top: 10px;
287
+ }
288
+ .panel-heading a {
289
+ text-decoration: none !important;
290
+ }
291
+ .panel-title,
292
+ .panel-title:before,
293
+ .panel-body:before {
294
+ font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
295
+ font-size: 16px;
296
+ font-weight: 400;
297
+ color: #6d6d6d !important;
298
+ text-shadow: 1px 1px 0px #fff;
299
+ }
300
+ .panel-title:before {
301
+ content: "Q.";
302
+ display: inline-block;
303
+ color: red !important;
304
+ padding-right: 8px;
305
+ }
306
+ .panel-title:after {
307
+ content: "\25BC";
308
+ display: inline-block;
309
+ float: right;
310
+ margin: 0;
311
+ background: none;
312
+ border: 0;
313
+ cursor: pointer;
314
+ color: gray;
315
+ }
316
+ .panel-title > div {
317
+ display: inline;
318
+ }
319
+ .panel-body:before {
320
+ content: "A." !important;
321
+ display: inline-block !important;
322
+ color: #00a5e2 !important;
323
+ padding-right: 8px;
324
+ }
325
+ .panel-body {
326
+ display: inline-block;
327
+ font-family: Verdana, Geneva, sans-serif;
328
+ font-size: 13px;
329
+ }
330
+ .panel-body > div {
331
+ display: inline;
332
+ }
333
+
334
+ /* Custom List Numbers
335
+ -------------------------------------------------------------- */
336
+ .custom-counter {
337
+ margin-top: 15px;
338
+ margin-left: 50px;
339
+ margin-bottom: 30px;
340
+ list-style-type: none;
341
+ }
342
+ .custom-counter li {
343
+ counter-increment: step-counter;
344
+ margin-bottom: 15px;
345
+ }
346
+ .custom-counter li::before {
347
+ content: counter(step-counter);
348
+ margin-left: -30px;
349
+ margin-right: 8px;
350
+ font-size: 90%;
351
+ background-color: rgb(0,200,200);
352
+ color: white;
353
+ font-weight: bold;
354
+ padding: 4px 7px;
355
+ border-radius: 50%;
356
+ }
357
+
358
+ /* WordPress Color Picker
359
+ -------------------------------------------------------------- */
360
+ .wp-picker-container a {
361
+ text-decoration: none !important;
362
+ }
363
+ .wp-color-result {
364
+ height: 30px;
365
+ }
366
+ .wp-color-result:after {
367
+ line-height: 28px;
368
+ }
369
+
370
+ /* ON/OFF Buttons
371
+ -------------------------------------------------------------- */
372
+ .btn {
373
+ border-radius: 0 !important;
374
+ }
375
+
376
+ /* Form-table
377
+ -------------------------------------------------------------- */
378
+ .form-table {
379
+ clear: none;
380
+ margin-left: 20px;
381
+ font-family: Verdana, Geneva, sans-serif;
382
+ font-size: 13px;
383
+ }
384
+ .form-table tr {
385
+ vertical-align: top;
386
+ }
387
+ .form-table th,
388
+ .form-table td {
389
+ padding-bottom: 10px;
390
+ }
391
+
392
+ /* Help text
393
+ -------------------------------------------------------------- */
394
+ td.help-text {
395
+ width: 90%;
396
+ font-family: Verdana, Geneva, sans-serif;
397
+ font-size: 12px !important;
398
+ font-style: italic;
399
+ float: left;
400
+ clear: left;
401
+ color: #797979;
402
+ line-height: 15px;
403
+ padding-top: 0px !important;
404
+ }
405
+
406
+ /* INPUT and TEXTAREA
407
+ -------------------------------------------------------------- */
408
+ textarea {
409
+ max-width: 600px;
410
+ width: 90%;
411
+ }
412
+ .form-table input[type=text] {
413
+ max-width: 90%;
414
+ }
415
+
416
+ textarea,
417
+ .form-table input[type=text] {
418
+ padding-top: 5px;
419
+ background: #fcfcfc;
420
+ -webkit-border-radius: 3px;
421
+ -moz-border-radius: 3px;
422
+ border-radius: 3px;
423
+ position: relative;
424
+ -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, 0.2);
425
+ -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, 0.2);
426
+ box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, 0.2);
427
+ }
428
+
429
+ /* SPECIFIC TO THIS PLUGIN
430
+ -------------------------------------------------------------- */
431
+
432
  /* CodeMirror Editor
433
  -------------------------------------------------------------- */
434
  .CodeMirror {
438
  margin-right: 5px;
439
  }
440
 
441
+ /* Messages
442
  -------------------------------------------------------------- */
443
+ #setting-error-settings_updated {
444
+ display: none;
445
  }
446
 
447
  /* On/Off Trigger
449
  .trigger {
450
  margin-left: auto;
451
  margin-right: 0;
452
+ margin-top: -26px;
 
453
  padding-top: 5px;
454
  width: 80px;
455
  background: #f2f2f2;
516
 
517
  .trigger input[type=checkbox]:checked + label {
518
  left: 43px;
519
+ }
inc/img/donate.png DELETED
Binary file
inc/js/admin.js CHANGED
@@ -1,8 +1,11 @@
1
  /*
2
- * JS functions for plugin settings page
3
  *
4
- * Copyright (c) 2016 Arthur Gareginyan ( http://www.arthurgareginyan.com ).
5
- * All Rights Reserved.
 
 
 
6
  */
7
 
8
 
@@ -36,4 +39,22 @@ jQuery(document).ready(function($) {
36
  }, 3000);
37
  }
38
 
39
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  /*
2
+ * Plugin JavaScript and JQuery code for the admin pages of website
3
  *
4
+ * @package My Custom Functions
5
+ * @uthor Arthur Gareginyan
6
+ * @link http://www.arthurgareginyan.com
7
+ * @copyright Copyright (c) 2016-2017 Arthur Gareginyan. All Rights Reserved.
8
+ * @since 4.0
9
  */
10
 
11
 
39
  }, 3000);
40
  }
41
 
42
+ // Dynamic content
43
+ $( ".include-tab-author" ).load( "http://mycyberuniverse.com/public-files/dynamic-content/page-for-include.html #include-tab-author" );
44
+ $( ".include-tab-support" ).load( "http://mycyberuniverse.com/public-files/dynamic-content/page-for-include.html #include-tab-support" );
45
+ $( ".include-tab-family" ).load( "http://mycyberuniverse.com/public-files/dynamic-content/page-for-include.html #include-tab-family" );
46
+ $( ".additional-css" ).load( "http://mycyberuniverse.com/public-files/dynamic-content/styles.html" );
47
+
48
+ // Add questions and answers into spoilers and color them in different colors
49
+ $(".panel-group .panel").each(function(i) {
50
+ $( ".question-" + (i+1) ).appendTo( $("h4", this) );
51
+ $( ".answer-" + (i+1) ).appendTo( $(".panel-body", this) );
52
+
53
+ if ( $(this).find("h4 div").hasClass('question-red') ) {
54
+ $(this).addClass('panel-danger');
55
+ } else {
56
+ $(this).addClass('panel-info');
57
+ }
58
+ });
59
+
60
+ });
inc/lib/bootstrap/bootstrap-theme.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
3
+ * Copyright 2011-2016 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
inc/lib/bootstrap/bootstrap.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
3
+ * Copyright 2011-2016 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
inc/lib/bootstrap/bootstrap.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
3
+ * Copyright 2011-2016 Twitter, Inc.
4
+ * Licensed under the MIT license
5
+ */
6
+ if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
7
+ this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
inc/lib/codemirror/codemirror-compressed.js CHANGED
@@ -20,4 +20,4 @@ var a=c.getCursor("from");b.composing&&b.composing.range.clear(),b.composing={st
20
  "Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Md["default"]=o?Md.macDefault:Md.pcDefault,v.normalizeKeyMap=function(a){var b={};for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];if(/^(name|fallthrough|(de|at)tach)$/.test(c))continue;if("..."==d){delete a[c];continue}for(var e=gg(c.split(" "),Nd),f=0;f<e.length;f++){var g,h;f==e.length-1?(h=e.join(" "),g=d):(h=e.slice(0,f+1).join(" "),g="...");var i=b[h];if(i){if(i!=g)throw new Error("Inconsistent bindings for "+h)}else b[h]=g}delete a[c]}for(var j in b)a[j]=b[j];return a};var Od=v.lookupKey=function(a,b,c,d){b=Rd(b);var e=b.call?b.call(a,d):b[a];if(e===!1)return"nothing";if("..."===e)return"multi";if(null!=e&&c(e))return"handled";if(b.fallthrough){if("[object Array]"!=Object.prototype.toString.call(b.fallthrough))return Od(a,b.fallthrough,c,d);for(var f=0;f<b.fallthrough.length;f++){var g=Od(a,b.fallthrough[f],c,d);if(g)return g}}},Pd=v.isModifierKey=function(a){var b="string"==typeof a?a:Pg[a.keyCode];return"Ctrl"==b||"Alt"==b||"Shift"==b||"Mod"==b},Qd=v.keyName=function(a,b){if(i&&34==a.keyCode&&a["char"])return!1;var c=Pg[a.keyCode],d=c;return null==d||a.altGraphKey?!1:(a.altKey&&"Alt"!=c&&(d="Alt-"+d),(r?a.metaKey:a.ctrlKey)&&"Ctrl"!=c&&(d="Ctrl-"+d),(r?a.ctrlKey:a.metaKey)&&"Cmd"!=c&&(d="Cmd-"+d),!b&&a.shiftKey&&"Shift"!=c&&(d="Shift-"+d),d)};v.fromTextArea=function(a,b){function d(){a.value=i.getValue()}if(b=b?jg(b):{},b.value=a.value,!b.tabindex&&a.tabIndex&&(b.tabindex=a.tabIndex),!b.placeholder&&a.placeholder&&(b.placeholder=a.placeholder),null==b.autofocus){var c=wg();b.autofocus=c==a||null!=a.getAttribute("autofocus")&&c==document.body}if(a.form&&(Jf(a.form,"submit",d),!b.leaveSubmitMethodAlone)){var e=a.form,f=e.submit;try{var g=e.submit=function(){d(),e.submit=f,e.submit(),e.submit=g}}catch(h){}}b.finishInit=function(b){b.save=d,b.getTextArea=function(){return a},b.toTextArea=function(){b.toTextArea=isNaN,d(),a.parentNode.removeChild(b.getWrapperElement()),a.style.display="",a.form&&(Mf(a.form,"submit",d),"function"==typeof a.form.submit&&(a.form.submit=f))}},a.style.display="none";var i=v(function(b){a.parentNode.insertBefore(b,a.nextSibling)},b);return i};var Sd=v.StringStream=function(a,b){this.pos=this.start=0,this.string=a,this.tabSize=b||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};Sd.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.pos<this.string.length?this.string.charAt(this.pos++):void 0},eat:function(a){var b=this.string.charAt(this.pos);if("string"==typeof a)var c=b==a;else var c=b&&(a.test?a.test(b):a(b));return c?(++this.pos,b):void 0},eatWhile:function(a){for(var b=this.pos;this.eat(a););return this.pos>b},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){var b=this.string.indexOf(a,this.pos);return b>-1?(this.pos=b,!0):void 0},backUp:function(a){this.pos-=a},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=_f(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?_f(this.string,this.lineStart,this.tabSize):0)},indentation:function(){return _f(this.string,null,this.tabSize)-(this.lineStart?_f(this.string,this.lineStart,this.tabSize):0)},match:function(a,b,c){if("string"!=typeof a){var f=this.string.slice(this.pos).match(a);return f&&f.index>0?null:(f&&b!==!1&&(this.pos+=f[0].length),f)}var d=function(a){return c?a.toLowerCase():a},e=this.string.substr(this.pos,a.length);return d(e)==d(a)?(b!==!1&&(this.pos+=a.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(a,b){this.lineStart+=a;try{return b()}finally{this.lineStart-=a}}};var Td=0,Ud=v.TextMarker=function(a,b){this.lines=[],this.type=b,this.doc=a,this.id=++Td};Uf(Ud),Ud.prototype.clear=function(){if(!this.explicitlyCleared){var a=this.doc.cm,b=a&&!a.curOp;if(b&&Vb(a),Tf(this,"clear")){var c=this.find();c&&Pf(this,"clear",c.from,c.to)}for(var d=null,e=null,f=0;f<this.lines.length;++f){var g=this.lines[f],h=ae(g.markedSpans,this);a&&!this.collapsed?jc(a,kf(g),"text"):a&&(null!=h.to&&(e=kf(g)),null!=h.from&&(d=kf(g))),g.markedSpans=be(g.markedSpans,h),null==h.from&&this.collapsed&&!we(this.doc,g)&&a&&jf(g,Rb(a.display))}if(a&&this.collapsed&&!a.options.lineWrapping)for(var f=0;f<this.lines.length;++f){var i=se(this.lines[f]),j=G(i);j>a.display.maxLineLength&&(a.display.maxLine=i,a.display.maxLineLength=j,a.display.maxLineChanged=!0)}null!=d&&a&&this.collapsed&&ic(a,d,e+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&ab(a.doc)),a&&Pf(a,"markerCleared",a,this),b&&Xb(a),this.parent&&this.parent.clear()}},Ud.prototype.find=function(a,b){null==a&&"bookmark"==this.type&&(a=1);for(var c,d,e=0;e<this.lines.length;++e){var f=this.lines[e],g=ae(f.markedSpans,this);if(null!=g.from&&(c=oa(b?f:kf(f),g.from),-1==a))return c;if(null!=g.to&&(d=oa(b?f:kf(f),g.to),1==a))return d}return c&&{from:c,to:d}},Ud.prototype.changed=function(){var a=this.find(-1,!0),b=this,c=this.doc.cm;a&&c&&cc(c,function(){var d=a.line,e=kf(a.line),f=wb(c,e);if(f&&(Db(f),c.curOp.selectionChanged=c.curOp.forceUpdate=!0),c.curOp.updateMaxLine=!0,!we(b.doc,d)&&null!=b.height){var g=b.height;b.height=null;var h=Ae(b)-g;h&&jf(d,d.height+h)}})},Ud.prototype.attachLine=function(a){if(!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;b.maybeHiddenMarkers&&-1!=fg(b.maybeHiddenMarkers,this)||(b.maybeUnhiddenMarkers||(b.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(a)},Ud.prototype.detachLine=function(a){if(this.lines.splice(fg(this.lines,a),1),!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;(b.maybeHiddenMarkers||(b.maybeHiddenMarkers=[])).push(this)}};var Td=0,Wd=v.SharedTextMarker=function(a,b){this.markers=a,this.primary=b;for(var c=0;c<a.length;++c)a[c].parent=this};Uf(Wd),Wd.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var a=0;a<this.markers.length;++a)this.markers[a].clear();Pf(this,"clear")}},Wd.prototype.find=function(a,b){return this.primary.find(a,b)};var ye=v.LineWidget=function(a,b,c){if(c)for(var d in c)c.hasOwnProperty(d)&&(this[d]=c[d]);this.doc=a,this.node=b};Uf(ye),ye.prototype.clear=function(){var a=this.doc.cm,b=this.line.widgets,c=this.line,d=kf(c);if(null!=d&&b){for(var e=0;e<b.length;++e)b[e]==this&&b.splice(e--,1);b.length||(c.widgets=null);var f=Ae(this);jf(c,Math.max(0,c.height-f)),a&&cc(a,function(){ze(a,c,-f),jc(a,d,"widget")})}},ye.prototype.changed=function(){var a=this.height,b=this.doc.cm,c=this.line;this.height=null;var d=Ae(this)-a;d&&(jf(c,c.height+d),b&&cc(b,function(){b.curOp.forceUpdate=!0,ze(b,c,d)}))};var Ce=v.Line=function(a,b,c){this.text=a,ke(this,b),this.height=c?c(this):1};Uf(Ce),Ce.prototype.lineNo=function(){return kf(this)};var Ne={},Oe={};Ze.prototype={chunkSize:function(){return this.lines.length},removeInner:function(a,b){for(var c=a,d=a+b;d>c;++c){var e=this.lines[c];this.height-=e.height,Ee(e),Pf(e,"delete")}this.lines.splice(a,b)},collapse:function(a){a.push.apply(a,this.lines)},insertInner:function(a,b,c){this.height+=c,this.lines=this.lines.slice(0,a).concat(b).concat(this.lines.slice(a));for(var d=0;d<b.length;++d)b[d].parent=this},iterN:function(a,b,c){for(var d=a+b;d>a;++a)if(c(this.lines[a]))return!0}},$e.prototype={chunkSize:function(){return this.size},removeInner:function(a,b){this.size-=b;for(var c=0;c<this.children.length;++c){var d=this.children[c],e=d.chunkSize();if(e>a){var f=Math.min(b,e-a),g=d.height;if(d.removeInner(a,f),this.height-=g-d.height,e==f&&(this.children.splice(c--,1),d.parent=null),0==(b-=f))break;a=0}else a-=e}if(this.size-b<25&&(this.children.length>1||!(this.children[0]instanceof Ze))){var h=[];this.collapse(h),this.children=[new Ze(h)],this.children[0].parent=this}},collapse:function(a){for(var b=0;b<this.children.length;++b)this.children[b].collapse(a)},insertInner:function(a,b,c){this.size+=b.length,this.height+=c;for(var d=0;d<this.children.length;++d){var e=this.children[d],f=e.chunkSize();if(f>=a){if(e.insertInner(a,b,c),e.lines&&e.lines.length>50){for(;e.lines.length>50;){var g=e.lines.splice(e.lines.length-25,25),h=new Ze(g);e.height-=h.height,this.children.splice(d+1,0,h),h.parent=this}this.maybeSpill()}break}a-=f}},maybeSpill:function(){if(!(this.children.length<=10)){var a=this;do{var b=a.children.splice(a.children.length-5,5),c=new $e(b);if(a.parent){a.size-=c.size,a.height-=c.height;var e=fg(a.parent.children,a);a.parent.children.splice(e+1,0,c)}else{var d=new $e(a.children);d.parent=a,a.children=[d,c],a=d}c.parent=a.parent}while(a.children.length>10);a.parent.maybeSpill()}},iterN:function(a,b,c){for(var d=0;d<this.children.length;++d){var e=this.children[d],f=e.chunkSize();if(f>a){var g=Math.min(b,f-a);if(e.iterN(a,g,c))return!0;if(0==(b-=g))break;a=0}else a-=f}}};var _e=0,af=v.Doc=function(a,b,c,d){if(!(this instanceof af))return new af(a,b,c,d);null==c&&(c=0),$e.call(this,[new Ze([new Ce("",null)])]),this.first=c,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.frontier=c;var e=oa(c,0);this.sel=Ma(e),this.history=new of(null),this.id=++_e,this.modeOption=b,this.lineSep=d,"string"==typeof a&&(a=this.splitLines(a)),Ye(this,{from:e,to:e,text:a}),Za(this,Ma(e),Xf)};af.prototype=ig($e.prototype,{constructor:af,iter:function(a,b,c){c?this.iterN(a-this.first,b-a,c):this.iterN(this.first,this.first+this.size,a)},insert:function(a,b){for(var c=0,d=0;d<b.length;++d)c+=b[d].height;this.insertInner(a-this.first,b,c)},remove:function(a,b){this.removeInner(a-this.first,b)},getValue:function(a){var b=hf(this,this.first,this.first+this.size);return a===!1?b:b.join(a||this.lineSeparator())},setValue:fc(function(a){var b=oa(this.first,0),c=this.first+this.size-1;hd(this,{from:b,to:oa(c,ff(this,c).text.length),text:this.splitLines(a),origin:"setValue",full:!0},!0),Za(this,Ma(b))}),replaceRange:function(a,b,c,d){b=Oa(this,b),c=c?Oa(this,c):b,nd(this,a,b,c,d)},getRange:function(a,b,c){var d=gf(this,Oa(this,a),Oa(this,b));return c===!1?d:d.join(c||this.lineSeparator())},getLine:function(a){var b=this.getLineHandle(a);return b&&b.text},getLineHandle:function(a){return Qa(this,a)?ff(this,a):void 0},getLineNumber:function(a){return kf(a)},getLineHandleVisualStart:function(a){return"number"==typeof a&&(a=ff(this,a)),se(a)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(a){return Oa(this,a)},getCursor:function(a){var c,b=this.sel.primary();return c=null==a||"head"==a?b.head:"anchor"==a?b.anchor:"end"==a||"to"==a||a===!1?b.to():b.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:fc(function(a,b,c){Wa(this,Oa(this,"number"==typeof a?oa(a,b||0):a),null,c)}),setSelection:fc(function(a,b,c){Wa(this,Oa(this,a),Oa(this,b||a),c)}),extendSelection:fc(function(a,b,c){Ta(this,Oa(this,a),b&&Oa(this,b),c)}),extendSelections:fc(function(a,b){Ua(this,Ra(this,a,b))}),extendSelectionsBy:fc(function(a,b){Ua(this,gg(this.sel.ranges,a),b)}),setSelections:fc(function(a,b,c){if(a.length){for(var d=0,e=[];d<a.length;d++)e[d]=new Ka(Oa(this,a[d].anchor),Oa(this,a[d].head));null==b&&(b=Math.min(a.length-1,this.sel.primIndex)),Za(this,La(e,b),c)}}),addSelection:fc(function(a,b,c){var d=this.sel.ranges.slice(0);d.push(new Ka(Oa(this,a),Oa(this,b||a))),Za(this,La(d,d.length-1),c)}),getSelection:function(a){for(var c,b=this.sel.ranges,d=0;d<b.length;d++){var e=gf(this,b[d].from(),b[d].to());c=c?c.concat(e):e}return a===!1?c:c.join(a||this.lineSeparator())},getSelections:function(a){for(var b=[],c=this.sel.ranges,d=0;d<c.length;d++){var e=gf(this,c[d].from(),c[d].to());a!==!1&&(e=e.join(a||this.lineSeparator())),b[d]=e}return b},replaceSelection:function(a,b,c){for(var d=[],e=0;e<this.sel.ranges.length;e++)d[e]=a;this.replaceSelections(d,b,c||"+input")},replaceSelections:fc(function(a,b,c){for(var d=[],e=this.sel,f=0;f<e.ranges.length;f++){var g=e.ranges[f];d[f]={from:g.from(),to:g.to(),text:this.splitLines(a[f]),origin:c}}for(var h=b&&"end"!=b&&fd(this,d,b),f=d.length-1;f>=0;f--)hd(this,d[f]);h?Ya(this,h):this.cm&&td(this.cm)}),undo:fc(function(){jd(this,"undo")}),redo:fc(function(){jd(this,"redo")}),undoSelection:fc(function(){jd(this,"undo",!0)}),redoSelection:fc(function(){jd(this,"redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,b=0,c=0,d=0;d<a.done.length;d++)a.done[d].ranges||++b;for(var d=0;d<a.undone.length;d++)a.undone[d].ranges||++c;return{undo:b,redo:c}},clearHistory:function(){this.history=new of(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(a){return a&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(a){return this.history.generation==(a||this.cleanGeneration)},getHistory:function(){return{done:zf(this.history.done),undone:zf(this.history.undone)}},setHistory:function(a){var b=this.history=new of(this.history.maxGeneration);b.done=zf(a.done.slice(0),null,!0),b.undone=zf(a.undone.slice(0),null,!0)},addLineClass:fc(function(a,b,c){return wd(this,a,"gutter"==b?"gutter":"class",function(a){var d="text"==b?"textClass":"background"==b?"bgClass":"gutter"==b?"gutterClass":"wrapClass";if(a[d]){if(xg(c).test(a[d]))return!1;a[d]+=" "+c}else a[d]=c;return!0})}),removeLineClass:fc(function(a,b,c){return wd(this,a,"gutter"==b?"gutter":"class",function(a){var d="text"==b?"textClass":"background"==b?"bgClass":"gutter"==b?"gutterClass":"wrapClass",e=a[d];if(!e)return!1;if(null==c)a[d]=null;else{var f=e.match(xg(c));if(!f)return!1;var g=f.index+f[0].length;a[d]=e.slice(0,f.index)+(f.index&&g!=e.length?" ":"")+e.slice(g)||null}return!0})}),addLineWidget:fc(function(a,b,c){return Be(this,a,b,c)}),removeLineWidget:function(a){a.clear()},markText:function(a,b,c){return Vd(this,Oa(this,a),Oa(this,b),c,"range")},setBookmark:function(a,b){var c={replacedWith:b&&(null==b.nodeType?b.widget:b),insertLeft:b&&b.insertLeft,clearWhenEmpty:!1,shared:b&&b.shared,handleMouseEvents:b&&b.handleMouseEvents};return a=Oa(this,a),Vd(this,a,a,c,"bookmark")},findMarksAt:function(a){a=Oa(this,a);var b=[],c=ff(this,a.line).markedSpans;if(c)for(var d=0;d<c.length;++d){var e=c[d];(null==e.from||e.from<=a.ch)&&(null==e.to||e.to>=a.ch)&&b.push(e.marker.parent||e.marker)}return b},findMarks:function(a,b,c){a=Oa(this,a),b=Oa(this,b);var d=[],e=a.line;return this.iter(a.line,b.line+1,function(f){var g=f.markedSpans;if(g)for(var h=0;h<g.length;h++){var i=g[h];e==a.line&&a.ch>i.to||null==i.from&&e!=a.line||e==b.line&&i.from>b.ch||c&&!c(i.marker)||d.push(i.marker.parent||i.marker)}++e}),d},getAllMarks:function(){var a=[];return this.iter(function(b){var c=b.markedSpans;if(c)for(var d=0;d<c.length;++d)null!=c[d].from&&a.push(c[d].marker)}),a},posFromIndex:function(a){var b,c=this.first;return this.iter(function(d){var e=d.text.length+1;return e>a?(b=a,!0):(a-=e,void++c)}),Oa(this,oa(c,b))},indexFromPos:function(a){a=Oa(this,a);var b=a.ch;return a.line<this.first||a.ch<0?0:(this.iter(this.first,a.line,function(a){b+=a.text.length+1}),b)},copy:function(a){var b=new af(hf(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep);return b.scrollTop=this.scrollTop,b.scrollLeft=this.scrollLeft,b.sel=this.sel,b.extend=!1,a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory())),b},linkedDoc:function(a){a||(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from),null!=a.to&&a.to<c&&(c=a.to);var d=new af(hf(this,b,c),a.mode||this.modeOption,b,this.lineSep);return a.sharedHist&&(d.history=this.history),(this.linked||(this.linked=[])).push({doc:d,sharedHist:a.sharedHist}),d.linked=[{doc:this,isParent:!0,sharedHist:a.sharedHist}],Zd(d,Yd(this)),d},unlinkDoc:function(a){if(a instanceof v&&(a=a.doc),this.linked)for(var b=0;b<this.linked.length;++b){var c=this.linked[b];if(c.doc==a){this.linked.splice(b,1),a.unlinkDoc(this),$d(Yd(this));break}}if(a.history==this.history){var d=[a.id];df(a,function(a){d.push(a.id)},!0),a.history=new of(null),a.history.done=zf(this.history.done,d),a.history.undone=zf(this.history.undone,d)}},iterLinkedDocs:function(a){df(this,a)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(a){return this.lineSep?a.split(this.lineSep):Kg(a)},lineSeparator:function(){return this.lineSep||"\n"}}),af.prototype.eachLine=af.prototype.iter;var bf="iter insert remove copy getEditor constructor".split(" ");for(var cf in af.prototype)af.prototype.hasOwnProperty(cf)&&fg(bf,cf)<0&&(v.prototype[cf]=function(a){return function(){return a.apply(this.doc,arguments)}}(af.prototype[cf]));Uf(af);var Df=v.e_preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},Ef=v.e_stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},Gf=v.e_stop=function(a){Df(a),Ef(a)},Jf=v.on=function(a,b,c){if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var d=a._handlers||(a._handlers={}),e=d[b]||(d[b]=[]);e.push(c)}},Kf=[],Mf=v.off=function(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else for(var d=Lf(a,b,!1),e=0;e<d.length;++e)if(d[e]==c){d.splice(e,1);break}},Nf=v.signal=function(a,b){var c=Lf(a,b,!0);if(c.length)for(var d=Array.prototype.slice.call(arguments,2),e=0;e<c.length;++e)c[e].apply(null,d)},Of=null,Vf=30,Wf=v.Pass={toString:function(){return"CodeMirror.Pass"}},Xf={scroll:!1},Yf={origin:"*mouse"},Zf={origin:"+move"};$f.prototype.set=function(a,b){clearTimeout(this.id),this.id=setTimeout(b,a)};var _f=v.countColumn=function(a,b,c,d,e){null==b&&(b=a.search(/[^\s\u00a0]/),-1==b&&(b=a.length));for(var f=d||0,g=e||0;;){var h=a.indexOf(" ",f);if(0>h||h>=b)return g+(b-f);g+=h-f,g+=c-g%c,f=h+1}},ag=v.findColumn=function(a,b,c){for(var d=0,e=0;;){var f=a.indexOf(" ",d);-1==f&&(f=a.length);var g=f-d;if(f==a.length||e+g>=b)return d+Math.min(g,b-e);if(e+=f-d,e+=c-e%c,d=f+1,e>=b)return d}},bg=[""],eg=function(a){a.select()};m?eg=function(a){a.selectionStart=0,a.selectionEnd=a.value.length}:d&&(eg=function(a){try{a.select()}catch(b){}});var sg,lg=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,mg=v.isWordChar=function(a){return/\w/.test(a)||a>"\x80"&&(a.toUpperCase()!=a.toLowerCase()||lg.test(a))},pg=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;sg=document.createRange?function(a,b,c,d){var e=document.createRange();return e.setEnd(d||a,c),e.setStart(a,b),e}:function(a,b,c){var d=document.body.createTextRange();try{d.moveToElementText(a.parentNode)}catch(e){return d}return d.collapse(!0),d.moveEnd("character",c),d.moveStart("character",b),d};var vg=v.contains=function(a,b){if(3==b.nodeType&&(b=b.parentNode),a.contains)return a.contains(b);do if(11==b.nodeType&&(b=b.host),b==a)return!0;while(b=b.parentNode)};d&&11>e&&(wg=function(){try{return document.activeElement}catch(a){return document.body}});var Gg,Ig,yg=v.rmClass=function(a,b){var c=a.className,d=xg(b).exec(c);if(d){var e=c.slice(d.index+d[0].length);a.className=c.slice(0,d.index)+(e?d[1]+e:"")}},zg=v.addClass=function(a,b){var c=a.className;xg(b).test(c)||(a.className+=(c?" ":"")+b)},Cg=!1,Fg=function(){if(d&&9>e)return!1;var a=rg("div");return"draggable"in a||"dragDrop"in a}(),Kg=v.splitLines=3!="\n\nb".split(/\n/).length?function(a){for(var b=0,c=[],d=a.length;d>=b;){var e=a.indexOf("\n",b);-1==e&&(e=a.length);var f=a.slice(b,"\r"==a.charAt(e-1)?e-1:e),g=f.indexOf("\r");-1!=g?(c.push(f.slice(0,g)),b+=g+1):(c.push(f),b=e+1)}return c}:function(a){return a.split(/\r\n?|\n/)},Lg=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(a){try{var b=a.ownerDocument.selection.createRange()}catch(c){}return b&&b.parentElement()==a?0!=b.compareEndPoints("StartToEnd",b):!1},Mg=function(){var a=rg("div");return"oncopy"in a?!0:(a.setAttribute("oncopy","return;"),"function"==typeof a.oncopy)}(),Ng=null,Pg=v.keyNames={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};!function(){for(var a=0;10>a;a++)Pg[a+48]=Pg[a+96]=String(a);for(var a=65;90>=a;a++)Pg[a]=String.fromCharCode(a);for(var a=1;12>=a;a++)Pg[a+111]=Pg[a+63235]="F"+a}();var Zg,ch=function(){function c(c){return 247>=c?a.charAt(c):c>=1424&&1524>=c?"R":c>=1536&&1773>=c?b.charAt(c-1536):c>=1774&&2220>=c?"r":c>=8192&&8203>=c?"w":8204==c?"b":"L"}function j(a,b,c){this.level=a,this.from=b,this.to=c}var a="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",b="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm",d=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,e=/[stwN]/,f=/[LRr]/,g=/[Lb1n]/,h=/[1n]/,i="L";return function(a){if(!d.test(a))return!1;for(var m,b=a.length,k=[],l=0;b>l;++l)k.push(m=c(a.charCodeAt(l)));for(var l=0,n=i;b>l;++l){var m=k[l];"m"==m?k[l]=n:n=m}for(var l=0,o=i;b>l;++l){var m=k[l];"1"==m&&"r"==o?k[l]="n":f.test(m)&&(o=m,"r"==m&&(k[l]="R"))}for(var l=1,n=k[0];b-1>l;++l){var m=k[l];"+"==m&&"1"==n&&"1"==k[l+1]?k[l]="1":","!=m||n!=k[l+1]||"1"!=n&&"n"!=n||(k[l]=n),n=m}for(var l=0;b>l;++l){var m=k[l];if(","==m)k[l]="N";else if("%"==m){for(var p=l+1;b>p&&"%"==k[p];++p);for(var q=l&&"!"==k[l-1]||b>p&&"1"==k[p]?"1":"N",r=l;p>r;++r)k[r]=q;l=p-1}}for(var l=0,o=i;b>l;++l){var m=k[l];"L"==o&&"1"==m?k[l]="L":f.test(m)&&(o=m)}for(var l=0;b>l;++l)if(e.test(k[l])){for(var p=l+1;b>p&&e.test(k[p]);++p);for(var s="L"==(l?k[l-1]:i),t="L"==(b>p?k[p]:i),q=s||t?"L":"R",r=l;p>r;++r)k[r]=q;l=p-1}for(var v,u=[],l=0;b>l;)if(g.test(k[l])){var w=l;for(++l;b>l&&g.test(k[l]);++l);u.push(new j(0,w,l))}else{var x=l,y=u.length;for(++l;b>l&&"L"!=k[l];++l);for(var r=x;l>r;)if(h.test(k[r])){r>x&&u.splice(y,0,new j(1,x,r));var z=r;for(++r;l>r&&h.test(k[r]);++r);u.splice(y,0,new j(2,z,r)),x=r}else++r;l>x&&u.splice(y,0,new j(1,x,l))}return 1==u[0].level&&(v=a.match(/^\s+/))&&(u[0].from=v[0].length,u.unshift(new j(0,0,v[0].length))),1==dg(u).level&&(v=a.match(/\s+$/))&&(dg(u).to-=v[0].length,u.push(new j(0,b-v[0].length,b))),2==u[0].level&&u.unshift(new j(1,u[0].to,u[0].to)),u[0].level!=dg(u).level&&u.push(new j(u[0].level,b,b)),u}}();return v.version="5.7.1",v}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)}(function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function e(a,b){if(!b.startOfLine)return!1;for(;;){if(!a.skipTo("\\")){a.skipToEnd(),b.tokenize=null;break}if(a.next(),a.eol()){b.tokenize=e;break}}return"meta"}function f(a,b){return"variable-3"==b.prevToken?"variable-3":!1}function g(a){return a.eatWhile(/[\w\.']/),"number"}function h(a,b){if(a.backUp(1),a.match(/(R|u8R|uR|UR|LR)/)){var c=a.match(/"([^\s\\()]{0,16})\(/);return c?(b.cpp11RawStringDelim=c[1],b.tokenize=k,k(a,b)):!1}return a.match(/(u8|u|U|L)/)?a.match(/["']/,!1)?"string":!1:(a.next(),!1)}function i(a){var b=/(\w+)::(\w+)$/.exec(a);return b&&b[1]==b[2]}function j(a,b){for(var c;null!=(c=a.next());)if('"'==c&&!a.eat('"')){b.tokenize=null;break}return"string"}function k(a,b){var c=b.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&"),d=a.match(new RegExp(".*?\\)"+c+'"'));return d?b.tokenize=null:a.skipToEnd(),"string"}function l(b,c){function e(a){if(a)for(var b in a)a.hasOwnProperty(b)&&d.push(b)}"string"==typeof b&&(b=[b]);var d=[];e(c.keywords),e(c.types),e(c.builtin),e(c.atoms),d.length&&(c.helperType=b[0],a.registerHelper("hintWords",b[0],d));for(var f=0;f<b.length;++f)a.defineMIME(b[f],c)}function m(a,b){for(var c=!1;!a.eol();){if(!c&&a.match('"""')){b.tokenize=null;break}c="\\"==a.next()&&!c}return"string"}a.defineMode("clike",function(b,c){function u(a,b){var c=a.next();if(m[c]){var d=m[c](a,b);if(d!==!1)return d}if('"'==c||"'"==c)return b.tokenize=v(c),b.tokenize(a,b);if(/[\[\]{}\(\),;\:\.]/.test(c))return s=c,null;if(/\d/.test(c))return a.eatWhile(/[\w\.]/),"number";if("/"==c){if(a.eat("*"))return b.tokenize=w,w(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if(r.test(c))return a.eatWhile(r),"operator";if(a.eatWhile(/[\w\$_\xa1-\uffff]/),q)for(;a.match(q);)a.eatWhile(/[\w\$_\xa1-\uffff]/);var e=a.current();return g.propertyIsEnumerable(e)?(j.propertyIsEnumerable(e)&&(s="newstatement"),k.propertyIsEnumerable(e)&&(t=!0),"keyword"):h.propertyIsEnumerable(e)?"variable-3":i.propertyIsEnumerable(e)?(j.propertyIsEnumerable(e)&&(s="newstatement"),"builtin"):l.propertyIsEnumerable(e)?"atom":"variable"}function v(a){return function(b,c){for(var e,d=!1,f=!1;null!=(e=b.next());){if(e==a&&!d){f=!0;break}d=!d&&"\\"==e}return(f||!d&&!n)&&(c.tokenize=null),"string"}}function w(a,b){for(var d,c=!1;d=a.next();){if("/"==d&&c){b.tokenize=null;break}c="*"==d}return"comment"}function x(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function y(a){return"statement"==a||"switchstatement"==a||"namespace"==a}function z(a,b,c){var d=a.indented;return a.context&&y(a.context.type)&&!y(c)&&(d=a.context.indented),a.context=new x(d,b,c,null,a.context)}function A(a){var b=a.context.type;return(")"==b||"]"==b||"}"==b)&&(a.indented=a.context.indented),a.context=a.context.prev}function B(a,b){return"variable"==b.prevToken||"variable-3"==b.prevToken?!0:/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(a.string.slice(0,a.start))?!0:void 0}function C(a){for(;;){if(!a||"top"==a.type)return!0;if("}"==a.type&&"namespace"!=a.prev.type)return!1;a=a.prev}}var s,t,d=b.indentUnit,e=c.statementIndentUnit||d,f=c.dontAlignCalls,g=c.keywords||{},h=c.types||{},i=c.builtin||{},j=c.blockKeywords||{},k=c.defKeywords||{},l=c.atoms||{},m=c.hooks||{},n=c.multiLineStrings,o=c.indentStatements!==!1,p=c.indentSwitch!==!1,q=c.namespaceSeparator,r=/[+\-*&%=<>!?|\/]/;return{startState:function(a){return{tokenize:null,context:new x((a||0)-d,0,"top",!1),indented:0,startOfLine:!0,prevToken:null}},token:function(a,b){var d=b.context;if(a.sol()&&(null==d.align&&(d.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;s=t=null;var e=(b.tokenize||u)(a,b);if("comment"==e||"meta"==e)return e;if(null==d.align&&(d.align=!0),";"==s||":"==s||","==s)for(;y(b.context.type);)A(b);else if("{"==s)z(b,a.column(),"}");else if("["==s)z(b,a.column(),"]");else if("("==s)z(b,a.column(),")");else if("}"==s){for(;y(d.type);)d=A(b);for("}"==d.type&&(d=A(b));y(d.type);)d=A(b)}else if(s==d.type)A(b);else if(o&&(("}"==d.type||"top"==d.type)&&";"!=s||y(d.type)&&"newstatement"==s)){var f="statement";"newstatement"==s&&p&&"switch"==a.current()?f="switchstatement":"keyword"==e&&"namespace"==a.current()&&(f="namespace"),z(b,a.column(),f)}if("variable"==e&&("def"==b.prevToken||c.typeFirstDefinitions&&B(a,b)&&C(b.context)&&a.match(/^\s*\(/,!1))&&(e="def"),m.token){var g=m.token(a,b,e);void 0!==g&&(e=g)}return"def"==e&&c.styleDefs===!1&&(e="variable"),b.startOfLine=!1,b.prevToken=t?"def":e||s,e},indent:function(b,c){if(b.tokenize!=u&&null!=b.tokenize)return a.Pass;var g=b.context,h=c&&c.charAt(0);y(g.type)&&"}"==h&&(g=g.prev);var i=h==g.type,j=g.prev&&"switchstatement"==g.prev.type;return y(g.type)?g.indented+("{"==h?0:e):!g.align||f&&")"==g.type?")"!=g.type||i?g.indented+(i?0:d)+(i||!j||/^(?:case|default)\b/.test(c)?0:d):g.indented+e:g.column+(i?0:1)},electricInput:p?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});var c="auto if break case register continue return default do sizeof static else struct switch extern typedef float union for goto while enum const volatile",d="int long char short double float unsigned signed void size_t ptrdiff_t";l(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:b(c),types:b(d+" bool _Complex _Bool float_t double_t intptr_t intmax_t int8_t int16_t int32_t int64_t uintptr_t uintmax_t uint8_t uint16_t uint32_t uint64_t"),blockKeywords:b("case do else for if switch while struct"),defKeywords:b("struct"),typeFirstDefinitions:!0,atoms:b("null true false"),hooks:{"#":e,"*":f},modeProps:{fold:["brace","include"]}}),l(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:b(c+" asm dynamic_cast namespace reinterpret_cast try explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override"),types:b(d+" bool wchar_t"),blockKeywords:b("catch class do else finally for if struct switch try while"),
21
  defKeywords:b("class namespace struct enum union"),typeFirstDefinitions:!0,atoms:b("true false null"),hooks:{"#":e,"*":f,u:h,U:h,L:h,R:h,0:g,1:g,2:g,3:g,4:g,5:g,6:g,7:g,8:g,9:g,token:function(a,b,c){return"variable"!=c||"("!=a.peek()||";"!=b.prevToken&&null!=b.prevToken&&"}"!=b.prevToken||!i(a.current())?void 0:"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),l("text/x-java",{name:"clike",keywords:b("abstract assert break case catch class const continue default do else enum extends final finally float for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while"),types:b("byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:b("catch class do else finally for if switch try while"),defKeywords:b("class interface package enum"),typeFirstDefinitions:!0,atoms:b("true false null"),hooks:{"@":function(a){return a.eatWhile(/[\w\$_]/),"meta"}},modeProps:{fold:["brace","import"]}}),l("text/x-csharp",{name:"clike",keywords:b("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:b("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:b("catch class do else finally for foreach if struct switch try while"),defKeywords:b("class interface namespace struct var"),typeFirstDefinitions:!0,atoms:b("true false null"),hooks:{"@":function(a,b){return a.eat('"')?(b.tokenize=j,j(a,b)):(a.eatWhile(/[\w\$_]/),"meta")}}}),l("text/x-scala",{name:"clike",keywords:b("abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ : = => <- <: <% >: # @ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble :: #:: "),types:b("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:b("catch class do else finally for forSome if match switch try while"),defKeywords:b("class def object package trait type val var"),atoms:b("true false null"),indentStatements:!1,indentSwitch:!1,hooks:{"@":function(a){return a.eatWhile(/[\w\$_]/),"meta"},'"':function(a,b){return a.match('""')?(b.tokenize=m,b.tokenize(a,b)):!1},"'":function(a){return a.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"}},modeProps:{closeBrackets:{triples:'"'}}}),l("text/x-kotlin",{name:"clike",keywords:b("package as typealias class interface this super val var fun for is in This throw return break continue object if else while do try when !in !is as?file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline"),types:b("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:b("catch class do else finally for if where try while enum"),defKeywords:b("class val var object package interface fun"),atoms:b("true false null this"),modeProps:{closeBrackets:{triples:'"'}}}),l(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:b("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:b("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:b("for while do if else struct"),builtin:b("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:b("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":e},modeProps:{fold:["brace","include"]}}),l("text/x-nesc",{name:"clike",keywords:b(c+"as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:b(d),blockKeywords:b("case do else for if switch while struct"),atoms:b("null true false"),hooks:{"#":e},modeProps:{fold:["brace","include"]}}),l("text/x-objectivec",{name:"clike",keywords:b(c+"inline restrict _Bool _Complex _Imaginery BOOL Class bycopy byref id IMP in inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),types:b(d),atoms:b("YES NO NULL NILL ON OFF true false"),hooks:{"@":function(a){return a.eatWhile(/[\w\$]/),"keyword"},"#":e},modeProps:{fold:"brace"}}),l("text/x-squirrel",{name:"clike",keywords:b("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:b(d),blockKeywords:b("case catch class else for foreach if switch try while"),defKeywords:b("function local class"),typeFirstDefinitions:!0,atoms:b("true false null"),hooks:{"#":e},modeProps:{fold:["brace","include"]}})}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)}(function(a){"use strict";function b(a){for(var b={},c=0;c<a.length;++c)b[a[c]]=!0;return b}function x(a,b){for(var d,c=!1;null!=(d=a.next());){if(c&&"/"==d){b.tokenize=null;break}c="*"==d}return["comment","comment"]}a.defineMode("css",function(b,c){function u(a,b){return s=b,a}function v(a,b){var c=a.next();if(f[c]){var d=f[c](a,b);if(d!==!1)return d}return"@"==c?(a.eatWhile(/[\w\\\-]/),u("def",a.current())):"="==c||("~"==c||"|"==c)&&a.eat("=")?u(null,"compare"):'"'==c||"'"==c?(b.tokenize=w(c),b.tokenize(a,b)):"#"==c?(a.eatWhile(/[\w\\\-]/),u("atom","hash")):"!"==c?(a.match(/^\s*\w*/),u("keyword","important")):/\d/.test(c)||"."==c&&a.eat(/\d/)?(a.eatWhile(/[\w.%]/),u("number","unit")):"-"!==c?/[,+>*\/]/.test(c)?u(null,"select-op"):"."==c&&a.match(/^-?[_a-z][_a-z0-9-]*/i)?u("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(c)?u(null,c):"u"==c&&a.match(/rl(-prefix)?\(/)||"d"==c&&a.match("omain(")||"r"==c&&a.match("egexp(")?(a.backUp(1),b.tokenize=x,u("property","word")):/[\w\\\-]/.test(c)?(a.eatWhile(/[\w\\\-]/),u("property","word")):u(null,null):/[\d.]/.test(a.peek())?(a.eatWhile(/[\w.%]/),u("number","unit")):a.match(/^-[\w\\\-]+/)?(a.eatWhile(/[\w\\\-]/),a.match(/^\s*:/,!1)?u("variable-2","variable-definition"):u("variable-2","variable")):a.match(/^\w+-/)?u("meta","meta"):void 0}function w(a){return function(b,c){for(var e,d=!1;null!=(e=b.next());){if(e==a&&!d){")"==a&&b.backUp(1);break}d=!d&&"\\"==e}return(e==a||!d&&")"!=a)&&(c.tokenize=null),u("string","string")}}function x(a,b){return a.next(),a.match(/\s*[\"\')]/,!1)?b.tokenize=null:b.tokenize=w(")"),u(null,"(")}function y(a,b,c){this.type=a,this.indent=b,this.prev=c}function z(a,b,c,d){return a.context=new y(c,b.indentation()+(d===!1?0:e),a.context),c}function A(a){return a.context.prev&&(a.context=a.context.prev),a.context.type}function B(a,b,c){return E[c.context.type](a,b,c)}function C(a,b,c,d){for(var e=d||1;e>0;e--)c.context=c.context.prev;return B(a,b,c)}function D(a){var b=a.current().toLowerCase();t=p.hasOwnProperty(b)?"atom":o.hasOwnProperty(b)?"keyword":"variable"}var d=c;c.propertyKeywords||(c=a.resolveMode("text/css")),c.inline=d.inline;var s,t,e=b.indentUnit,f=c.tokenHooks,g=c.documentTypes||{},h=c.mediaTypes||{},i=c.mediaFeatures||{},j=c.mediaValueKeywords||{},k=c.propertyKeywords||{},l=c.nonStandardPropertyKeywords||{},m=c.fontProperties||{},n=c.counterDescriptors||{},o=c.colorKeywords||{},p=c.valueKeywords||{},q=c.allowNested,r=c.supportsAtComponent===!0,E={};return E.top=function(a,b,c){if("{"==a)return z(c,b,"block");if("}"==a&&c.context.prev)return A(c);if(r&&/@component/.test(a))return z(c,b,"atComponentBlock");if(/^@(-moz-)?document$/.test(a))return z(c,b,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(a))return z(c,b,"atBlock");if(/^@(font-face|counter-style)/.test(a))return c.stateArg=a,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(a))return"keyframes";if(a&&"@"==a.charAt(0))return z(c,b,"at");if("hash"==a)t="builtin";else if("word"==a)t="tag";else{if("variable-definition"==a)return"maybeprop";if("interpolation"==a)return z(c,b,"interpolation");if(":"==a)return"pseudo";if(q&&"("==a)return z(c,b,"parens")}return c.context.type},E.block=function(a,b,c){if("word"==a){var d=b.current().toLowerCase();return k.hasOwnProperty(d)?(t="property","maybeprop"):l.hasOwnProperty(d)?(t="string-2","maybeprop"):q?(t=b.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(t+=" error","maybeprop")}return"meta"==a?"block":q||"hash"!=a&&"qualifier"!=a?E.top(a,b,c):(t="error","block")},E.maybeprop=function(a,b,c){return":"==a?z(c,b,"prop"):B(a,b,c)},E.prop=function(a,b,c){if(";"==a)return A(c);if("{"==a&&q)return z(c,b,"propBlock");if("}"==a||"{"==a)return C(a,b,c);if("("==a)return z(c,b,"parens");if("hash"!=a||/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(b.current())){if("word"==a)D(b);else if("interpolation"==a)return z(c,b,"interpolation")}else t+=" error";return"prop"},E.propBlock=function(a,b,c){return"}"==a?A(c):"word"==a?(t="property","maybeprop"):c.context.type},E.parens=function(a,b,c){return"{"==a||"}"==a?C(a,b,c):")"==a?A(c):"("==a?z(c,b,"parens"):"interpolation"==a?z(c,b,"interpolation"):("word"==a&&D(b),"parens")},E.pseudo=function(a,b,c){return"word"==a?(t="variable-3",c.context.type):B(a,b,c)},E.documentTypes=function(a,b,c){return"word"==a&&g.hasOwnProperty(b.current())?(t="tag",c.context.type):E.atBlock(a,b,c)},E.atBlock=function(a,b,c){if("("==a)return z(c,b,"atBlock_parens");if("}"==a||";"==a)return C(a,b,c);if("{"==a)return A(c)&&z(c,b,q?"block":"top");if("word"==a){var d=b.current().toLowerCase();t="only"==d||"not"==d||"and"==d||"or"==d?"keyword":h.hasOwnProperty(d)?"attribute":i.hasOwnProperty(d)?"property":j.hasOwnProperty(d)?"keyword":k.hasOwnProperty(d)?"property":l.hasOwnProperty(d)?"string-2":p.hasOwnProperty(d)?"atom":o.hasOwnProperty(d)?"keyword":"error"}return c.context.type},E.atComponentBlock=function(a,b,c){return"}"==a?C(a,b,c):"{"==a?A(c)&&z(c,b,q?"block":"top",!1):("word"==a&&(t="error"),c.context.type)},E.atBlock_parens=function(a,b,c){return")"==a?A(c):"{"==a||"}"==a?C(a,b,c,2):E.atBlock(a,b,c)},E.restricted_atBlock_before=function(a,b,c){return"{"==a?z(c,b,"restricted_atBlock"):"word"==a&&"@counter-style"==c.stateArg?(t="variable","restricted_atBlock_before"):B(a,b,c)},E.restricted_atBlock=function(a,b,c){return"}"==a?(c.stateArg=null,A(c)):"word"==a?(t="@font-face"==c.stateArg&&!m.hasOwnProperty(b.current().toLowerCase())||"@counter-style"==c.stateArg&&!n.hasOwnProperty(b.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},E.keyframes=function(a,b,c){return"word"==a?(t="variable","keyframes"):"{"==a?z(c,b,"top"):B(a,b,c)},E.at=function(a,b,c){return";"==a?A(c):"{"==a||"}"==a?C(a,b,c):("word"==a?t="tag":"hash"==a&&(t="builtin"),"at")},E.interpolation=function(a,b,c){return"}"==a?A(c):"{"==a||";"==a?C(a,b,c):("word"==a?t="variable":"variable"!=a&&"("!=a&&")"!=a&&(t="error"),"interpolation")},{startState:function(a){return{tokenize:null,state:c.inline?"block":"top",stateArg:null,context:new y(c.inline?"block":"top",a||0,null)}},token:function(a,b){if(!b.tokenize&&a.eatSpace())return null;var c=(b.tokenize||v)(a,b);return c&&"object"==typeof c&&(s=c[1],c=c[0]),t=c,b.state=E[b.state](s,a,b),t},indent:function(a,b){var c=a.context,d=b&&b.charAt(0),f=c.indent;return"prop"!=c.type||"}"!=d&&")"!=d||(c=c.prev),c.prev&&("}"!=d||"block"!=c.type&&"top"!=c.type&&"interpolation"!=c.type&&"restricted_atBlock"!=c.type?(")"==d&&("parens"==c.type||"atBlock_parens"==c.type)||"{"==d&&("at"==c.type||"atBlock"==c.type))&&(f=Math.max(0,c.indent-e),c=c.prev):(c=c.prev,f=c.indent)),f},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace"}});var c=["domain","regexp","url","url-prefix"],d=b(c),e=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],f=b(e),g=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],h=b(g),i=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],j=b(i),k=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],l=b(k),m=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],n=b(m),o=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],p=b(o),q=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],r=b(q),s=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],t=b(s),u=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","column-reverse","compact","condensed","contain","content","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],v=b(u),w=c.concat(e).concat(g).concat(i).concat(k).concat(m).concat(s).concat(u);a.registerHelper("hintWords","css",w),a.defineMIME("text/css",{documentTypes:d,mediaTypes:f,mediaFeatures:h,mediaValueKeywords:j,propertyKeywords:l,nonStandardPropertyKeywords:n,fontProperties:p,counterDescriptors:r,colorKeywords:t,valueKeywords:v,tokenHooks:{"/":function(a,b){return a.eat("*")?(b.tokenize=x,x(a,b)):!1}},name:"css"}),a.defineMIME("text/x-scss",{mediaTypes:f,mediaFeatures:h,mediaValueKeywords:j,propertyKeywords:l,nonStandardPropertyKeywords:n,colorKeywords:t,valueKeywords:v,fontProperties:p,allowNested:!0,tokenHooks:{"/":function(a,b){return a.eat("/")?(a.skipToEnd(),["comment","comment"]):a.eat("*")?(b.tokenize=x,x(a,b)):["operator","operator"]},":":function(a){return a.match(/\s*\{/)?[null,"{"]:!1},$:function(a){return a.match(/^[\w-]+/),a.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(a){return a.eat("{")?[null,"interpolation"]:!1}},name:"css",helperType:"scss"}),a.defineMIME("text/x-less",{mediaTypes:f,mediaFeatures:h,mediaValueKeywords:j,propertyKeywords:l,nonStandardPropertyKeywords:n,colorKeywords:t,valueKeywords:v,fontProperties:p,allowNested:!0,tokenHooks:{"/":function(a,b){return a.eat("/")?(a.skipToEnd(),
22
  ["comment","comment"]):a.eat("*")?(b.tokenize=x,x(a,b)):["operator","operator"]},"@":function(a){return a.eat("{")?[null,"interpolation"]:a.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)?!1:(a.eatWhile(/[\w\\\-]/),a.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),a.defineMIME("text/x-gss",{documentTypes:d,mediaTypes:f,mediaFeatures:h,propertyKeywords:l,nonStandardPropertyKeywords:n,fontProperties:p,counterDescriptors:r,colorKeywords:t,valueKeywords:v,supportsAtComponent:!0,tokenHooks:{"/":function(a,b){return a.eat("*")?(b.tokenize=x,x(a,b)):!1}},name:"css",helperType:"gss"})}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],a):a(CodeMirror)}(function(a){"use strict";function c(a,b,c){var d=a.current(),e=d.search(b);return e>-1?a.backUp(d.length-e):d.match(/<\/?$/)&&(a.backUp(d.length),a.match(b,!1)||a.match(d)),c}function e(a){var b=d[a];return b?b:d[a]=new RegExp("\\s+"+a+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")}function f(a,b){for(var d,c=a.pos;c>=0&&"<"!==a.string.charAt(c);)c--;return 0>c?c:(d=a.string.slice(c,a.pos).match(e(b)))?d[2]:""}function g(a,b){return new RegExp((b?"^":"")+"</s*"+a+"s*>","i")}function h(a,b){for(var c in a)for(var d=b[c]||(b[c]=[]),e=a[c],f=e.length-1;f>=0;f--)d.unshift(e[f])}function i(a,b){for(var c=0;c<a.length;c++){var d=a[c];if(!d[0]||d[1].test(f(b,d[0])))return d[2]}}var b={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},d={};a.defineMode("htmlmixed",function(d,e){function n(b,e){var m,h=e.htmlState.tagName,k=h&&j[h.toLowerCase()],l=f.token(b,e.htmlState);if(k&&/\btag\b/.test(l)&&">"===b.current()&&(m=i(k,b))){var o=a.getMode(d,m),p=g(h,!0),q=g(h,!1);e.token=function(a,b){return a.match(p,!1)?(b.token=n,b.localState=b.localMode=null,null):c(a,q,b.localMode.token(a,b.localState))},e.localMode=o,e.localState=a.startState(o,f.indent(e.htmlState,""))}return l}var f=a.getMode(d,{name:"xml",htmlMode:!0,multilineTagIndentFactor:e.multilineTagIndentFactor,multilineTagIndentPastTag:e.multilineTagIndentPastTag}),j={},k=e&&e.tags,l=e&&e.scriptTypes;if(h(b,j),k&&h(k,j),l)for(var m=l.length-1;m>=0;m--)j.script.unshift(["type",l[m].matches,l[m].mode]);return{startState:function(){var a=f.startState();return{token:n,localMode:null,localState:null,htmlState:a}},copyState:function(b){var c;return b.localState&&(c=a.copyState(b.localMode,b.localState)),{token:b.token,localMode:b.localMode,localState:c,htmlState:a.copyState(f,b.htmlState)}},token:function(a,b){return b.token(a,b)},indent:function(b,c){return!b.localMode||/^\s*<\//.test(c)?f.indent(b.htmlState,c):b.localMode.indent?b.localMode.indent(b.localState,c):a.Pass},innerMode:function(a){return{state:a.localState||a.htmlState,mode:a.localMode||f}}}},"xml","javascript","css"),a.defineMIME("text/html","htmlmixed")}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)}(function(a){"use strict";a.defineMode("javascript",function(b,c){function m(a){for(var c,b=!1,d=!1;null!=(c=a.next());){if(!b){if("/"==c&&!d)return;"["==c?d=!0:d&&"]"==c&&(d=!1)}b=!b&&"\\"==c}}function p(a,b,c){return n=a,o=c,b}function q(a,b){var c=a.next();if('"'==c||"'"==c)return b.tokenize=r(c),b.tokenize(a,b);if("."==c&&a.match(/^\d+(?:[eE][+\-]?\d+)?/))return p("number","number");if("."==c&&a.match(".."))return p("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(c))return p(c);if("="==c&&a.eat(">"))return p("=>","operator");if("0"==c&&a.eat(/x/i))return a.eatWhile(/[\da-f]/i),p("number","number");if("0"==c&&a.eat(/o/i))return a.eatWhile(/[0-7]/i),p("number","number");if("0"==c&&a.eat(/b/i))return a.eatWhile(/[01]/i),p("number","number");if(/\d/.test(c))return a.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),p("number","number");if("/"==c)return a.eat("*")?(b.tokenize=s,s(a,b)):a.eat("/")?(a.skipToEnd(),p("comment","comment")):"operator"==b.lastType||"keyword c"==b.lastType||"sof"==b.lastType||/^[\[{}\(,;:]$/.test(b.lastType)?(m(a),a.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),p("regexp","string-2")):(a.eatWhile(k),p("operator","operator",a.current()));if("`"==c)return b.tokenize=t,t(a,b);if("#"==c)return a.skipToEnd(),p("error","error");if(k.test(c))return a.eatWhile(k),p("operator","operator",a.current());if(i.test(c)){a.eatWhile(i);var d=a.current(),e=j.propertyIsEnumerable(d)&&j[d];return e&&"."!=b.lastType?p(e.type,e.style,d):p("variable","variable",d)}}function r(a){return function(b,c){var e,d=!1;if(f&&"@"==b.peek()&&b.match(l))return c.tokenize=q,p("jsonld-keyword","meta");for(;null!=(e=b.next())&&(e!=a||d);)d=!d&&"\\"==e;return d||(c.tokenize=q),p("string","string")}}function s(a,b){for(var d,c=!1;d=a.next();){if("/"==d&&c){b.tokenize=q;break}c="*"==d}return p("comment","comment")}function t(a,b){for(var d,c=!1;null!=(d=a.next());){if(!c&&("`"==d||"$"==d&&a.eat("{"))){b.tokenize=q;break}c=!c&&"\\"==d}return p("quasi","string-2",a.current())}function v(a,b){b.fatArrowAt&&(b.fatArrowAt=null);var c=a.string.indexOf("=>",a.start);if(!(0>c)){for(var d=0,e=!1,f=c-1;f>=0;--f){var g=a.string.charAt(f),h=u.indexOf(g);if(h>=0&&3>h){if(!d){++f;break}if(0==--d)break}else if(h>=3&&6>h)++d;else if(i.test(g))e=!0;else{if(/["'\/]/.test(g))return;if(e&&!d){++f;break}}}e&&!d&&(b.fatArrowAt=f)}}function x(a,b,c,d,e,f){this.indented=a,this.column=b,this.type=c,this.prev=e,this.info=f,null!=d&&(this.align=d)}function y(a,b){for(var c=a.localVars;c;c=c.next)if(c.name==b)return!0;for(var d=a.context;d;d=d.prev)for(var c=d.vars;c;c=c.next)if(c.name==b)return!0}function z(a,b,c,d,e){var f=a.cc;for(A.state=a,A.stream=e,A.marked=null,A.cc=f,A.style=b,a.lexical.hasOwnProperty("align")||(a.lexical.align=!0);;){var h=f.length?f.pop():g?L:K;if(h(c,d)){for(;f.length&&f[f.length-1].lex;)f.pop()();return A.marked?A.marked:"variable"==c&&y(a,d)?"variable-2":b}}}function B(){for(var a=arguments.length-1;a>=0;a--)A.cc.push(arguments[a])}function C(){return B.apply(null,arguments),!0}function D(a){function b(b){for(var c=b;c;c=c.next)if(c.name==a)return!0;return!1}var d=A.state;if(d.context){if(A.marked="def",b(d.localVars))return;d.localVars={name:a,next:d.localVars}}else{if(b(d.globalVars))return;c.globalVars&&(d.globalVars={name:a,next:d.globalVars})}}function F(){A.state.context={prev:A.state.context,vars:A.state.localVars},A.state.localVars=E}function G(){A.state.localVars=A.state.context.vars,A.state.context=A.state.context.prev}function H(a,b){var c=function(){var c=A.state,d=c.indented;if("stat"==c.lexical.type)d=c.lexical.indented;else for(var e=c.lexical;e&&")"==e.type&&e.align;e=e.prev)d=e.indented;c.lexical=new x(d,A.stream.column(),a,null,c.lexical,b)};return c.lex=!0,c}function I(){var a=A.state;a.lexical.prev&&(")"==a.lexical.type&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}function J(a){function b(c){return c==a?C():";"==a?B():C(b)}return b}function K(a,b){return"var"==a?C(H("vardef",b.length),fa,J(";"),I):"keyword a"==a?C(H("form"),L,K,I):"keyword b"==a?C(H("form"),K,I):"{"==a?C(H("}"),ba,I):";"==a?C():"if"==a?("else"==A.state.lexical.info&&A.state.cc[A.state.cc.length-1]==I&&A.state.cc.pop()(),C(H("form"),L,K,I,ka)):"function"==a?C(qa):"for"==a?C(H("form"),la,K,I):"variable"==a?C(H("stat"),W):"switch"==a?C(H("form"),L,H("}","switch"),J("{"),ba,I,I):"case"==a?C(L,J(":")):"default"==a?C(J(":")):"catch"==a?C(H("form"),F,J("("),ra,J(")"),K,I,G):"class"==a?C(H("form"),sa,I):"export"==a?C(H("stat"),wa,I):"import"==a?C(H("stat"),xa,I):B(H("stat"),L,J(";"),I)}function L(a){return N(a,!1)}function M(a){return N(a,!0)}function N(a,b){if(A.state.fatArrowAt==A.stream.start){var c=b?V:U;if("("==a)return C(F,H(")"),_(ga,")"),I,J("=>"),c,G);if("variable"==a)return B(F,ga,J("=>"),c,G)}var d=b?R:Q;return w.hasOwnProperty(a)?C(d):"async"==a?C(L):"function"==a?C(qa,d):"keyword c"==a?C(b?P:O):"("==a?C(H(")"),O,Da,J(")"),I,d):"operator"==a||"spread"==a?C(b?M:L):"["==a?C(H("]"),Ba,I,d):"{"==a?aa(Y,"}",null,d):"quasi"==a?B(S,d):C()}function O(a){return a.match(/[;\}\)\],]/)?B():B(L)}function P(a){return a.match(/[;\}\)\],]/)?B():B(M)}function Q(a,b){return","==a?C(L):R(a,b,!1)}function R(a,b,c){var d=0==c?Q:R,e=0==c?L:M;return"=>"==a?C(F,c?V:U,G):"operator"==a?/\+\+|--/.test(b)?C(d):"?"==b?C(L,J(":"),e):C(e):"quasi"==a?B(S,d):";"!=a?"("==a?aa(M,")","call",d):"."==a?C(X,d):"["==a?C(H("]"),O,J("]"),I,d):void 0:void 0}function S(a,b){return"quasi"!=a?B():"${"!=b.slice(b.length-2)?C(S):C(L,T)}function T(a){return"}"==a?(A.marked="string-2",A.state.tokenize=t,C(S)):void 0}function U(a){return v(A.stream,A.state),B("{"==a?K:L)}function V(a){return v(A.stream,A.state),B("{"==a?K:M)}function W(a){return":"==a?C(I,K):B(Q,J(";"),I)}function X(a){return"variable"==a?(A.marked="property",C()):void 0}function Y(a,b){return"async"==a?C(Y):"variable"==a||"keyword"==A.style?(A.marked="property",C("get"==b||"set"==b?Z:$)):"number"==a||"string"==a?(A.marked=f?"property":A.style+" property",C($)):"jsonld-keyword"==a?C($):"["==a?C(L,J("]"),$):void 0}function Z(a){return"variable"!=a?B($):(A.marked="property",C(qa))}function $(a){return":"==a?C(M):"("==a?B(qa):void 0}function _(a,b){function c(d){if(","==d){var e=A.state.lexical;return"call"==e.info&&(e.pos=(e.pos||0)+1),C(a,c)}return d==b?C():C(J(b))}return function(d){return d==b?C():B(a,c)}}function aa(a,b,c){for(var d=3;d<arguments.length;d++)A.cc.push(arguments[d]);return C(H(b,c),_(a,b),I)}function ba(a){return"}"==a?C():B(K,ba)}function ca(a){return h&&":"==a?C(ea):void 0}function da(a,b){return"="==b?C(M):void 0}function ea(a){return"variable"==a?(A.marked="variable-3",C()):void 0}function fa(){return B(ga,ca,ia,ja)}function ga(a,b){return"variable"==a?(D(b),C()):"spread"==a?C(ga):"["==a?aa(ga,"]"):"{"==a?aa(ha,"}"):void 0}function ha(a,b){return"variable"!=a||A.stream.match(/^\s*:/,!1)?("variable"==a&&(A.marked="property"),"spread"==a?C(ga):C(J(":"),ga,ia)):(D(b),C(ia))}function ia(a,b){return"="==b?C(M):void 0}function ja(a){return","==a?C(fa):void 0}function ka(a,b){return"keyword b"==a&&"else"==b?C(H("form","else"),K,I):void 0}function la(a){return"("==a?C(H(")"),ma,J(")"),I):void 0}function ma(a){return"var"==a?C(fa,J(";"),oa):";"==a?C(oa):"variable"==a?C(na):B(L,J(";"),oa)}function na(a,b){return"in"==b||"of"==b?(A.marked="keyword",C(L)):C(Q,oa)}function oa(a,b){return";"==a?C(pa):"in"==b||"of"==b?(A.marked="keyword",C(L)):B(L,J(";"),pa)}function pa(a){")"!=a&&C(L)}function qa(a,b){return"*"==b?(A.marked="keyword",C(qa)):"variable"==a?(D(b),C(qa)):"("==a?C(F,H(")"),_(ra,")"),I,K,G):void 0}function ra(a){return"spread"==a?C(ra):B(ga,ca,da)}function sa(a,b){return"variable"==a?(D(b),C(ta)):void 0}function ta(a,b){return"extends"==b?C(L,ta):"{"==a?C(H("}"),ua,I):void 0}function ua(a,b){return"variable"==a||"keyword"==A.style?"static"==b?(A.marked="keyword",C(ua)):(A.marked="property","get"==b||"set"==b?C(va,qa,ua):C(qa,ua)):"*"==b?(A.marked="keyword",C(ua)):";"==a?C(ua):"}"==a?C():void 0}function va(a){return"variable"!=a?B():(A.marked="property",C())}function wa(a,b){return"*"==b?(A.marked="keyword",C(Aa,J(";"))):"default"==b?(A.marked="keyword",C(L,J(";"))):B(K)}function xa(a){return"string"==a?C():B(ya,Aa)}function ya(a,b){return"{"==a?aa(ya,"}"):("variable"==a&&D(b),"*"==b&&(A.marked="keyword"),C(za))}function za(a,b){return"as"==b?(A.marked="keyword",C(ya)):void 0}function Aa(a,b){return"from"==b?(A.marked="keyword",C(L)):void 0}function Ba(a){return"]"==a?C():B(M,Ca)}function Ca(a){return"for"==a?B(Da,J("]")):","==a?C(_(P,"]")):B(_(M,"]"))}function Da(a){return"for"==a?C(la,Da):"if"==a?C(L,Da):void 0}function Ea(a,b){return"operator"==a.lastType||","==a.lastType||k.test(b.charAt(0))||/[,.]/.test(b.charAt(0))}var n,o,d=b.indentUnit,e=c.statementIndent,f=c.jsonld,g=c.json||f,h=c.typescript,i=c.wordCharacters||/[\w$\xa1-\uffff]/,j=function(){function a(a){return{type:a,style:"keyword"}}var b=a("keyword a"),c=a("keyword b"),d=a("keyword c"),e=a("operator"),f={type:"atom",style:"atom"},g={"if":a("if"),"while":b,"with":b,"else":c,"do":c,"try":c,"finally":c,"return":d,"break":d,"continue":d,"new":d,"delete":d,"throw":d,"debugger":d,"var":a("var"),"const":a("var"),let:a("var"),async:a("async"),"function":a("function"),"catch":a("catch"),"for":a("for"),"switch":a("switch"),"case":a("case"),"default":a("default"),"in":e,"typeof":e,"instanceof":e,"true":f,"false":f,"null":f,undefined:f,NaN:f,Infinity:f,"this":a("this"),"class":a("class"),"super":a("atom"),await:d,"yield":d,"export":a("export"),"import":a("import"),"extends":d};if(h){var i={type:"variable",style:"variable-3"},j={"interface":a("interface"),"extends":a("extends"),constructor:a("constructor"),"public":a("public"),"private":a("private"),"protected":a("protected"),"static":a("static"),string:i,number:i,bool:i,any:i};for(var k in j)g[k]=j[k]}return g}(),k=/[+\-*&%=<>!?|~^]/,l=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,u="([{}])",w={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,"this":!0,"jsonld-keyword":!0},A={state:null,column:null,marked:null,cc:null},E={name:"this",next:{name:"arguments"}};return I.lex=!0,{startState:function(a){var b={tokenize:q,lastType:"sof",cc:[],lexical:new x((a||0)-d,0,"block",!1),localVars:c.localVars,context:c.localVars&&{vars:c.localVars},indented:0};return c.globalVars&&"object"==typeof c.globalVars&&(b.globalVars=c.globalVars),b},token:function(a,b){if(a.sol()&&(b.lexical.hasOwnProperty("align")||(b.lexical.align=!1),b.indented=a.indentation(),v(a,b)),b.tokenize!=s&&a.eatSpace())return null;var c=b.tokenize(a,b);return"comment"==n?c:(b.lastType="operator"!=n||"++"!=o&&"--"!=o?n:"incdec",z(b,c,n,o,a))},indent:function(b,f){if(b.tokenize==s)return a.Pass;if(b.tokenize!=q)return 0;var g=f&&f.charAt(0),h=b.lexical;if(!/^\s*else\b/.test(f))for(var i=b.cc.length-1;i>=0;--i){var j=b.cc[i];if(j==I)h=h.prev;else if(j!=ka)break}"stat"==h.type&&"}"==g&&(h=h.prev),e&&")"==h.type&&"stat"==h.prev.type&&(h=h.prev);var k=h.type,l=g==k;return"vardef"==k?h.indented+("operator"==b.lastType||","==b.lastType?h.info+1:0):"form"==k&&"{"==g?h.indented:"form"==k?h.indented+d:"stat"==k?h.indented+(Ea(b,f)?e||d:0):"switch"!=h.info||l||0==c.doubleIndentSwitch?h.align?h.column+(l?0:1):h.indented+(l?0:d):h.indented+(/^(?:case|default)\b/.test(f)?d:2*d)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:g?null:"/*",blockCommentEnd:g?null:"*/",lineComment:g?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:g?"json":"javascript",jsonldMode:f,jsonMode:g}}),a.registerHelper("wordChars","javascript",/[\w$]/),a.defineMIME("text/javascript","javascript"),a.defineMIME("text/ecmascript","javascript"),a.defineMIME("application/javascript","javascript"),a.defineMIME("application/x-javascript","javascript"),a.defineMIME("application/ecmascript","javascript"),a.defineMIME("application/json",{name:"javascript",json:!0}),a.defineMIME("application/x-json",{name:"javascript",json:!0}),a.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),a.defineMIME("text/typescript",{name:"javascript",typescript:!0}),a.defineMIME("application/typescript",{name:"javascript",typescript:!0})}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],a):a(CodeMirror)}(function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(a,b,e){return 0==a.length?d(b):function(f,g){for(var h=a[0],i=0;i<h.length;i++)if(f.match(h[i][0]))return g.tokenize=c(a.slice(1),b),h[i][1];return g.tokenize=d(b,e),"string"}}function d(a,b){return function(c,d){return e(c,d,a,b)}}function e(a,b,d,e){if(e!==!1&&a.match("${",!1)||a.match("{$",!1))return b.tokenize=null,"string";if(e!==!1&&a.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/))return a.match("[",!1)&&(b.tokenize=c([[["[",null]],[[/\d[\w\.]*/,"number"],[/\$[a-zA-Z_][a-zA-Z0-9_]*/,"variable-2"],[/[\w\$]+/,"variable"]],[["]",null]]],d,e)),a.match(/\-\>\w/,!1)&&(b.tokenize=c([[["->",null]],[[/[\w]+/,"variable"]]],d,e)),"variable-2";for(var f=!1;!a.eol()&&(f||e===!1||!a.match("{$",!1)&&!a.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!f&&a.match(d)){b.tokenize=null,b.tokStack.pop(),b.tokStack.pop();break}f="\\"==a.next()&&!f}return"string"}var f="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally",g="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",h="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";a.registerHelper("hintWords","php",[f,g,h].join(" ").split(" ")),a.registerHelper("wordChars","php",/[\w$]/);var i={name:"clike",helperType:"php",keywords:b(f),blockKeywords:b("catch do else elseif for foreach if switch try while finally"),defKeywords:b("class function interface namespace trait"),atoms:b(g),builtin:b(h),multiLineStrings:!0,hooks:{$:function(a){return a.eatWhile(/[\w\$_]/),"variable-2"},"<":function(a,b){var c;if(c=a.match(/<<\s*/)){var e=a.eat(/['"]/);a.eatWhile(/[\w\.]/);var f=a.current().slice(c[0].length+(e?2:1));if(e&&a.eat(e),f)return(b.tokStack||(b.tokStack=[])).push(f,0),b.tokenize=d(f,"'"!=e),"string"}return!1},"#":function(a){for(;!a.eol()&&!a.match("?>",!1);)a.next();return"comment"},"/":function(a){if(a.eat("/")){for(;!a.eol()&&!a.match("?>",!1);)a.next();return"comment"}return!1},'"':function(a,b){return(b.tokStack||(b.tokStack=[])).push('"',0),b.tokenize=d('"'),"string"},"{":function(a,b){return b.tokStack&&b.tokStack.length&&b.tokStack[b.tokStack.length-1]++,!1},"}":function(a,b){return b.tokStack&&b.tokStack.length>0&&!--b.tokStack[b.tokStack.length-1]&&(b.tokenize=d(b.tokStack[b.tokStack.length-2])),!1}}};a.defineMode("php",function(b,c){function f(b,c){var f=c.curMode==e;if(b.sol()&&c.pending&&'"'!=c.pending&&"'"!=c.pending&&(c.pending=null),f)return f&&null==c.php.tokenize&&b.match("?>")?(c.curMode=d,c.curState=c.html,c.php.context.prev||(c.php=null),"meta"):e.token(b,c.curState);if(b.match(/^<\?\w*/))return c.curMode=e,c.php||(c.php=a.startState(e,d.indent(c.html,""))),c.curState=c.php,"meta";if('"'==c.pending||"'"==c.pending){for(;!b.eol()&&b.next()!=c.pending;);var g="string"}else if(c.pending&&b.pos<c.pending.end){b.pos=c.pending.end;var g=c.pending.style}else var g=d.token(b,c.curState);c.pending&&(c.pending=null);var j,h=b.current(),i=h.search(/<\?/);return-1!=i&&("string"==g&&(j=h.match(/[\'\"]$/))&&!/\?>/.test(h)?c.pending=j[0]:c.pending={end:b.pos,style:g},b.backUp(h.length-i)),g}var d=a.getMode(b,"text/html"),e=a.getMode(b,i);return{startState:function(){var b=a.startState(d),f=c.startOpen?a.startState(e):null;return{html:b,php:f,curMode:c.startOpen?e:d,curState:c.startOpen?f:b,pending:null}},copyState:function(b){var i,c=b.html,f=a.copyState(d,c),g=b.php,h=g&&a.copyState(e,g);return i=b.curMode==d?f:h,{html:f,php:h,curMode:b.curMode,curState:i,pending:b.pending}},token:f,indent:function(a,b){return a.curMode!=e&&/^\s*<\//.test(b)||a.curMode==e&&/^\?>/.test(b)?d.indent(a.html,b):a.curMode.indent(a.curState,b)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(a){return{state:a.curState,mode:a.curMode}}}},"htmlmixed","clike"),a.defineMIME("application/x-httpd-php","php"),a.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),a.defineMIME("text/x-php",i)}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)}(function(a){"use strict";a.defineMode("xml",function(b,c){function k(a,b){function c(c){return b.tokenize=c,c(a,b)}var d=a.next();if("<"==d)return a.eat("!")?a.eat("[")?a.match("CDATA[")?c(n("atom","]]>")):null:a.match("--")?c(n("comment","-->")):a.match("DOCTYPE",!0,!0)?(a.eatWhile(/[\w\._\-]/),c(o(1))):null:a.eat("?")?(a.eatWhile(/[\w\._\-]/),b.tokenize=n("meta","?>"),"meta"):(i=a.eat("/")?"closeTag":"openTag",b.tokenize=l,"tag bracket");if("&"==d){var e;return e=a.eat("#")?a.eat("x")?a.eatWhile(/[a-fA-F\d]/)&&a.eat(";"):a.eatWhile(/[\d]/)&&a.eat(";"):a.eatWhile(/[\w\.\-:]/)&&a.eat(";"),e?"atom":"error"}return a.eatWhile(/[^&<]/),null}function l(a,b){var c=a.next();if(">"==c||"/"==c&&a.eat(">"))return b.tokenize=k,i=">"==c?"endTag":"selfcloseTag","tag bracket";if("="==c)return i="equals",null;if("<"==c){b.tokenize=k,b.state=s,b.tagName=b.tagStart=null;var d=b.tokenize(a,b);return d?d+" tag error":"tag error"}return/[\'\"]/.test(c)?(b.tokenize=m(c),b.stringStartCol=a.column(),b.tokenize(a,b)):(a.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function m(a){var b=function(b,c){for(;!b.eol();)if(b.next()==a){c.tokenize=l;break}return"string"};return b.isInAttribute=!0,b}function n(a,b){return function(c,d){for(;!c.eol();){if(c.match(b)){d.tokenize=k;break}c.next()}return a}}function o(a){return function(b,c){for(var d;null!=(d=b.next());){if("<"==d)return c.tokenize=o(a+1),c.tokenize(b,c);if(">"==d){if(1==a){c.tokenize=k;break}return c.tokenize=o(a-1),c.tokenize(b,c)}}return"meta"}}function p(a,b,c){this.prev=a.context,this.tagName=b,this.indent=a.indented,this.startOfLine=c,(g.doNotIndent.hasOwnProperty(b)||a.context&&a.context.noIndent)&&(this.noIndent=!0)}function q(a){a.context&&(a.context=a.context.prev)}function r(a,b){for(var c;;){if(!a.context)return;if(c=a.context.tagName,!g.contextGrabbers.hasOwnProperty(c)||!g.contextGrabbers[c].hasOwnProperty(b))return;q(a)}}function s(a,b,c){return"openTag"==a?(c.tagStart=b.column(),t):"closeTag"==a?u:s}function t(a,b,c){return"word"==a?(c.tagName=b.current(),j="tag",x):(j="error",t)}function u(a,b,c){if("word"==a){var d=b.current();return c.context&&c.context.tagName!=d&&g.implicitlyClosed.hasOwnProperty(c.context.tagName)&&q(c),
23
- c.context&&c.context.tagName==d?(j="tag",v):(j="tag error",w)}return j="error",w}function v(a,b,c){return"endTag"!=a?(j="error",v):(q(c),s)}function w(a,b,c){return j="error",v(a,b,c)}function x(a,b,c){if("word"==a)return j="attribute",y;if("endTag"==a||"selfcloseTag"==a){var d=c.tagName,e=c.tagStart;return c.tagName=c.tagStart=null,"selfcloseTag"==a||g.autoSelfClosers.hasOwnProperty(d)?r(c,d):(r(c,d),c.context=new p(c,d,e==c.indented)),s}return j="error",x}function y(a,b,c){return"equals"==a?z:(g.allowMissing||(j="error"),x(a,b,c))}function z(a,b,c){return"string"==a?A:"word"==a&&g.allowUnquoted?(j="string",x):(j="error",x(a,b,c))}function A(a,b,c){return"string"==a?A:x(a,b,c)}var d=b.indentUnit,e=c.multilineTagIndentFactor||1,f=c.multilineTagIndentPastTag;null==f&&(f=!0);var i,j,g=c.htmlMode?{autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1},h=c.alignCDATA;return k.isInText=!0,{startState:function(){return{tokenize:k,state:s,indented:0,tagName:null,tagStart:null,context:null}},token:function(a,b){if(!b.tagName&&a.sol()&&(b.indented=a.indentation()),a.eatSpace())return null;i=null;var c=b.tokenize(a,b);return(c||i)&&"comment"!=c&&(j=null,b.state=b.state(i||c,a,b),j&&(c="error"==j?c+" error":j)),c},indent:function(b,c,i){var j=b.context;if(b.tokenize.isInAttribute)return b.tagStart==b.indented?b.stringStartCol+1:b.indented+d;if(j&&j.noIndent)return a.Pass;if(b.tokenize!=l&&b.tokenize!=k)return i?i.match(/^(\s*)/)[0].length:0;if(b.tagName)return f?b.tagStart+b.tagName.length+2:b.tagStart+d*e;if(h&&/<!\[CDATA\[/.test(c))return 0;var m=c&&/^<(\/)?([\w_:\.-]*)/.exec(c);if(m&&m[1])for(;j;){if(j.tagName==m[2]){j=j.prev;break}if(!g.implicitlyClosed.hasOwnProperty(j.tagName))break;j=j.prev}else if(m)for(;j;){var n=g.contextGrabbers[j.tagName];if(!n||!n.hasOwnProperty(m[2]))break;j=j.prev}for(;j&&!j.startOfLine;)j=j.prev;return j?j.indent+d:0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:c.htmlMode?"html":"xml",helperType:c.htmlMode?"html":"xml"}}),a.defineMIME("text/xml","xml"),a.defineMIME("application/xml","xml"),a.mimeModes.hasOwnProperty("text/html")||a.defineMIME("text/html",{name:"xml",htmlMode:!0})});
20
  "Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Md["default"]=o?Md.macDefault:Md.pcDefault,v.normalizeKeyMap=function(a){var b={};for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];if(/^(name|fallthrough|(de|at)tach)$/.test(c))continue;if("..."==d){delete a[c];continue}for(var e=gg(c.split(" "),Nd),f=0;f<e.length;f++){var g,h;f==e.length-1?(h=e.join(" "),g=d):(h=e.slice(0,f+1).join(" "),g="...");var i=b[h];if(i){if(i!=g)throw new Error("Inconsistent bindings for "+h)}else b[h]=g}delete a[c]}for(var j in b)a[j]=b[j];return a};var Od=v.lookupKey=function(a,b,c,d){b=Rd(b);var e=b.call?b.call(a,d):b[a];if(e===!1)return"nothing";if("..."===e)return"multi";if(null!=e&&c(e))return"handled";if(b.fallthrough){if("[object Array]"!=Object.prototype.toString.call(b.fallthrough))return Od(a,b.fallthrough,c,d);for(var f=0;f<b.fallthrough.length;f++){var g=Od(a,b.fallthrough[f],c,d);if(g)return g}}},Pd=v.isModifierKey=function(a){var b="string"==typeof a?a:Pg[a.keyCode];return"Ctrl"==b||"Alt"==b||"Shift"==b||"Mod"==b},Qd=v.keyName=function(a,b){if(i&&34==a.keyCode&&a["char"])return!1;var c=Pg[a.keyCode],d=c;return null==d||a.altGraphKey?!1:(a.altKey&&"Alt"!=c&&(d="Alt-"+d),(r?a.metaKey:a.ctrlKey)&&"Ctrl"!=c&&(d="Ctrl-"+d),(r?a.ctrlKey:a.metaKey)&&"Cmd"!=c&&(d="Cmd-"+d),!b&&a.shiftKey&&"Shift"!=c&&(d="Shift-"+d),d)};v.fromTextArea=function(a,b){function d(){a.value=i.getValue()}if(b=b?jg(b):{},b.value=a.value,!b.tabindex&&a.tabIndex&&(b.tabindex=a.tabIndex),!b.placeholder&&a.placeholder&&(b.placeholder=a.placeholder),null==b.autofocus){var c=wg();b.autofocus=c==a||null!=a.getAttribute("autofocus")&&c==document.body}if(a.form&&(Jf(a.form,"submit",d),!b.leaveSubmitMethodAlone)){var e=a.form,f=e.submit;try{var g=e.submit=function(){d(),e.submit=f,e.submit(),e.submit=g}}catch(h){}}b.finishInit=function(b){b.save=d,b.getTextArea=function(){return a},b.toTextArea=function(){b.toTextArea=isNaN,d(),a.parentNode.removeChild(b.getWrapperElement()),a.style.display="",a.form&&(Mf(a.form,"submit",d),"function"==typeof a.form.submit&&(a.form.submit=f))}},a.style.display="none";var i=v(function(b){a.parentNode.insertBefore(b,a.nextSibling)},b);return i};var Sd=v.StringStream=function(a,b){this.pos=this.start=0,this.string=a,this.tabSize=b||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};Sd.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.pos<this.string.length?this.string.charAt(this.pos++):void 0},eat:function(a){var b=this.string.charAt(this.pos);if("string"==typeof a)var c=b==a;else var c=b&&(a.test?a.test(b):a(b));return c?(++this.pos,b):void 0},eatWhile:function(a){for(var b=this.pos;this.eat(a););return this.pos>b},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){var b=this.string.indexOf(a,this.pos);return b>-1?(this.pos=b,!0):void 0},backUp:function(a){this.pos-=a},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=_f(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?_f(this.string,this.lineStart,this.tabSize):0)},indentation:function(){return _f(this.string,null,this.tabSize)-(this.lineStart?_f(this.string,this.lineStart,this.tabSize):0)},match:function(a,b,c){if("string"!=typeof a){var f=this.string.slice(this.pos).match(a);return f&&f.index>0?null:(f&&b!==!1&&(this.pos+=f[0].length),f)}var d=function(a){return c?a.toLowerCase():a},e=this.string.substr(this.pos,a.length);return d(e)==d(a)?(b!==!1&&(this.pos+=a.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(a,b){this.lineStart+=a;try{return b()}finally{this.lineStart-=a}}};var Td=0,Ud=v.TextMarker=function(a,b){this.lines=[],this.type=b,this.doc=a,this.id=++Td};Uf(Ud),Ud.prototype.clear=function(){if(!this.explicitlyCleared){var a=this.doc.cm,b=a&&!a.curOp;if(b&&Vb(a),Tf(this,"clear")){var c=this.find();c&&Pf(this,"clear",c.from,c.to)}for(var d=null,e=null,f=0;f<this.lines.length;++f){var g=this.lines[f],h=ae(g.markedSpans,this);a&&!this.collapsed?jc(a,kf(g),"text"):a&&(null!=h.to&&(e=kf(g)),null!=h.from&&(d=kf(g))),g.markedSpans=be(g.markedSpans,h),null==h.from&&this.collapsed&&!we(this.doc,g)&&a&&jf(g,Rb(a.display))}if(a&&this.collapsed&&!a.options.lineWrapping)for(var f=0;f<this.lines.length;++f){var i=se(this.lines[f]),j=G(i);j>a.display.maxLineLength&&(a.display.maxLine=i,a.display.maxLineLength=j,a.display.maxLineChanged=!0)}null!=d&&a&&this.collapsed&&ic(a,d,e+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&ab(a.doc)),a&&Pf(a,"markerCleared",a,this),b&&Xb(a),this.parent&&this.parent.clear()}},Ud.prototype.find=function(a,b){null==a&&"bookmark"==this.type&&(a=1);for(var c,d,e=0;e<this.lines.length;++e){var f=this.lines[e],g=ae(f.markedSpans,this);if(null!=g.from&&(c=oa(b?f:kf(f),g.from),-1==a))return c;if(null!=g.to&&(d=oa(b?f:kf(f),g.to),1==a))return d}return c&&{from:c,to:d}},Ud.prototype.changed=function(){var a=this.find(-1,!0),b=this,c=this.doc.cm;a&&c&&cc(c,function(){var d=a.line,e=kf(a.line),f=wb(c,e);if(f&&(Db(f),c.curOp.selectionChanged=c.curOp.forceUpdate=!0),c.curOp.updateMaxLine=!0,!we(b.doc,d)&&null!=b.height){var g=b.height;b.height=null;var h=Ae(b)-g;h&&jf(d,d.height+h)}})},Ud.prototype.attachLine=function(a){if(!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;b.maybeHiddenMarkers&&-1!=fg(b.maybeHiddenMarkers,this)||(b.maybeUnhiddenMarkers||(b.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(a)},Ud.prototype.detachLine=function(a){if(this.lines.splice(fg(this.lines,a),1),!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;(b.maybeHiddenMarkers||(b.maybeHiddenMarkers=[])).push(this)}};var Td=0,Wd=v.SharedTextMarker=function(a,b){this.markers=a,this.primary=b;for(var c=0;c<a.length;++c)a[c].parent=this};Uf(Wd),Wd.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var a=0;a<this.markers.length;++a)this.markers[a].clear();Pf(this,"clear")}},Wd.prototype.find=function(a,b){return this.primary.find(a,b)};var ye=v.LineWidget=function(a,b,c){if(c)for(var d in c)c.hasOwnProperty(d)&&(this[d]=c[d]);this.doc=a,this.node=b};Uf(ye),ye.prototype.clear=function(){var a=this.doc.cm,b=this.line.widgets,c=this.line,d=kf(c);if(null!=d&&b){for(var e=0;e<b.length;++e)b[e]==this&&b.splice(e--,1);b.length||(c.widgets=null);var f=Ae(this);jf(c,Math.max(0,c.height-f)),a&&cc(a,function(){ze(a,c,-f),jc(a,d,"widget")})}},ye.prototype.changed=function(){var a=this.height,b=this.doc.cm,c=this.line;this.height=null;var d=Ae(this)-a;d&&(jf(c,c.height+d),b&&cc(b,function(){b.curOp.forceUpdate=!0,ze(b,c,d)}))};var Ce=v.Line=function(a,b,c){this.text=a,ke(this,b),this.height=c?c(this):1};Uf(Ce),Ce.prototype.lineNo=function(){return kf(this)};var Ne={},Oe={};Ze.prototype={chunkSize:function(){return this.lines.length},removeInner:function(a,b){for(var c=a,d=a+b;d>c;++c){var e=this.lines[c];this.height-=e.height,Ee(e),Pf(e,"delete")}this.lines.splice(a,b)},collapse:function(a){a.push.apply(a,this.lines)},insertInner:function(a,b,c){this.height+=c,this.lines=this.lines.slice(0,a).concat(b).concat(this.lines.slice(a));for(var d=0;d<b.length;++d)b[d].parent=this},iterN:function(a,b,c){for(var d=a+b;d>a;++a)if(c(this.lines[a]))return!0}},$e.prototype={chunkSize:function(){return this.size},removeInner:function(a,b){this.size-=b;for(var c=0;c<this.children.length;++c){var d=this.children[c],e=d.chunkSize();if(e>a){var f=Math.min(b,e-a),g=d.height;if(d.removeInner(a,f),this.height-=g-d.height,e==f&&(this.children.splice(c--,1),d.parent=null),0==(b-=f))break;a=0}else a-=e}if(this.size-b<25&&(this.children.length>1||!(this.children[0]instanceof Ze))){var h=[];this.collapse(h),this.children=[new Ze(h)],this.children[0].parent=this}},collapse:function(a){for(var b=0;b<this.children.length;++b)this.children[b].collapse(a)},insertInner:function(a,b,c){this.size+=b.length,this.height+=c;for(var d=0;d<this.children.length;++d){var e=this.children[d],f=e.chunkSize();if(f>=a){if(e.insertInner(a,b,c),e.lines&&e.lines.length>50){for(;e.lines.length>50;){var g=e.lines.splice(e.lines.length-25,25),h=new Ze(g);e.height-=h.height,this.children.splice(d+1,0,h),h.parent=this}this.maybeSpill()}break}a-=f}},maybeSpill:function(){if(!(this.children.length<=10)){var a=this;do{var b=a.children.splice(a.children.length-5,5),c=new $e(b);if(a.parent){a.size-=c.size,a.height-=c.height;var e=fg(a.parent.children,a);a.parent.children.splice(e+1,0,c)}else{var d=new $e(a.children);d.parent=a,a.children=[d,c],a=d}c.parent=a.parent}while(a.children.length>10);a.parent.maybeSpill()}},iterN:function(a,b,c){for(var d=0;d<this.children.length;++d){var e=this.children[d],f=e.chunkSize();if(f>a){var g=Math.min(b,f-a);if(e.iterN(a,g,c))return!0;if(0==(b-=g))break;a=0}else a-=f}}};var _e=0,af=v.Doc=function(a,b,c,d){if(!(this instanceof af))return new af(a,b,c,d);null==c&&(c=0),$e.call(this,[new Ze([new Ce("",null)])]),this.first=c,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.frontier=c;var e=oa(c,0);this.sel=Ma(e),this.history=new of(null),this.id=++_e,this.modeOption=b,this.lineSep=d,"string"==typeof a&&(a=this.splitLines(a)),Ye(this,{from:e,to:e,text:a}),Za(this,Ma(e),Xf)};af.prototype=ig($e.prototype,{constructor:af,iter:function(a,b,c){c?this.iterN(a-this.first,b-a,c):this.iterN(this.first,this.first+this.size,a)},insert:function(a,b){for(var c=0,d=0;d<b.length;++d)c+=b[d].height;this.insertInner(a-this.first,b,c)},remove:function(a,b){this.removeInner(a-this.first,b)},getValue:function(a){var b=hf(this,this.first,this.first+this.size);return a===!1?b:b.join(a||this.lineSeparator())},setValue:fc(function(a){var b=oa(this.first,0),c=this.first+this.size-1;hd(this,{from:b,to:oa(c,ff(this,c).text.length),text:this.splitLines(a),origin:"setValue",full:!0},!0),Za(this,Ma(b))}),replaceRange:function(a,b,c,d){b=Oa(this,b),c=c?Oa(this,c):b,nd(this,a,b,c,d)},getRange:function(a,b,c){var d=gf(this,Oa(this,a),Oa(this,b));return c===!1?d:d.join(c||this.lineSeparator())},getLine:function(a){var b=this.getLineHandle(a);return b&&b.text},getLineHandle:function(a){return Qa(this,a)?ff(this,a):void 0},getLineNumber:function(a){return kf(a)},getLineHandleVisualStart:function(a){return"number"==typeof a&&(a=ff(this,a)),se(a)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(a){return Oa(this,a)},getCursor:function(a){var c,b=this.sel.primary();return c=null==a||"head"==a?b.head:"anchor"==a?b.anchor:"end"==a||"to"==a||a===!1?b.to():b.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:fc(function(a,b,c){Wa(this,Oa(this,"number"==typeof a?oa(a,b||0):a),null,c)}),setSelection:fc(function(a,b,c){Wa(this,Oa(this,a),Oa(this,b||a),c)}),extendSelection:fc(function(a,b,c){Ta(this,Oa(this,a),b&&Oa(this,b),c)}),extendSelections:fc(function(a,b){Ua(this,Ra(this,a,b))}),extendSelectionsBy:fc(function(a,b){Ua(this,gg(this.sel.ranges,a),b)}),setSelections:fc(function(a,b,c){if(a.length){for(var d=0,e=[];d<a.length;d++)e[d]=new Ka(Oa(this,a[d].anchor),Oa(this,a[d].head));null==b&&(b=Math.min(a.length-1,this.sel.primIndex)),Za(this,La(e,b),c)}}),addSelection:fc(function(a,b,c){var d=this.sel.ranges.slice(0);d.push(new Ka(Oa(this,a),Oa(this,b||a))),Za(this,La(d,d.length-1),c)}),getSelection:function(a){for(var c,b=this.sel.ranges,d=0;d<b.length;d++){var e=gf(this,b[d].from(),b[d].to());c=c?c.concat(e):e}return a===!1?c:c.join(a||this.lineSeparator())},getSelections:function(a){for(var b=[],c=this.sel.ranges,d=0;d<c.length;d++){var e=gf(this,c[d].from(),c[d].to());a!==!1&&(e=e.join(a||this.lineSeparator())),b[d]=e}return b},replaceSelection:function(a,b,c){for(var d=[],e=0;e<this.sel.ranges.length;e++)d[e]=a;this.replaceSelections(d,b,c||"+input")},replaceSelections:fc(function(a,b,c){for(var d=[],e=this.sel,f=0;f<e.ranges.length;f++){var g=e.ranges[f];d[f]={from:g.from(),to:g.to(),text:this.splitLines(a[f]),origin:c}}for(var h=b&&"end"!=b&&fd(this,d,b),f=d.length-1;f>=0;f--)hd(this,d[f]);h?Ya(this,h):this.cm&&td(this.cm)}),undo:fc(function(){jd(this,"undo")}),redo:fc(function(){jd(this,"redo")}),undoSelection:fc(function(){jd(this,"undo",!0)}),redoSelection:fc(function(){jd(this,"redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,b=0,c=0,d=0;d<a.done.length;d++)a.done[d].ranges||++b;for(var d=0;d<a.undone.length;d++)a.undone[d].ranges||++c;return{undo:b,redo:c}},clearHistory:function(){this.history=new of(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(a){return a&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(a){return this.history.generation==(a||this.cleanGeneration)},getHistory:function(){return{done:zf(this.history.done),undone:zf(this.history.undone)}},setHistory:function(a){var b=this.history=new of(this.history.maxGeneration);b.done=zf(a.done.slice(0),null,!0),b.undone=zf(a.undone.slice(0),null,!0)},addLineClass:fc(function(a,b,c){return wd(this,a,"gutter"==b?"gutter":"class",function(a){var d="text"==b?"textClass":"background"==b?"bgClass":"gutter"==b?"gutterClass":"wrapClass";if(a[d]){if(xg(c).test(a[d]))return!1;a[d]+=" "+c}else a[d]=c;return!0})}),removeLineClass:fc(function(a,b,c){return wd(this,a,"gutter"==b?"gutter":"class",function(a){var d="text"==b?"textClass":"background"==b?"bgClass":"gutter"==b?"gutterClass":"wrapClass",e=a[d];if(!e)return!1;if(null==c)a[d]=null;else{var f=e.match(xg(c));if(!f)return!1;var g=f.index+f[0].length;a[d]=e.slice(0,f.index)+(f.index&&g!=e.length?" ":"")+e.slice(g)||null}return!0})}),addLineWidget:fc(function(a,b,c){return Be(this,a,b,c)}),removeLineWidget:function(a){a.clear()},markText:function(a,b,c){return Vd(this,Oa(this,a),Oa(this,b),c,"range")},setBookmark:function(a,b){var c={replacedWith:b&&(null==b.nodeType?b.widget:b),insertLeft:b&&b.insertLeft,clearWhenEmpty:!1,shared:b&&b.shared,handleMouseEvents:b&&b.handleMouseEvents};return a=Oa(this,a),Vd(this,a,a,c,"bookmark")},findMarksAt:function(a){a=Oa(this,a);var b=[],c=ff(this,a.line).markedSpans;if(c)for(var d=0;d<c.length;++d){var e=c[d];(null==e.from||e.from<=a.ch)&&(null==e.to||e.to>=a.ch)&&b.push(e.marker.parent||e.marker)}return b},findMarks:function(a,b,c){a=Oa(this,a),b=Oa(this,b);var d=[],e=a.line;return this.iter(a.line,b.line+1,function(f){var g=f.markedSpans;if(g)for(var h=0;h<g.length;h++){var i=g[h];e==a.line&&a.ch>i.to||null==i.from&&e!=a.line||e==b.line&&i.from>b.ch||c&&!c(i.marker)||d.push(i.marker.parent||i.marker)}++e}),d},getAllMarks:function(){var a=[];return this.iter(function(b){var c=b.markedSpans;if(c)for(var d=0;d<c.length;++d)null!=c[d].from&&a.push(c[d].marker)}),a},posFromIndex:function(a){var b,c=this.first;return this.iter(function(d){var e=d.text.length+1;return e>a?(b=a,!0):(a-=e,void++c)}),Oa(this,oa(c,b))},indexFromPos:function(a){a=Oa(this,a);var b=a.ch;return a.line<this.first||a.ch<0?0:(this.iter(this.first,a.line,function(a){b+=a.text.length+1}),b)},copy:function(a){var b=new af(hf(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep);return b.scrollTop=this.scrollTop,b.scrollLeft=this.scrollLeft,b.sel=this.sel,b.extend=!1,a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory())),b},linkedDoc:function(a){a||(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from),null!=a.to&&a.to<c&&(c=a.to);var d=new af(hf(this,b,c),a.mode||this.modeOption,b,this.lineSep);return a.sharedHist&&(d.history=this.history),(this.linked||(this.linked=[])).push({doc:d,sharedHist:a.sharedHist}),d.linked=[{doc:this,isParent:!0,sharedHist:a.sharedHist}],Zd(d,Yd(this)),d},unlinkDoc:function(a){if(a instanceof v&&(a=a.doc),this.linked)for(var b=0;b<this.linked.length;++b){var c=this.linked[b];if(c.doc==a){this.linked.splice(b,1),a.unlinkDoc(this),$d(Yd(this));break}}if(a.history==this.history){var d=[a.id];df(a,function(a){d.push(a.id)},!0),a.history=new of(null),a.history.done=zf(this.history.done,d),a.history.undone=zf(this.history.undone,d)}},iterLinkedDocs:function(a){df(this,a)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(a){return this.lineSep?a.split(this.lineSep):Kg(a)},lineSeparator:function(){return this.lineSep||"\n"}}),af.prototype.eachLine=af.prototype.iter;var bf="iter insert remove copy getEditor constructor".split(" ");for(var cf in af.prototype)af.prototype.hasOwnProperty(cf)&&fg(bf,cf)<0&&(v.prototype[cf]=function(a){return function(){return a.apply(this.doc,arguments)}}(af.prototype[cf]));Uf(af);var Df=v.e_preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},Ef=v.e_stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},Gf=v.e_stop=function(a){Df(a),Ef(a)},Jf=v.on=function(a,b,c){if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var d=a._handlers||(a._handlers={}),e=d[b]||(d[b]=[]);e.push(c)}},Kf=[],Mf=v.off=function(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else for(var d=Lf(a,b,!1),e=0;e<d.length;++e)if(d[e]==c){d.splice(e,1);break}},Nf=v.signal=function(a,b){var c=Lf(a,b,!0);if(c.length)for(var d=Array.prototype.slice.call(arguments,2),e=0;e<c.length;++e)c[e].apply(null,d)},Of=null,Vf=30,Wf=v.Pass={toString:function(){return"CodeMirror.Pass"}},Xf={scroll:!1},Yf={origin:"*mouse"},Zf={origin:"+move"};$f.prototype.set=function(a,b){clearTimeout(this.id),this.id=setTimeout(b,a)};var _f=v.countColumn=function(a,b,c,d,e){null==b&&(b=a.search(/[^\s\u00a0]/),-1==b&&(b=a.length));for(var f=d||0,g=e||0;;){var h=a.indexOf(" ",f);if(0>h||h>=b)return g+(b-f);g+=h-f,g+=c-g%c,f=h+1}},ag=v.findColumn=function(a,b,c){for(var d=0,e=0;;){var f=a.indexOf(" ",d);-1==f&&(f=a.length);var g=f-d;if(f==a.length||e+g>=b)return d+Math.min(g,b-e);if(e+=f-d,e+=c-e%c,d=f+1,e>=b)return d}},bg=[""],eg=function(a){a.select()};m?eg=function(a){a.selectionStart=0,a.selectionEnd=a.value.length}:d&&(eg=function(a){try{a.select()}catch(b){}});var sg,lg=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,mg=v.isWordChar=function(a){return/\w/.test(a)||a>"\x80"&&(a.toUpperCase()!=a.toLowerCase()||lg.test(a))},pg=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;sg=document.createRange?function(a,b,c,d){var e=document.createRange();return e.setEnd(d||a,c),e.setStart(a,b),e}:function(a,b,c){var d=document.body.createTextRange();try{d.moveToElementText(a.parentNode)}catch(e){return d}return d.collapse(!0),d.moveEnd("character",c),d.moveStart("character",b),d};var vg=v.contains=function(a,b){if(3==b.nodeType&&(b=b.parentNode),a.contains)return a.contains(b);do if(11==b.nodeType&&(b=b.host),b==a)return!0;while(b=b.parentNode)};d&&11>e&&(wg=function(){try{return document.activeElement}catch(a){return document.body}});var Gg,Ig,yg=v.rmClass=function(a,b){var c=a.className,d=xg(b).exec(c);if(d){var e=c.slice(d.index+d[0].length);a.className=c.slice(0,d.index)+(e?d[1]+e:"")}},zg=v.addClass=function(a,b){var c=a.className;xg(b).test(c)||(a.className+=(c?" ":"")+b)},Cg=!1,Fg=function(){if(d&&9>e)return!1;var a=rg("div");return"draggable"in a||"dragDrop"in a}(),Kg=v.splitLines=3!="\n\nb".split(/\n/).length?function(a){for(var b=0,c=[],d=a.length;d>=b;){var e=a.indexOf("\n",b);-1==e&&(e=a.length);var f=a.slice(b,"\r"==a.charAt(e-1)?e-1:e),g=f.indexOf("\r");-1!=g?(c.push(f.slice(0,g)),b+=g+1):(c.push(f),b=e+1)}return c}:function(a){return a.split(/\r\n?|\n/)},Lg=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(a){try{var b=a.ownerDocument.selection.createRange()}catch(c){}return b&&b.parentElement()==a?0!=b.compareEndPoints("StartToEnd",b):!1},Mg=function(){var a=rg("div");return"oncopy"in a?!0:(a.setAttribute("oncopy","return;"),"function"==typeof a.oncopy)}(),Ng=null,Pg=v.keyNames={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};!function(){for(var a=0;10>a;a++)Pg[a+48]=Pg[a+96]=String(a);for(var a=65;90>=a;a++)Pg[a]=String.fromCharCode(a);for(var a=1;12>=a;a++)Pg[a+111]=Pg[a+63235]="F"+a}();var Zg,ch=function(){function c(c){return 247>=c?a.charAt(c):c>=1424&&1524>=c?"R":c>=1536&&1773>=c?b.charAt(c-1536):c>=1774&&2220>=c?"r":c>=8192&&8203>=c?"w":8204==c?"b":"L"}function j(a,b,c){this.level=a,this.from=b,this.to=c}var a="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",b="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm",d=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,e=/[stwN]/,f=/[LRr]/,g=/[Lb1n]/,h=/[1n]/,i="L";return function(a){if(!d.test(a))return!1;for(var m,b=a.length,k=[],l=0;b>l;++l)k.push(m=c(a.charCodeAt(l)));for(var l=0,n=i;b>l;++l){var m=k[l];"m"==m?k[l]=n:n=m}for(var l=0,o=i;b>l;++l){var m=k[l];"1"==m&&"r"==o?k[l]="n":f.test(m)&&(o=m,"r"==m&&(k[l]="R"))}for(var l=1,n=k[0];b-1>l;++l){var m=k[l];"+"==m&&"1"==n&&"1"==k[l+1]?k[l]="1":","!=m||n!=k[l+1]||"1"!=n&&"n"!=n||(k[l]=n),n=m}for(var l=0;b>l;++l){var m=k[l];if(","==m)k[l]="N";else if("%"==m){for(var p=l+1;b>p&&"%"==k[p];++p);for(var q=l&&"!"==k[l-1]||b>p&&"1"==k[p]?"1":"N",r=l;p>r;++r)k[r]=q;l=p-1}}for(var l=0,o=i;b>l;++l){var m=k[l];"L"==o&&"1"==m?k[l]="L":f.test(m)&&(o=m)}for(var l=0;b>l;++l)if(e.test(k[l])){for(var p=l+1;b>p&&e.test(k[p]);++p);for(var s="L"==(l?k[l-1]:i),t="L"==(b>p?k[p]:i),q=s||t?"L":"R",r=l;p>r;++r)k[r]=q;l=p-1}for(var v,u=[],l=0;b>l;)if(g.test(k[l])){var w=l;for(++l;b>l&&g.test(k[l]);++l);u.push(new j(0,w,l))}else{var x=l,y=u.length;for(++l;b>l&&"L"!=k[l];++l);for(var r=x;l>r;)if(h.test(k[r])){r>x&&u.splice(y,0,new j(1,x,r));var z=r;for(++r;l>r&&h.test(k[r]);++r);u.splice(y,0,new j(2,z,r)),x=r}else++r;l>x&&u.splice(y,0,new j(1,x,l))}return 1==u[0].level&&(v=a.match(/^\s+/))&&(u[0].from=v[0].length,u.unshift(new j(0,0,v[0].length))),1==dg(u).level&&(v=a.match(/\s+$/))&&(dg(u).to-=v[0].length,u.push(new j(0,b-v[0].length,b))),2==u[0].level&&u.unshift(new j(1,u[0].to,u[0].to)),u[0].level!=dg(u).level&&u.push(new j(u[0].level,b,b)),u}}();return v.version="5.7.1",v}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)}(function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function e(a,b){if(!b.startOfLine)return!1;for(;;){if(!a.skipTo("\\")){a.skipToEnd(),b.tokenize=null;break}if(a.next(),a.eol()){b.tokenize=e;break}}return"meta"}function f(a,b){return"variable-3"==b.prevToken?"variable-3":!1}function g(a){return a.eatWhile(/[\w\.']/),"number"}function h(a,b){if(a.backUp(1),a.match(/(R|u8R|uR|UR|LR)/)){var c=a.match(/"([^\s\\()]{0,16})\(/);return c?(b.cpp11RawStringDelim=c[1],b.tokenize=k,k(a,b)):!1}return a.match(/(u8|u|U|L)/)?a.match(/["']/,!1)?"string":!1:(a.next(),!1)}function i(a){var b=/(\w+)::(\w+)$/.exec(a);return b&&b[1]==b[2]}function j(a,b){for(var c;null!=(c=a.next());)if('"'==c&&!a.eat('"')){b.tokenize=null;break}return"string"}function k(a,b){var c=b.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&"),d=a.match(new RegExp(".*?\\)"+c+'"'));return d?b.tokenize=null:a.skipToEnd(),"string"}function l(b,c){function e(a){if(a)for(var b in a)a.hasOwnProperty(b)&&d.push(b)}"string"==typeof b&&(b=[b]);var d=[];e(c.keywords),e(c.types),e(c.builtin),e(c.atoms),d.length&&(c.helperType=b[0],a.registerHelper("hintWords",b[0],d));for(var f=0;f<b.length;++f)a.defineMIME(b[f],c)}function m(a,b){for(var c=!1;!a.eol();){if(!c&&a.match('"""')){b.tokenize=null;break}c="\\"==a.next()&&!c}return"string"}a.defineMode("clike",function(b,c){function u(a,b){var c=a.next();if(m[c]){var d=m[c](a,b);if(d!==!1)return d}if('"'==c||"'"==c)return b.tokenize=v(c),b.tokenize(a,b);if(/[\[\]{}\(\),;\:\.]/.test(c))return s=c,null;if(/\d/.test(c))return a.eatWhile(/[\w\.]/),"number";if("/"==c){if(a.eat("*"))return b.tokenize=w,w(a,b);if(a.eat("/"))return a.skipToEnd(),"comment"}if(r.test(c))return a.eatWhile(r),"operator";if(a.eatWhile(/[\w\$_\xa1-\uffff]/),q)for(;a.match(q);)a.eatWhile(/[\w\$_\xa1-\uffff]/);var e=a.current();return g.propertyIsEnumerable(e)?(j.propertyIsEnumerable(e)&&(s="newstatement"),k.propertyIsEnumerable(e)&&(t=!0),"keyword"):h.propertyIsEnumerable(e)?"variable-3":i.propertyIsEnumerable(e)?(j.propertyIsEnumerable(e)&&(s="newstatement"),"builtin"):l.propertyIsEnumerable(e)?"atom":"variable"}function v(a){return function(b,c){for(var e,d=!1,f=!1;null!=(e=b.next());){if(e==a&&!d){f=!0;break}d=!d&&"\\"==e}return(f||!d&&!n)&&(c.tokenize=null),"string"}}function w(a,b){for(var d,c=!1;d=a.next();){if("/"==d&&c){b.tokenize=null;break}c="*"==d}return"comment"}function x(a,b,c,d,e){this.indented=a,this.column=b,this.type=c,this.align=d,this.prev=e}function y(a){return"statement"==a||"switchstatement"==a||"namespace"==a}function z(a,b,c){var d=a.indented;return a.context&&y(a.context.type)&&!y(c)&&(d=a.context.indented),a.context=new x(d,b,c,null,a.context)}function A(a){var b=a.context.type;return(")"==b||"]"==b||"}"==b)&&(a.indented=a.context.indented),a.context=a.context.prev}function B(a,b){return"variable"==b.prevToken||"variable-3"==b.prevToken?!0:/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(a.string.slice(0,a.start))?!0:void 0}function C(a){for(;;){if(!a||"top"==a.type)return!0;if("}"==a.type&&"namespace"!=a.prev.type)return!1;a=a.prev}}var s,t,d=b.indentUnit,e=c.statementIndentUnit||d,f=c.dontAlignCalls,g=c.keywords||{},h=c.types||{},i=c.builtin||{},j=c.blockKeywords||{},k=c.defKeywords||{},l=c.atoms||{},m=c.hooks||{},n=c.multiLineStrings,o=c.indentStatements!==!1,p=c.indentSwitch!==!1,q=c.namespaceSeparator,r=/[+\-*&%=<>!?|\/]/;return{startState:function(a){return{tokenize:null,context:new x((a||0)-d,0,"top",!1),indented:0,startOfLine:!0,prevToken:null}},token:function(a,b){var d=b.context;if(a.sol()&&(null==d.align&&(d.align=!1),b.indented=a.indentation(),b.startOfLine=!0),a.eatSpace())return null;s=t=null;var e=(b.tokenize||u)(a,b);if("comment"==e||"meta"==e)return e;if(null==d.align&&(d.align=!0),";"==s||":"==s||","==s)for(;y(b.context.type);)A(b);else if("{"==s)z(b,a.column(),"}");else if("["==s)z(b,a.column(),"]");else if("("==s)z(b,a.column(),")");else if("}"==s){for(;y(d.type);)d=A(b);for("}"==d.type&&(d=A(b));y(d.type);)d=A(b)}else if(s==d.type)A(b);else if(o&&(("}"==d.type||"top"==d.type)&&";"!=s||y(d.type)&&"newstatement"==s)){var f="statement";"newstatement"==s&&p&&"switch"==a.current()?f="switchstatement":"keyword"==e&&"namespace"==a.current()&&(f="namespace"),z(b,a.column(),f)}if("variable"==e&&("def"==b.prevToken||c.typeFirstDefinitions&&B(a,b)&&C(b.context)&&a.match(/^\s*\(/,!1))&&(e="def"),m.token){var g=m.token(a,b,e);void 0!==g&&(e=g)}return"def"==e&&c.styleDefs===!1&&(e="variable"),b.startOfLine=!1,b.prevToken=t?"def":e||s,e},indent:function(b,c){if(b.tokenize!=u&&null!=b.tokenize)return a.Pass;var g=b.context,h=c&&c.charAt(0);y(g.type)&&"}"==h&&(g=g.prev);var i=h==g.type,j=g.prev&&"switchstatement"==g.prev.type;return y(g.type)?g.indented+("{"==h?0:e):!g.align||f&&")"==g.type?")"!=g.type||i?g.indented+(i?0:d)+(i||!j||/^(?:case|default)\b/.test(c)?0:d):g.indented+e:g.column+(i?0:1)},electricInput:p?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});var c="auto if break case register continue return default do sizeof static else struct switch extern typedef float union for goto while enum const volatile",d="int long char short double float unsigned signed void size_t ptrdiff_t";l(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:b(c),types:b(d+" bool _Complex _Bool float_t double_t intptr_t intmax_t int8_t int16_t int32_t int64_t uintptr_t uintmax_t uint8_t uint16_t uint32_t uint64_t"),blockKeywords:b("case do else for if switch while struct"),defKeywords:b("struct"),typeFirstDefinitions:!0,atoms:b("null true false"),hooks:{"#":e,"*":f},modeProps:{fold:["brace","include"]}}),l(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:b(c+" asm dynamic_cast namespace reinterpret_cast try explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override"),types:b(d+" bool wchar_t"),blockKeywords:b("catch class do else finally for if struct switch try while"),
21
  defKeywords:b("class namespace struct enum union"),typeFirstDefinitions:!0,atoms:b("true false null"),hooks:{"#":e,"*":f,u:h,U:h,L:h,R:h,0:g,1:g,2:g,3:g,4:g,5:g,6:g,7:g,8:g,9:g,token:function(a,b,c){return"variable"!=c||"("!=a.peek()||";"!=b.prevToken&&null!=b.prevToken&&"}"!=b.prevToken||!i(a.current())?void 0:"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),l("text/x-java",{name:"clike",keywords:b("abstract assert break case catch class const continue default do else enum extends final finally float for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while"),types:b("byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:b("catch class do else finally for if switch try while"),defKeywords:b("class interface package enum"),typeFirstDefinitions:!0,atoms:b("true false null"),hooks:{"@":function(a){return a.eatWhile(/[\w\$_]/),"meta"}},modeProps:{fold:["brace","import"]}}),l("text/x-csharp",{name:"clike",keywords:b("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:b("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:b("catch class do else finally for foreach if struct switch try while"),defKeywords:b("class interface namespace struct var"),typeFirstDefinitions:!0,atoms:b("true false null"),hooks:{"@":function(a,b){return a.eat('"')?(b.tokenize=j,j(a,b)):(a.eatWhile(/[\w\$_]/),"meta")}}}),l("text/x-scala",{name:"clike",keywords:b("abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ : = => <- <: <% >: # @ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble :: #:: "),types:b("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:b("catch class do else finally for forSome if match switch try while"),defKeywords:b("class def object package trait type val var"),atoms:b("true false null"),indentStatements:!1,indentSwitch:!1,hooks:{"@":function(a){return a.eatWhile(/[\w\$_]/),"meta"},'"':function(a,b){return a.match('""')?(b.tokenize=m,b.tokenize(a,b)):!1},"'":function(a){return a.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"}},modeProps:{closeBrackets:{triples:'"'}}}),l("text/x-kotlin",{name:"clike",keywords:b("package as typealias class interface this super val var fun for is in This throw return break continue object if else while do try when !in !is as?file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline"),types:b("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:b("catch class do else finally for if where try while enum"),defKeywords:b("class val var object package interface fun"),atoms:b("true false null this"),modeProps:{closeBrackets:{triples:'"'}}}),l(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:b("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:b("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:b("for while do if else struct"),builtin:b("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:b("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":e},modeProps:{fold:["brace","include"]}}),l("text/x-nesc",{name:"clike",keywords:b(c+"as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:b(d),blockKeywords:b("case do else for if switch while struct"),atoms:b("null true false"),hooks:{"#":e},modeProps:{fold:["brace","include"]}}),l("text/x-objectivec",{name:"clike",keywords:b(c+"inline restrict _Bool _Complex _Imaginery BOOL Class bycopy byref id IMP in inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),types:b(d),atoms:b("YES NO NULL NILL ON OFF true false"),hooks:{"@":function(a){return a.eatWhile(/[\w\$]/),"keyword"},"#":e},modeProps:{fold:"brace"}}),l("text/x-squirrel",{name:"clike",keywords:b("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:b(d),blockKeywords:b("case catch class else for foreach if switch try while"),defKeywords:b("function local class"),typeFirstDefinitions:!0,atoms:b("true false null"),hooks:{"#":e},modeProps:{fold:["brace","include"]}})}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)}(function(a){"use strict";function b(a){for(var b={},c=0;c<a.length;++c)b[a[c]]=!0;return b}function x(a,b){for(var d,c=!1;null!=(d=a.next());){if(c&&"/"==d){b.tokenize=null;break}c="*"==d}return["comment","comment"]}a.defineMode("css",function(b,c){function u(a,b){return s=b,a}function v(a,b){var c=a.next();if(f[c]){var d=f[c](a,b);if(d!==!1)return d}return"@"==c?(a.eatWhile(/[\w\\\-]/),u("def",a.current())):"="==c||("~"==c||"|"==c)&&a.eat("=")?u(null,"compare"):'"'==c||"'"==c?(b.tokenize=w(c),b.tokenize(a,b)):"#"==c?(a.eatWhile(/[\w\\\-]/),u("atom","hash")):"!"==c?(a.match(/^\s*\w*/),u("keyword","important")):/\d/.test(c)||"."==c&&a.eat(/\d/)?(a.eatWhile(/[\w.%]/),u("number","unit")):"-"!==c?/[,+>*\/]/.test(c)?u(null,"select-op"):"."==c&&a.match(/^-?[_a-z][_a-z0-9-]*/i)?u("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(c)?u(null,c):"u"==c&&a.match(/rl(-prefix)?\(/)||"d"==c&&a.match("omain(")||"r"==c&&a.match("egexp(")?(a.backUp(1),b.tokenize=x,u("property","word")):/[\w\\\-]/.test(c)?(a.eatWhile(/[\w\\\-]/),u("property","word")):u(null,null):/[\d.]/.test(a.peek())?(a.eatWhile(/[\w.%]/),u("number","unit")):a.match(/^-[\w\\\-]+/)?(a.eatWhile(/[\w\\\-]/),a.match(/^\s*:/,!1)?u("variable-2","variable-definition"):u("variable-2","variable")):a.match(/^\w+-/)?u("meta","meta"):void 0}function w(a){return function(b,c){for(var e,d=!1;null!=(e=b.next());){if(e==a&&!d){")"==a&&b.backUp(1);break}d=!d&&"\\"==e}return(e==a||!d&&")"!=a)&&(c.tokenize=null),u("string","string")}}function x(a,b){return a.next(),a.match(/\s*[\"\')]/,!1)?b.tokenize=null:b.tokenize=w(")"),u(null,"(")}function y(a,b,c){this.type=a,this.indent=b,this.prev=c}function z(a,b,c,d){return a.context=new y(c,b.indentation()+(d===!1?0:e),a.context),c}function A(a){return a.context.prev&&(a.context=a.context.prev),a.context.type}function B(a,b,c){return E[c.context.type](a,b,c)}function C(a,b,c,d){for(var e=d||1;e>0;e--)c.context=c.context.prev;return B(a,b,c)}function D(a){var b=a.current().toLowerCase();t=p.hasOwnProperty(b)?"atom":o.hasOwnProperty(b)?"keyword":"variable"}var d=c;c.propertyKeywords||(c=a.resolveMode("text/css")),c.inline=d.inline;var s,t,e=b.indentUnit,f=c.tokenHooks,g=c.documentTypes||{},h=c.mediaTypes||{},i=c.mediaFeatures||{},j=c.mediaValueKeywords||{},k=c.propertyKeywords||{},l=c.nonStandardPropertyKeywords||{},m=c.fontProperties||{},n=c.counterDescriptors||{},o=c.colorKeywords||{},p=c.valueKeywords||{},q=c.allowNested,r=c.supportsAtComponent===!0,E={};return E.top=function(a,b,c){if("{"==a)return z(c,b,"block");if("}"==a&&c.context.prev)return A(c);if(r&&/@component/.test(a))return z(c,b,"atComponentBlock");if(/^@(-moz-)?document$/.test(a))return z(c,b,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(a))return z(c,b,"atBlock");if(/^@(font-face|counter-style)/.test(a))return c.stateArg=a,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(a))return"keyframes";if(a&&"@"==a.charAt(0))return z(c,b,"at");if("hash"==a)t="builtin";else if("word"==a)t="tag";else{if("variable-definition"==a)return"maybeprop";if("interpolation"==a)return z(c,b,"interpolation");if(":"==a)return"pseudo";if(q&&"("==a)return z(c,b,"parens")}return c.context.type},E.block=function(a,b,c){if("word"==a){var d=b.current().toLowerCase();return k.hasOwnProperty(d)?(t="property","maybeprop"):l.hasOwnProperty(d)?(t="string-2","maybeprop"):q?(t=b.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(t+=" error","maybeprop")}return"meta"==a?"block":q||"hash"!=a&&"qualifier"!=a?E.top(a,b,c):(t="error","block")},E.maybeprop=function(a,b,c){return":"==a?z(c,b,"prop"):B(a,b,c)},E.prop=function(a,b,c){if(";"==a)return A(c);if("{"==a&&q)return z(c,b,"propBlock");if("}"==a||"{"==a)return C(a,b,c);if("("==a)return z(c,b,"parens");if("hash"!=a||/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(b.current())){if("word"==a)D(b);else if("interpolation"==a)return z(c,b,"interpolation")}else t+=" error";return"prop"},E.propBlock=function(a,b,c){return"}"==a?A(c):"word"==a?(t="property","maybeprop"):c.context.type},E.parens=function(a,b,c){return"{"==a||"}"==a?C(a,b,c):")"==a?A(c):"("==a?z(c,b,"parens"):"interpolation"==a?z(c,b,"interpolation"):("word"==a&&D(b),"parens")},E.pseudo=function(a,b,c){return"word"==a?(t="variable-3",c.context.type):B(a,b,c)},E.documentTypes=function(a,b,c){return"word"==a&&g.hasOwnProperty(b.current())?(t="tag",c.context.type):E.atBlock(a,b,c)},E.atBlock=function(a,b,c){if("("==a)return z(c,b,"atBlock_parens");if("}"==a||";"==a)return C(a,b,c);if("{"==a)return A(c)&&z(c,b,q?"block":"top");if("word"==a){var d=b.current().toLowerCase();t="only"==d||"not"==d||"and"==d||"or"==d?"keyword":h.hasOwnProperty(d)?"attribute":i.hasOwnProperty(d)?"property":j.hasOwnProperty(d)?"keyword":k.hasOwnProperty(d)?"property":l.hasOwnProperty(d)?"string-2":p.hasOwnProperty(d)?"atom":o.hasOwnProperty(d)?"keyword":"error"}return c.context.type},E.atComponentBlock=function(a,b,c){return"}"==a?C(a,b,c):"{"==a?A(c)&&z(c,b,q?"block":"top",!1):("word"==a&&(t="error"),c.context.type)},E.atBlock_parens=function(a,b,c){return")"==a?A(c):"{"==a||"}"==a?C(a,b,c,2):E.atBlock(a,b,c)},E.restricted_atBlock_before=function(a,b,c){return"{"==a?z(c,b,"restricted_atBlock"):"word"==a&&"@counter-style"==c.stateArg?(t="variable","restricted_atBlock_before"):B(a,b,c)},E.restricted_atBlock=function(a,b,c){return"}"==a?(c.stateArg=null,A(c)):"word"==a?(t="@font-face"==c.stateArg&&!m.hasOwnProperty(b.current().toLowerCase())||"@counter-style"==c.stateArg&&!n.hasOwnProperty(b.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},E.keyframes=function(a,b,c){return"word"==a?(t="variable","keyframes"):"{"==a?z(c,b,"top"):B(a,b,c)},E.at=function(a,b,c){return";"==a?A(c):"{"==a||"}"==a?C(a,b,c):("word"==a?t="tag":"hash"==a&&(t="builtin"),"at")},E.interpolation=function(a,b,c){return"}"==a?A(c):"{"==a||";"==a?C(a,b,c):("word"==a?t="variable":"variable"!=a&&"("!=a&&")"!=a&&(t="error"),"interpolation")},{startState:function(a){return{tokenize:null,state:c.inline?"block":"top",stateArg:null,context:new y(c.inline?"block":"top",a||0,null)}},token:function(a,b){if(!b.tokenize&&a.eatSpace())return null;var c=(b.tokenize||v)(a,b);return c&&"object"==typeof c&&(s=c[1],c=c[0]),t=c,b.state=E[b.state](s,a,b),t},indent:function(a,b){var c=a.context,d=b&&b.charAt(0),f=c.indent;return"prop"!=c.type||"}"!=d&&")"!=d||(c=c.prev),c.prev&&("}"!=d||"block"!=c.type&&"top"!=c.type&&"interpolation"!=c.type&&"restricted_atBlock"!=c.type?(")"==d&&("parens"==c.type||"atBlock_parens"==c.type)||"{"==d&&("at"==c.type||"atBlock"==c.type))&&(f=Math.max(0,c.indent-e),c=c.prev):(c=c.prev,f=c.indent)),f},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace"}});var c=["domain","regexp","url","url-prefix"],d=b(c),e=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],f=b(e),g=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],h=b(g),i=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],j=b(i),k=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],l=b(k),m=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],n=b(m),o=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],p=b(o),q=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],r=b(q),s=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],t=b(s),u=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","column-reverse","compact","condensed","contain","content","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],v=b(u),w=c.concat(e).concat(g).concat(i).concat(k).concat(m).concat(s).concat(u);a.registerHelper("hintWords","css",w),a.defineMIME("text/css",{documentTypes:d,mediaTypes:f,mediaFeatures:h,mediaValueKeywords:j,propertyKeywords:l,nonStandardPropertyKeywords:n,fontProperties:p,counterDescriptors:r,colorKeywords:t,valueKeywords:v,tokenHooks:{"/":function(a,b){return a.eat("*")?(b.tokenize=x,x(a,b)):!1}},name:"css"}),a.defineMIME("text/x-scss",{mediaTypes:f,mediaFeatures:h,mediaValueKeywords:j,propertyKeywords:l,nonStandardPropertyKeywords:n,colorKeywords:t,valueKeywords:v,fontProperties:p,allowNested:!0,tokenHooks:{"/":function(a,b){return a.eat("/")?(a.skipToEnd(),["comment","comment"]):a.eat("*")?(b.tokenize=x,x(a,b)):["operator","operator"]},":":function(a){return a.match(/\s*\{/)?[null,"{"]:!1},$:function(a){return a.match(/^[\w-]+/),a.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(a){return a.eat("{")?[null,"interpolation"]:!1}},name:"css",helperType:"scss"}),a.defineMIME("text/x-less",{mediaTypes:f,mediaFeatures:h,mediaValueKeywords:j,propertyKeywords:l,nonStandardPropertyKeywords:n,colorKeywords:t,valueKeywords:v,fontProperties:p,allowNested:!0,tokenHooks:{"/":function(a,b){return a.eat("/")?(a.skipToEnd(),
22
  ["comment","comment"]):a.eat("*")?(b.tokenize=x,x(a,b)):["operator","operator"]},"@":function(a){return a.eat("{")?[null,"interpolation"]:a.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)?!1:(a.eatWhile(/[\w\\\-]/),a.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),a.defineMIME("text/x-gss",{documentTypes:d,mediaTypes:f,mediaFeatures:h,propertyKeywords:l,nonStandardPropertyKeywords:n,fontProperties:p,counterDescriptors:r,colorKeywords:t,valueKeywords:v,supportsAtComponent:!0,tokenHooks:{"/":function(a,b){return a.eat("*")?(b.tokenize=x,x(a,b)):!1}},name:"css",helperType:"gss"})}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],a):a(CodeMirror)}(function(a){"use strict";function c(a,b,c){var d=a.current(),e=d.search(b);return e>-1?a.backUp(d.length-e):d.match(/<\/?$/)&&(a.backUp(d.length),a.match(b,!1)||a.match(d)),c}function e(a){var b=d[a];return b?b:d[a]=new RegExp("\\s+"+a+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")}function f(a,b){for(var d,c=a.pos;c>=0&&"<"!==a.string.charAt(c);)c--;return 0>c?c:(d=a.string.slice(c,a.pos).match(e(b)))?d[2]:""}function g(a,b){return new RegExp((b?"^":"")+"</s*"+a+"s*>","i")}function h(a,b){for(var c in a)for(var d=b[c]||(b[c]=[]),e=a[c],f=e.length-1;f>=0;f--)d.unshift(e[f])}function i(a,b){for(var c=0;c<a.length;c++){var d=a[c];if(!d[0]||d[1].test(f(b,d[0])))return d[2]}}var b={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},d={};a.defineMode("htmlmixed",function(d,e){function n(b,e){var m,h=e.htmlState.tagName,k=h&&j[h.toLowerCase()],l=f.token(b,e.htmlState);if(k&&/\btag\b/.test(l)&&">"===b.current()&&(m=i(k,b))){var o=a.getMode(d,m),p=g(h,!0),q=g(h,!1);e.token=function(a,b){return a.match(p,!1)?(b.token=n,b.localState=b.localMode=null,null):c(a,q,b.localMode.token(a,b.localState))},e.localMode=o,e.localState=a.startState(o,f.indent(e.htmlState,""))}return l}var f=a.getMode(d,{name:"xml",htmlMode:!0,multilineTagIndentFactor:e.multilineTagIndentFactor,multilineTagIndentPastTag:e.multilineTagIndentPastTag}),j={},k=e&&e.tags,l=e&&e.scriptTypes;if(h(b,j),k&&h(k,j),l)for(var m=l.length-1;m>=0;m--)j.script.unshift(["type",l[m].matches,l[m].mode]);return{startState:function(){var a=f.startState();return{token:n,localMode:null,localState:null,htmlState:a}},copyState:function(b){var c;return b.localState&&(c=a.copyState(b.localMode,b.localState)),{token:b.token,localMode:b.localMode,localState:c,htmlState:a.copyState(f,b.htmlState)}},token:function(a,b){return b.token(a,b)},indent:function(b,c){return!b.localMode||/^\s*<\//.test(c)?f.indent(b.htmlState,c):b.localMode.indent?b.localMode.indent(b.localState,c):a.Pass},innerMode:function(a){return{state:a.localState||a.htmlState,mode:a.localMode||f}}}},"xml","javascript","css"),a.defineMIME("text/html","htmlmixed")}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)}(function(a){"use strict";a.defineMode("javascript",function(b,c){function m(a){for(var c,b=!1,d=!1;null!=(c=a.next());){if(!b){if("/"==c&&!d)return;"["==c?d=!0:d&&"]"==c&&(d=!1)}b=!b&&"\\"==c}}function p(a,b,c){return n=a,o=c,b}function q(a,b){var c=a.next();if('"'==c||"'"==c)return b.tokenize=r(c),b.tokenize(a,b);if("."==c&&a.match(/^\d+(?:[eE][+\-]?\d+)?/))return p("number","number");if("."==c&&a.match(".."))return p("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(c))return p(c);if("="==c&&a.eat(">"))return p("=>","operator");if("0"==c&&a.eat(/x/i))return a.eatWhile(/[\da-f]/i),p("number","number");if("0"==c&&a.eat(/o/i))return a.eatWhile(/[0-7]/i),p("number","number");if("0"==c&&a.eat(/b/i))return a.eatWhile(/[01]/i),p("number","number");if(/\d/.test(c))return a.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),p("number","number");if("/"==c)return a.eat("*")?(b.tokenize=s,s(a,b)):a.eat("/")?(a.skipToEnd(),p("comment","comment")):"operator"==b.lastType||"keyword c"==b.lastType||"sof"==b.lastType||/^[\[{}\(,;:]$/.test(b.lastType)?(m(a),a.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),p("regexp","string-2")):(a.eatWhile(k),p("operator","operator",a.current()));if("`"==c)return b.tokenize=t,t(a,b);if("#"==c)return a.skipToEnd(),p("error","error");if(k.test(c))return a.eatWhile(k),p("operator","operator",a.current());if(i.test(c)){a.eatWhile(i);var d=a.current(),e=j.propertyIsEnumerable(d)&&j[d];return e&&"."!=b.lastType?p(e.type,e.style,d):p("variable","variable",d)}}function r(a){return function(b,c){var e,d=!1;if(f&&"@"==b.peek()&&b.match(l))return c.tokenize=q,p("jsonld-keyword","meta");for(;null!=(e=b.next())&&(e!=a||d);)d=!d&&"\\"==e;return d||(c.tokenize=q),p("string","string")}}function s(a,b){for(var d,c=!1;d=a.next();){if("/"==d&&c){b.tokenize=q;break}c="*"==d}return p("comment","comment")}function t(a,b){for(var d,c=!1;null!=(d=a.next());){if(!c&&("`"==d||"$"==d&&a.eat("{"))){b.tokenize=q;break}c=!c&&"\\"==d}return p("quasi","string-2",a.current())}function v(a,b){b.fatArrowAt&&(b.fatArrowAt=null);var c=a.string.indexOf("=>",a.start);if(!(0>c)){for(var d=0,e=!1,f=c-1;f>=0;--f){var g=a.string.charAt(f),h=u.indexOf(g);if(h>=0&&3>h){if(!d){++f;break}if(0==--d)break}else if(h>=3&&6>h)++d;else if(i.test(g))e=!0;else{if(/["'\/]/.test(g))return;if(e&&!d){++f;break}}}e&&!d&&(b.fatArrowAt=f)}}function x(a,b,c,d,e,f){this.indented=a,this.column=b,this.type=c,this.prev=e,this.info=f,null!=d&&(this.align=d)}function y(a,b){for(var c=a.localVars;c;c=c.next)if(c.name==b)return!0;for(var d=a.context;d;d=d.prev)for(var c=d.vars;c;c=c.next)if(c.name==b)return!0}function z(a,b,c,d,e){var f=a.cc;for(A.state=a,A.stream=e,A.marked=null,A.cc=f,A.style=b,a.lexical.hasOwnProperty("align")||(a.lexical.align=!0);;){var h=f.length?f.pop():g?L:K;if(h(c,d)){for(;f.length&&f[f.length-1].lex;)f.pop()();return A.marked?A.marked:"variable"==c&&y(a,d)?"variable-2":b}}}function B(){for(var a=arguments.length-1;a>=0;a--)A.cc.push(arguments[a])}function C(){return B.apply(null,arguments),!0}function D(a){function b(b){for(var c=b;c;c=c.next)if(c.name==a)return!0;return!1}var d=A.state;if(d.context){if(A.marked="def",b(d.localVars))return;d.localVars={name:a,next:d.localVars}}else{if(b(d.globalVars))return;c.globalVars&&(d.globalVars={name:a,next:d.globalVars})}}function F(){A.state.context={prev:A.state.context,vars:A.state.localVars},A.state.localVars=E}function G(){A.state.localVars=A.state.context.vars,A.state.context=A.state.context.prev}function H(a,b){var c=function(){var c=A.state,d=c.indented;if("stat"==c.lexical.type)d=c.lexical.indented;else for(var e=c.lexical;e&&")"==e.type&&e.align;e=e.prev)d=e.indented;c.lexical=new x(d,A.stream.column(),a,null,c.lexical,b)};return c.lex=!0,c}function I(){var a=A.state;a.lexical.prev&&(")"==a.lexical.type&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}function J(a){function b(c){return c==a?C():";"==a?B():C(b)}return b}function K(a,b){return"var"==a?C(H("vardef",b.length),fa,J(";"),I):"keyword a"==a?C(H("form"),L,K,I):"keyword b"==a?C(H("form"),K,I):"{"==a?C(H("}"),ba,I):";"==a?C():"if"==a?("else"==A.state.lexical.info&&A.state.cc[A.state.cc.length-1]==I&&A.state.cc.pop()(),C(H("form"),L,K,I,ka)):"function"==a?C(qa):"for"==a?C(H("form"),la,K,I):"variable"==a?C(H("stat"),W):"switch"==a?C(H("form"),L,H("}","switch"),J("{"),ba,I,I):"case"==a?C(L,J(":")):"default"==a?C(J(":")):"catch"==a?C(H("form"),F,J("("),ra,J(")"),K,I,G):"class"==a?C(H("form"),sa,I):"export"==a?C(H("stat"),wa,I):"import"==a?C(H("stat"),xa,I):B(H("stat"),L,J(";"),I)}function L(a){return N(a,!1)}function M(a){return N(a,!0)}function N(a,b){if(A.state.fatArrowAt==A.stream.start){var c=b?V:U;if("("==a)return C(F,H(")"),_(ga,")"),I,J("=>"),c,G);if("variable"==a)return B(F,ga,J("=>"),c,G)}var d=b?R:Q;return w.hasOwnProperty(a)?C(d):"async"==a?C(L):"function"==a?C(qa,d):"keyword c"==a?C(b?P:O):"("==a?C(H(")"),O,Da,J(")"),I,d):"operator"==a||"spread"==a?C(b?M:L):"["==a?C(H("]"),Ba,I,d):"{"==a?aa(Y,"}",null,d):"quasi"==a?B(S,d):C()}function O(a){return a.match(/[;\}\)\],]/)?B():B(L)}function P(a){return a.match(/[;\}\)\],]/)?B():B(M)}function Q(a,b){return","==a?C(L):R(a,b,!1)}function R(a,b,c){var d=0==c?Q:R,e=0==c?L:M;return"=>"==a?C(F,c?V:U,G):"operator"==a?/\+\+|--/.test(b)?C(d):"?"==b?C(L,J(":"),e):C(e):"quasi"==a?B(S,d):";"!=a?"("==a?aa(M,")","call",d):"."==a?C(X,d):"["==a?C(H("]"),O,J("]"),I,d):void 0:void 0}function S(a,b){return"quasi"!=a?B():"${"!=b.slice(b.length-2)?C(S):C(L,T)}function T(a){return"}"==a?(A.marked="string-2",A.state.tokenize=t,C(S)):void 0}function U(a){return v(A.stream,A.state),B("{"==a?K:L)}function V(a){return v(A.stream,A.state),B("{"==a?K:M)}function W(a){return":"==a?C(I,K):B(Q,J(";"),I)}function X(a){return"variable"==a?(A.marked="property",C()):void 0}function Y(a,b){return"async"==a?C(Y):"variable"==a||"keyword"==A.style?(A.marked="property",C("get"==b||"set"==b?Z:$)):"number"==a||"string"==a?(A.marked=f?"property":A.style+" property",C($)):"jsonld-keyword"==a?C($):"["==a?C(L,J("]"),$):void 0}function Z(a){return"variable"!=a?B($):(A.marked="property",C(qa))}function $(a){return":"==a?C(M):"("==a?B(qa):void 0}function _(a,b){function c(d){if(","==d){var e=A.state.lexical;return"call"==e.info&&(e.pos=(e.pos||0)+1),C(a,c)}return d==b?C():C(J(b))}return function(d){return d==b?C():B(a,c)}}function aa(a,b,c){for(var d=3;d<arguments.length;d++)A.cc.push(arguments[d]);return C(H(b,c),_(a,b),I)}function ba(a){return"}"==a?C():B(K,ba)}function ca(a){return h&&":"==a?C(ea):void 0}function da(a,b){return"="==b?C(M):void 0}function ea(a){return"variable"==a?(A.marked="variable-3",C()):void 0}function fa(){return B(ga,ca,ia,ja)}function ga(a,b){return"variable"==a?(D(b),C()):"spread"==a?C(ga):"["==a?aa(ga,"]"):"{"==a?aa(ha,"}"):void 0}function ha(a,b){return"variable"!=a||A.stream.match(/^\s*:/,!1)?("variable"==a&&(A.marked="property"),"spread"==a?C(ga):C(J(":"),ga,ia)):(D(b),C(ia))}function ia(a,b){return"="==b?C(M):void 0}function ja(a){return","==a?C(fa):void 0}function ka(a,b){return"keyword b"==a&&"else"==b?C(H("form","else"),K,I):void 0}function la(a){return"("==a?C(H(")"),ma,J(")"),I):void 0}function ma(a){return"var"==a?C(fa,J(";"),oa):";"==a?C(oa):"variable"==a?C(na):B(L,J(";"),oa)}function na(a,b){return"in"==b||"of"==b?(A.marked="keyword",C(L)):C(Q,oa)}function oa(a,b){return";"==a?C(pa):"in"==b||"of"==b?(A.marked="keyword",C(L)):B(L,J(";"),pa)}function pa(a){")"!=a&&C(L)}function qa(a,b){return"*"==b?(A.marked="keyword",C(qa)):"variable"==a?(D(b),C(qa)):"("==a?C(F,H(")"),_(ra,")"),I,K,G):void 0}function ra(a){return"spread"==a?C(ra):B(ga,ca,da)}function sa(a,b){return"variable"==a?(D(b),C(ta)):void 0}function ta(a,b){return"extends"==b?C(L,ta):"{"==a?C(H("}"),ua,I):void 0}function ua(a,b){return"variable"==a||"keyword"==A.style?"static"==b?(A.marked="keyword",C(ua)):(A.marked="property","get"==b||"set"==b?C(va,qa,ua):C(qa,ua)):"*"==b?(A.marked="keyword",C(ua)):";"==a?C(ua):"}"==a?C():void 0}function va(a){return"variable"!=a?B():(A.marked="property",C())}function wa(a,b){return"*"==b?(A.marked="keyword",C(Aa,J(";"))):"default"==b?(A.marked="keyword",C(L,J(";"))):B(K)}function xa(a){return"string"==a?C():B(ya,Aa)}function ya(a,b){return"{"==a?aa(ya,"}"):("variable"==a&&D(b),"*"==b&&(A.marked="keyword"),C(za))}function za(a,b){return"as"==b?(A.marked="keyword",C(ya)):void 0}function Aa(a,b){return"from"==b?(A.marked="keyword",C(L)):void 0}function Ba(a){return"]"==a?C():B(M,Ca)}function Ca(a){return"for"==a?B(Da,J("]")):","==a?C(_(P,"]")):B(_(M,"]"))}function Da(a){return"for"==a?C(la,Da):"if"==a?C(L,Da):void 0}function Ea(a,b){return"operator"==a.lastType||","==a.lastType||k.test(b.charAt(0))||/[,.]/.test(b.charAt(0))}var n,o,d=b.indentUnit,e=c.statementIndent,f=c.jsonld,g=c.json||f,h=c.typescript,i=c.wordCharacters||/[\w$\xa1-\uffff]/,j=function(){function a(a){return{type:a,style:"keyword"}}var b=a("keyword a"),c=a("keyword b"),d=a("keyword c"),e=a("operator"),f={type:"atom",style:"atom"},g={"if":a("if"),"while":b,"with":b,"else":c,"do":c,"try":c,"finally":c,"return":d,"break":d,"continue":d,"new":d,"delete":d,"throw":d,"debugger":d,"var":a("var"),"const":a("var"),let:a("var"),async:a("async"),"function":a("function"),"catch":a("catch"),"for":a("for"),"switch":a("switch"),"case":a("case"),"default":a("default"),"in":e,"typeof":e,"instanceof":e,"true":f,"false":f,"null":f,undefined:f,NaN:f,Infinity:f,"this":a("this"),"class":a("class"),"super":a("atom"),await:d,"yield":d,"export":a("export"),"import":a("import"),"extends":d};if(h){var i={type:"variable",style:"variable-3"},j={"interface":a("interface"),"extends":a("extends"),constructor:a("constructor"),"public":a("public"),"private":a("private"),"protected":a("protected"),"static":a("static"),string:i,number:i,bool:i,any:i};for(var k in j)g[k]=j[k]}return g}(),k=/[+\-*&%=<>!?|~^]/,l=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,u="([{}])",w={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,"this":!0,"jsonld-keyword":!0},A={state:null,column:null,marked:null,cc:null},E={name:"this",next:{name:"arguments"}};return I.lex=!0,{startState:function(a){var b={tokenize:q,lastType:"sof",cc:[],lexical:new x((a||0)-d,0,"block",!1),localVars:c.localVars,context:c.localVars&&{vars:c.localVars},indented:0};return c.globalVars&&"object"==typeof c.globalVars&&(b.globalVars=c.globalVars),b},token:function(a,b){if(a.sol()&&(b.lexical.hasOwnProperty("align")||(b.lexical.align=!1),b.indented=a.indentation(),v(a,b)),b.tokenize!=s&&a.eatSpace())return null;var c=b.tokenize(a,b);return"comment"==n?c:(b.lastType="operator"!=n||"++"!=o&&"--"!=o?n:"incdec",z(b,c,n,o,a))},indent:function(b,f){if(b.tokenize==s)return a.Pass;if(b.tokenize!=q)return 0;var g=f&&f.charAt(0),h=b.lexical;if(!/^\s*else\b/.test(f))for(var i=b.cc.length-1;i>=0;--i){var j=b.cc[i];if(j==I)h=h.prev;else if(j!=ka)break}"stat"==h.type&&"}"==g&&(h=h.prev),e&&")"==h.type&&"stat"==h.prev.type&&(h=h.prev);var k=h.type,l=g==k;return"vardef"==k?h.indented+("operator"==b.lastType||","==b.lastType?h.info+1:0):"form"==k&&"{"==g?h.indented:"form"==k?h.indented+d:"stat"==k?h.indented+(Ea(b,f)?e||d:0):"switch"!=h.info||l||0==c.doubleIndentSwitch?h.align?h.column+(l?0:1):h.indented+(l?0:d):h.indented+(/^(?:case|default)\b/.test(f)?d:2*d)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:g?null:"/*",blockCommentEnd:g?null:"*/",lineComment:g?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:g?"json":"javascript",jsonldMode:f,jsonMode:g}}),a.registerHelper("wordChars","javascript",/[\w$]/),a.defineMIME("text/javascript","javascript"),a.defineMIME("text/ecmascript","javascript"),a.defineMIME("application/javascript","javascript"),a.defineMIME("application/x-javascript","javascript"),a.defineMIME("application/ecmascript","javascript"),a.defineMIME("application/json",{name:"javascript",json:!0}),a.defineMIME("application/x-json",{name:"javascript",json:!0}),a.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),a.defineMIME("text/typescript",{name:"javascript",typescript:!0}),a.defineMIME("application/typescript",{name:"javascript",typescript:!0})}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],a):a(CodeMirror)}(function(a){"use strict";function b(a){for(var b={},c=a.split(" "),d=0;d<c.length;++d)b[c[d]]=!0;return b}function c(a,b,e){return 0==a.length?d(b):function(f,g){for(var h=a[0],i=0;i<h.length;i++)if(f.match(h[i][0]))return g.tokenize=c(a.slice(1),b),h[i][1];return g.tokenize=d(b,e),"string"}}function d(a,b){return function(c,d){return e(c,d,a,b)}}function e(a,b,d,e){if(e!==!1&&a.match("${",!1)||a.match("{$",!1))return b.tokenize=null,"string";if(e!==!1&&a.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/))return a.match("[",!1)&&(b.tokenize=c([[["[",null]],[[/\d[\w\.]*/,"number"],[/\$[a-zA-Z_][a-zA-Z0-9_]*/,"variable-2"],[/[\w\$]+/,"variable"]],[["]",null]]],d,e)),a.match(/\-\>\w/,!1)&&(b.tokenize=c([[["->",null]],[[/[\w]+/,"variable"]]],d,e)),"variable-2";for(var f=!1;!a.eol()&&(f||e===!1||!a.match("{$",!1)&&!a.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!f&&a.match(d)){b.tokenize=null,b.tokStack.pop(),b.tokStack.pop();break}f="\\"==a.next()&&!f}return"string"}var f="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally",g="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",h="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";a.registerHelper("hintWords","php",[f,g,h].join(" ").split(" ")),a.registerHelper("wordChars","php",/[\w$]/);var i={name:"clike",helperType:"php",keywords:b(f),blockKeywords:b("catch do else elseif for foreach if switch try while finally"),defKeywords:b("class function interface namespace trait"),atoms:b(g),builtin:b(h),multiLineStrings:!0,hooks:{$:function(a){return a.eatWhile(/[\w\$_]/),"variable-2"},"<":function(a,b){var c;if(c=a.match(/<<\s*/)){var e=a.eat(/['"]/);a.eatWhile(/[\w\.]/);var f=a.current().slice(c[0].length+(e?2:1));if(e&&a.eat(e),f)return(b.tokStack||(b.tokStack=[])).push(f,0),b.tokenize=d(f,"'"!=e),"string"}return!1},"#":function(a){for(;!a.eol()&&!a.match("?>",!1);)a.next();return"comment"},"/":function(a){if(a.eat("/")){for(;!a.eol()&&!a.match("?>",!1);)a.next();return"comment"}return!1},'"':function(a,b){return(b.tokStack||(b.tokStack=[])).push('"',0),b.tokenize=d('"'),"string"},"{":function(a,b){return b.tokStack&&b.tokStack.length&&b.tokStack[b.tokStack.length-1]++,!1},"}":function(a,b){return b.tokStack&&b.tokStack.length>0&&!--b.tokStack[b.tokStack.length-1]&&(b.tokenize=d(b.tokStack[b.tokStack.length-2])),!1}}};a.defineMode("php",function(b,c){function f(b,c){var f=c.curMode==e;if(b.sol()&&c.pending&&'"'!=c.pending&&"'"!=c.pending&&(c.pending=null),f)return f&&null==c.php.tokenize&&b.match("?>")?(c.curMode=d,c.curState=c.html,c.php.context.prev||(c.php=null),"meta"):e.token(b,c.curState);if(b.match(/^<\?\w*/))return c.curMode=e,c.php||(c.php=a.startState(e,d.indent(c.html,""))),c.curState=c.php,"meta";if('"'==c.pending||"'"==c.pending){for(;!b.eol()&&b.next()!=c.pending;);var g="string"}else if(c.pending&&b.pos<c.pending.end){b.pos=c.pending.end;var g=c.pending.style}else var g=d.token(b,c.curState);c.pending&&(c.pending=null);var j,h=b.current(),i=h.search(/<\?/);return-1!=i&&("string"==g&&(j=h.match(/[\'\"]$/))&&!/\?>/.test(h)?c.pending=j[0]:c.pending={end:b.pos,style:g},b.backUp(h.length-i)),g}var d=a.getMode(b,"text/html"),e=a.getMode(b,i);return{startState:function(){var b=a.startState(d),f=c.startOpen?a.startState(e):null;return{html:b,php:f,curMode:c.startOpen?e:d,curState:c.startOpen?f:b,pending:null}},copyState:function(b){var i,c=b.html,f=a.copyState(d,c),g=b.php,h=g&&a.copyState(e,g);return i=b.curMode==d?f:h,{html:f,php:h,curMode:b.curMode,curState:i,pending:b.pending}},token:f,indent:function(a,b){return a.curMode!=e&&/^\s*<\//.test(b)||a.curMode==e&&/^\?>/.test(b)?d.indent(a.html,b):a.curMode.indent(a.curState,b)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(a){return{state:a.curState,mode:a.curMode}}}},"htmlmixed","clike"),a.defineMIME("application/x-httpd-php","php"),a.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),a.defineMIME("text/x-php",i)}),function(a){"object"==typeof exports&&"object"==typeof module?a(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],a):a(CodeMirror)}(function(a){"use strict";a.defineMode("xml",function(b,c){function k(a,b){function c(c){return b.tokenize=c,c(a,b)}var d=a.next();if("<"==d)return a.eat("!")?a.eat("[")?a.match("CDATA[")?c(n("atom","]]>")):null:a.match("--")?c(n("comment","-->")):a.match("DOCTYPE",!0,!0)?(a.eatWhile(/[\w\._\-]/),c(o(1))):null:a.eat("?")?(a.eatWhile(/[\w\._\-]/),b.tokenize=n("meta","?>"),"meta"):(i=a.eat("/")?"closeTag":"openTag",b.tokenize=l,"tag bracket");if("&"==d){var e;return e=a.eat("#")?a.eat("x")?a.eatWhile(/[a-fA-F\d]/)&&a.eat(";"):a.eatWhile(/[\d]/)&&a.eat(";"):a.eatWhile(/[\w\.\-:]/)&&a.eat(";"),e?"atom":"error"}return a.eatWhile(/[^&<]/),null}function l(a,b){var c=a.next();if(">"==c||"/"==c&&a.eat(">"))return b.tokenize=k,i=">"==c?"endTag":"selfcloseTag","tag bracket";if("="==c)return i="equals",null;if("<"==c){b.tokenize=k,b.state=s,b.tagName=b.tagStart=null;var d=b.tokenize(a,b);return d?d+" tag error":"tag error"}return/[\'\"]/.test(c)?(b.tokenize=m(c),b.stringStartCol=a.column(),b.tokenize(a,b)):(a.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function m(a){var b=function(b,c){for(;!b.eol();)if(b.next()==a){c.tokenize=l;break}return"string"};return b.isInAttribute=!0,b}function n(a,b){return function(c,d){for(;!c.eol();){if(c.match(b)){d.tokenize=k;break}c.next()}return a}}function o(a){return function(b,c){for(var d;null!=(d=b.next());){if("<"==d)return c.tokenize=o(a+1),c.tokenize(b,c);if(">"==d){if(1==a){c.tokenize=k;break}return c.tokenize=o(a-1),c.tokenize(b,c)}}return"meta"}}function p(a,b,c){this.prev=a.context,this.tagName=b,this.indent=a.indented,this.startOfLine=c,(g.doNotIndent.hasOwnProperty(b)||a.context&&a.context.noIndent)&&(this.noIndent=!0)}function q(a){a.context&&(a.context=a.context.prev)}function r(a,b){for(var c;;){if(!a.context)return;if(c=a.context.tagName,!g.contextGrabbers.hasOwnProperty(c)||!g.contextGrabbers[c].hasOwnProperty(b))return;q(a)}}function s(a,b,c){return"openTag"==a?(c.tagStart=b.column(),t):"closeTag"==a?u:s}function t(a,b,c){return"word"==a?(c.tagName=b.current(),j="tag",x):(j="error",t)}function u(a,b,c){if("word"==a){var d=b.current();return c.context&&c.context.tagName!=d&&g.implicitlyClosed.hasOwnProperty(c.context.tagName)&&q(c),
23
+ c.context&&c.context.tagName==d?(j="tag",v):(j="tag error",w)}return j="error",w}function v(a,b,c){return"endTag"!=a?(j="error",v):(q(c),s)}function w(a,b,c){return j="error",v(a,b,c)}function x(a,b,c){if("word"==a)return j="attribute",y;if("endTag"==a||"selfcloseTag"==a){var d=c.tagName,e=c.tagStart;return c.tagName=c.tagStart=null,"selfcloseTag"==a||g.autoSelfClosers.hasOwnProperty(d)?r(c,d):(r(c,d),c.context=new p(c,d,e==c.indented)),s}return j="error",x}function y(a,b,c){return"equals"==a?z:(g.allowMissing||(j="error"),x(a,b,c))}function z(a,b,c){return"string"==a?A:"word"==a&&g.allowUnquoted?(j="string",x):(j="error",x(a,b,c))}function A(a,b,c){return"string"==a?A:x(a,b,c)}var d=b.indentUnit,e=c.multilineTagIndentFactor||1,f=c.multilineTagIndentPastTag;null==f&&(f=!0);var i,j,g=c.htmlMode?{autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1},h=c.alignCDATA;return k.isInText=!0,{startState:function(){return{tokenize:k,state:s,indented:0,tagName:null,tagStart:null,context:null}},token:function(a,b){if(!b.tagName&&a.sol()&&(b.indented=a.indentation()),a.eatSpace())return null;i=null;var c=b.tokenize(a,b);return(c||i)&&"comment"!=c&&(j=null,b.state=b.state(i||c,a,b),j&&(c="error"==j?c+" error":j)),c},indent:function(b,c,i){var j=b.context;if(b.tokenize.isInAttribute)return b.tagStart==b.indented?b.stringStartCol+1:b.indented+d;if(j&&j.noIndent)return a.Pass;if(b.tokenize!=l&&b.tokenize!=k)return i?i.match(/^(\s*)/)[0].length:0;if(b.tagName)return f?b.tagStart+b.tagName.length+2:b.tagStart+d*e;if(h&&/<!\[CDATA\[/.test(c))return 0;var m=c&&/^<(\/)?([\w_:\.-]*)/.exec(c);if(m&&m[1])for(;j;){if(j.tagName==m[2]){j=j.prev;break}if(!g.implicitlyClosed.hasOwnProperty(j.tagName))break;j=j.prev}else if(m)for(;j;){var n=g.contextGrabbers[j.tagName];if(!n||!n.hasOwnProperty(m[2]))break;j=j.prev}for(;j&&!j.startOfLine;)j=j.prev;return j?j.indent+d:0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:c.htmlMode?"html":"xml",helperType:c.htmlMode?"html":"xml"}}),a.defineMIME("text/xml","xml"),a.defineMIME("application/xml","xml"),a.mimeModes.hasOwnProperty("text/html")||a.defineMIME("text/html",{name:"xml",htmlMode:!0})});
inc/php/core.php ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Prevent Direct Access
5
+ *
6
+ * @since 0.1
7
+ */
8
+ defined('ABSPATH') or die("Restricted access!");
9
+
10
+ /**
11
+ * Register text domain
12
+ *
13
+ * @since 2.2
14
+ */
15
+ function MCFunctions_textdomain() {
16
+ load_plugin_textdomain( MCFUNC_TEXT, false, MCFUNC_DIR . '/languages/' );
17
+ }
18
+ add_action( 'init', 'MCFunctions_textdomain' );
19
+
20
+ /**
21
+ * Print direct link to plugin admin page
22
+ *
23
+ * Fetches array of links generated by WP Plugin admin page ( Deactivate | Edit )
24
+ * and inserts a link to the plugin admin page
25
+ *
26
+ * @since 2.2
27
+ * @param array $links Array of links generated by WP in Plugin Admin page.
28
+ * @return array Array of links to be output on Plugin Admin page.
29
+ */
30
+ function MCFunctions_settings_link( $links ) {
31
+ $page = '<a href="' . admin_url( 'themes.php?page=my-custom-functions.php' ) .'">' . __( 'Settings', MCFUNC_TEXT ) . '</a>';
32
+ array_unshift( $links, $page );
33
+ return $links;
34
+ }
35
+ add_filter( 'plugin_action_links_'.MCFUNC_BASE, 'MCFunctions_settings_link' );
36
+
37
+ /**
38
+ * Print link to My Custom Functions PRO page
39
+ *
40
+ * @since 4.0
41
+ */
42
+ function MCFunctions_upgrade_link( $links ) {
43
+ $upgrade_page = '<a href="//www.arthurgareginyan.com/plugin-my-custom-functions-pro.html" target="_blank"><b style="color:red;">' . __( 'Upgrade to PRO', MCFUNC_TEXT ) . '</b></a>';
44
+ array_unshift( $links, $upgrade_page );
45
+ return $links;
46
+ }
47
+ add_filter( 'plugin_action_links_'.MCFUNC_BASE, 'MCFunctions_upgrade_link' );
48
+
49
+ /**
50
+ * Print additional links to plugin meta row
51
+ *
52
+ * @since 4.0
53
+ */
54
+ function MCFunctions_plugin_row_meta( $links, $file ) {
55
+
56
+ if ( strpos( $file, 'my-custom-functions.php' ) !== false ) {
57
+
58
+ $new_links = array(
59
+ 'donate' => '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8A88KC7TFF6CS" target="_blank"><span class="dashicons dashicons-heart"></span> ' . __( 'Donate', MCFUNC_TEXT ) . '</a>',
60
+ 'upgrage' => '<a href="//www.arthurgareginyan.com/plugin-my-custom-functions-pro.html" target="_blank"><span class="dashicons dashicons-star-filled"></span> ' . __( 'Upgrade to PRO', MCFUNC_TEXT ) . '</a>'
61
+ );
62
+ $links = array_merge( $links, $new_links );
63
+ }
64
+
65
+ return $links;
66
+ }
67
+ add_filter( 'plugin_row_meta', 'MCFunctions_plugin_row_meta', 10, 2 );
68
+
69
+ /**
70
+ * Register plugin's submenu in the "Appearance" Admin Menu
71
+ *
72
+ * @since 4.0
73
+ */
74
+ function MCFunctions_register_submenu_page() {
75
+ add_theme_page( __( 'My Custom Functions', MCFUNC_TEXT ), __( 'Custom Functions', MCFUNC_TEXT ), 'edit_theme_options', 'my-custom-functions', 'MCFunctions_render_submenu_page' );
76
+ }
77
+ add_action( 'admin_menu', 'MCFunctions_register_submenu_page' );
78
+
79
+ /**
80
+ * Register settings
81
+ *
82
+ * @since 4.0
83
+ */
84
+ function MCFunctions_register_settings() {
85
+ register_setting( 'anarcho_cfunctions_settings_group', 'anarcho_cfunctions_settings' );
86
+ register_setting( 'anarcho_cfunctions_settings_group', 'anarcho_cfunctions_service_info' );
87
+ register_setting( 'anarcho_cfunctions_settings_group', 'anarcho_cfunctions_error' );
88
+ }
89
+ add_action( 'admin_init', 'MCFunctions_register_settings' );
inc/php/enqueue.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Prevent Direct Access
5
+ *
6
+ * @since 0.1
7
+ */
8
+ defined('ABSPATH') or die("Restricted access!");
9
+
10
+ /**
11
+ * Load scripts and style sheet for settings page
12
+ *
13
+ * @since 4.0
14
+ */
15
+ function MCFunctions_load_scripts_admin($hook) {
16
+
17
+ // Return if the page is not a settings page of this plugin
18
+ if ( 'appearance_page_my-custom-functions' != $hook ) {
19
+ return;
20
+ }
21
+
22
+ // Style sheet
23
+ wp_enqueue_style( 'MCFunctions-admin-css', MCFUNC_URL . 'inc/css/admin.css' );
24
+
25
+ // JavaScript
26
+ wp_enqueue_script( 'MCFunctions-admin-js', MCFUNC_URL . 'inc/js/admin.js', array(), false, true );
27
+
28
+ // Bootstrap library
29
+ wp_enqueue_style( 'MCFunctions-bootstrap-css', MCFUNC_URL . 'inc/lib/bootstrap/bootstrap.css' );
30
+ wp_enqueue_style( 'MCFunctions-bootstrap-theme-css', MCFUNC_URL . 'inc/lib/bootstrap/bootstrap-theme.css' );
31
+ wp_enqueue_script( 'MCFunctions-bootstrap-js', MCFUNC_URL . 'inc/lib/bootstrap/bootstrap.js' );
32
+
33
+ // CodeMirror library
34
+ wp_enqueue_style( 'MCFunctions-codemirror-css', MCFUNC_URL . 'inc/lib/codemirror/codemirror.css' );
35
+ wp_enqueue_script( 'MCFunctions-codemirror-js', MCFUNC_URL . 'inc/lib/codemirror/codemirror-compressed.js' );
36
+ wp_enqueue_script( 'MCFunctions-codemirror-active-line-js', MCFUNC_URL . 'inc/lib/codemirror/addons/active-line.js' );
37
+
38
+ }
39
+ add_action( 'admin_enqueue_scripts', 'MCFunctions_load_scripts_admin' );
inc/php/functional.php ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Prevent Direct Access
5
+ *
6
+ * @since 0.1
7
+ */
8
+ defined('ABSPATH') or die("Restricted access!");
9
+
10
+ /**
11
+ * Prepare the user entered code for execution
12
+ *
13
+ * @since 2.4
14
+ */
15
+ function MCFunctions_prepare($content) {
16
+
17
+ // Cleaning
18
+ $content = trim( $content );
19
+ $content = ltrim( $content, '<?php' );
20
+ $content = rtrim( $content, '?>' );
21
+
22
+ // Return prepared code
23
+ return $content;
24
+ }
25
+
26
+ /**
27
+ * Check the user entered code for duplicate names of functions
28
+ *
29
+ * @since 2.5.1
30
+ */
31
+ function MCFunctions_duplicates($content) {
32
+
33
+ // Find names of user entered functions and check for duplicates
34
+ preg_match_all('/function[\s\n]+(\S+)[\s\n]*\(/i', $content, $user_func_names);
35
+ $user_func_a = count( $user_func_names[1] );
36
+ $user_func_b = count( array_unique( $user_func_names[1] ) );
37
+
38
+ // Find all names of declared user functions and mutch with names of user entered functions
39
+ $declared_func = get_defined_functions();
40
+ $declared_func_user = array_intersect( $user_func_names[1], $declared_func['user'] );
41
+ $declared_func_internal = array_intersect( $user_func_names[1], $declared_func['internal'] );
42
+
43
+ // Update error status
44
+ if ( $user_func_a != $user_func_b OR count( $declared_func_user ) != 0 OR count( $declared_func_internal ) != 0 ) {
45
+ update_option( 'anarcho_cfunctions_error', '1' ); // ERROR
46
+ $error_status = '1';
47
+ } else {
48
+ update_option( 'anarcho_cfunctions_error', '0' ); // RESET ERROR VALUE
49
+ $error_status = '0';
50
+ }
51
+
52
+ // Return error status
53
+ return $error_status;
54
+ }
55
+
56
+ /**
57
+ * Execute the user entered code
58
+ *
59
+ * @since 3.2
60
+ */
61
+ function MCFunctions_exec() {
62
+
63
+ // If STOP file exist...
64
+ if ( file_exists( MCFUNC_PATH . 'STOP' ) ) {
65
+ return; // EXIT
66
+ }
67
+
68
+ // Read data from DB
69
+ $options = get_option( 'anarcho_cfunctions_settings' );
70
+ $content = isset( $options['anarcho_cfunctions-content'] ) && !empty( $options['anarcho_cfunctions-content'] ) ? $options['anarcho_cfunctions-content'] : ' ';
71
+ $enable = isset( $options['enable'] ) && !empty( $options['enable'] ) ? $options['enable'] : ' ';
72
+
73
+ // If the user entered code is disabled...
74
+ if ( $enable == 'on') {
75
+ return; // EXIT
76
+ }
77
+
78
+ // Prepare the user entered functions by calling the "prepare" function
79
+ $content = MCFunctions_prepare($content);
80
+
81
+ // If content is empty...
82
+ if ( empty($content) OR $content == ' ' ) {
83
+ return; // EXIT
84
+ }
85
+
86
+ // If the duplicates functions finded...
87
+ $duplicates = MCFunctions_duplicates($content);
88
+ if ( $duplicates != 0 ) {
89
+ return; // EXIT
90
+ }
91
+
92
+ // Parsing and execute by Eval
93
+ if ( false === @eval( $content ) ) {
94
+ update_option( 'anarcho_cfunctions_error', '1' ); // ERROR
95
+ return; // EXIT
96
+ } else {
97
+ update_option( 'anarcho_cfunctions_error', '0' ); // RESET ERROR VALUE
98
+ }
99
+ }
100
+ MCFunctions_exec();
inc/php/messages.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Prevent Direct Access
5
+ *
6
+ * @since 0.1
7
+ */
8
+ defined('ABSPATH') or die("Restricted access!");
9
+
10
+ /**
11
+ * Hello message - Bootstrap Modal
12
+ *
13
+ * @since 4.0
14
+ */
15
+ function MCFunctions_hello_message() {
16
+
17
+ $options = get_option( 'anarcho_cfunctions_settings' );
18
+
19
+ if ( !empty($options) ) {
20
+ return;
21
+ }
22
+
23
+ ?>
24
+ <div id="hello-message" class="modal fade hello-message" role="dialog">
25
+ <div class="modal-dialog">
26
+ <div class="modal-content">
27
+ <div class="modal-body">
28
+ <img src="http://mycyberuniverse.com/public-files/images/Arthur.png">
29
+ <button type="button" class="close" data-dismiss="modal">&times;</button>
30
+ <p><?php _e( 'Hello. I\'m Arthur, the author of this plugin.', MCFUNC_TEXT ); ?></p>
31
+ <p><?php printf(
32
+ __( 'Thank you for installing my plugin! I hope you will love it %s', MCFUNC_TEXT ),
33
+ '&#x1F603;'
34
+ );
35
+ ?></p>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <script>
41
+ jQuery(document).ready(function($) {
42
+ $("#hello-message").modal();
43
+ });
44
+ </script>
45
+ <?php
46
+ }
47
+
48
+ /**
49
+ * Error message (When the old version of plugin installed) - Bootstrap Modal
50
+ *
51
+ * @since 4.0
52
+ */
53
+ function MCFunctions_error_message() {
54
+
55
+ $info = get_option( 'anarcho_cfunctions_service_info' );
56
+ $old_version = isset( $info['old_version'] ) && !empty( $info['old_version'] ) ? $info['old_version'] : '0';
57
+
58
+ if ( $old_version != '1' ) {
59
+ return;
60
+ }
61
+
62
+ ?>
63
+ <div id="error-message" class="modal fade error-message" role="dialog">
64
+ <div class="modal-dialog">
65
+ <div class="modal-content">
66
+ <div class="modal-body">
67
+ <p><?php _e( 'You have installed an old version of this plugin.', MCFUNC_TEXT ); ?></p>
68
+ <p><?php _e( 'Please update the plugin to the latest version, and all will be fine.', MCFUNC_TEXT ); ?></p>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ <script>
74
+ jQuery(document).ready(function($) {
75
+ $("#error-message").modal( {backdrop: "static", keyboard: false} );
76
+ });
77
+ </script>
78
+ <?php
79
+ }
80
+
81
+ /**
82
+ * Successfull message
83
+ *
84
+ * @since 4.0
85
+ */
86
+ function MCFunctions_successfull_message() {
87
+
88
+ // After settings updated
89
+ if ( isset( $_GET['settings-updated'] ) ) {
90
+ ?>
91
+ <div id="message" class="updated">
92
+ <p><?php _e( 'Custom functions updated successfully.', MCFUNC_TEXT ); ?></p>
93
+ </div>
94
+ <?php
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Error message
100
+ *
101
+ * @since 4.0
102
+ */
103
+ function MCFunctions_parsing_error_message() {
104
+
105
+ $error = get_option( 'anarcho_cfunctions_error' );
106
+ if ( $error == '1' ) {
107
+ ?>
108
+ <div id="message" class="error">
109
+ <p>
110
+ <?php _e( 'Sorry, but your code causes a "Fatal error", so it is not applied!', MCFUNC_TEXT ); ?><br/>
111
+ <?php _e( 'Please, check the code and try again.', MCFUNC_TEXT ); ?>
112
+ </p>
113
+ </div>
114
+ <?php
115
+ }
116
+ }
inc/php/page.php ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Prevent Direct Access
5
+ *
6
+ * @since 0.1
7
+ */
8
+ defined('ABSPATH') or die("Restricted access!");
9
+
10
+ /**
11
+ * Render Settings Page
12
+ *
13
+ * @since 3.5
14
+ */
15
+ function MCFunctions_render_submenu_page() {
16
+
17
+ // Call messages
18
+ MCFunctions_hello_message();
19
+ MCFunctions_error_message();
20
+ MCFunctions_successfull_message();
21
+ MCFunctions_parsing_error_message();
22
+
23
+ // Layout of page
24
+ ?>
25
+ <div class="wrap">
26
+ <h2>
27
+ <?php _e( 'My Custom Functions', MCFUNC_TEXT ); ?>
28
+ <span>
29
+ <?php printf(
30
+ __( 'by %s Arthur Gareginyan %s', MCFUNC_TEXT ),
31
+ '<a href="http://www.arthurgareginyan.com" target="_blank">',
32
+ '</a>'
33
+ );
34
+ ?>
35
+ </span>
36
+ </h2>
37
+
38
+ <div id="poststuff" class="metabox-holder has-right-sidebar">
39
+
40
+ <!-- TABS NAVIGATION MENU -->
41
+ <ul class="tabs-nav">
42
+ <li class="active"><a href="#tab-core" data-toggle="tab"><?php _e( 'Main', MCFUNC_TEXT ); ?></a></li>
43
+ <li><a href="#tab-usage" data-toggle="tab"><?php _e( 'Usage', MCFUNC_TEXT ); ?></a></li>
44
+ <li><a href="#tab-faq" data-toggle="tab"><?php _e( 'F.A.Q.', MCFUNC_TEXT ); ?></a></li>
45
+ <li><a href="#tab-author" data-toggle="tab"><?php _e( 'Author', MCFUNC_TEXT ); ?></a></li>
46
+ <li><a href="#tab-support" data-toggle="tab"><?php _e( 'Support', MCFUNC_TEXT ); ?></a></li>
47
+ <li><a href="#tab-family" data-toggle="tab"><?php _e( 'Family', MCFUNC_TEXT ); ?></a></li>
48
+ </ul>
49
+ <!-- END-TABS NAVIGATION MENU -->
50
+
51
+
52
+ <!-- TAB 1 -->
53
+ <div class="tab-page fade active in" id="tab-core">
54
+
55
+ <?php require_once( MCFUNC_PATH . 'inc/php/settings.php' ); ?>
56
+
57
+ </div>
58
+ <!-- END-TAB 1 -->
59
+
60
+ <!-- TAB 2 -->
61
+ <div class="tab-page fade" id="tab-usage">
62
+ <div class="postbox">
63
+ <h3 class="title"><?php _e( 'Usage', MCFUNC_TEXT ); ?></h3>
64
+ <div class="inside">
65
+ <p><?php _e( 'To add your custom functions (the PHP code) to your website, simply follow these steps:', MCFUNC_TEXT ); ?></p>
66
+ <ol class="custom-counter">
67
+ <li><?php _e( 'Go to the "Main" tab.', MCFUNC_TEXT ); ?></li>
68
+ <li><?php _e( 'Add your PHP code to the field, switch the toggle to the "ON" position and click the "Save Changes" button.', MCFUNC_TEXT ); ?><br><br>
69
+ <?php _e( 'Example of PHP code:', MCFUNC_TEXT ); ?>
70
+ <pre><code>function NameOfYourFunction {
71
+
72
+ ...
73
+
74
+ }</code></pre>
75
+ <p class="note"><b><?php _e( 'Note!', MCFUNC_TEXT ); ?></b> <?php _e( 'Please do not wrap your PHP code in the <code>&lt;?php</code>...<code>?&gt;</code> HTML tags.', MCFUNC_TEXT ); ?></p>
76
+ <p class="note"><b><?php _e( 'Note!', MCFUNC_TEXT ); ?></b> <?php _e( 'Before use, please read the instructions on the F.A.Q. tab on what to do in case of a website crash.', MCFUNC_TEXT ); ?></p>
77
+ </li>
78
+ <li><?php _e( 'Enjoy the result of applying your PHP code.', MCFUNC_TEXT ); ?> <?php _e( 'It\'s that simple!', MCFUNC_TEXT ); ?></li>
79
+ </ol>
80
+ <p class="note"><b><?php _e( 'Note!', MCFUNC_TEXT ); ?></b> <?php _e( 'If you want more options then tell me and I will be happy to add it.', MCFUNC_TEXT ); ?></p>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ <!-- END-TAB 2 -->
85
+
86
+ <!-- TAB 3 -->
87
+ <div class="tab-page fade" id="tab-faq">
88
+ <div class="postbox">
89
+ <h3 class="title"><?php _e( 'Frequently Asked Questions', MCFUNC_TEXT ); ?></h3>
90
+ <div class="inside">
91
+
92
+ <div class="panel-group" id="collapse-group">
93
+ <?php
94
+ $loopvalue = '13';
95
+ for ( $i = 1; $i <= $loopvalue; $i++ ) {
96
+ echo '<div class="panel panel-default">
97
+ <div class="panel-heading">
98
+ <a data-toggle="collapse" data-parent="#collapse-group" href="#element' . $i . '">
99
+ <h4 class="panel-title"></h4>
100
+ </a>
101
+ </div>
102
+ <div id="element' . $i . '" class="panel-collapse collapse">
103
+ <div class="panel-body">
104
+ </div>
105
+ </div>
106
+ </div>';
107
+ }
108
+ ?>
109
+ </div>
110
+
111
+ <div class="question-1"><?php _e( 'Will this plugin work on my WordPress.COM website?', MCFUNC_TEXT ); ?></div>
112
+ <div class="answer-1"><?php _e( 'Sorry, this plugin is available for use only on self-hosted (WordPress.ORG) websites.', MCFUNC_TEXT ); ?></div>
113
+
114
+ <div class="question-2"><?php _e( 'Can I use this plugin on my language?', MCFUNC_TEXT ); ?></div>
115
+ <div class="answer-2"><?php printf(
116
+ __( 'Yes. But If your language is not available then you can make one. This plugin is ready for translation. The<code>.pot</code>file is included and placed in the <code>languages</code> folder. Many of plugin users would be delighted if you shared your translation with the community. Just send the translation files (<code>*.po, *.mo</code>) to me at the %s and I will include the translation within the next plugin update.', MCFUNC_TEXT ),
117
+ '<a href="mailto:arthurgareginyan@gmail.com?subject=My Custom Functions">arthurgareginyan@gmail.com</a>'
118
+ );
119
+ ?></div>
120
+
121
+ <div class="question-3"><?php _e( 'How does it work?', MCFUNC_TEXT ); ?></div>
122
+ <div class="answer-3"><?php _e( 'On the "Settings" tab, add your PHP code to the field, switch the toggle to the "ON" position and click the "Save Changes" button. Enjoy the result of applying your PHP code. It\'s that simple!', MCFUNC_TEXT ); ?></div>
123
+
124
+ <div class="question-4"><?php _e( 'Can I use HTML/CSS/JS code integrated in PHP code?', MCFUNC_TEXT ); ?></div>
125
+ <div class="answer-4"><?php _e( 'Yes. But you need to do it properly, like this:', MCFUNC_TEXT ); ?><br>
126
+ <pre><code>function NameOfYourFunction {
127
+
128
+ echo "&lt;script&gt;
129
+ // Your JS code
130
+ &lt;/script&gt;";
131
+
132
+ }</code></pre>
133
+ </div>
134
+
135
+ <div class="question-5"><?php _e( 'How much of PHP code (characters) I can enter in the text field?', MCFUNC_TEXT ); ?></div>
136
+ <div class="answer-5"><?php _e( 'I don\'t limit the number of characters.', MCFUNC_TEXT ); ?></div>
137
+
138
+ <div class="question-6 question-red"><?php _e( 'On the plugin settings page, an error message appears. What could be wrong?', MCFUNC_TEXT ); ?></div>
139
+ <div class="answer-6"><?php _e( 'Here are a few of the most likely causes of the error message:', MCFUNC_TEXT ); ?><br><br>
140
+ <?php _e( '1. You make a syntax error in the code that you have entered. Check the syntax of your code and try again.', MCFUNC_TEXT ); ?><br>
141
+ <?php _e( '2. You entered two functions with the same name. Use a unique names for your functions.', MCFUNC_TEXT ); ?><br>
142
+ <?php _e( '3. You have entered function with a name that is already occupied by another function. Use a unique name for your function.', MCFUNC_TEXT ); ?><br>
143
+ <?php _e( '4. You are trying to overwrite an existing function (of WordPress, theme, or plugin). Instead, use filters and hooks.', MCFUNC_TEXT ); ?></div>
144
+
145
+ <div class="question-7"><?php _e( 'Does this plugin requires any modification of the theme?', MCFUNC_TEXT ); ?></div>
146
+ <div class="answer-7"><?php _e( 'Absolutely not. This plugin is configurable entirely from the plugin settings page.', MCFUNC_TEXT ); ?></div>
147
+
148
+ <div class="question-8"><?php _e( 'Does this require any knowledge of HTML or CSS?', MCFUNC_TEXT ); ?></div>
149
+ <div class="answer-8"><?php _e( 'This plugin can be configured with no knowledge of HTML or CSS, using an easy-to-use plugin settings page. But you need to know the HTML or CSS in order to add/remove/modify the HTML or CSS code by using this plugin.', MCFUNC_TEXT ); ?></div>
150
+
151
+ <div class="question-9 question-red"><?php _e( 'It\'s not working. What could be wrong?', MCFUNC_TEXT ); ?></div>
152
+ <div class="answer-9"><?php _e( 'As with every plugin, it\'s possible that things don\'t work. The most common reason for this is a web browser\'s cache. Every web browser stores a cache of the websites you visit (pages, images, and etc.) to reduce bandwidth usage and server load. This is called the browser\'s cache.​ Clearing your browser\'s cache may solve the problem.', MCFUNC_TEXT ); ?><br><br>
153
+ <?php _e( 'It\'s impossible to tell what could be wrong exactly, but if you post a support request in the plugin\'s support forum on WordPress.org, I\'d be happy to give it a look and try to help out. Please include as much information as possible, including a link to your website where the problem can be seen.', MCFUNC_TEXT ); ?></div>
154
+
155
+ <div class="question-10 question-red"><?php _e( 'What to do if this plugin caused the white screen (WSOD)?', MCFUNC_TEXT ); ?></div>
156
+ <div class="answer-10"><?php _e( 'This plugin is not perfect, so there are times when the entered custom code causes the error and white screen (WSOD). This is due to the fact that your custom code has a syntax error that this plugin could not detect. If this happened with you then do the following and all will be fine.', MCFUNC_TEXT ); ?>
157
+ <ol class="custom-counter">
158
+ <li><?php _e( 'Via FTP, go to the plugin folder (in <code>wp-content/plugins/my-custom-functions/</code>). Rename the "START" file to "STOP".', MCFUNC_TEXT ); ?></li>
159
+ <li><?php _e( 'Return to the plugin settings page.', MCFUNC_TEXT ); ?></li>
160
+ <li><?php _e( 'Edit/fix your custom code that you entered before the crash.', MCFUNC_TEXT ); ?></li>
161
+ <li><?php _e( 'Rename the "STOP" file to "START" and you\'re done!', MCFUNC_TEXT ); ?></li>
162
+ </ol>
163
+ <?php _e( 'This plugin stored you entered code in the Database of your website. For getting your code, you also can go to the <code>Database</code> &#10145; Table <code>wp_options</code> &#10145; Option <code>anarcho_cfunctions_settings</code> &#10145; <code>option_value</code>.', MCFUNC_TEXT ); ?></div>
164
+
165
+ <div class="question-11 question-red"><?php _e( 'Where to report bug if found?', MCFUNC_TEXT ); ?></div>
166
+ <div class="answer-11"><?php printf(
167
+ __( 'Please visit the %s Dedicated Plugin Page on GitHub %s and report.', MCFUNC_TEXT ),
168
+ '<a href="https://github.com/ArthurGareginyan/my-custom-functions" target="_blank">',
169
+ '</a>'
170
+ );
171
+ ?></div>
172
+
173
+ <div class="question-12"><?php _e( 'Where to share any ideas or suggestions to make the plugin better?', MCFUNC_TEXT ); ?></div>
174
+ <div class="answer-12"><?php printf(
175
+ __( 'Any suggestions are very welcome! Please send me an email to %s arthurgareginyan@gmail.com %s. Thank you!', MCFUNC_TEXT ),
176
+ '<a href="mailto:arthurgareginyan@gmail.com?subject=My Custom Functions">',
177
+ '</a>'
178
+ );
179
+ ?></div>
180
+
181
+ <div class="question-13"><?php _e( 'I love this plugin! Can I help somehow?', MCFUNC_TEXT ); ?></div>
182
+ <div class="answer-13"><?php printf(
183
+ __( 'Yes, any financial contributions are welcome! Just visit %s my website %s, click on the donate button, and thank you!', MCFUNC_TEXT ),
184
+ '<a href="http://www.arthurgareginyan.com/donate.html" target="_blank">',
185
+ '</a>'
186
+ );
187
+ ?></div>
188
+
189
+ </div>
190
+ </div>
191
+ </div>
192
+ <!-- END-TAB 3 -->
193
+
194
+ <!-- TAB 4 -->
195
+ <div class="tab-page fade" id="tab-author">
196
+ <div class="postbox">
197
+ <h3 class="title"><?php _e( 'Author', MCFUNC_TEXT ); ?></h3>
198
+ <div class="inside include-tab-author"></div>
199
+ </div>
200
+ </div>
201
+ <!-- END-TAB 4 -->
202
+
203
+ <!-- TAB 5 -->
204
+ <div class="tab-page fade" id="tab-support">
205
+ <div class="postbox">
206
+ <h3 class="title"><?php _e( 'Support', MCFUNC_TEXT ); ?></h3>
207
+ <div class="inside include-tab-support"></div>
208
+ </div>
209
+ </div>
210
+ <!-- END-TAB 5 -->
211
+
212
+ <!-- TAB 6 -->
213
+ <div class="tab-page fade" id="tab-family">
214
+ <div class="include-tab-family"></div>
215
+ </div>
216
+ <!-- END-TAB 6 -->
217
+
218
+ <div class="additional-css"></div>
219
+
220
+ </div>
221
+
222
+ </div>
223
+ <?php
224
+ }
inc/php/settings.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Prevent Direct Access
5
+ *
6
+ * @since 0.1
7
+ */
8
+ defined('ABSPATH') or die("Restricted access!");
9
+
10
+ /**
11
+ * Render Settings Tab
12
+ *
13
+ * @since 3.5
14
+ */
15
+ ?>
16
+ <!-- SIDEBAR -->
17
+ <div class="inner-sidebar">
18
+ <div id="side-sortables" class="meta-box-sortabless ui-sortable">
19
+
20
+ <div id="about" class="postbox">
21
+ <h3 class="title"><?php _e( 'About', MCFUNC_TEXT ); ?></h3>
22
+ <div class="inside">
23
+ <p><?php _e( 'This plugin allows you to easily and safely add your custom functions (PHP code) to your website.', MCFUNC_TEXT ); ?></p>
24
+ </div>
25
+ </div>
26
+
27
+ <div id="upgrade" class="postbox">
28
+ <h3 class="title"><?php _e( 'Upgrade', MCFUNC_TEXT ); ?></h3>
29
+ <div class="inside">
30
+ <a href="https://www.arthurgareginyan.com/plugin-my-custom-functions-pro.html" target="_blank">
31
+ <img src="http://mycyberuniverse.com/public-files/sale/pro-version.png" alt="PRO">
32
+ </a>
33
+ </div>
34
+ </div>
35
+
36
+ <div id="support" class="postbox">
37
+ <h3 class="title"><?php _e( 'Support', MCFUNC_TEXT ); ?></h3>
38
+ <div class="inside">
39
+ <p><?php _e( 'I\'m an independent developer, without a regular income, so every little contribution helps cover my costs and lets me spend more time building things for people like you to enjoy.', MCFUNC_TEXT ); ?></p>
40
+ <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8A88KC7TFF6CS" target="_blank" class="additional-button paypal"><?php _e( 'Donate with PayPal', MCFUNC_TEXT ); ?></a>
41
+ <p><?php _e( 'Thanks for your support!', MCFUNC_TEXT ); ?></p>
42
+ </div>
43
+ </div>
44
+
45
+ <div id="help" class="postbox">
46
+ <h3 class="title"><?php _e( 'Help', MCFUNC_TEXT ); ?></h3>
47
+ <div class="inside">
48
+ <p><?php _e( 'Got something to say? Need help?', MCFUNC_TEXT ); ?></p>
49
+ <p><a href="mailto:arthurgareginyan@gmail.com?subject=My Custom Functions">arthurgareginyan@gmail.com</a></p>
50
+ </div>
51
+ </div>
52
+
53
+ </div>
54
+ </div>
55
+ <!-- END-SIDEBAR -->
56
+
57
+ <!-- FORM -->
58
+ <div class="has-sidebar sm-padded">
59
+ <div id="post-body-content" class="has-sidebar-content">
60
+ <div class="meta-box-sortabless">
61
+
62
+ <form name="anarcho_cfunctions-form" action="options.php" method="post" enctype="multipart/form-data">
63
+ <?php settings_fields( 'anarcho_cfunctions_settings_group' ); ?>
64
+
65
+ <?php
66
+ // Get options from the BD
67
+ $options = get_option( 'anarcho_cfunctions_settings' );
68
+
69
+ // Declare variables
70
+ $content = isset( $options['anarcho_cfunctions-content'] ) && !empty( $options['anarcho_cfunctions-content'] ) ? $options['anarcho_cfunctions-content'] : '/* Enter Your Custom Functions Here */';
71
+ $enable = isset( $options['enable'] ) && !empty( $options['enable'] ) && $options['enable'] == "on" ? 'checked' : ' ';
72
+ ?>
73
+
74
+ <div class="postbox">
75
+ <h3 class="title">
76
+ <label for="anarcho_cfunctions_settings[anarcho_cfunctions-content]" ><?php _e( 'Functions (PHP code)', MCFUNC_TEXT ); ?></label>
77
+ <div class="trigger">
78
+ <input type="checkbox" name="anarcho_cfunctions_settings[enable]" id="anarcho_cfunctions_settings[enable]" <?php echo $enable; ?> >
79
+ <label for="anarcho_cfunctions_settings[enable]"></label>
80
+ </div>
81
+ </h3>
82
+ <div class="inside">
83
+ <textarea name="anarcho_cfunctions_settings[anarcho_cfunctions-content]" id="anarcho_cfunctions_settings[anarcho_cfunctions-content]" ><?php echo htmlentities( $content ); ?></textarea>
84
+ </div>
85
+ </div>
86
+
87
+ <?php submit_button( __( 'Save Changes', MCFUNC_TEXT ), 'primary', 'submit', true ); ?>
88
+
89
+ <div id="support-addition" class="postbox">
90
+ <h3 class="title"><?php _e( 'Support', MCFUNC_TEXT ); ?></h3>
91
+ <div class="inside">
92
+ <p><?php _e( 'I\'m an independent developer, without a regular income, so every little contribution helps cover my costs and lets me spend more time building things for people like you to enjoy.', MCFUNC_TEXT ); ?></p>
93
+ <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8A88KC7TFF6CS" target="_blank" class="additional-button paypal"><?php _e( 'Donate with PayPal', MCFUNC_TEXT ); ?></a>
94
+ <p><?php _e( 'Thanks for your support!', MCFUNC_TEXT ); ?></p>
95
+ </div>
96
+ </div>
97
+
98
+ </form>
99
+
100
+ </div>
101
+ </div>
102
+ </div>
103
+ <!-- END-FORM -->
104
+ <?php
inc/php/settings_page.php DELETED
@@ -1,144 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Prevent Direct Access
5
- *
6
- * @since 0.1
7
- */
8
- defined('ABSPATH') or die("Restricted access!");
9
-
10
- /**
11
- * Render Settings Page
12
- *
13
- * @since 3.5
14
- */
15
- function MCFunctions_render_submenu_page() {
16
-
17
- // After settings updated
18
- if ( isset( $_GET['settings-updated'] ) ) {
19
-
20
- // Successful message
21
- ?>
22
- <div id="message" class="updated">
23
- <p><?php _e( 'Custom functions updated successfully.', MCFUNC_TEXT ); ?></p>
24
- </div>
25
- <?php
26
- }
27
-
28
- // Error message
29
- $error = get_option( 'anarcho_cfunctions_error' );
30
- if ( $error == '1' ) :
31
- ?>
32
- <div id="message" class="error">
33
- <p>
34
- <?php _e( 'Sorry, but your code causes a "Fatal error", so it is not applied!', MCFUNC_TEXT ); ?><br/>
35
- <?php _e( 'Please, check the code and try again.', MCFUNC_TEXT ); ?>
36
- </p>
37
- </div>
38
- <?php
39
- endif;
40
-
41
- // Page
42
- ?>
43
- <div class="wrap">
44
- <h2>
45
- <?php _e( 'My Custom Functions', MCFUNC_TEXT ); ?>
46
- <br/>
47
- <span>
48
- <?php _e( 'by <a href="http://www.arthurgareginyan.com" target="_blank">Arthur Gareginyan</a>', MCFUNC_TEXT ); ?>
49
- <span/>
50
- </h2>
51
-
52
- <div id="poststuff" class="metabox-holder has-right-sidebar">
53
-
54
- <!-- SIDEBAR -->
55
- <div class="inner-sidebar">
56
- <div id="side-sortables" class="meta-box-sortabless ui-sortable">
57
-
58
- <div id="about" class="postbox">
59
- <h3 class="title"><?php _e( 'About', MCFUNC_TEXT ); ?></a></h3>
60
- <div class="inside">
61
- <p><?php _e( 'This plugin allows you to easily and safely add your custome functions (PHP code) to your website.', MCFUNC_TEXT ); ?></p>
62
- </div>
63
- </div>
64
-
65
- <div id="using" class="postbox">
66
- <h3 class="title"><?php _e( 'Using', MCFUNC_TEXT ); ?></a></h3>
67
- <div class="inside">
68
- <p><?php _e( 'To use, enter your custom functions, then click "Save Changes". It\'s that simple!', MCFUNC_TEXT ); ?></p>
69
- </div>
70
- </div>
71
-
72
- <div id="help" class="postbox">
73
- <h3 class="title"><?php _e( 'Help', MCFUNC_TEXT ); ?></h3>
74
- <div class="inside">
75
- <p><?php _e( 'Got something to say? Need help?', MCFUNC_TEXT ); ?></p>
76
- <p><a href="mailto:arthurgareginyan@gmail.com?subject=My Custom Functions">arthurgareginyan@gmail.com</a></p>
77
- </div>
78
- </div>
79
-
80
- <div id="upgrade" class="postbox">
81
- <h3 class="title"><?php _e( 'Upgrade', MCFUNC_TEXT ); ?></h3>
82
- <div class="inside">
83
- <a href="https://www.arthurgareginyan.com/plugin-my-custom-functions-pro.html" target="_blank">
84
- <img src="https://dl.dropboxusercontent.com/u/42808809/sale/pro-version.png" alt="PRO">
85
- </a>
86
- </div>
87
- </div>
88
-
89
- <div id="donate" class="postbox">
90
- <h3 class="title"><?php _e( 'Donate', MCFUNC_TEXT ); ?></h3>
91
- <div class="inside">
92
- <p><?php _e( 'I\'m an independent developer, without a regular income, so every little contribution helps cover my costs and lets me spend more time building things for people like you to enjoy.', MCFUNC_TEXT ); ?></p>
93
- <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8A88KC7TFF6CS" target="_blank" rel="nofollow">
94
- <img src="<?php echo plugins_url('../img/donate.png', __FILE__); ?>" alt="Make a donation">
95
- </a>
96
- <p><?php _e( 'Thanks for your support!', MCFUNC_TEXT ); ?></p>
97
- </div>
98
- </div>
99
-
100
- </div>
101
- </div>
102
- <!-- END-SIDEBAR -->
103
-
104
- <!-- FORM -->
105
- <div class="has-sidebar sm-padded">
106
- <div id="post-body-content" class="has-sidebar-content">
107
- <div class="meta-box-sortabless">
108
-
109
- <form name="anarcho_cfunctions-form" action="options.php" method="post" enctype="multipart/form-data">
110
- <?php settings_fields( 'anarcho_cfunctions_settings_group' ); ?>
111
-
112
- <?php
113
- // Declare variables
114
- $options = get_option( 'anarcho_cfunctions_settings' );
115
- $content = isset( $options['anarcho_cfunctions-content'] ) && !empty( $options['anarcho_cfunctions-content'] ) ? $options['anarcho_cfunctions-content'] : '/* Enter Your Custom Functions Here */';
116
- $enable = isset( $options['enable'] ) && !empty( $options['enable'] ) && $options['enable'] == "on" ? 'checked' : ' ';
117
- ?>
118
- <div class="postbox">
119
- <h3 class="title">
120
- <label for="anarcho_cfunctions_settings[anarcho_cfunctions-content]" ><?php _e( 'Functions (PHP code)', MCFUNC_TEXT ); ?></label>
121
- <div class="trigger">
122
- <input type="checkbox" name="anarcho_cfunctions_settings[enable]" id="anarcho_cfunctions_settings[enable]" <?php echo $enable; ?> >
123
- <label for="anarcho_cfunctions_settings[enable]"></label>
124
- </div>
125
- </h3>
126
- <div class="inside">
127
- <textarea name="anarcho_cfunctions_settings[anarcho_cfunctions-content]" id="anarcho_cfunctions_settings[anarcho_cfunctions-content]" ><?php echo htmlentities( $content ); ?></textarea>
128
- </div>
129
- </div>
130
-
131
- <?php submit_button( __( 'Save Changes', MCFUNC_TEXT ), 'primary', 'submit', true ); ?>
132
-
133
- </form>
134
-
135
- </div>
136
- </div>
137
- </div>
138
- <!-- END-FORM -->
139
-
140
- </div>
141
-
142
- </div>
143
- <?php
144
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inc/php/uninstall.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Prevent Direct Access
5
+ *
6
+ * @since 0.1
7
+ */
8
+ defined('ABSPATH') or die("Restricted access!");
9
+
10
+ /**
11
+ * Delete options on uninstall
12
+ *
13
+ * @since 0.1
14
+ */
15
+ function MCFunctions_uninstall() {
16
+ delete_option( 'anarcho_cfunctions_settings' );
17
+ delete_option( 'anarcho_cfunctions_error' );
18
+ }
19
+ register_uninstall_hook( __FILE__, 'MCFunctions_uninstall' );
inc/php/version.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Prevent Direct Access
5
+ *
6
+ * @since 0.1
7
+ */
8
+ defined('ABSPATH') or die("Restricted access!");
9
+
10
+ /**
11
+ * Function for managing information about the version number of the plugin
12
+ *
13
+ * @since 4.0
14
+ */
15
+ function MCFunctions_plugin_version_number() {
16
+
17
+ // Set variables:
18
+ // - Read the plugin service information from the database and put it into an array
19
+ // - Get the current plugin version number from the database
20
+ // - Get the new plugin version number from the global constant
21
+ $info = get_option( 'anarcho_cfunctions_service_info' );
22
+ $current_number = isset( $info['version'] ) && !empty( $info['version'] ) ? $info['version'] : '0';
23
+ $new_number = MCFUNC_VERSION;
24
+
25
+ // Call the upgrade function if the version number in the database is smaller than the 1.0
26
+ //if ( $current_number < '1.0' ) {
27
+ // MCFunctions_upgrade_1_0();
28
+ //}
29
+
30
+ // If the version number in the database is same as the new version number:
31
+ // - Reset the "old_version" marker in the database
32
+ // - Exit from this function
33
+ if ( $new_number == $current_number ) {
34
+
35
+ if ( $info['old_version'] == '1' ) {
36
+
37
+ $info['old_version'] = '0';
38
+ update_option( 'anarcho_cfunctions_service_info', $info );
39
+
40
+ }
41
+
42
+ return;
43
+ }
44
+
45
+ // If the version number in the database is smaller than the new version number:
46
+ // - Save the new version number to the database
47
+ // - Update the "old_version" marker in the database
48
+ // - Exit from this function
49
+ if ( $new_number > $current_number ) {
50
+
51
+ $info['version'] = $new_number;
52
+ $info['old_version'] = '0';
53
+ update_option( 'anarcho_cfunctions_service_info', $info );
54
+
55
+ return;
56
+ }
57
+
58
+ // If the version number in the database is greater than the new version number:
59
+ // - Save the "old_version" marker to the database
60
+ // - Exit from this function
61
+ if ( $new_number < $current_number ) {
62
+
63
+ $info['old_version'] = '1';
64
+ update_option( 'anarcho_cfunctions_service_info', $info );
65
+
66
+ return;
67
+ }
68
+
69
+ }
70
+ MCFunctions_plugin_version_number();
languages/Readme.txt CHANGED
@@ -1,10 +1,11 @@
1
 
2
  CONTRIBUTING YOUR TRANSLATION
3
 
 
4
  This plugin is ready for translation.
5
 
6
  If you want to help translate this plugin, please visit the [translation page](https://translate.wordpress.org/projects/wp-plugins/my-custom-functions), or use the POT file, that is included and placed in the "languages" folder, in order to create a translation files (*.po, *.mo). Just send the translation files (*.po, *.mo) to me at the arthurgareginyan@gmail.com and I will include the translation within the next plugin update.
7
 
8
  Also you can use an existing PO file that placed in the "languages" folder, in order to make corrections.
9
 
10
- Many of plugin users would be delighted if you share your translation with the community. Thanks for your contribution!
1
 
2
  CONTRIBUTING YOUR TRANSLATION
3
 
4
+
5
  This plugin is ready for translation.
6
 
7
  If you want to help translate this plugin, please visit the [translation page](https://translate.wordpress.org/projects/wp-plugins/my-custom-functions), or use the POT file, that is included and placed in the "languages" folder, in order to create a translation files (*.po, *.mo). Just send the translation files (*.po, *.mo) to me at the arthurgareginyan@gmail.com and I will include the translation within the next plugin update.
8
 
9
  Also you can use an existing PO file that placed in the "languages" folder, in order to make corrections.
10
 
11
+ Many of plugin users would be delighted if you share your translation with the community. Thanks for your contribution!
languages/my-custom-functions-es_ES.mo CHANGED
Binary file
languages/my-custom-functions-es_ES.po CHANGED
@@ -3,8 +3,8 @@
3
  msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Plugins - My Custom Functions - Development Readme (trunk)\n"
6
- "POT-Creation-Date: 2016-11-08 04:33+0300\n"
7
- "PO-Revision-Date: 2016-11-08 04:33+0300\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
10
  "Language: es\n"
@@ -13,696 +13,375 @@ msgstr ""
13
  "Content-Transfer-Encoding: 8bit\n"
14
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
15
  "X-Generator: Poedit 1.8.4\n"
 
 
 
 
 
 
 
 
 
 
 
16
 
17
- #: inc/php/settings_page.php:23
18
- msgid "Custom functions updated successfully."
19
- msgstr ""
20
-
21
- #: inc/php/settings_page.php:34
22
- msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
23
  msgstr ""
24
 
25
- #: inc/php/settings_page.php:35
26
- msgid "Please, check the code and try again."
27
- msgstr ""
28
 
29
  #. Plugin Name of the plugin/theme
30
- #: inc/php/settings_page.php:45 my-custom-functions.php:85
31
  msgid "My Custom Functions"
32
  msgstr "My Custom Functions"
33
 
34
- #: inc/php/settings_page.php:48
35
- msgid "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur Gareginyan</a>"
36
- msgstr "por <a href=“http://www.arthurgareginyan.com” target=“_blank”>Arthur Gareginyan</a>"
37
-
38
- #: inc/php/settings_page.php:59
39
- msgid "About"
40
- msgstr "Acerca de"
41
-
42
- #: inc/php/settings_page.php:61
43
- msgid "This plugin allows you to easily and safely add your custome functions (PHP code) to your website."
44
  msgstr ""
45
 
46
- #: inc/php/settings_page.php:66
47
- msgid "Using"
48
- msgstr "Uso"
49
-
50
- #: inc/php/settings_page.php:68
51
- msgid "To use, enter your custom functions, then click \"Save Changes\". It's that simple!"
52
  msgstr ""
53
 
54
- #: inc/php/settings_page.php:73
55
- msgid "Help"
56
- msgstr "Ayuda"
57
-
58
- #: inc/php/settings_page.php:75
59
- msgid "Got something to say? Need help?"
60
- msgstr "¿Tienes algo que decir? ¿Necesitas ayuda?"
61
-
62
- #: inc/php/settings_page.php:81
63
- msgid "Upgrade"
64
  msgstr ""
65
 
66
- #: inc/php/settings_page.php:90
67
- msgid "Donate"
68
- msgstr "Hacer una donación"
69
 
70
- #: inc/php/settings_page.php:92
71
- msgid ""
72
- "I'm an independent developer, without a regular income, so every little contribution helps cover my costs and lets me "
73
- "spend more time building things for people like you to enjoy."
74
  msgstr ""
75
- "Soy un desarrollador independiente, sin ingresos fijos, por lo que cualquier contribución, por pequeña que sea, me ayuda "
76
- "a cubrir mis gastos y me permite dedicar más tiempo para construir cosas que pueda disfrutar gente como tú."
77
 
78
- #: inc/php/settings_page.php:96
79
- msgid "Thanks for your support!"
80
- msgstr "¡Gracias por su colaboración!"
81
 
82
- #: inc/php/settings_page.php:120
83
- msgid "Functions (PHP code)"
84
  msgstr ""
85
 
86
- #: inc/php/settings_page.php:131
87
- msgid "Save Changes"
88
- msgstr "Guardar los cambios"
89
 
90
- #: my-custom-functions.php:73
91
- msgid "Settings"
92
- msgstr "Ajustes"
 
93
 
94
- #: my-custom-functions.php:85
95
- msgid "Custom Functions"
96
  msgstr ""
97
 
98
- #. Plugin URI of the plugin/theme
99
- msgid "https://github.com/ArthurGareginyan/my-custom-functions"
100
  msgstr ""
101
 
102
- #. Description of the plugin/theme
103
- msgid ""
104
- "Easily and safely add your custome functions (PHP code) directly out of your WordPress Dashboard without need of an "
105
- "external editor."
106
  msgstr ""
107
 
108
- #. Author of the plugin/theme
109
- msgid "Arthur Gareginyan"
110
  msgstr ""
111
 
112
- #. Author URI of the plugin/theme
113
- msgid "http://www.arthurgareginyan.com"
114
  msgstr ""
115
 
116
- #~ msgid ""
117
- #~ "Easily and safely add your custom functions (PHP code) directly out of your WordPress Dashboard without need of an "
118
- #~ "external editor."
119
- #~ msgstr ""
120
- #~ "Añade de forma fácil y segura tus funciones personalizadas (código PHP) directamente a tu Panel de Control de "
121
- #~ "WordPress sin necesidad de un editor externo."
122
-
123
- #~ msgid "<a href=\"https://www.arthurgareginyan.com/plugin-my-custom-functions-pro.html\">Premium Version</a>"
124
- #~ msgstr "<a href=\"https://www.arthurgareginyan.com/plugin-my-custom-functions-pro.html\">Versión Premium</a>"
125
-
126
- #~ msgid ""
127
- #~ "Go to plugin folder (in <code>wp-content/plugins/my-custom-functions/</code>). Rename the \"<code>START</code>\" file "
128
- #~ "to \"<code>STOP</code>\". Then you can go to plugin settings page and edit your entered custom code. After editing, "
129
- #~ "just rename the \"<code>STOP</code>\" file which you written before to \"<code>START</code>\"."
130
- #~ msgstr ""
131
- #~ "Selecciona la carpeta del plugin (en <code>wp-content/plugins/my-custom-functions/</code>). Renombra el archivo "
132
- #~ "\"<code>START</code>\" a \"<code>STOP</code>\". Luego dirígete a la página de ajustes del plugin y edita el código "
133
- #~ "personalizado que ingresaste. Al terminar la edición, sólo renombra el archivo \"<code>STOP</code>\" que antes habías "
134
- #~ "cambiado a \"<code>START</code>\"."
135
-
136
- #~ msgid "A. Yes. But you need to do it properly, like this:"
137
- #~ msgstr "R. Sí. Pero necesitas hacerlo de forma apropiada, como puedes ver aquí:"
138
-
139
- #~ msgid "A. Just place your PHP code to the field and click \"Save Changes\". Example of PHP code:"
140
- #~ msgstr "R. Sólo coloca tu código PHP en el campo y haz clic en \"Guardar Cambios\". Ejemplo de código PHP:"
141
-
142
- #~ msgid "Q. Can I use HTML/CSS/JS code integrated in PHP code?"
143
- #~ msgstr "P. ¿Puedo usar código HTML/CSS/JS integrado en el código PHP?"
144
-
145
- #~ msgid "Q. How does it work?"
146
- #~ msgstr "P. ¿Cómo funciona?"
147
-
148
- #~ msgid "Log into Dashboard of your WordPress website."
149
- #~ msgstr "Ingresa en el Panel de tu sitio de WordPress."
150
-
151
- #~ msgid "<a href=\"https://www.arthurgareginyan.com/plugin-my-custom-functions-pro.html\">Get the premium version now!</a>"
152
- #~ msgstr ""
153
- #~ "<a href=\"https://www.arthurgareginyan.com/plugin-my-custom-functions-pro.html\">¡Obtener la versión premium ya!</a>"
154
-
155
- #~ msgid "<strong>Pro Features</strong>"
156
- #~ msgstr "<strong>Funciones Pro</strong>"
157
-
158
- #~ msgid "<strong>Consider Going Pro For Additional Features!</strong>"
159
- #~ msgstr "<strong>¡Considera actualizar a la versión PRO para disfrutar las funciones adicionales!</strong>"
160
-
161
- #~ msgid "Well documented"
162
- #~ msgstr "Bien documentado"
163
-
164
- #~ msgid "Sidebar items can be collapsed or expanded"
165
- #~ msgstr "Los elementos de la barra lateral se pueden cerrar o expandir"
166
-
167
- #~ msgid "Button for collapse/expand the field with code"
168
- #~ msgstr "Botón para cerrar/expandir el campo con código"
169
-
170
- #~ msgid "Trigger for temporary disable the certain functions"
171
- #~ msgstr "Activar para deshabilitar temporalmente ciertas funciones"
172
-
173
- #~ msgid "Automatic backup of all functions to a file"
174
- #~ msgstr "Respaldo automático de todas las funciones en un archivo"
175
-
176
- #~ msgid "Unlimited number of functions"
177
- #~ msgstr "Ilimitado número de funciones"
178
-
179
- #~ msgid "Chinese-Taiwan (Thanks Gordon Yu)"
180
- #~ msgstr "Chino-Taiwanés (Gracias a Gordon Yu)"
181
-
182
- #~ msgid "Easy disable option for WSOD"
183
- #~ msgstr "Fácil opción de deshabilitación para WSOD"
184
-
185
- #~ msgid "Please keep in mind that not all translations are up to date. You are welcome to contribute!"
186
- #~ msgstr "Ten presente que no todas las traducciones están actualizadas. ¡Tu colaboración será bien recibida!"
187
-
188
- #~ msgid "English (default)"
189
- #~ msgstr "Inglés (por defecto)"
190
-
191
- #~ msgid "Russian"
192
- #~ msgstr "Ruso"
193
-
194
- #~ msgid "Editor allow for tab indentation"
195
- #~ msgstr "Permitir en el editor la indentación por tabulador"
196
-
197
- #~ msgid "Active line highlighting"
198
- #~ msgstr "Activar resaltado de línea"
199
-
200
- #~ msgid "Line numbering"
201
- #~ msgstr "Numeración de línea"
202
-
203
- #~ msgid "Responsive &amp; Mobile optimized settings page"
204
- #~ msgstr "Página de ajustes optimizados para Móviles"
205
-
206
- #~ msgid "Translation"
207
- #~ msgstr "Traducción"
208
-
209
- #~ msgid "A. Here are a few of the most likely causes of the error message:"
210
- #~ msgstr "R. Estas son algunas causas probables del mensaje de error:"
211
-
212
- #~ msgid ""
213
- #~ "You are trying to overwrite an existing function (of WordPress, theme, or plugin). Instead, use filters and hooks."
214
- #~ msgstr ""
215
- #~ "Estás tratando de sobreescribir una función existente (de WordPress, de tema o de plugin). Prueba usando filtros y "
216
- #~ "ganchos."
217
-
218
- #~ msgid ""
219
- #~ "You have entered function with a name that is already occupied by another function. Use a unique name for your "
220
- #~ "function."
221
- #~ msgstr "Has ingresado una función cuyo nombre ya está ocupado por otra función. Usa un nombre único para cada función."
222
-
223
- #~ msgid "You entered two functions with the same name. Use a unique names for your functions."
224
- #~ msgstr "Has ingresado dos funciones con el mismo nombre. Usa nombres únicos para cada función."
225
-
226
- #~ msgid "You make a syntax error in the code that you have entered. Check the syntax of your code and try again."
227
- #~ msgstr "Tienes un error de sintaxis en el código que has introducido. Revisa la sintaxis de tu código y prueba de nuevo."
228
-
229
- #~ msgid "Q. On the plugin settings page, an error message appears. What could be wrong?"
230
- #~ msgstr "P. En la página de ajustes del plugin aparece un mensaje de error. ¿Qué puede estar fallando?"
231
-
232
- #~ msgid ""
233
- #~ "On the plugin page you find the PHP editor powered by CodeMirror. It have syntax highlighting and line numbering "
234
- #~ "options. Also this editor support a tab indentation."
235
- #~ msgstr ""
236
- #~ "En la página del plugin encontrarás el editor de PHP proporcionado por CodeMirror. Habilita las opciones de resaltado "
237
- #~ "de sintaxis y numeración de línea. Este editor también soporta indentación por tabulador."
238
-
239
- #~ msgid ""
240
- #~ "It's really useful in case of any theme update, because your custom PHP code would never be overwritten. Your custom "
241
- #~ "PHP code will keep on working, no matter how many times you upgrade or switch your theme."
242
- #~ msgstr ""
243
- #~ "Es muy útil en caso de actualización de un tema, porque tu código PHP no será reescrito. Tu código PHP seguirá "
244
- #~ "funcionando, sin importar el número de veces que actualices o cambies de tema."
245
-
246
- #~ msgid "Multisite network support"
247
- #~ msgstr "Soporte de red multisitio"
248
-
249
- #~ msgid "Reload the settings page at same position after pushing the save button"
250
- #~ msgstr "Recarga la página de ajustes en la misma posición después de presionar el botón de guardar"
251
-
252
- #~ msgid "Checks the entered code for fatal errors (simple checks)"
253
- #~ msgstr "Revisa si el código introducido produce errores fatales (revisión simple)"
254
-
255
- #~ msgid ""
256
- #~ "<a href=\"https://codemirror.net/\">CodeMirror</a> is an open-source project shared under the <a href=\"https://"
257
- #~ "codemirror.net/LICENSE\">MIT license</a>."
258
- #~ msgstr ""
259
- #~ "<a href=\"https://codemirror.net/\">CodeMirror</a> es un proyecto de código abierto compartido bajo <a href=\"https://"
260
- #~ "codemirror.net/LICENSE\">licencia del MIT</a>."
261
-
262
- #~ msgid "<strong>Credits</strong>"
263
- #~ msgstr "<strong>Créditos</strong>"
264
-
265
- #~ msgid ""
266
- #~ "A. Yes, any financial contributions are welcome! Just visit my website and click on the donate link, and thank you! <a "
267
- #~ "href=\"http://www.arthurgareginyan.com/donate.html\">My website</a>"
268
- #~ msgstr ""
269
- #~ "R. Sí, ¡cualquier contribución financiera es bienvenida! Sólo visita mi sitio y haz clic en \"donar\". ¡Te lo "
270
- #~ "agradezco! <a href=\"http://www.arthurgareginyan.com/donate.html\">Mi stio web</a>"
271
-
272
- #~ msgid "A. Please send me email <a href=\"mailto:arthurgareginyan@gmail.com\">arthurgareginyan@gmail.com</a>."
273
- #~ msgstr "R. Puedes enviarme un email <a href=\"mailto:arthurgareginyan@gmail.com\">arthurgareginyan@gmail.com</a>."
274
-
275
- #~ msgid ""
276
- #~ "A. As with every plugin, it's possible that things don't work. The most common reason for this is that the plugin has "
277
- #~ "a conflict with another plugin you're using. It's impossible to tell what could be wrong exactly, but if you post a "
278
- #~ "support request in the plugin's support forum on WordPress.org, I'd be happy to give it a look and try to help out. "
279
- #~ "Please include as much information as possible, including a link to your website where the problem can be seen."
280
- #~ msgstr ""
281
- #~ "R. Al igual que con cualquier plugin, es posible que las cosas no funcionen. El motivo más común es que el plugin "
282
- #~ "tenga un conflicto con otro plugin que estés usando. No puedo decirte exctatamente qué está fallanado, pero si me "
283
- #~ "envias una solicitud en el foro de soporte del plugin en WordPress.org, estaré encantado de ayudarte. Por favor, "
284
- #~ "remite la mayor cantidad de información posible, incluyendo un enlace al sitio web que presenta el problema."
285
-
286
- #~ msgid "A. Absolutely not. This plugin is added/configured entirely from the website's Admin section."
287
- #~ msgstr "R. Absolutamente no. Este plugin se añade y se configura totalmente desde la sección Admin del sitio web."
288
-
289
- #~ msgid "Q. I love this plugin! Can I help somehow?"
290
- #~ msgstr "P. ¡Me gusta este plugin! ¿Cómo puedo ayudar?"
291
-
292
- #~ msgid "Q. It's not working. What could be wrong?"
293
- #~ msgstr "P. No funciona. ¿Qué puede estar fallando?"
294
-
295
- #~ msgid "Q. Does this plugin require modification to the theme?"
296
- #~ msgstr "P. ¿Este plugin requiere alguna modificación del tema?"
297
-
298
- #~ msgid ""
299
- #~ "\"My Custom Functions\" is one of the personal software projects of <a href=\"http://www.arthurgareginyan.com\">Arthur "
300
- #~ "Gareginyan</a>."
301
- #~ msgstr ""
302
- #~ "\"My Custom Functions\" es uno de los proyectos personales de software de <a href=\"http://www.arthurgareginyan.com"
303
- #~ "\">Arthur Gareginyan</a>."
304
-
305
- #~ msgid "<a href=\"http://www.arthurgareginyan.com\">Developer Website</a>"
306
- #~ msgstr "<a href=\"http://www.arthurgareginyan.com\">Sitio web del desarrollador</a>"
307
-
308
- #~ msgid "<strong>Links</strong>"
309
- #~ msgstr "<strong>Enlaces</strong>"
310
-
311
- #~ msgid ""
312
- #~ "This plugin is licensed under the <a href=\"http://www.gnu.org/licenses/gpl-3.0.html\">GNU General Public License, "
313
- #~ "version 3 (GPLv3)</a>\n"
314
- #~ "and is distributed free of charge.\n"
315
- #~ "Commercial licensing (e.g. for projects that can’t use an open-source license) is available upon request."
316
- #~ msgstr ""
317
- #~ "Este plugin está bajo licencia <a href=\"http://www.gnu.org/licenses/gpl-3.0.html\">GNU General Public License, "
318
- #~ "version 3 (GPLv3)</a> y se distribuye sin costo alguno.\n"
319
- #~ "Para licencias comerciales (por ejemplo, proyectos que no pueden usar una licencia de código abierto) está disponible "
320
- #~ "por solicitud."
321
-
322
- #~ msgid "<strong>License</strong>"
323
- #~ msgstr "<strong>Licencia</strong>"
324
-
325
- #~ msgid "<a href=\"https://github.com/ArthurGareginyan/my-custom-functions\">Dedicated Plugin Page on GitHub</a>"
326
- #~ msgstr "<a href=\"https://github.com/ArthurGareginyan/my-custom-functions\">Página en GitHub dedicada al plugin</a>"
327
-
328
- #~ msgid "Other Notes"
329
- #~ msgstr "Otras acotaciones"
330
-
331
- #~ msgid ""
332
- #~ "A. Please visit <a href=\"https://github.com/ArthurGareginyan/my-custom-functions\">Dedicated Plugin Page on GitHub</"
333
- #~ "a> and report."
334
- #~ msgstr ""
335
- #~ "P. Por favor visita <a href=\"https://github.com/ArthurGareginyan/my-custom-functions\">La página en GitHub dedicada "
336
- #~ "al plugin</a> y haz un reporte."
337
-
338
- #~ msgid ""
339
- #~ "This plugin stored you entered code in the Database of your website. For getting your code, you also can go to the "
340
- #~ "<code>Database</code> —&gt; Table \"<code>wp_options</code>\" —&gt; Option \"<code>anarcho_cfunctions_settings</code>"
341
- #~ "\" —&gt; \"<code>option_value</code>\"."
342
- #~ msgstr ""
343
- #~ "Este plugin almacena el código que hayas ingresado en la Base de datos de tu sitio web. Para obtener tu código, "
344
- #~ "también puedes ir a <code>Database</code> —&gt; Table \"<code>wp_options</code>\" —&gt; Option "
345
- #~ "\"<code>anarcho_cfunctions_settings</code>\" —&gt; \"<code>option_value</code>\"."
346
-
347
- #~ msgid ""
348
- #~ "A. This plugin is not perfect, so there are times when the entered custom code causes the error and white screen "
349
- #~ "(WSOD). If this happened with you then do the following."
350
- #~ msgstr ""
351
- #~ "R. Este plugin no es perfecto, por tanto existe la posibilidad de que el código personalizado que ingresasate cause "
352
- #~ "error y una pantalla en blanco (WSOD). Si te ocurre esto, haz lo siguiente."
353
-
354
- #~ msgid ""
355
- #~ "A. Yes. But If your language is not available then you can make one. This plugin is ready for translation. The <code>."
356
- #~ "pot</code> file is included and placed in \"<code>languages</code>\" folder. Many of plugin users would be delighted "
357
- #~ "if you shared your translation with the community. Just send the translation files (<code>*.po, *.mo</code>) to me at "
358
- #~ "the arthurgareginyan@gmail.com and I will include the translation within the next plugin update."
359
- #~ msgstr ""
360
- #~ "R. Sí. Pero si tu idioma no está disponible, puedes hacerlo. Este plugin está listo para traducción. El archivo <code>."
361
- #~ "pot</code> está en la carpeta \"<code>languages</code>\". Muchos usuarios estarían encantados de que compartas tu "
362
- #~ "traducción con la comunidad. Sólo envíame los archivos de traducción (<code>*.po, *.mo</code>) a "
363
- #~ "arthurgareginyan@gmail.com y yo incluiré la traducción en la próxima actualización del plugin."
364
-
365
- #~ msgid "A. I don't limit the number of characters."
366
- #~ msgstr "R. No se limita el número de caracteres."
367
-
368
- #~ msgid "A. Sorry, this plugin is available for use only on self-hosted (WordPress.org) websites."
369
- #~ msgstr ""
370
- #~ "R. Lo siento, este plugin está disponible sólo para sitios web hechos en WordPress.org que tengan hospedaje propio."
371
-
372
- #~ msgid "Q. Where to share any ideas or suggestions to make the plugin better?"
373
- #~ msgstr "P: ¿Dónde puedo compartir ideas o sugerencias para mejorar este plugin?"
374
-
375
- #~ msgid "Q. Where to report bug if found?"
376
- #~ msgstr "P. ¿Dónde puedo reportar un error que haya encontrado?"
377
-
378
- #~ msgid "Q. What to do if this plugin caused the white screen?"
379
- #~ msgstr "P: ¿Qué hago si este plugin causa una pantalla en blanco?"
380
-
381
- #~ msgid "Q. Can I use this plugin on my language?"
382
- #~ msgstr "P. ¿Puedo usar este plugin en mi idioma?"
383
-
384
- #~ msgid "Q. How much of PHP code (characters) I can enter in the text field?"
385
- #~ msgstr "P: ¿Cuántos caracteres de código PHP puedo entrar en el campo de texto?"
386
-
387
- #~ msgid "Q. Will this plugin work on my WordPress.COM website?"
388
- #~ msgstr "P. ¿Este plugin funcionará en mi sitio web hecho en WordPress.com?"
389
-
390
- #~ msgid ""
391
- #~ "<a href=\"http://codex.wordpress.org/Managing_Plugins#Installing_Plugins\" title=\"WordPress Codex: Installing Plugins"
392
- #~ "\">More help installing Plugins</a>"
393
- #~ msgstr ""
394
- #~ "<a href=\"http://codex.wordpress.org/Managing_Plugins#Installing_Plugins\" title=\"WordPress Codex: Installing Plugins"
395
- #~ "\">Más ayuda sobre instalación de plugins</a>"
396
-
397
- #~ msgid ""
398
- #~ "After installation, a \"<code>Custom Functions</code>\" menu item will appear in the \"<code>Appearance</code>\" "
399
- #~ "section. Click on this in order to view plugin's administration page."
400
- #~ msgstr ""
401
- #~ "Después de la instalación, aparecerá una opción de menú \"<code>Custom Functions</code>\" en la sección "
402
- #~ "\"<code>Appearance</code>\". Haz clic para entrar en la página de configuración del plugin."
403
-
404
- #~ msgid "Manual via FTP:"
405
- #~ msgstr "Manual vía FTP:"
406
-
407
- #~ msgid "Automatically via WordPress:"
408
- #~ msgstr "Automáticamente vía WordPress:"
409
-
410
- #~ msgid "Install \"My Custom Functions\" just as you would any other WordPress Plugin."
411
- #~ msgstr "Instala \"My Custom Functions\" como lo haces con cualquier plugin de WordPress."
412
-
413
- #~ msgid "Upload the unzipped catalog to your website's plugin directory (<code>/wp-content/plugins/</code>)."
414
- #~ msgstr "Sube el catálogo descomprimido al directorio de plugins de tu sitio web (<code>/wp-content/plugins/</code>)."
415
-
416
- #~ msgid "Unzip the ZIP file."
417
- #~ msgstr "Descomprime el archivo ZIP."
418
-
419
- #~ msgid "Download a copy (ZIP file) of this plugin from WordPress.org."
420
- #~ msgstr "Descarga una copia (el archivo ZIP) de este plugin desde WordPress.org."
421
-
422
- #~ msgid "Activate this plugin through the \"<code>Plugins</code>\" tab."
423
- #~ msgstr "Activa este plugin desde la pestaña \"<code>Plugins</code>\"."
424
-
425
- #~ msgid "Find this plugin and click install."
426
- #~ msgstr "Busca el plugin y haz clic en Install."
427
-
428
- #~ msgid "Go to \"<code>Plugins</code>\" —&gt; \"<code>Add New</code>\"."
429
- #~ msgstr "Dirígete a \"<code>Plugins</code>\" —&gt; \"<code>Add New</code>\"."
430
-
431
- #~ msgid "<strong>Coming soon:</strong>"
432
- #~ msgstr "<strong>Pronto:</strong>"
433
-
434
- #~ msgid "This is a simple and perfect tool to use as your site's functionality plugin."
435
- #~ msgstr "Esta es una herramienta sencilla e ideal para usar como plugin de funciones en tu sitio."
436
-
437
- #~ msgid ""
438
- #~ "It's purpose is to provide a familiar experience to WordPress users. No need anymore editing the functions.php file of "
439
- #~ "your theme. Just add your PHP code in the field on the plugin page and this plugin will do the rest for you."
440
- #~ msgstr ""
441
- #~ "Su propósito es ofrecer una experiencia familiar a los usuarios de WordPress. Ya no tendrás que editar el archivo "
442
- #~ "functions.php de tu tema. Sólo añade el código PHP en el campo correspondiente en la página de configuración del "
443
- #~ "plugin y él hará el resto por ti."
444
-
445
- #~ msgid ""
446
- #~ "An easy to use WordPress plugin that gives you the ability to easily and safely add your custome functions (PHP code) "
447
- #~ "for execution in WordPress environment directly out of your WordPress Dashboard and without any need of an external "
448
- #~ "editor."
449
- #~ msgstr ""
450
- #~ "Un plugin de WordPress fácil de usar que te permite añadir de forma segura tus funciones personalizadas (en código "
451
- #~ "PHP) para ejecutarlas en el ambiente de WordPress directamente desde tu Panel de Control en WordPress, sin necesidad "
452
- #~ "de un editor externo."
453
-
454
- #~ msgid "Trigger for temporary disable the custom functions"
455
- #~ msgstr "Activar para deshabilitar temporalmente las funciones personalizadas"
456
-
457
- #~ msgid "Ready for translation (POT file included)"
458
- #~ msgstr "Listo para traducción (archivo POT incluido)"
459
-
460
- #~ msgid "Syntax highlighting (by CodeMirror)"
461
- #~ msgstr "Resaltado de sintaxis (por CodeMirror)"
462
-
463
- #~ msgid "Features"
464
- #~ msgstr "Funciones"
465
-
466
- #~ msgid "«Fatal error» message."
467
- #~ msgstr "Mensaje «Error fatal»."
468
-
469
- #~ msgid "Success message."
470
- #~ msgstr "Mensaje de ejecución exitosa."
471
-
472
- #~ msgid "Plugin page with custom code added."
473
- #~ msgstr "Página del plugin con el código personalizado añadido."
474
-
475
- #~ msgid "Plugin page."
476
- #~ msgstr "Página del plugin."
477
-
478
- #~ msgid "Russian translation improved."
479
- #~ msgstr "Traducción al ruso mejorada."
480
-
481
- #~ msgid "Added global constant for plugin text-domain."
482
- #~ msgstr "Inlcuye una constante global para el dominio de texto del plugin."
483
-
484
- #~ msgid ""
485
- #~ "User's PHP code displayed on settings page are escaped for output by <code>htmlentities()</code> instead of "
486
- #~ "<code>esc_attr()</code> for prevent converting characters to HTML entities."
487
- #~ msgstr ""
488
- #~ "El código PHP del usuario mostrado en la página de ajustes se remite en la salida de <code>htmlentities()</code> en "
489
- #~ "vez de <code>esc_attr()</code> para prevenir que los caracteres se conviertan en entidades HTML."
490
-
491
- #~ msgid "Added the Readme.txt file for translation contribution."
492
- #~ msgstr "Archivo Readme.txt incluido para contribuciones de traducción."
493
-
494
- #~ msgid "The Readme.txt file improved."
495
- #~ msgstr "El archivo Readme.txt mejorado."
496
-
497
- #~ msgid "On the settings page added an advertisement about the PRO version of this plugin."
498
- #~ msgstr "En la página de ajustes se incluye una publicidad sobre la versión PRO de este plugin."
499
-
500
- #~ msgid "Style sheet of settings page improved."
501
- #~ msgstr "Página de Hoja de estilos mejorada."
502
-
503
- #~ msgid "Added option for easy disable the custom code for cases of WSOD."
504
- #~ msgstr "Incluye una opción de fácil uso para deshabilitar el código personalizado en caso de WSOD."
505
-
506
- #~ msgid "Added constant for storing the plugin version number."
507
- #~ msgstr "Añade una constante para almacenar el número de versión del plugin."
508
-
509
- #~ msgid "Added prefixes to the stylesheet and script names when using wp_enqueue_style() and wp_enqueue_script()."
510
- #~ msgstr ""
511
- #~ "Prefijos agregados a los nombres de hojas de estilo y de scripts cuando use wp_enqueue_style() and wp_enqueue_script()."
512
-
513
- #~ msgid "Chinese (Taiwan) translation updated."
514
- #~ msgstr "Traducción a chino (Taiwan) actualizada."
515
 
516
- #~ msgid "POT file updated."
517
- #~ msgstr "Archivo POT actualizado."
 
518
 
519
- #~ msgid "The \"thanks.png\" image removed."
520
- #~ msgstr "Removida la imagen \"thanks.png\"."
 
521
 
522
- #~ msgid "JS code improved."
523
- #~ msgstr "Código JS mejorado."
 
524
 
525
- #~ msgid "Style sheet of settings page improved and better commented."
526
- #~ msgstr "Hoja de estilo de ajustes mejorada y mejor documentada."
 
527
 
528
- #~ msgid "The structure of files changed."
529
- #~ msgstr "Se cambió la estructura de archivos."
 
530
 
531
- #~ msgid "The update_option() returned into _duplicates function."
532
- #~ msgstr "Update_option() ahora está en la la función into _duplicates."
 
533
 
534
- #~ msgid "Added function of automatic remove the \"successful\" message after 3 seconds."
535
- #~ msgstr "Función añadida para quitar automáticamente el mensaje de \"operación exitosa\" después de 3 segundos."
 
536
 
537
- #~ msgid ""
538
- #~ "Added function to check for duplicate function names. Compares the names of all functions (internal, user). The "
539
- #~ "_duplicates function added."
540
- #~ msgstr ""
541
- #~ "Función añadida para revisar nombres de función duplicados. Compara los nombres de todas las funciones (internas y del "
542
- #~ "usuario). Se agregó la función _duplicates."
543
 
544
- #~ msgid "The _enqueue_codemirror_scripts function renamed to mcstyles_load_scripts."
545
- #~ msgstr "La función _enqueue_codemirror_scripts ahora se llama mcstyles_load_scripts."
 
546
 
547
- #~ msgid "The styles.css file better commented."
548
- #~ msgstr "El archivo styles.css está mejor comentado."
 
549
 
550
- #~ msgid "Styles of settings page optimized for mobile devices."
551
- #~ msgstr "La página de ajustes ahora está optimizada para dispositivos móviles."
 
552
 
553
- #~ msgid "CSS class \"slider\" renamed to \"trigger\"."
554
- #~ msgstr "Clase \"slider\" de CSS se renombró a \"trigger\"."
 
555
 
556
- #~ msgid "The _exec function optimized."
557
- #~ msgstr "La función _exec fue optimizada."
 
558
 
559
- #~ msgid "Extra update_option() removed from the _duplicates function."
560
- #~ msgstr "La opción adicional update_option() fue removida de la función _duplicates."
 
561
 
562
- #~ msgid "Added active-line add-on to CodeMirror."
563
- #~ msgstr "Se agregó la extensión de línea activa para CodeMirror."
 
 
 
 
 
 
564
 
565
- #~ msgid "Functions _prepare, _duplicates, and _exec optimized."
566
- #~ msgstr "Las funciones _prepare, _duplicates y _exec fueron optimizadas."
 
567
 
568
- #~ msgid "Added trigger for temporary disable the custom functions."
569
- #~ msgstr "Se añadió un ´trigger´para deshabilitar temporalmente las funciones personalizadas."
 
 
 
570
 
571
- #~ msgid "Removed my personal ad about freelance."
572
- #~ msgstr "Removí mi publicidad personal como freelance."
 
573
 
574
- #~ msgid "File js-functions.js renamed to functions.js."
575
- #~ msgstr "El archivo js-functions.js se renombró como functions.js."
 
576
 
577
- #~ msgid "The function of user code cleaning modified."
578
- #~ msgstr "La función de limpiar el código del usuario fue modificada."
 
579
 
580
- #~ msgid "Removed the default message about successful saving."
581
- #~ msgstr "El mensaje por defecto de guardado exitoso fue eliminado."
 
582
 
583
- #~ msgid "Added compatibility with the translate.wordpress.org."
584
- #~ msgstr "Ahora es compatible con translate.wordpress.org."
 
585
 
586
- #~ msgid "Text domain changed to \"my-custom-functions\"."
587
- #~ msgstr "El dominio de texto cambió a \"my-custom-functions\"."
 
588
 
589
- #~ msgid "Added Chinese (Taiwan) translation. (Thanks Gordon Yu)"
590
- #~ msgstr "Incluye traducción al chino (Taiwan). (Gracias a Gordon Yu)"
 
591
 
592
- #~ msgid "Image \"btn_donateCC_LG.gif\" is now located in the \"images\" directory."
593
- #~ msgstr "La imagen \"btn_donateCC_LG.gif\" ahora está en el directorio \"images\"."
 
594
 
595
- #~ msgid "All images are moved to the directory \"images\"."
596
- #~ msgstr "Todas las imágenes se movieron al directorio \"images\"."
 
 
 
597
 
598
- #~ msgid "Removed extra rules in style.css file."
599
- #~ msgstr "Se quitaron reglas extra en el archivo style.css."
 
 
600
 
601
- #~ msgid "In the settings_page.php, on the line 21, fixed typo."
602
- #~ msgstr "En el archivo settings_page.php, en la línea 21, se corrigió el typo."
 
603
 
604
- #~ msgid "Added my personal ad about freelance."
605
- #~ msgstr "Agregada mi publicidad personal como freelance."
 
606
 
607
- #~ msgid "Plugin URI changed to GitHub repository."
608
- #~ msgstr "La URL del plugin cambió al repositorio de GitHub."
 
609
 
610
- #~ msgid "Text domain changed to \"MCFunctions\"."
611
- #~ msgstr "El dominio de texto cambió a \"MCFunctions\"."
 
 
 
612
 
613
- #~ msgid "Prefixes changed to \"MCFunctions\"."
614
- #~ msgstr "Prefijos cambiados a \"MCFunctions\"."
 
615
 
616
- #~ msgid "js-functions.js (file with all js functions) created."
617
- #~ msgstr "Se creó el archivo js-functions.js (contiene todas las funciones js)."
 
 
 
 
618
 
619
- #~ msgid "editor.js deleted."
620
- #~ msgstr "Eliminado editor.js."
 
 
 
 
621
 
622
- #~ msgid "Constants variables added."
623
- #~ msgstr "Añadidas variables/constantes."
 
624
 
625
- #~ msgid "New design of settings page (new layout)."
626
- #~ msgstr "Nuevo diseño de la página de ajustes."
 
 
 
 
627
 
628
- #~ msgid "Russian translation updated."
629
- #~ msgstr "Actualizada la traducción al ruso."
 
 
 
630
 
631
- #~ msgid ".pot file updated."
632
- #~ msgstr "Archivo .pot actualizado."
 
633
 
634
- #~ msgid "Localization improved."
635
- #~ msgstr "Mejorada la localización."
 
636
 
637
- #~ msgid "Donate link changed."
638
- #~ msgstr "El enlace para donación cambió."
 
639
 
640
- #~ msgid "Authors URI changed."
641
- #~ msgstr "La URL de los autores cambió."
 
 
 
 
642
 
643
- #~ msgid "Removed more unused do_action() from settings_page.php file."
644
- #~ msgstr "Removida unused do_action() del archivo settings_page.php."
 
645
 
646
- #~ msgid "Placeholder of changed to \"/* Enter Your Custom Functions Here */\"."
647
- #~ msgstr "Marcador de posición cambiado a \"/* Ingrese aquí sus funciones personalizadas */\"."
 
 
648
 
649
- #~ msgid "The mode of CodeMirror editor changed from 'application/x-httpd-php' (HTML+PHP) to 'text/x-php' (PHP)."
650
- #~ msgstr "El modo de editor CodeMirror varió de 'application/x-httpd-php' (HTML+PHP) a 'text/x-php' (PHP)."
 
651
 
652
- #~ msgid "Alfa version."
653
- #~ msgstr "Versión Alfa."
 
 
654
 
655
- #~ msgid "Beta version."
656
- #~ msgstr "Versión beta."
 
657
 
658
- #~ msgid "Added ready for translation."
659
- #~ msgstr "Ahora está listo para traducción."
 
 
 
660
 
661
- #~ msgid "Added the check for safety execution code."
662
- #~ msgstr "Se agregó la verificación para una ejecución de código más segura."
 
663
 
664
- #~ msgid "Initial release."
665
- #~ msgstr "Versión inicial."
 
666
 
667
- #~ msgid "Fixed positioning of the sidebar at the plugin page."
668
- #~ msgstr "Posición fija en la barra lateral de la página del plugin."
 
669
 
670
- #~ msgid "Added the syntax highlighting and line numbering."
671
- #~ msgstr "Se incorporó el resaltado de sintaxis y la numeración de línea."
 
 
 
 
 
672
 
673
- #~ msgid "Minor fixes."
674
- #~ msgstr "Arreglos menores."
 
675
 
676
- #~ msgid ".pot file included."
677
- #~ msgstr "Archivo .pot incluido."
 
678
 
679
- #~ msgid "Fixed the issue due to which the alert message was appearing after installation."
680
- #~ msgstr "Se corrigió el error que mostraba un mensaje de alerta después de la instalación."
 
681
 
682
- #~ msgid "Corrected comments to source code."
683
- #~ msgstr "Comentarios corregidos en el código fuente."
 
684
 
685
- #~ msgid "Added \"register_setting\" for error option."
686
- #~ msgstr "Añadido \"register_setting\" para opciones de error."
 
687
 
688
- #~ msgid "Fixed the issue due to which nothing appears below line 26 until you click below that line."
689
- #~ msgstr ""
690
- #~ "Se corrigió la falla por la cual no aparecía nada debajo de la línea 26 hasta que hacías clic debajo de esa línea."
691
 
692
- #~ msgid "The LICENSE file renamed to LICENSE.txt"
693
- #~ msgstr "El archivo LICENSE se renombró a LICENSE.txt"
 
694
 
695
- #~ msgid "Changed the style of title in plugin's page."
696
- #~ msgstr "Cambió el estilo del título en la página del plugin."
 
 
 
697
 
698
- #~ msgid "Textdomain changed to \"mcfunctions\"."
699
- #~ msgstr "El dominio de texto cambió a \"mcfunctions\"."
 
700
 
701
- #~ msgid "The javascript from settings_page.php moved to separate file."
702
- #~ msgstr "El javascript del archivo settings_page.php fue movido a un archivo separado."
 
703
 
704
- #~ msgid "The stylesheet of plugin's page moved to separate file."
705
- #~ msgstr "La hoja de estilo de la página del plugin se movió a un archivo separado."
706
 
707
- #~ msgid "CodeMirror scripts are combined and minified."
708
- #~ msgstr "Los scripts CodeMirror se combinaron y fueron minificados."
3
  msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Plugins - My Custom Functions - Development Readme (trunk)\n"
6
+ "POT-Creation-Date: 2017-05-07 13:23+0300\n"
7
+ "PO-Revision-Date: 2017-05-07 13:23+0300\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
10
  "Language: es\n"
13
  "Content-Transfer-Encoding: 8bit\n"
14
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
15
  "X-Generator: Poedit 1.8.4\n"
16
+ "X-Poedit-Basepath: ..\n"
17
+ "X-Poedit-WPHeader: my-custom-functions.php\n"
18
+ "X-Poedit-SourceCharset: UTF-8\n"
19
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;"
20
+ "esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
21
+ "X-Poedit-SearchPath-0: .\n"
22
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
23
+
24
+ #: inc/php/core.php:31
25
+ msgid "Settings"
26
+ msgstr "Ajustes"
27
 
28
+ #: inc/php/core.php:43 inc/php/core.php:60
29
+ msgid "Upgrade to PRO"
 
 
 
 
30
  msgstr ""
31
 
32
+ #: inc/php/core.php:59
33
+ msgid "Donate"
34
+ msgstr "Hacer una donación"
35
 
36
  #. Plugin Name of the plugin/theme
37
+ #: inc/php/core.php:75 inc/php/page.php:27
38
  msgid "My Custom Functions"
39
  msgstr "My Custom Functions"
40
 
41
+ #: inc/php/core.php:75
42
+ msgid "Custom Functions"
 
 
 
 
 
 
 
 
43
  msgstr ""
44
 
45
+ #: inc/php/messages.php:30
46
+ msgid "Hello. I'm Arthur, the author of this plugin."
 
 
 
 
47
  msgstr ""
48
 
49
+ #: inc/php/messages.php:32
50
+ #, php-format
51
+ msgid "Thank you for installing my plugin! I hope you will love it %s"
 
 
 
 
 
 
 
52
  msgstr ""
53
 
54
+ #: inc/php/messages.php:67
55
+ msgid "You have installed an old version of this plugin."
56
+ msgstr ""
57
 
58
+ #: inc/php/messages.php:68
59
+ msgid "Please update the plugin to the latest version, and all will be fine."
 
 
60
  msgstr ""
 
 
61
 
62
+ #: inc/php/messages.php:92
63
+ msgid "Custom functions updated successfully."
64
+ msgstr ""
65
 
66
+ #: inc/php/messages.php:110
67
+ msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
68
  msgstr ""
69
 
70
+ #: inc/php/messages.php:111
71
+ msgid "Please, check the code and try again."
72
+ msgstr ""
73
 
74
+ #: inc/php/page.php:30
75
+ #, php-format
76
+ msgid "by %s Arthur Gareginyan %s"
77
+ msgstr "por %s Arthur Gareginyan %s"
78
 
79
+ #: inc/php/page.php:42
80
+ msgid "Main"
81
  msgstr ""
82
 
83
+ #: inc/php/page.php:43 inc/php/page.php:63
84
+ msgid "Usage"
85
  msgstr ""
86
 
87
+ #: inc/php/page.php:44
88
+ msgid "F.A.Q."
 
 
89
  msgstr ""
90
 
91
+ #: inc/php/page.php:45 inc/php/page.php:197
92
+ msgid "Author"
93
  msgstr ""
94
 
95
+ #: inc/php/page.php:46 inc/php/page.php:206 inc/php/settings.php:37 inc/php/settings.php:90
96
+ msgid "Support"
97
  msgstr ""
98
 
99
+ #: inc/php/page.php:47
100
+ msgid "Family"
101
+ msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
+ #: inc/php/page.php:65
104
+ msgid "To add your custom functions (the PHP code) to your website, simply follow these steps:"
105
+ msgstr ""
106
 
107
+ #: inc/php/page.php:67
108
+ msgid "Go to the \"Main\" tab."
109
+ msgstr ""
110
 
111
+ #: inc/php/page.php:68
112
+ msgid "Add your PHP code to the field, switch the toggle to the \"ON\" position and click the \"Save Changes\" button."
113
+ msgstr ""
114
 
115
+ #: inc/php/page.php:69
116
+ msgid "Example of PHP code:"
117
+ msgstr ""
118
 
119
+ #: inc/php/page.php:75 inc/php/page.php:76 inc/php/page.php:80
120
+ msgid "Note!"
121
+ msgstr ""
122
 
123
+ #: inc/php/page.php:75
124
+ msgid "Please do not wrap your PHP code in the <code>&lt;?php</code>...<code>?&gt;</code> HTML tags."
125
+ msgstr ""
126
 
127
+ #: inc/php/page.php:76
128
+ msgid "Before use, please read the instructions on the F.A.Q. tab on what to do in case of a website crash."
129
+ msgstr ""
130
 
131
+ #: inc/php/page.php:78
132
+ msgid "Enjoy the result of applying your PHP code."
133
+ msgstr ""
 
 
 
134
 
135
+ #: inc/php/page.php:78
136
+ msgid "It's that simple!"
137
+ msgstr ""
138
 
139
+ #: inc/php/page.php:80
140
+ msgid "If you want more options then tell me and I will be happy to add it."
141
+ msgstr ""
142
 
143
+ #: inc/php/page.php:89
144
+ msgid "Frequently Asked Questions"
145
+ msgstr ""
146
 
147
+ #: inc/php/page.php:111
148
+ msgid "Will this plugin work on my WordPress.COM website?"
149
+ msgstr ""
150
 
151
+ #: inc/php/page.php:112
152
+ msgid "Sorry, this plugin is available for use only on self-hosted (WordPress.ORG) websites."
153
+ msgstr ""
154
 
155
+ #: inc/php/page.php:114
156
+ msgid "Can I use this plugin on my language?"
157
+ msgstr ""
158
 
159
+ #: inc/php/page.php:116
160
+ #, php-format
161
+ msgid ""
162
+ "Yes. But If your language is not available then you can make one. This plugin is ready for translation. The<code>.pot</"
163
+ "code>file is included and placed in the <code>languages</code> folder. Many of plugin users would be delighted if you "
164
+ "shared your translation with the community. Just send the translation files (<code>*.po, *.mo</code>) to me at the %s and "
165
+ "I will include the translation within the next plugin update."
166
+ msgstr ""
167
 
168
+ #: inc/php/page.php:121
169
+ msgid "How does it work?"
170
+ msgstr ""
171
 
172
+ #: inc/php/page.php:122
173
+ msgid ""
174
+ "On the \"Settings\" tab, add your PHP code to the field, switch the toggle to the \"ON\" position and click the \"Save "
175
+ "Changes\" button. Enjoy the result of applying your PHP code. It's that simple!"
176
+ msgstr ""
177
 
178
+ #: inc/php/page.php:124
179
+ msgid "Can I use HTML/CSS/JS code integrated in PHP code?"
180
+ msgstr ""
181
 
182
+ #: inc/php/page.php:125
183
+ msgid "Yes. But you need to do it properly, like this:"
184
+ msgstr ""
185
 
186
+ #: inc/php/page.php:135
187
+ msgid "How much of PHP code (characters) I can enter in the text field?"
188
+ msgstr ""
189
 
190
+ #: inc/php/page.php:136
191
+ msgid "I don't limit the number of characters."
192
+ msgstr ""
193
 
194
+ #: inc/php/page.php:138
195
+ msgid "On the plugin settings page, an error message appears. What could be wrong?"
196
+ msgstr ""
197
 
198
+ #: inc/php/page.php:139
199
+ msgid "Here are a few of the most likely causes of the error message:"
200
+ msgstr ""
201
 
202
+ #: inc/php/page.php:140
203
+ msgid "1. You make a syntax error in the code that you have entered. Check the syntax of your code and try again."
204
+ msgstr ""
205
 
206
+ #: inc/php/page.php:141
207
+ msgid "2. You entered two functions with the same name. Use a unique names for your functions."
208
+ msgstr ""
209
 
210
+ #: inc/php/page.php:142
211
+ msgid ""
212
+ "3. You have entered function with a name that is already occupied by another function. Use a unique name for your "
213
+ "function."
214
+ msgstr ""
215
 
216
+ #: inc/php/page.php:143
217
+ msgid ""
218
+ "4. You are trying to overwrite an existing function (of WordPress, theme, or plugin). Instead, use filters and hooks."
219
+ msgstr ""
220
 
221
+ #: inc/php/page.php:145
222
+ msgid "Does this plugin requires any modification of the theme?"
223
+ msgstr ""
224
 
225
+ #: inc/php/page.php:146
226
+ msgid "Absolutely not. This plugin is configurable entirely from the plugin settings page."
227
+ msgstr ""
228
 
229
+ #: inc/php/page.php:148
230
+ msgid "Does this require any knowledge of HTML or CSS?"
231
+ msgstr ""
232
 
233
+ #: inc/php/page.php:149
234
+ msgid ""
235
+ "This plugin can be configured with no knowledge of HTML or CSS, using an easy-to-use plugin settings page. But you need "
236
+ "to know the HTML or CSS in order to add/remove/modify the HTML or CSS code by using this plugin."
237
+ msgstr ""
238
 
239
+ #: inc/php/page.php:151
240
+ msgid "It's not working. What could be wrong?"
241
+ msgstr ""
242
 
243
+ #: inc/php/page.php:152
244
+ msgid ""
245
+ "As with every plugin, it's possible that things don't work. The most common reason for this is a web browser's cache. "
246
+ "Every web browser stores a cache of the websites you visit (pages, images, and etc.) to reduce bandwidth usage and server "
247
+ "load. This is called the browser's cache.​ Clearing your browser's cache may solve the problem."
248
+ msgstr ""
249
 
250
+ #: inc/php/page.php:153
251
+ msgid ""
252
+ "It's impossible to tell what could be wrong exactly, but if you post a support request in the plugin's support forum on "
253
+ "WordPress.org, I'd be happy to give it a look and try to help out. Please include as much information as possible, "
254
+ "including a link to your website where the problem can be seen."
255
+ msgstr ""
256
 
257
+ #: inc/php/page.php:155
258
+ msgid "What to do if this plugin caused the white screen (WSOD)?"
259
+ msgstr ""
260
 
261
+ #: inc/php/page.php:156
262
+ msgid ""
263
+ "This plugin is not perfect, so there are times when the entered custom code causes the error and white screen (WSOD). "
264
+ "This is due to the fact that your custom code has a syntax error that this plugin could not detect. If this happened with "
265
+ "you then do the following and all will be fine."
266
+ msgstr ""
267
 
268
+ #: inc/php/page.php:158
269
+ msgid ""
270
+ "Via FTP, go to the plugin folder (in <code>wp-content/plugins/my-custom-functions/</code>). Rename the \"START\" file to "
271
+ "\"STOP\"."
272
+ msgstr ""
273
 
274
+ #: inc/php/page.php:159
275
+ msgid "Return to the plugin settings page."
276
+ msgstr ""
277
 
278
+ #: inc/php/page.php:160
279
+ msgid "Edit/fix your custom code that you entered before the crash."
280
+ msgstr ""
281
 
282
+ #: inc/php/page.php:161
283
+ msgid "Rename the \"STOP\" file to \"START\" and you're done!"
284
+ msgstr ""
285
 
286
+ #: inc/php/page.php:163
287
+ msgid ""
288
+ "This plugin stored you entered code in the Database of your website. For getting your code, you also can go to the "
289
+ "<code>Database</code> &#10145; Table <code>wp_options</code> &#10145; Option <code>anarcho_cfunctions_settings</code> "
290
+ "&#10145; <code>option_value</code>."
291
+ msgstr ""
292
 
293
+ #: inc/php/page.php:165
294
+ msgid "Where to report bug if found?"
295
+ msgstr ""
296
 
297
+ #: inc/php/page.php:167
298
+ #, php-format
299
+ msgid "Please visit the %s Dedicated Plugin Page on GitHub %s and report."
300
+ msgstr ""
301
 
302
+ #: inc/php/page.php:173
303
+ msgid "Where to share any ideas or suggestions to make the plugin better?"
304
+ msgstr ""
305
 
306
+ #: inc/php/page.php:175
307
+ #, php-format
308
+ msgid "Any suggestions are very welcome! Please send me an email to %s arthurgareginyan@gmail.com %s. Thank you!"
309
+ msgstr ""
310
 
311
+ #: inc/php/page.php:181
312
+ msgid "I love this plugin! Can I help somehow?"
313
+ msgstr ""
314
 
315
+ #: inc/php/page.php:183
316
+ #, php-format
317
+ msgid ""
318
+ "Yes, any financial contributions are welcome! Just visit %s my website %s, click on the donate button, and thank you!"
319
+ msgstr ""
320
 
321
+ #: inc/php/settings.php:21
322
+ msgid "About"
323
+ msgstr "Acerca de"
324
 
325
+ #: inc/php/settings.php:23
326
+ msgid "This plugin allows you to easily and safely add your custom functions (PHP code) to your website."
327
+ msgstr ""
328
 
329
+ #: inc/php/settings.php:28
330
+ msgid "Upgrade"
331
+ msgstr ""
332
 
333
+ #: inc/php/settings.php:39 inc/php/settings.php:92
334
+ msgid ""
335
+ "I'm an independent developer, without a regular income, so every little contribution helps cover my costs and lets me "
336
+ "spend more time building things for people like you to enjoy."
337
+ msgstr ""
338
+ "Soy un desarrollador independiente, sin ingresos fijos, por lo que cualquier contribución, por pequeña que sea, me ayuda "
339
+ "a cubrir mis gastos y me permite dedicar más tiempo para construir cosas que pueda disfrutar gente como tú."
340
 
341
+ #: inc/php/settings.php:40 inc/php/settings.php:93
342
+ msgid "Donate with PayPal"
343
+ msgstr ""
344
 
345
+ #: inc/php/settings.php:41 inc/php/settings.php:94
346
+ msgid "Thanks for your support!"
347
+ msgstr "¡Gracias por su colaboración!"
348
 
349
+ #: inc/php/settings.php:46
350
+ msgid "Help"
351
+ msgstr "Ayuda"
352
 
353
+ #: inc/php/settings.php:48
354
+ msgid "Got something to say? Need help?"
355
+ msgstr "¿Tienes algo que decir? ¿Necesitas ayuda?"
356
 
357
+ #: inc/php/settings.php:76
358
+ msgid "Functions (PHP code)"
359
+ msgstr ""
360
 
361
+ #: inc/php/settings.php:87
362
+ msgid "Save Changes"
363
+ msgstr "Guardar los cambios"
364
 
365
+ #. Plugin URI of the plugin/theme
366
+ msgid "https://github.com/ArthurGareginyan/my-custom-functions"
367
+ msgstr ""
368
 
369
+ #. Description of the plugin/theme
370
+ msgid ""
371
+ "Easily and safely add your custom functions (PHP code) directly out of your WordPress Dashboard without need of an "
372
+ "external editor."
373
+ msgstr ""
374
 
375
+ #. Author of the plugin/theme
376
+ msgid "Arthur Gareginyan"
377
+ msgstr ""
378
 
379
+ #. Author URI of the plugin/theme
380
+ msgid "http://www.arthurgareginyan.com"
381
+ msgstr ""
382
 
383
+ #~ msgid "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur Gareginyan</a>"
384
+ #~ msgstr "por <a href=“http://www.arthurgareginyan.com” target=“_blank”>Arthur Gareginyan</a>"
385
 
386
+ #~ msgid "Using"
387
+ #~ msgstr "Uso"
languages/my-custom-functions-fr_FR.mo CHANGED
Binary file
languages/my-custom-functions-fr_FR.po CHANGED
@@ -1,94 +1,373 @@
1
  msgid ""
2
  msgstr ""
3
- "Plural-Forms: nplurals=2; plural=(n > 1);\n"
4
  "Project-Id-Version: My Custom Functions\n"
5
- "POT-Creation-Date: 2016-11-20 16:32+0100\n"
6
- "PO-Revision-Date: 2016-11-20 16:51+0100\n"
 
7
  "Language-Team: \n"
 
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "X-Generator: Poedit 1.8.7.1\n"
 
12
  "X-Poedit-Basepath: ..\n"
13
  "X-Poedit-WPHeader: my-custom-functions.php\n"
14
  "X-Poedit-SourceCharset: UTF-8\n"
15
  "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
16
  "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
17
  "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
18
- "Last-Translator: \n"
19
- "Language: fr_FR\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
- #: inc/php/settings_page.php:23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  msgid "Custom functions updated successfully."
25
  msgstr "Custom functions mis à jour avec succès"
26
 
27
- #: inc/php/settings_page.php:34
28
  msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
29
  msgstr ""
30
  "Désolé, mais votre code provoque une \"erreur fatale\" ; il n'est donc pas "
31
  "appliqué."
32
 
33
- #: inc/php/settings_page.php:35
34
  msgid "Please, check the code and try again."
35
  msgstr "Svp, vérifiez le code et réessayez."
36
 
37
- #. Plugin Name of the plugin/theme
38
- #: inc/php/settings_page.php:45 my-custom-functions.php:85
39
- msgid "My Custom Functions"
40
- msgstr "My Custom Functions"
 
 
 
 
 
 
 
 
41
 
42
- #: inc/php/settings_page.php:48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  msgid ""
44
- "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
45
- "Gareginyan</a>"
46
  msgstr ""
47
- "par <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
48
- "Gareginyan</a>"
49
 
50
- #: inc/php/settings_page.php:59
51
- msgid "About"
52
- msgstr "A propos"
53
 
54
- #: inc/php/settings_page.php:61
55
  msgid ""
56
- "This plugin allows you to easily and safely add your custome functions (PHP "
57
- "code) to your website."
 
 
 
 
58
  msgstr ""
59
- "Ce plugin vous permet d'ajouter facilement et en toute sécurité vos "
60
- "fonctions personnalisées (code PHP) au fichier functions.php de votre thème/"
61
- "site."
62
 
63
- #: inc/php/settings_page.php:66
64
- msgid "Using"
65
- msgstr "Mode d'emploi"
66
 
67
- #: inc/php/settings_page.php:68
68
  msgid ""
69
- "To use, enter your custom functions, then click \"Save Changes\". It's that "
70
- "simple!"
71
  msgstr ""
72
- "Pour utiliser ce plugin, entrez vos fonctions personnalisées, puis cliquez "
73
- "\"Enregistrer\". C'est aussi simple que ça !"
74
 
75
- #: inc/php/settings_page.php:73
76
- msgid "Help"
77
- msgstr "Aide"
 
 
78
 
79
- #: inc/php/settings_page.php:75
80
- msgid "Got something to say? Need help?"
81
- msgstr "Vous souhaitez nous contacter ? Vous avez besoin d'aide ?"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
- #: inc/php/settings_page.php:81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  msgid "Upgrade"
85
  msgstr "Evolution"
86
 
87
- #: inc/php/settings_page.php:90
88
- msgid "Donate"
89
- msgstr "Faire un don"
90
-
91
- #: inc/php/settings_page.php:92
92
  msgid ""
93
  "I'm an independent developer, without a regular income, so every little "
94
  "contribution helps cover my costs and lets me spend more time building "
@@ -98,33 +377,37 @@ msgstr ""
98
  "modeste contribution m'aide à couvrir les frais et me permet de consacrer "
99
  "plus de temps à créer des choses que vous appréciez."
100
 
101
- #: inc/php/settings_page.php:96
 
 
 
 
102
  msgid "Thanks for your support!"
103
  msgstr "Merci pour votre soutien !"
104
 
105
- #: inc/php/settings_page.php:120
 
 
 
 
 
 
 
 
106
  msgid "Functions (PHP code)"
107
  msgstr "Fonctions (code PHP)"
108
 
109
- #: inc/php/settings_page.php:131
110
  msgid "Save Changes"
111
  msgstr "Enregistrer"
112
 
113
- #: my-custom-functions.php:73
114
- msgid "Settings"
115
- msgstr "Réglages"
116
-
117
- #: my-custom-functions.php:85
118
- msgid "Custom Functions"
119
- msgstr "Custom Functions"
120
-
121
  #. Plugin URI of the plugin/theme
122
  msgid "https://github.com/ArthurGareginyan/my-custom-functions"
123
  msgstr "https://github.com/ArthurGareginyan/my-custom-functions"
124
 
125
  #. Description of the plugin/theme
126
  msgid ""
127
- "Easily and safely add your custome functions (PHP code) directly out of your "
128
  "WordPress Dashboard without need of an external editor."
129
  msgstr ""
130
  "Ajoutez facilement et en toute sécurité vos fonctions personnalisées (code "
@@ -138,3 +421,20 @@ msgstr "Arthur Gareginyan"
138
  #. Author URI of the plugin/theme
139
  msgid "http://www.arthurgareginyan.com"
140
  msgstr "http://www.arthurgareginyan.com"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
 
3
  "Project-Id-Version: My Custom Functions\n"
4
+ "POT-Creation-Date: 2017-05-07 13:23+0300\n"
5
+ "PO-Revision-Date: 2017-05-07 13:23+0300\n"
6
+ "Last-Translator: \n"
7
  "Language-Team: \n"
8
+ "Language: fr_FR\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
13
+ "X-Generator: Poedit 1.8.4\n"
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-WPHeader: my-custom-functions.php\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
  "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
19
  "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
 
 
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
+ #: inc/php/core.php:31
24
+ msgid "Settings"
25
+ msgstr "Réglages"
26
+
27
+ #: inc/php/core.php:43 inc/php/core.php:60
28
+ msgid "Upgrade to PRO"
29
+ msgstr ""
30
+
31
+ #: inc/php/core.php:59
32
+ msgid "Donate"
33
+ msgstr "Faire un don"
34
+
35
+ #. Plugin Name of the plugin/theme
36
+ #: inc/php/core.php:75 inc/php/page.php:27
37
+ msgid "My Custom Functions"
38
+ msgstr "My Custom Functions"
39
+
40
+ #: inc/php/core.php:75
41
+ msgid "Custom Functions"
42
+ msgstr "Custom Functions"
43
+
44
+ #: inc/php/messages.php:30
45
+ msgid "Hello. I'm Arthur, the author of this plugin."
46
+ msgstr ""
47
+
48
+ #: inc/php/messages.php:32
49
+ #, php-format
50
+ msgid "Thank you for installing my plugin! I hope you will love it %s"
51
+ msgstr ""
52
+
53
+ #: inc/php/messages.php:67
54
+ msgid "You have installed an old version of this plugin."
55
+ msgstr ""
56
+
57
+ #: inc/php/messages.php:68
58
+ msgid "Please update the plugin to the latest version, and all will be fine."
59
+ msgstr ""
60
+
61
+ #: inc/php/messages.php:92
62
  msgid "Custom functions updated successfully."
63
  msgstr "Custom functions mis à jour avec succès"
64
 
65
+ #: inc/php/messages.php:110
66
  msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
67
  msgstr ""
68
  "Désolé, mais votre code provoque une \"erreur fatale\" ; il n'est donc pas "
69
  "appliqué."
70
 
71
+ #: inc/php/messages.php:111
72
  msgid "Please, check the code and try again."
73
  msgstr "Svp, vérifiez le code et réessayez."
74
 
75
+ #: inc/php/page.php:30
76
+ #, php-format
77
+ msgid "by %s Arthur Gareginyan %s"
78
+ msgstr "par %s Arthur Gareginyan %s"
79
+
80
+ #: inc/php/page.php:42
81
+ msgid "Main"
82
+ msgstr ""
83
+
84
+ #: inc/php/page.php:43 inc/php/page.php:63
85
+ msgid "Usage"
86
+ msgstr ""
87
 
88
+ #: inc/php/page.php:44
89
+ msgid "F.A.Q."
90
+ msgstr ""
91
+
92
+ #: inc/php/page.php:45 inc/php/page.php:197
93
+ msgid "Author"
94
+ msgstr ""
95
+
96
+ #: inc/php/page.php:46 inc/php/page.php:206 inc/php/settings.php:37
97
+ #: inc/php/settings.php:90
98
+ msgid "Support"
99
+ msgstr ""
100
+
101
+ #: inc/php/page.php:47
102
+ msgid "Family"
103
+ msgstr ""
104
+
105
+ #: inc/php/page.php:65
106
  msgid ""
107
+ "To add your custom functions (the PHP code) to your website, simply follow "
108
+ "these steps:"
109
  msgstr ""
 
 
110
 
111
+ #: inc/php/page.php:67
112
+ msgid "Go to the \"Main\" tab."
113
+ msgstr ""
114
 
115
+ #: inc/php/page.php:68
116
  msgid ""
117
+ "Add your PHP code to the field, switch the toggle to the \"ON\" position and "
118
+ "click the \"Save Changes\" button."
119
+ msgstr ""
120
+
121
+ #: inc/php/page.php:69
122
+ msgid "Example of PHP code:"
123
  msgstr ""
 
 
 
124
 
125
+ #: inc/php/page.php:75 inc/php/page.php:76 inc/php/page.php:80
126
+ msgid "Note!"
127
+ msgstr ""
128
 
129
+ #: inc/php/page.php:75
130
  msgid ""
131
+ "Please do not wrap your PHP code in the <code>&lt;?php</code>...<code>?&gt;</"
132
+ "code> HTML tags."
133
  msgstr ""
 
 
134
 
135
+ #: inc/php/page.php:76
136
+ msgid ""
137
+ "Before use, please read the instructions on the F.A.Q. tab on what to do in "
138
+ "case of a website crash."
139
+ msgstr ""
140
 
141
+ #: inc/php/page.php:78
142
+ msgid "Enjoy the result of applying your PHP code."
143
+ msgstr ""
144
+
145
+ #: inc/php/page.php:78
146
+ msgid "It's that simple!"
147
+ msgstr ""
148
+
149
+ #: inc/php/page.php:80
150
+ msgid "If you want more options then tell me and I will be happy to add it."
151
+ msgstr ""
152
+
153
+ #: inc/php/page.php:89
154
+ msgid "Frequently Asked Questions"
155
+ msgstr ""
156
+
157
+ #: inc/php/page.php:111
158
+ msgid "Will this plugin work on my WordPress.COM website?"
159
+ msgstr ""
160
+
161
+ #: inc/php/page.php:112
162
+ msgid ""
163
+ "Sorry, this plugin is available for use only on self-hosted (WordPress.ORG) "
164
+ "websites."
165
+ msgstr ""
166
+
167
+ #: inc/php/page.php:114
168
+ msgid "Can I use this plugin on my language?"
169
+ msgstr ""
170
+
171
+ #: inc/php/page.php:116
172
+ #, php-format
173
+ msgid ""
174
+ "Yes. But If your language is not available then you can make one. This "
175
+ "plugin is ready for translation. The<code>.pot</code>file is included and "
176
+ "placed in the <code>languages</code> folder. Many of plugin users would be "
177
+ "delighted if you shared your translation with the community. Just send the "
178
+ "translation files (<code>*.po, *.mo</code>) to me at the %s and I will "
179
+ "include the translation within the next plugin update."
180
+ msgstr ""
181
+
182
+ #: inc/php/page.php:121
183
+ msgid "How does it work?"
184
+ msgstr ""
185
+
186
+ #: inc/php/page.php:122
187
+ msgid ""
188
+ "On the \"Settings\" tab, add your PHP code to the field, switch the toggle "
189
+ "to the \"ON\" position and click the \"Save Changes\" button. Enjoy the "
190
+ "result of applying your PHP code. It's that simple!"
191
+ msgstr ""
192
+
193
+ #: inc/php/page.php:124
194
+ msgid "Can I use HTML/CSS/JS code integrated in PHP code?"
195
+ msgstr ""
196
+
197
+ #: inc/php/page.php:125
198
+ msgid "Yes. But you need to do it properly, like this:"
199
+ msgstr ""
200
+
201
+ #: inc/php/page.php:135
202
+ msgid "How much of PHP code (characters) I can enter in the text field?"
203
+ msgstr ""
204
+
205
+ #: inc/php/page.php:136
206
+ msgid "I don't limit the number of characters."
207
+ msgstr ""
208
+
209
+ #: inc/php/page.php:138
210
+ msgid ""
211
+ "On the plugin settings page, an error message appears. What could be wrong?"
212
+ msgstr ""
213
 
214
+ #: inc/php/page.php:139
215
+ msgid "Here are a few of the most likely causes of the error message:"
216
+ msgstr ""
217
+
218
+ #: inc/php/page.php:140
219
+ msgid ""
220
+ "1. You make a syntax error in the code that you have entered. Check the "
221
+ "syntax of your code and try again."
222
+ msgstr ""
223
+
224
+ #: inc/php/page.php:141
225
+ msgid ""
226
+ "2. You entered two functions with the same name. Use a unique names for your "
227
+ "functions."
228
+ msgstr ""
229
+
230
+ #: inc/php/page.php:142
231
+ msgid ""
232
+ "3. You have entered function with a name that is already occupied by another "
233
+ "function. Use a unique name for your function."
234
+ msgstr ""
235
+
236
+ #: inc/php/page.php:143
237
+ msgid ""
238
+ "4. You are trying to overwrite an existing function (of WordPress, theme, or "
239
+ "plugin). Instead, use filters and hooks."
240
+ msgstr ""
241
+
242
+ #: inc/php/page.php:145
243
+ msgid "Does this plugin requires any modification of the theme?"
244
+ msgstr ""
245
+
246
+ #: inc/php/page.php:146
247
+ msgid ""
248
+ "Absolutely not. This plugin is configurable entirely from the plugin "
249
+ "settings page."
250
+ msgstr ""
251
+
252
+ #: inc/php/page.php:148
253
+ msgid "Does this require any knowledge of HTML or CSS?"
254
+ msgstr ""
255
+
256
+ #: inc/php/page.php:149
257
+ msgid ""
258
+ "This plugin can be configured with no knowledge of HTML or CSS, using an "
259
+ "easy-to-use plugin settings page. But you need to know the HTML or CSS in "
260
+ "order to add/remove/modify the HTML or CSS code by using this plugin."
261
+ msgstr ""
262
+
263
+ #: inc/php/page.php:151
264
+ msgid "It's not working. What could be wrong?"
265
+ msgstr ""
266
+
267
+ #: inc/php/page.php:152
268
+ msgid ""
269
+ "As with every plugin, it's possible that things don't work. The most common "
270
+ "reason for this is a web browser's cache. Every web browser stores a cache "
271
+ "of the websites you visit (pages, images, and etc.) to reduce bandwidth "
272
+ "usage and server load. This is called the browser's cache.​ Clearing your "
273
+ "browser's cache may solve the problem."
274
+ msgstr ""
275
+
276
+ #: inc/php/page.php:153
277
+ msgid ""
278
+ "It's impossible to tell what could be wrong exactly, but if you post a "
279
+ "support request in the plugin's support forum on WordPress.org, I'd be happy "
280
+ "to give it a look and try to help out. Please include as much information as "
281
+ "possible, including a link to your website where the problem can be seen."
282
+ msgstr ""
283
+
284
+ #: inc/php/page.php:155
285
+ msgid "What to do if this plugin caused the white screen (WSOD)?"
286
+ msgstr ""
287
+
288
+ #: inc/php/page.php:156
289
+ msgid ""
290
+ "This plugin is not perfect, so there are times when the entered custom code "
291
+ "causes the error and white screen (WSOD). This is due to the fact that your "
292
+ "custom code has a syntax error that this plugin could not detect. If this "
293
+ "happened with you then do the following and all will be fine."
294
+ msgstr ""
295
+
296
+ #: inc/php/page.php:158
297
+ msgid ""
298
+ "Via FTP, go to the plugin folder (in <code>wp-content/plugins/my-custom-"
299
+ "functions/</code>). Rename the \"START\" file to \"STOP\"."
300
+ msgstr ""
301
+
302
+ #: inc/php/page.php:159
303
+ msgid "Return to the plugin settings page."
304
+ msgstr ""
305
+
306
+ #: inc/php/page.php:160
307
+ msgid "Edit/fix your custom code that you entered before the crash."
308
+ msgstr ""
309
+
310
+ #: inc/php/page.php:161
311
+ msgid "Rename the \"STOP\" file to \"START\" and you're done!"
312
+ msgstr ""
313
+
314
+ #: inc/php/page.php:163
315
+ msgid ""
316
+ "This plugin stored you entered code in the Database of your website. For "
317
+ "getting your code, you also can go to the <code>Database</code> &#10145; "
318
+ "Table <code>wp_options</code> &#10145; Option "
319
+ "<code>anarcho_cfunctions_settings</code> &#10145; <code>option_value</code>."
320
+ msgstr ""
321
+
322
+ #: inc/php/page.php:165
323
+ msgid "Where to report bug if found?"
324
+ msgstr ""
325
+
326
+ #: inc/php/page.php:167
327
+ #, php-format
328
+ msgid "Please visit the %s Dedicated Plugin Page on GitHub %s and report."
329
+ msgstr ""
330
+
331
+ #: inc/php/page.php:173
332
+ msgid "Where to share any ideas or suggestions to make the plugin better?"
333
+ msgstr ""
334
+
335
+ #: inc/php/page.php:175
336
+ #, php-format
337
+ msgid ""
338
+ "Any suggestions are very welcome! Please send me an email to %s "
339
+ "arthurgareginyan@gmail.com %s. Thank you!"
340
+ msgstr ""
341
+
342
+ #: inc/php/page.php:181
343
+ msgid "I love this plugin! Can I help somehow?"
344
+ msgstr ""
345
+
346
+ #: inc/php/page.php:183
347
+ #, php-format
348
+ msgid ""
349
+ "Yes, any financial contributions are welcome! Just visit %s my website %s, "
350
+ "click on the donate button, and thank you!"
351
+ msgstr ""
352
+
353
+ #: inc/php/settings.php:21
354
+ msgid "About"
355
+ msgstr "A propos"
356
+
357
+ #: inc/php/settings.php:23
358
+ msgid ""
359
+ "This plugin allows you to easily and safely add your custom functions (PHP "
360
+ "code) to your website."
361
+ msgstr ""
362
+ "Ce plugin vous permet d'ajouter facilement et en toute sécurité vos "
363
+ "fonctions personnalisées (code PHP) au fichier functions.php de votre thème/"
364
+ "site."
365
+
366
+ #: inc/php/settings.php:28
367
  msgid "Upgrade"
368
  msgstr "Evolution"
369
 
370
+ #: inc/php/settings.php:39 inc/php/settings.php:92
 
 
 
 
371
  msgid ""
372
  "I'm an independent developer, without a regular income, so every little "
373
  "contribution helps cover my costs and lets me spend more time building "
377
  "modeste contribution m'aide à couvrir les frais et me permet de consacrer "
378
  "plus de temps à créer des choses que vous appréciez."
379
 
380
+ #: inc/php/settings.php:40 inc/php/settings.php:93
381
+ msgid "Donate with PayPal"
382
+ msgstr ""
383
+
384
+ #: inc/php/settings.php:41 inc/php/settings.php:94
385
  msgid "Thanks for your support!"
386
  msgstr "Merci pour votre soutien !"
387
 
388
+ #: inc/php/settings.php:46
389
+ msgid "Help"
390
+ msgstr "Aide"
391
+
392
+ #: inc/php/settings.php:48
393
+ msgid "Got something to say? Need help?"
394
+ msgstr "Vous souhaitez nous contacter ? Vous avez besoin d'aide ?"
395
+
396
+ #: inc/php/settings.php:76
397
  msgid "Functions (PHP code)"
398
  msgstr "Fonctions (code PHP)"
399
 
400
+ #: inc/php/settings.php:87
401
  msgid "Save Changes"
402
  msgstr "Enregistrer"
403
 
 
 
 
 
 
 
 
 
404
  #. Plugin URI of the plugin/theme
405
  msgid "https://github.com/ArthurGareginyan/my-custom-functions"
406
  msgstr "https://github.com/ArthurGareginyan/my-custom-functions"
407
 
408
  #. Description of the plugin/theme
409
  msgid ""
410
+ "Easily and safely add your custom functions (PHP code) directly out of your "
411
  "WordPress Dashboard without need of an external editor."
412
  msgstr ""
413
  "Ajoutez facilement et en toute sécurité vos fonctions personnalisées (code "
421
  #. Author URI of the plugin/theme
422
  msgid "http://www.arthurgareginyan.com"
423
  msgstr "http://www.arthurgareginyan.com"
424
+
425
+ #~ msgid ""
426
+ #~ "To use, enter your custom functions, then click \"Save Changes\". It's "
427
+ #~ "that simple!"
428
+ #~ msgstr ""
429
+ #~ "Pour utiliser ce plugin, entrez vos fonctions personnalisées, puis "
430
+ #~ "cliquez \"Enregistrer\". C'est aussi simple que ça !"
431
+
432
+ #~ msgid ""
433
+ #~ "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
434
+ #~ "Gareginyan</a>"
435
+ #~ msgstr ""
436
+ #~ "par <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
437
+ #~ "Gareginyan</a>"
438
+
439
+ #~ msgid "Using"
440
+ #~ msgstr "Mode d'emploi"
languages/my-custom-functions-ru_RU.mo CHANGED
Binary file
languages/my-custom-functions-ru_RU.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: My Custom Functions\n"
4
- "POT-Creation-Date: 2016-11-08 04:33+0300\n"
5
- "PO-Revision-Date: 2016-11-08 04:33+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: ru\n"
@@ -21,73 +21,364 @@ msgstr ""
21
  "X-Poedit-SearchPath-0: .\n"
22
  "X-Poedit-SearchPathExcluded-0: *.js\n"
23
 
24
- #: inc/php/settings_page.php:23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  msgid "Custom functions updated successfully."
26
  msgstr "Пользовательские функции успешно обновлены."
27
 
28
- #: inc/php/settings_page.php:34
29
  msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
30
  msgstr ""
31
  "Извините, но ваш код вызывает \"Fatal error\", так что он не будет применён!"
32
 
33
- #: inc/php/settings_page.php:35
34
  msgid "Please, check the code and try again."
35
  msgstr "Пожалуйста, проверьте код и попробуйте ещё раз."
36
 
37
- #. Plugin Name of the plugin/theme
38
- #: inc/php/settings_page.php:45 my-custom-functions.php:85
39
- msgid "My Custom Functions"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  msgstr ""
41
 
42
- #: inc/php/settings_page.php:48
 
 
 
 
43
  msgid ""
44
- "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
45
- "Gareginyan</a>"
46
  msgstr ""
47
- "от <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Артур "
48
- "Гарегинян</a>"
49
 
50
- #: inc/php/settings_page.php:59
51
- msgid "About"
52
- msgstr "О плагине"
 
 
 
 
53
 
54
- #: inc/php/settings_page.php:61
55
  msgid ""
56
- "This plugin allows you to easily and safely add your custome functions (PHP "
57
- "code) to your website."
 
 
 
 
 
 
 
 
 
 
58
  msgstr ""
59
- "Этот плагин даёт вам возможность легко и безопасно добавлять ваши "
60
- "пользовательские функции (PHP код) на ваш веб-сайт."
61
 
62
- #: inc/php/settings_page.php:66
63
- msgid "Using"
64
- msgstr "Как пользоваться"
65
 
66
- #: inc/php/settings_page.php:68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  msgid ""
68
- "To use, enter your custom functions, then click \"Save Changes\". It's that "
69
- "simple!"
70
  msgstr ""
71
- "Для использования, введите ваши пользовательские функции, затем нажмите "
72
- "кнопку “Сохранить изменения”. Это так просто!"
73
 
74
- #: inc/php/settings_page.php:73
75
- msgid "Help"
76
- msgstr "Помощь"
77
 
78
- #: inc/php/settings_page.php:75
79
- msgid "Got something to say? Need help?"
80
- msgstr "Есть что сказать? Нужна помощь?"
 
 
 
 
 
 
 
81
 
82
- #: inc/php/settings_page.php:81
83
- msgid "Upgrade"
 
 
 
 
 
 
 
84
  msgstr ""
85
 
86
- #: inc/php/settings_page.php:90
87
- msgid "Donate"
88
- msgstr "Поддержать разработку"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
- #: inc/php/settings_page.php:92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  msgid ""
92
  "I'm an independent developer, without a regular income, so every little "
93
  "contribution helps cover my costs and lets me spend more time building "
@@ -97,33 +388,37 @@ msgstr ""
97
  "вклад помогает мне покрыть затраты и позволяет тратить больше времени на "
98
  "создание программ для людей как вы."
99
 
100
- #: inc/php/settings_page.php:96
 
 
 
 
101
  msgid "Thanks for your support!"
102
  msgstr "Спасибо за вашу поддержку!"
103
 
104
- #: inc/php/settings_page.php:120
 
 
 
 
 
 
 
 
105
  msgid "Functions (PHP code)"
106
  msgstr "Функции (PHP код)"
107
 
108
- #: inc/php/settings_page.php:131
109
  msgid "Save Changes"
110
  msgstr "Сохранить изменения"
111
 
112
- #: my-custom-functions.php:73
113
- msgid "Settings"
114
- msgstr "Настройки"
115
-
116
- #: my-custom-functions.php:85
117
- msgid "Custom Functions"
118
- msgstr "Пользовательские Функции"
119
-
120
  #. Plugin URI of the plugin/theme
121
  msgid "https://github.com/ArthurGareginyan/my-custom-functions"
122
- msgstr ""
123
 
124
  #. Description of the plugin/theme
125
  msgid ""
126
- "Easily and safely add your custome functions (PHP code) directly out of your "
127
  "WordPress Dashboard without need of an external editor."
128
  msgstr ""
129
  "Просто и безопасно добавляйте ваши пользовательские функции (PHP код) "
@@ -136,7 +431,24 @@ msgstr "Артур Гарегинян"
136
 
137
  #. Author URI of the plugin/theme
138
  msgid "http://www.arthurgareginyan.com"
139
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
 
141
  #~ msgid ""
142
  #~ "If you like this plugin and find it useful, please help me to make this "
@@ -178,11 +490,6 @@ msgstr ""
178
  #~ "от <a href=“http://www.arthurgareginyan.com” target=“_blank”>Артур "
179
  #~ "“Berserkr” Гарегинян</a>"
180
 
181
- #~ msgid "If you want more options then tell me and I will be happy to add it."
182
- #~ msgstr ""
183
- #~ "Если вы хотите больше опций, то скажите мне об этом и я буду счастлив "
184
- #~ "добавить их."
185
-
186
  #~ msgid "Freelance"
187
  #~ msgstr "Фриланс"
188
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: My Custom Functions\n"
4
+ "POT-Creation-Date: 2017-05-07 13:23+0300\n"
5
+ "PO-Revision-Date: 2017-05-07 17:37+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: ru\n"
21
  "X-Poedit-SearchPath-0: .\n"
22
  "X-Poedit-SearchPathExcluded-0: *.js\n"
23
 
24
+ #: inc/php/core.php:31
25
+ msgid "Settings"
26
+ msgstr "Настройки"
27
+
28
+ #: inc/php/core.php:43 inc/php/core.php:60
29
+ msgid "Upgrade to PRO"
30
+ msgstr ""
31
+
32
+ #: inc/php/core.php:59
33
+ msgid "Donate"
34
+ msgstr "Поддержать разработку"
35
+
36
+ #. Plugin Name of the plugin/theme
37
+ #: inc/php/core.php:75 inc/php/page.php:27
38
+ msgid "My Custom Functions"
39
+ msgstr "My Custom Functions"
40
+
41
+ #: inc/php/core.php:75
42
+ msgid "Custom Functions"
43
+ msgstr "Пользовательские Функции"
44
+
45
+ #: inc/php/messages.php:30
46
+ msgid "Hello. I'm Arthur, the author of this plugin."
47
+ msgstr "Привет! Я Артур, автор этого плагина."
48
+
49
+ #: inc/php/messages.php:32
50
+ #, php-format
51
+ msgid "Thank you for installing my plugin! I hope you will love it %s"
52
+ msgstr "Спасибо, что установили мой плагин! Надеюсь, что он вам полюбится %s"
53
+
54
+ #: inc/php/messages.php:67
55
+ msgid "You have installed an old version of this plugin."
56
+ msgstr "Вы установили устаревшую версию этого плагина."
57
+
58
+ #: inc/php/messages.php:68
59
+ msgid "Please update the plugin to the latest version, and all will be fine."
60
+ msgstr "Пожалуйста, обновите плагин до последней версии и всё будет отлично."
61
+
62
+ #: inc/php/messages.php:92
63
  msgid "Custom functions updated successfully."
64
  msgstr "Пользовательские функции успешно обновлены."
65
 
66
+ #: inc/php/messages.php:110
67
  msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
68
  msgstr ""
69
  "Извините, но ваш код вызывает \"Fatal error\", так что он не будет применён!"
70
 
71
+ #: inc/php/messages.php:111
72
  msgid "Please, check the code and try again."
73
  msgstr "Пожалуйста, проверьте код и попробуйте ещё раз."
74
 
75
+ #: inc/php/page.php:30
76
+ #, php-format
77
+ msgid "by %s Arthur Gareginyan %s"
78
+ msgstr "от %s Артура Гарегинян %s"
79
+
80
+ #: inc/php/page.php:42
81
+ msgid "Main"
82
+ msgstr "Главная"
83
+
84
+ #: inc/php/page.php:43 inc/php/page.php:63
85
+ msgid "Usage"
86
+ msgstr "Применение"
87
+
88
+ #: inc/php/page.php:44
89
+ msgid "F.A.Q."
90
+ msgstr "F.A.Q."
91
+
92
+ #: inc/php/page.php:45 inc/php/page.php:197
93
+ msgid "Author"
94
+ msgstr "Автор"
95
+
96
+ #: inc/php/page.php:46 inc/php/page.php:206 inc/php/settings.php:37
97
+ #: inc/php/settings.php:90
98
+ msgid "Support"
99
+ msgstr "Поддержка"
100
+
101
+ #: inc/php/page.php:47
102
+ msgid "Family"
103
+ msgstr "Семья"
104
+
105
+ #: inc/php/page.php:65
106
+ msgid ""
107
+ "To add your custom functions (the PHP code) to your website, simply follow "
108
+ "these steps:"
109
  msgstr ""
110
 
111
+ #: inc/php/page.php:67
112
+ msgid "Go to the \"Main\" tab."
113
+ msgstr "Перейдите на вкладку «Главная»."
114
+
115
+ #: inc/php/page.php:68
116
  msgid ""
117
+ "Add your PHP code to the field, switch the toggle to the \"ON\" position and "
118
+ "click the \"Save Changes\" button."
119
  msgstr ""
 
 
120
 
121
+ #: inc/php/page.php:69
122
+ msgid "Example of PHP code:"
123
+ msgstr "Пример кода PHP:"
124
+
125
+ #: inc/php/page.php:75 inc/php/page.php:76 inc/php/page.php:80
126
+ msgid "Note!"
127
+ msgstr "Примечание!"
128
 
129
+ #: inc/php/page.php:75
130
  msgid ""
131
+ "Please do not wrap your PHP code in the <code>&lt;?php</code>...<code>?&gt;</"
132
+ "code> HTML tags."
133
+ msgstr ""
134
+
135
+ #: inc/php/page.php:76
136
+ msgid ""
137
+ "Before use, please read the instructions on the F.A.Q. tab on what to do in "
138
+ "case of a website crash."
139
+ msgstr ""
140
+
141
+ #: inc/php/page.php:78
142
+ msgid "Enjoy the result of applying your PHP code."
143
  msgstr ""
 
 
144
 
145
+ #: inc/php/page.php:78
146
+ msgid "It's that simple!"
147
+ msgstr "Вот так просто!"
148
 
149
+ #: inc/php/page.php:80
150
+ msgid "If you want more options then tell me and I will be happy to add it."
151
+ msgstr ""
152
+ "Если вы хотите больше опций, то скажите мне об этом и я буду счастлив "
153
+ "добавить их."
154
+
155
+ #: inc/php/page.php:89
156
+ msgid "Frequently Asked Questions"
157
+ msgstr "Часто задаваемые вопросы"
158
+
159
+ #: inc/php/page.php:111
160
+ msgid "Will this plugin work on my WordPress.COM website?"
161
+ msgstr "Этот плагин будет работать на моем сайте WordPress.COM?"
162
+
163
+ #: inc/php/page.php:112
164
  msgid ""
165
+ "Sorry, this plugin is available for use only on self-hosted (WordPress.ORG) "
166
+ "websites."
167
  msgstr ""
168
+ "К сожалению, этот плагин доступен для использования только на самостоятельно "
169
+ "размещённых веб-сайтах (WordPress.ORG)."
170
 
171
+ #: inc/php/page.php:114
172
+ msgid "Can I use this plugin on my language?"
173
+ msgstr "Можно ли использовать этот плагин на моём языке?"
174
 
175
+ #: inc/php/page.php:116
176
+ #, php-format
177
+ msgid ""
178
+ "Yes. But If your language is not available then you can make one. This "
179
+ "plugin is ready for translation. The<code>.pot</code>file is included and "
180
+ "placed in the <code>languages</code> folder. Many of plugin users would be "
181
+ "delighted if you shared your translation with the community. Just send the "
182
+ "translation files (<code>*.po, *.mo</code>) to me at the %s and I will "
183
+ "include the translation within the next plugin update."
184
+ msgstr ""
185
 
186
+ #: inc/php/page.php:121
187
+ msgid "How does it work?"
188
+ msgstr "Как оно работает?"
189
+
190
+ #: inc/php/page.php:122
191
+ msgid ""
192
+ "On the \"Settings\" tab, add your PHP code to the field, switch the toggle "
193
+ "to the \"ON\" position and click the \"Save Changes\" button. Enjoy the "
194
+ "result of applying your PHP code. It's that simple!"
195
  msgstr ""
196
 
197
+ #: inc/php/page.php:124
198
+ msgid "Can I use HTML/CSS/JS code integrated in PHP code?"
199
+ msgstr ""
200
+
201
+ #: inc/php/page.php:125
202
+ msgid "Yes. But you need to do it properly, like this:"
203
+ msgstr ""
204
+
205
+ #: inc/php/page.php:135
206
+ msgid "How much of PHP code (characters) I can enter in the text field?"
207
+ msgstr ""
208
+
209
+ #: inc/php/page.php:136
210
+ msgid "I don't limit the number of characters."
211
+ msgstr ""
212
+
213
+ #: inc/php/page.php:138
214
+ msgid ""
215
+ "On the plugin settings page, an error message appears. What could be wrong?"
216
+ msgstr ""
217
+
218
+ #: inc/php/page.php:139
219
+ msgid "Here are a few of the most likely causes of the error message:"
220
+ msgstr ""
221
+
222
+ #: inc/php/page.php:140
223
+ msgid ""
224
+ "1. You make a syntax error in the code that you have entered. Check the "
225
+ "syntax of your code and try again."
226
+ msgstr ""
227
+
228
+ #: inc/php/page.php:141
229
+ msgid ""
230
+ "2. You entered two functions with the same name. Use a unique names for your "
231
+ "functions."
232
+ msgstr ""
233
+
234
+ #: inc/php/page.php:142
235
+ msgid ""
236
+ "3. You have entered function with a name that is already occupied by another "
237
+ "function. Use a unique name for your function."
238
+ msgstr ""
239
+
240
+ #: inc/php/page.php:143
241
+ msgid ""
242
+ "4. You are trying to overwrite an existing function (of WordPress, theme, or "
243
+ "plugin). Instead, use filters and hooks."
244
+ msgstr ""
245
+
246
+ #: inc/php/page.php:145
247
+ msgid "Does this plugin requires any modification of the theme?"
248
+ msgstr "Этот плагин требует изменения темы?"
249
 
250
+ #: inc/php/page.php:146
251
+ msgid ""
252
+ "Absolutely not. This plugin is configurable entirely from the plugin "
253
+ "settings page."
254
+ msgstr ""
255
+ "Абсолютно нет. Этот плагин настраивается полностью на странице настроек "
256
+ "плагина."
257
+
258
+ #: inc/php/page.php:148
259
+ msgid "Does this require any knowledge of HTML or CSS?"
260
+ msgstr "Требуются ли какие-либо знания HTML или CSS?"
261
+
262
+ #: inc/php/page.php:149
263
+ msgid ""
264
+ "This plugin can be configured with no knowledge of HTML or CSS, using an "
265
+ "easy-to-use plugin settings page. But you need to know the HTML or CSS in "
266
+ "order to add/remove/modify the HTML or CSS code by using this plugin."
267
+ msgstr ""
268
+ "Этот плагин можно настроить без знания HTML или CSS, с помощью простой в "
269
+ "использовании страницы настройки плагина. Но вам нужно знать HTML или CSS "
270
+ "для того, чтобы добавить/удалить/изменить код HTML или CSS, используя этот "
271
+ "плагин."
272
+
273
+ #: inc/php/page.php:151
274
+ msgid "It's not working. What could be wrong?"
275
+ msgstr "Оно не работает. Что может быть не так?"
276
+
277
+ #: inc/php/page.php:152
278
+ msgid ""
279
+ "As with every plugin, it's possible that things don't work. The most common "
280
+ "reason for this is a web browser's cache. Every web browser stores a cache "
281
+ "of the websites you visit (pages, images, and etc.) to reduce bandwidth "
282
+ "usage and server load. This is called the browser's cache.​ Clearing your "
283
+ "browser's cache may solve the problem."
284
+ msgstr ""
285
+
286
+ #: inc/php/page.php:153
287
+ msgid ""
288
+ "It's impossible to tell what could be wrong exactly, but if you post a "
289
+ "support request in the plugin's support forum on WordPress.org, I'd be happy "
290
+ "to give it a look and try to help out. Please include as much information as "
291
+ "possible, including a link to your website where the problem can be seen."
292
+ msgstr ""
293
+
294
+ #: inc/php/page.php:155
295
+ msgid "What to do if this plugin caused the white screen (WSOD)?"
296
+ msgstr ""
297
+
298
+ #: inc/php/page.php:156
299
+ msgid ""
300
+ "This plugin is not perfect, so there are times when the entered custom code "
301
+ "causes the error and white screen (WSOD). This is due to the fact that your "
302
+ "custom code has a syntax error that this plugin could not detect. If this "
303
+ "happened with you then do the following and all will be fine."
304
+ msgstr ""
305
+
306
+ #: inc/php/page.php:158
307
+ msgid ""
308
+ "Via FTP, go to the plugin folder (in <code>wp-content/plugins/my-custom-"
309
+ "functions/</code>). Rename the \"START\" file to \"STOP\"."
310
+ msgstr ""
311
+
312
+ #: inc/php/page.php:159
313
+ msgid "Return to the plugin settings page."
314
+ msgstr "Вернитесь на страницу настроек плагина."
315
+
316
+ #: inc/php/page.php:160
317
+ msgid "Edit/fix your custom code that you entered before the crash."
318
+ msgstr ""
319
+
320
+ #: inc/php/page.php:161
321
+ msgid "Rename the \"STOP\" file to \"START\" and you're done!"
322
+ msgstr "Переименуйте файл \"STOP\" в \"START\", и все готово!"
323
+
324
+ #: inc/php/page.php:163
325
+ msgid ""
326
+ "This plugin stored you entered code in the Database of your website. For "
327
+ "getting your code, you also can go to the <code>Database</code> &#10145; "
328
+ "Table <code>wp_options</code> &#10145; Option "
329
+ "<code>anarcho_cfunctions_settings</code> &#10145; <code>option_value</code>."
330
+ msgstr ""
331
+
332
+ #: inc/php/page.php:165
333
+ msgid "Where to report bug if found?"
334
+ msgstr "Где можно сообщить об ошибке?"
335
+
336
+ #: inc/php/page.php:167
337
+ #, php-format
338
+ msgid "Please visit the %s Dedicated Plugin Page on GitHub %s and report."
339
+ msgstr ""
340
+ "Пожалуйста, посетите %s страницу плагина на GitHub %s и сообщите об ошибке."
341
+
342
+ #: inc/php/page.php:173
343
+ msgid "Where to share any ideas or suggestions to make the plugin better?"
344
+ msgstr ""
345
+ "Где можно поделиться идеями или предложениями, чтобы сделать плагин лучше?"
346
+
347
+ #: inc/php/page.php:175
348
+ #, php-format
349
+ msgid ""
350
+ "Any suggestions are very welcome! Please send me an email to %s "
351
+ "arthurgareginyan@gmail.com %s. Thank you!"
352
+ msgstr ""
353
+
354
+ #: inc/php/page.php:181
355
+ msgid "I love this plugin! Can I help somehow?"
356
+ msgstr "Мне нравится этот плагин! Могу Я чем-то помочь?"
357
+
358
+ #: inc/php/page.php:183
359
+ #, php-format
360
+ msgid ""
361
+ "Yes, any financial contributions are welcome! Just visit %s my website %s, "
362
+ "click on the donate button, and thank you!"
363
+ msgstr ""
364
+
365
+ #: inc/php/settings.php:21
366
+ msgid "About"
367
+ msgstr "О плагине"
368
+
369
+ #: inc/php/settings.php:23
370
+ msgid ""
371
+ "This plugin allows you to easily and safely add your custom functions (PHP "
372
+ "code) to your website."
373
+ msgstr ""
374
+ "Этот плагин даёт вам возможность легко и безопасно добавлять ваши "
375
+ "пользовательские функции (PHP код) на ваш веб-сайт."
376
+
377
+ #: inc/php/settings.php:28
378
+ msgid "Upgrade"
379
+ msgstr ""
380
+
381
+ #: inc/php/settings.php:39 inc/php/settings.php:92
382
  msgid ""
383
  "I'm an independent developer, without a regular income, so every little "
384
  "contribution helps cover my costs and lets me spend more time building "
388
  "вклад помогает мне покрыть затраты и позволяет тратить больше времени на "
389
  "создание программ для людей как вы."
390
 
391
+ #: inc/php/settings.php:40 inc/php/settings.php:93
392
+ msgid "Donate with PayPal"
393
+ msgstr ""
394
+
395
+ #: inc/php/settings.php:41 inc/php/settings.php:94
396
  msgid "Thanks for your support!"
397
  msgstr "Спасибо за вашу поддержку!"
398
 
399
+ #: inc/php/settings.php:46
400
+ msgid "Help"
401
+ msgstr "Помощь"
402
+
403
+ #: inc/php/settings.php:48
404
+ msgid "Got something to say? Need help?"
405
+ msgstr "Есть что сказать? Нужна помощь?"
406
+
407
+ #: inc/php/settings.php:76
408
  msgid "Functions (PHP code)"
409
  msgstr "Функции (PHP код)"
410
 
411
+ #: inc/php/settings.php:87
412
  msgid "Save Changes"
413
  msgstr "Сохранить изменения"
414
 
 
 
 
 
 
 
 
 
415
  #. Plugin URI of the plugin/theme
416
  msgid "https://github.com/ArthurGareginyan/my-custom-functions"
417
+ msgstr "https://github.com/ArthurGareginyan/my-custom-functions"
418
 
419
  #. Description of the plugin/theme
420
  msgid ""
421
+ "Easily and safely add your custom functions (PHP code) directly out of your "
422
  "WordPress Dashboard without need of an external editor."
423
  msgstr ""
424
  "Просто и безопасно добавляйте ваши пользовательские функции (PHP код) "
431
 
432
  #. Author URI of the plugin/theme
433
  msgid "http://www.arthurgareginyan.com"
434
+ msgstr "http://www.arthurgareginyan.com"
435
+
436
+ #~ msgid ""
437
+ #~ "To use, enter your custom functions, then click \"Save Changes\". It's "
438
+ #~ "that simple!"
439
+ #~ msgstr ""
440
+ #~ "Для использования, введите ваши пользовательские функции, затем нажмите "
441
+ #~ "кнопку “Сохранить изменения”. Это так просто!"
442
+
443
+ #~ msgid ""
444
+ #~ "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
445
+ #~ "Gareginyan</a>"
446
+ #~ msgstr ""
447
+ #~ "от <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Артур "
448
+ #~ "Гарегинян</a>"
449
+
450
+ #~ msgid "Using"
451
+ #~ msgstr "Как пользоваться"
452
 
453
  #~ msgid ""
454
  #~ "If you like this plugin and find it useful, please help me to make this "
490
  #~ "от <a href=“http://www.arthurgareginyan.com” target=“_blank”>Артур "
491
  #~ "“Berserkr” Гарегинян</a>"
492
 
 
 
 
 
 
493
  #~ msgid "Freelance"
494
  #~ msgstr "Фриланс"
495
 
languages/my-custom-functions-zh_TW.mo CHANGED
Binary file
languages/my-custom-functions-zh_TW.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: My Custom Functions\n"
4
- "POT-Creation-Date: 2016-11-08 04:33+0300\n"
5
- "PO-Revision-Date: 2016-11-08 04:33+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: zh_TW\n"
@@ -20,100 +20,386 @@ msgstr ""
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
- #: inc/php/settings_page.php:23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  msgid "Custom functions updated successfully."
25
  msgstr "自訂功能已成功更新"
26
 
27
- #: inc/php/settings_page.php:34
28
  msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
29
  msgstr "抱歉!您的程式碼造成了「嚴重錯誤」,所以並沒有套用它!"
30
 
31
- #: inc/php/settings_page.php:35
32
  msgid "Please, check the code and try again."
33
  msgstr "請重新檢查程式碼再試一次"
34
 
35
- #. Plugin Name of the plugin/theme
36
- #: inc/php/settings_page.php:45 my-custom-functions.php:85
37
- msgid "My Custom Functions"
38
- msgstr "我的自訂功能"
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
- #: inc/php/settings_page.php:48
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  msgid ""
42
- "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
43
- "Gareginyan</a>"
44
  msgstr ""
45
 
46
- #: inc/php/settings_page.php:59
47
- msgid "About"
48
- msgstr "關於"
49
 
50
- #: inc/php/settings_page.php:61
51
  msgid ""
52
- "This plugin allows you to easily and safely add your custome functions (PHP "
53
- "code) to your website."
54
  msgstr ""
55
 
56
- #: inc/php/settings_page.php:66
57
- msgid "Using"
58
- msgstr "用法"
59
 
60
- #: inc/php/settings_page.php:68
 
 
 
 
61
  msgid ""
62
- "To use, enter your custom functions, then click \"Save Changes\". It's that "
63
- "simple!"
64
  msgstr ""
65
- "要使用它,請輸入您的自訂功能然後按下「儲存變更」就可以了,就是這麼簡單!"
66
 
67
- #: inc/php/settings_page.php:73
68
- msgid "Help"
69
- msgstr "幫助"
 
 
70
 
71
- #: inc/php/settings_page.php:75
72
- msgid "Got something to say? Need help?"
73
  msgstr ""
74
 
75
- #: inc/php/settings_page.php:81
76
- msgid "Upgrade"
77
  msgstr ""
78
 
79
- #: inc/php/settings_page.php:90
80
- msgid "Donate"
81
- msgstr "捐款"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
- #: inc/php/settings_page.php:92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  msgid ""
85
  "I'm an independent developer, without a regular income, so every little "
86
  "contribution helps cover my costs and lets me spend more time building "
87
  "things for people like you to enjoy."
88
  msgstr ""
89
 
90
- #: inc/php/settings_page.php:96
 
 
 
 
91
  msgid "Thanks for your support!"
92
  msgstr "謝謝您的贊助!"
93
 
94
- #: inc/php/settings_page.php:120
 
 
 
 
 
 
 
 
95
  msgid "Functions (PHP code)"
96
  msgstr ""
97
 
98
- #: inc/php/settings_page.php:131
99
  msgid "Save Changes"
100
  msgstr "儲存變更"
101
 
102
- #: my-custom-functions.php:73
103
- msgid "Settings"
104
- msgstr "設定"
105
-
106
- #: my-custom-functions.php:85
107
- msgid "Custom Functions"
108
- msgstr "自訂功能"
109
-
110
  #. Plugin URI of the plugin/theme
111
  msgid "https://github.com/ArthurGareginyan/my-custom-functions"
112
  msgstr ""
113
 
114
  #. Description of the plugin/theme
115
  msgid ""
116
- "Easily and safely add your custome functions (PHP code) directly out of your "
117
  "WordPress Dashboard without need of an external editor."
118
  msgstr ""
119
 
@@ -125,6 +411,15 @@ msgstr ""
125
  msgid "http://www.arthurgareginyan.com"
126
  msgstr ""
127
 
 
 
 
 
 
 
 
 
 
128
  #~ msgid ""
129
  #~ "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
130
  #~ "\"Berserkr\" Gareginyan</a>"
@@ -140,9 +435,6 @@ msgstr ""
140
  #~ "這個外掛讓你簡單而且安全地加上自已的功能、程式片斷或任何自訂程式碼到你的網"
141
  #~ "站"
142
 
143
- #~ msgid "If you want more options then tell me and I will be happy to add it."
144
- #~ msgstr "如果您還想要更多的選項請跟我說,我會很樂意加上去"
145
-
146
  #~ msgid ""
147
  #~ "If you like this plugin and find it useful, help me to make this plugin "
148
  #~ "even better and keep it up-to-date."
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: My Custom Functions\n"
4
+ "POT-Creation-Date: 2017-05-07 13:23+0300\n"
5
+ "PO-Revision-Date: 2017-05-07 13:23+0300\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: zh_TW\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
+ #: inc/php/core.php:31
24
+ msgid "Settings"
25
+ msgstr "設定"
26
+
27
+ #: inc/php/core.php:43 inc/php/core.php:60
28
+ msgid "Upgrade to PRO"
29
+ msgstr ""
30
+
31
+ #: inc/php/core.php:59
32
+ msgid "Donate"
33
+ msgstr "捐款"
34
+
35
+ #. Plugin Name of the plugin/theme
36
+ #: inc/php/core.php:75 inc/php/page.php:27
37
+ msgid "My Custom Functions"
38
+ msgstr "我的自訂功能"
39
+
40
+ #: inc/php/core.php:75
41
+ msgid "Custom Functions"
42
+ msgstr "自訂功能"
43
+
44
+ #: inc/php/messages.php:30
45
+ msgid "Hello. I'm Arthur, the author of this plugin."
46
+ msgstr ""
47
+
48
+ #: inc/php/messages.php:32
49
+ #, php-format
50
+ msgid "Thank you for installing my plugin! I hope you will love it %s"
51
+ msgstr ""
52
+
53
+ #: inc/php/messages.php:67
54
+ msgid "You have installed an old version of this plugin."
55
+ msgstr ""
56
+
57
+ #: inc/php/messages.php:68
58
+ msgid "Please update the plugin to the latest version, and all will be fine."
59
+ msgstr ""
60
+
61
+ #: inc/php/messages.php:92
62
  msgid "Custom functions updated successfully."
63
  msgstr "自訂功能已成功更新"
64
 
65
+ #: inc/php/messages.php:110
66
  msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
67
  msgstr "抱歉!您的程式碼造成了「嚴重錯誤」,所以並沒有套用它!"
68
 
69
+ #: inc/php/messages.php:111
70
  msgid "Please, check the code and try again."
71
  msgstr "請重新檢查程式碼再試一次"
72
 
73
+ #: inc/php/page.php:30
74
+ #, php-format
75
+ msgid "by %s Arthur Gareginyan %s"
76
+ msgstr ""
77
+
78
+ #: inc/php/page.php:42
79
+ msgid "Main"
80
+ msgstr ""
81
+
82
+ #: inc/php/page.php:43 inc/php/page.php:63
83
+ msgid "Usage"
84
+ msgstr ""
85
+
86
+ #: inc/php/page.php:44
87
+ msgid "F.A.Q."
88
+ msgstr ""
89
 
90
+ #: inc/php/page.php:45 inc/php/page.php:197
91
+ msgid "Author"
92
+ msgstr ""
93
+
94
+ #: inc/php/page.php:46 inc/php/page.php:206 inc/php/settings.php:37
95
+ #: inc/php/settings.php:90
96
+ msgid "Support"
97
+ msgstr ""
98
+
99
+ #: inc/php/page.php:47
100
+ msgid "Family"
101
+ msgstr ""
102
+
103
+ #: inc/php/page.php:65
104
  msgid ""
105
+ "To add your custom functions (the PHP code) to your website, simply follow "
106
+ "these steps:"
107
  msgstr ""
108
 
109
+ #: inc/php/page.php:67
110
+ msgid "Go to the \"Main\" tab."
111
+ msgstr ""
112
 
113
+ #: inc/php/page.php:68
114
  msgid ""
115
+ "Add your PHP code to the field, switch the toggle to the \"ON\" position and "
116
+ "click the \"Save Changes\" button."
117
  msgstr ""
118
 
119
+ #: inc/php/page.php:69
120
+ msgid "Example of PHP code:"
121
+ msgstr ""
122
 
123
+ #: inc/php/page.php:75 inc/php/page.php:76 inc/php/page.php:80
124
+ msgid "Note!"
125
+ msgstr ""
126
+
127
+ #: inc/php/page.php:75
128
  msgid ""
129
+ "Please do not wrap your PHP code in the <code>&lt;?php</code>...<code>?&gt;</"
130
+ "code> HTML tags."
131
  msgstr ""
 
132
 
133
+ #: inc/php/page.php:76
134
+ msgid ""
135
+ "Before use, please read the instructions on the F.A.Q. tab on what to do in "
136
+ "case of a website crash."
137
+ msgstr ""
138
 
139
+ #: inc/php/page.php:78
140
+ msgid "Enjoy the result of applying your PHP code."
141
  msgstr ""
142
 
143
+ #: inc/php/page.php:78
144
+ msgid "It's that simple!"
145
  msgstr ""
146
 
147
+ #: inc/php/page.php:80
148
+ msgid "If you want more options then tell me and I will be happy to add it."
149
+ msgstr "如果您還想要更多的選項請跟我說,我會很樂意加上去"
150
+
151
+ #: inc/php/page.php:89
152
+ msgid "Frequently Asked Questions"
153
+ msgstr ""
154
+
155
+ #: inc/php/page.php:111
156
+ msgid "Will this plugin work on my WordPress.COM website?"
157
+ msgstr ""
158
+
159
+ #: inc/php/page.php:112
160
+ msgid ""
161
+ "Sorry, this plugin is available for use only on self-hosted (WordPress.ORG) "
162
+ "websites."
163
+ msgstr ""
164
+
165
+ #: inc/php/page.php:114
166
+ msgid "Can I use this plugin on my language?"
167
+ msgstr ""
168
+
169
+ #: inc/php/page.php:116
170
+ #, php-format
171
+ msgid ""
172
+ "Yes. But If your language is not available then you can make one. This "
173
+ "plugin is ready for translation. The<code>.pot</code>file is included and "
174
+ "placed in the <code>languages</code> folder. Many of plugin users would be "
175
+ "delighted if you shared your translation with the community. Just send the "
176
+ "translation files (<code>*.po, *.mo</code>) to me at the %s and I will "
177
+ "include the translation within the next plugin update."
178
+ msgstr ""
179
+
180
+ #: inc/php/page.php:121
181
+ msgid "How does it work?"
182
+ msgstr ""
183
+
184
+ #: inc/php/page.php:122
185
+ msgid ""
186
+ "On the \"Settings\" tab, add your PHP code to the field, switch the toggle "
187
+ "to the \"ON\" position and click the \"Save Changes\" button. Enjoy the "
188
+ "result of applying your PHP code. It's that simple!"
189
+ msgstr ""
190
+
191
+ #: inc/php/page.php:124
192
+ msgid "Can I use HTML/CSS/JS code integrated in PHP code?"
193
+ msgstr ""
194
+
195
+ #: inc/php/page.php:125
196
+ msgid "Yes. But you need to do it properly, like this:"
197
+ msgstr ""
198
+
199
+ #: inc/php/page.php:135
200
+ msgid "How much of PHP code (characters) I can enter in the text field?"
201
+ msgstr ""
202
+
203
+ #: inc/php/page.php:136
204
+ msgid "I don't limit the number of characters."
205
+ msgstr ""
206
+
207
+ #: inc/php/page.php:138
208
+ msgid ""
209
+ "On the plugin settings page, an error message appears. What could be wrong?"
210
+ msgstr ""
211
+
212
+ #: inc/php/page.php:139
213
+ msgid "Here are a few of the most likely causes of the error message:"
214
+ msgstr ""
215
+
216
+ #: inc/php/page.php:140
217
+ msgid ""
218
+ "1. You make a syntax error in the code that you have entered. Check the "
219
+ "syntax of your code and try again."
220
+ msgstr ""
221
 
222
+ #: inc/php/page.php:141
223
+ msgid ""
224
+ "2. You entered two functions with the same name. Use a unique names for your "
225
+ "functions."
226
+ msgstr ""
227
+
228
+ #: inc/php/page.php:142
229
+ msgid ""
230
+ "3. You have entered function with a name that is already occupied by another "
231
+ "function. Use a unique name for your function."
232
+ msgstr ""
233
+
234
+ #: inc/php/page.php:143
235
+ msgid ""
236
+ "4. You are trying to overwrite an existing function (of WordPress, theme, or "
237
+ "plugin). Instead, use filters and hooks."
238
+ msgstr ""
239
+
240
+ #: inc/php/page.php:145
241
+ msgid "Does this plugin requires any modification of the theme?"
242
+ msgstr ""
243
+
244
+ #: inc/php/page.php:146
245
+ msgid ""
246
+ "Absolutely not. This plugin is configurable entirely from the plugin "
247
+ "settings page."
248
+ msgstr ""
249
+
250
+ #: inc/php/page.php:148
251
+ msgid "Does this require any knowledge of HTML or CSS?"
252
+ msgstr ""
253
+
254
+ #: inc/php/page.php:149
255
+ msgid ""
256
+ "This plugin can be configured with no knowledge of HTML or CSS, using an "
257
+ "easy-to-use plugin settings page. But you need to know the HTML or CSS in "
258
+ "order to add/remove/modify the HTML or CSS code by using this plugin."
259
+ msgstr ""
260
+
261
+ #: inc/php/page.php:151
262
+ msgid "It's not working. What could be wrong?"
263
+ msgstr ""
264
+
265
+ #: inc/php/page.php:152
266
+ msgid ""
267
+ "As with every plugin, it's possible that things don't work. The most common "
268
+ "reason for this is a web browser's cache. Every web browser stores a cache "
269
+ "of the websites you visit (pages, images, and etc.) to reduce bandwidth "
270
+ "usage and server load. This is called the browser's cache.​ Clearing your "
271
+ "browser's cache may solve the problem."
272
+ msgstr ""
273
+
274
+ #: inc/php/page.php:153
275
+ msgid ""
276
+ "It's impossible to tell what could be wrong exactly, but if you post a "
277
+ "support request in the plugin's support forum on WordPress.org, I'd be happy "
278
+ "to give it a look and try to help out. Please include as much information as "
279
+ "possible, including a link to your website where the problem can be seen."
280
+ msgstr ""
281
+
282
+ #: inc/php/page.php:155
283
+ msgid "What to do if this plugin caused the white screen (WSOD)?"
284
+ msgstr ""
285
+
286
+ #: inc/php/page.php:156
287
+ msgid ""
288
+ "This plugin is not perfect, so there are times when the entered custom code "
289
+ "causes the error and white screen (WSOD). This is due to the fact that your "
290
+ "custom code has a syntax error that this plugin could not detect. If this "
291
+ "happened with you then do the following and all will be fine."
292
+ msgstr ""
293
+
294
+ #: inc/php/page.php:158
295
+ msgid ""
296
+ "Via FTP, go to the plugin folder (in <code>wp-content/plugins/my-custom-"
297
+ "functions/</code>). Rename the \"START\" file to \"STOP\"."
298
+ msgstr ""
299
+
300
+ #: inc/php/page.php:159
301
+ msgid "Return to the plugin settings page."
302
+ msgstr ""
303
+
304
+ #: inc/php/page.php:160
305
+ msgid "Edit/fix your custom code that you entered before the crash."
306
+ msgstr ""
307
+
308
+ #: inc/php/page.php:161
309
+ msgid "Rename the \"STOP\" file to \"START\" and you're done!"
310
+ msgstr ""
311
+
312
+ #: inc/php/page.php:163
313
+ msgid ""
314
+ "This plugin stored you entered code in the Database of your website. For "
315
+ "getting your code, you also can go to the <code>Database</code> &#10145; "
316
+ "Table <code>wp_options</code> &#10145; Option "
317
+ "<code>anarcho_cfunctions_settings</code> &#10145; <code>option_value</code>."
318
+ msgstr ""
319
+
320
+ #: inc/php/page.php:165
321
+ msgid "Where to report bug if found?"
322
+ msgstr ""
323
+
324
+ #: inc/php/page.php:167
325
+ #, php-format
326
+ msgid "Please visit the %s Dedicated Plugin Page on GitHub %s and report."
327
+ msgstr ""
328
+
329
+ #: inc/php/page.php:173
330
+ msgid "Where to share any ideas or suggestions to make the plugin better?"
331
+ msgstr ""
332
+
333
+ #: inc/php/page.php:175
334
+ #, php-format
335
+ msgid ""
336
+ "Any suggestions are very welcome! Please send me an email to %s "
337
+ "arthurgareginyan@gmail.com %s. Thank you!"
338
+ msgstr ""
339
+
340
+ #: inc/php/page.php:181
341
+ msgid "I love this plugin! Can I help somehow?"
342
+ msgstr ""
343
+
344
+ #: inc/php/page.php:183
345
+ #, php-format
346
+ msgid ""
347
+ "Yes, any financial contributions are welcome! Just visit %s my website %s, "
348
+ "click on the donate button, and thank you!"
349
+ msgstr ""
350
+
351
+ #: inc/php/settings.php:21
352
+ msgid "About"
353
+ msgstr "關於"
354
+
355
+ #: inc/php/settings.php:23
356
+ msgid ""
357
+ "This plugin allows you to easily and safely add your custom functions (PHP "
358
+ "code) to your website."
359
+ msgstr ""
360
+
361
+ #: inc/php/settings.php:28
362
+ msgid "Upgrade"
363
+ msgstr ""
364
+
365
+ #: inc/php/settings.php:39 inc/php/settings.php:92
366
  msgid ""
367
  "I'm an independent developer, without a regular income, so every little "
368
  "contribution helps cover my costs and lets me spend more time building "
369
  "things for people like you to enjoy."
370
  msgstr ""
371
 
372
+ #: inc/php/settings.php:40 inc/php/settings.php:93
373
+ msgid "Donate with PayPal"
374
+ msgstr ""
375
+
376
+ #: inc/php/settings.php:41 inc/php/settings.php:94
377
  msgid "Thanks for your support!"
378
  msgstr "謝謝您的贊助!"
379
 
380
+ #: inc/php/settings.php:46
381
+ msgid "Help"
382
+ msgstr "幫助"
383
+
384
+ #: inc/php/settings.php:48
385
+ msgid "Got something to say? Need help?"
386
+ msgstr ""
387
+
388
+ #: inc/php/settings.php:76
389
  msgid "Functions (PHP code)"
390
  msgstr ""
391
 
392
+ #: inc/php/settings.php:87
393
  msgid "Save Changes"
394
  msgstr "儲存變更"
395
 
 
 
 
 
 
 
 
 
396
  #. Plugin URI of the plugin/theme
397
  msgid "https://github.com/ArthurGareginyan/my-custom-functions"
398
  msgstr ""
399
 
400
  #. Description of the plugin/theme
401
  msgid ""
402
+ "Easily and safely add your custom functions (PHP code) directly out of your "
403
  "WordPress Dashboard without need of an external editor."
404
  msgstr ""
405
 
411
  msgid "http://www.arthurgareginyan.com"
412
  msgstr ""
413
 
414
+ #~ msgid ""
415
+ #~ "To use, enter your custom functions, then click \"Save Changes\". It's "
416
+ #~ "that simple!"
417
+ #~ msgstr ""
418
+ #~ "要使用它,請輸入您的自訂功能然後按下「儲存變更」就可以了,就是這麼簡單!"
419
+
420
+ #~ msgid "Using"
421
+ #~ msgstr "用法"
422
+
423
  #~ msgid ""
424
  #~ "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
425
  #~ "\"Berserkr\" Gareginyan</a>"
435
  #~ "這個外掛讓你簡單而且安全地加上自已的功能、程式片斷或任何自訂程式碼到你的網"
436
  #~ "站"
437
 
 
 
 
438
  #~ msgid ""
439
  #~ "If you like this plugin and find it useful, help me to make this plugin "
440
  #~ "even better and keep it up-to-date."
languages/my-custom-functions.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: My Custom Functions\n"
6
- "POT-Creation-Date: 2016-11-08 04:33+0300\n"
7
  "PO-Revision-Date: 2015-08-30 16:22+0300\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
@@ -14,96 +14,363 @@ msgstr ""
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-WPHeader: my-custom-functions.php\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
- "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
19
- "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
- #: inc/php/settings_page.php:23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  msgid "Custom functions updated successfully."
25
  msgstr ""
26
 
27
- #: inc/php/settings_page.php:34
28
  msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
29
  msgstr ""
30
 
31
- #: inc/php/settings_page.php:35
32
  msgid "Please, check the code and try again."
33
  msgstr ""
34
 
35
- #. Plugin Name of the plugin/theme
36
- #: inc/php/settings_page.php:45 my-custom-functions.php:85
37
- msgid "My Custom Functions"
 
 
 
 
 
 
 
 
38
  msgstr ""
39
 
40
- #: inc/php/settings_page.php:48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  msgid ""
42
- "by <a href=\"http://www.arthurgareginyan.com\" target=\"_blank\">Arthur "
43
- "Gareginyan</a>"
44
  msgstr ""
45
 
46
- #: inc/php/settings_page.php:59
47
- msgid "About"
 
 
 
 
 
 
 
 
48
  msgstr ""
49
 
50
- #: inc/php/settings_page.php:61
51
  msgid ""
52
- "This plugin allows you to easily and safely add your custome functions (PHP "
53
- "code) to your website."
 
 
 
54
  msgstr ""
55
 
56
- #: inc/php/settings_page.php:66
57
- msgid "Using"
58
  msgstr ""
59
 
60
- #: inc/php/settings_page.php:68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  msgid ""
62
- "To use, enter your custom functions, then click \"Save Changes\". It's that "
63
- "simple!"
 
 
 
64
  msgstr ""
65
 
66
- #: inc/php/settings_page.php:73
67
- msgid "Help"
68
  msgstr ""
69
 
70
- #: inc/php/settings_page.php:75
71
- msgid "Got something to say? Need help?"
 
 
72
  msgstr ""
73
 
74
- #: inc/php/settings_page.php:81
75
- msgid "Upgrade"
76
  msgstr ""
77
 
78
- #: inc/php/settings_page.php:90
79
- msgid "Donate"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  msgstr ""
81
 
82
- #: inc/php/settings_page.php:92
83
  msgid ""
84
- "I'm an independent developer, without a regular income, so every little "
85
- "contribution helps cover my costs and lets me spend more time building "
86
- "things for people like you to enjoy."
87
  msgstr ""
88
 
89
- #: inc/php/settings_page.php:96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  msgid "Thanks for your support!"
91
  msgstr ""
92
 
93
- #: inc/php/settings_page.php:120
94
- msgid "Functions (PHP code)"
95
  msgstr ""
96
 
97
- #: inc/php/settings_page.php:131
98
- msgid "Save Changes"
99
  msgstr ""
100
 
101
- #: my-custom-functions.php:73
102
- msgid "Settings"
103
  msgstr ""
104
 
105
- #: my-custom-functions.php:85
106
- msgid "Custom Functions"
107
  msgstr ""
108
 
109
  #. Plugin URI of the plugin/theme
@@ -112,8 +379,8 @@ msgstr ""
112
 
113
  #. Description of the plugin/theme
114
  msgid ""
115
- "Easily and safely add your custome functions (PHP code) directly out of your "
116
- "WordPress Dashboard without need of an external editor."
117
  msgstr ""
118
 
119
  #. Author of the plugin/theme
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: My Custom Functions\n"
6
+ "POT-Creation-Date: 2017-05-07 13:23+0300\n"
7
  "PO-Revision-Date: 2015-08-30 16:22+0300\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-WPHeader: my-custom-functions.php\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;"
18
+ "esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;"
19
+ "__ngettext_noop:1,2\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
 
23
+ #: inc/php/core.php:31
24
+ msgid "Settings"
25
+ msgstr ""
26
+
27
+ #: inc/php/core.php:43 inc/php/core.php:60
28
+ msgid "Upgrade to PRO"
29
+ msgstr ""
30
+
31
+ #: inc/php/core.php:59
32
+ msgid "Donate"
33
+ msgstr ""
34
+
35
+ #. Plugin Name of the plugin/theme
36
+ #: inc/php/core.php:75 inc/php/page.php:27
37
+ msgid "My Custom Functions"
38
+ msgstr ""
39
+
40
+ #: inc/php/core.php:75
41
+ msgid "Custom Functions"
42
+ msgstr ""
43
+
44
+ #: inc/php/messages.php:30
45
+ msgid "Hello. I'm Arthur, the author of this plugin."
46
+ msgstr ""
47
+
48
+ #: inc/php/messages.php:32
49
+ #, php-format
50
+ msgid "Thank you for installing my plugin! I hope you will love it %s"
51
+ msgstr ""
52
+
53
+ #: inc/php/messages.php:67
54
+ msgid "You have installed an old version of this plugin."
55
+ msgstr ""
56
+
57
+ #: inc/php/messages.php:68
58
+ msgid "Please update the plugin to the latest version, and all will be fine."
59
+ msgstr ""
60
+
61
+ #: inc/php/messages.php:92
62
  msgid "Custom functions updated successfully."
63
  msgstr ""
64
 
65
+ #: inc/php/messages.php:110
66
  msgid "Sorry, but your code causes a \"Fatal error\", so it is not applied!"
67
  msgstr ""
68
 
69
+ #: inc/php/messages.php:111
70
  msgid "Please, check the code and try again."
71
  msgstr ""
72
 
73
+ #: inc/php/page.php:30
74
+ #, php-format
75
+ msgid "by %s Arthur Gareginyan %s"
76
+ msgstr ""
77
+
78
+ #: inc/php/page.php:42
79
+ msgid "Main"
80
+ msgstr ""
81
+
82
+ #: inc/php/page.php:43 inc/php/page.php:63
83
+ msgid "Usage"
84
  msgstr ""
85
 
86
+ #: inc/php/page.php:44
87
+ msgid "F.A.Q."
88
+ msgstr ""
89
+
90
+ #: inc/php/page.php:45 inc/php/page.php:197
91
+ msgid "Author"
92
+ msgstr ""
93
+
94
+ #: inc/php/page.php:46 inc/php/page.php:206 inc/php/settings.php:37 inc/php/settings.php:90
95
+ msgid "Support"
96
+ msgstr ""
97
+
98
+ #: inc/php/page.php:47
99
+ msgid "Family"
100
+ msgstr ""
101
+
102
+ #: inc/php/page.php:65
103
+ msgid "To add your custom functions (the PHP code) to your website, simply follow these steps:"
104
+ msgstr ""
105
+
106
+ #: inc/php/page.php:67
107
+ msgid "Go to the \"Main\" tab."
108
+ msgstr ""
109
+
110
+ #: inc/php/page.php:68
111
  msgid ""
112
+ "Add your PHP code to the field, switch the toggle to the \"ON\" position and click the \"Save "
113
+ "Changes\" button."
114
  msgstr ""
115
 
116
+ #: inc/php/page.php:69
117
+ msgid "Example of PHP code:"
118
+ msgstr ""
119
+
120
+ #: inc/php/page.php:75 inc/php/page.php:76 inc/php/page.php:80
121
+ msgid "Note!"
122
+ msgstr ""
123
+
124
+ #: inc/php/page.php:75
125
+ msgid "Please do not wrap your PHP code in the <code>&lt;?php</code>...<code>?&gt;</code> HTML tags."
126
  msgstr ""
127
 
128
+ #: inc/php/page.php:76
129
  msgid ""
130
+ "Before use, please read the instructions on the F.A.Q. tab on what to do in case of a website crash."
131
+ msgstr ""
132
+
133
+ #: inc/php/page.php:78
134
+ msgid "Enjoy the result of applying your PHP code."
135
  msgstr ""
136
 
137
+ #: inc/php/page.php:78
138
+ msgid "It's that simple!"
139
  msgstr ""
140
 
141
+ #: inc/php/page.php:80
142
+ msgid "If you want more options then tell me and I will be happy to add it."
143
+ msgstr ""
144
+
145
+ #: inc/php/page.php:89
146
+ msgid "Frequently Asked Questions"
147
+ msgstr ""
148
+
149
+ #: inc/php/page.php:111
150
+ msgid "Will this plugin work on my WordPress.COM website?"
151
+ msgstr ""
152
+
153
+ #: inc/php/page.php:112
154
+ msgid "Sorry, this plugin is available for use only on self-hosted (WordPress.ORG) websites."
155
+ msgstr ""
156
+
157
+ #: inc/php/page.php:114
158
+ msgid "Can I use this plugin on my language?"
159
+ msgstr ""
160
+
161
+ #: inc/php/page.php:116
162
+ #, php-format
163
  msgid ""
164
+ "Yes. But If your language is not available then you can make one. This plugin is ready for "
165
+ "translation. The<code>.pot</code>file is included and placed in the <code>languages</code> folder. "
166
+ "Many of plugin users would be delighted if you shared your translation with the community. Just "
167
+ "send the translation files (<code>*.po, *.mo</code>) to me at the %s and I will include the "
168
+ "translation within the next plugin update."
169
  msgstr ""
170
 
171
+ #: inc/php/page.php:121
172
+ msgid "How does it work?"
173
  msgstr ""
174
 
175
+ #: inc/php/page.php:122
176
+ msgid ""
177
+ "On the \"Settings\" tab, add your PHP code to the field, switch the toggle to the \"ON\" position "
178
+ "and click the \"Save Changes\" button. Enjoy the result of applying your PHP code. It's that simple!"
179
  msgstr ""
180
 
181
+ #: inc/php/page.php:124
182
+ msgid "Can I use HTML/CSS/JS code integrated in PHP code?"
183
  msgstr ""
184
 
185
+ #: inc/php/page.php:125
186
+ msgid "Yes. But you need to do it properly, like this:"
187
+ msgstr ""
188
+
189
+ #: inc/php/page.php:135
190
+ msgid "How much of PHP code (characters) I can enter in the text field?"
191
+ msgstr ""
192
+
193
+ #: inc/php/page.php:136
194
+ msgid "I don't limit the number of characters."
195
+ msgstr ""
196
+
197
+ #: inc/php/page.php:138
198
+ msgid "On the plugin settings page, an error message appears. What could be wrong?"
199
+ msgstr ""
200
+
201
+ #: inc/php/page.php:139
202
+ msgid "Here are a few of the most likely causes of the error message:"
203
  msgstr ""
204
 
205
+ #: inc/php/page.php:140
206
  msgid ""
207
+ "1. You make a syntax error in the code that you have entered. Check the syntax of your code and try "
208
+ "again."
 
209
  msgstr ""
210
 
211
+ #: inc/php/page.php:141
212
+ msgid "2. You entered two functions with the same name. Use a unique names for your functions."
213
+ msgstr ""
214
+
215
+ #: inc/php/page.php:142
216
+ msgid ""
217
+ "3. You have entered function with a name that is already occupied by another function. Use a unique "
218
+ "name for your function."
219
+ msgstr ""
220
+
221
+ #: inc/php/page.php:143
222
+ msgid ""
223
+ "4. You are trying to overwrite an existing function (of WordPress, theme, or plugin). Instead, use "
224
+ "filters and hooks."
225
+ msgstr ""
226
+
227
+ #: inc/php/page.php:145
228
+ msgid "Does this plugin requires any modification of the theme?"
229
+ msgstr ""
230
+
231
+ #: inc/php/page.php:146
232
+ msgid "Absolutely not. This plugin is configurable entirely from the plugin settings page."
233
+ msgstr ""
234
+
235
+ #: inc/php/page.php:148
236
+ msgid "Does this require any knowledge of HTML or CSS?"
237
+ msgstr ""
238
+
239
+ #: inc/php/page.php:149
240
+ msgid ""
241
+ "This plugin can be configured with no knowledge of HTML or CSS, using an easy-to-use plugin "
242
+ "settings page. But you need to know the HTML or CSS in order to add/remove/modify the HTML or CSS "
243
+ "code by using this plugin."
244
+ msgstr ""
245
+
246
+ #: inc/php/page.php:151
247
+ msgid "It's not working. What could be wrong?"
248
+ msgstr ""
249
+
250
+ #: inc/php/page.php:152
251
+ msgid ""
252
+ "As with every plugin, it's possible that things don't work. The most common reason for this is a "
253
+ "web browser's cache. Every web browser stores a cache of the websites you visit (pages, images, and "
254
+ "etc.) to reduce bandwidth usage and server load. This is called the browser's cache.​ Clearing your "
255
+ "browser's cache may solve the problem."
256
+ msgstr ""
257
+
258
+ #: inc/php/page.php:153
259
+ msgid ""
260
+ "It's impossible to tell what could be wrong exactly, but if you post a support request in the "
261
+ "plugin's support forum on WordPress.org, I'd be happy to give it a look and try to help out. Please "
262
+ "include as much information as possible, including a link to your website where the problem can be "
263
+ "seen."
264
+ msgstr ""
265
+
266
+ #: inc/php/page.php:155
267
+ msgid "What to do if this plugin caused the white screen (WSOD)?"
268
+ msgstr ""
269
+
270
+ #: inc/php/page.php:156
271
+ msgid ""
272
+ "This plugin is not perfect, so there are times when the entered custom code causes the error and "
273
+ "white screen (WSOD). This is due to the fact that your custom code has a syntax error that this "
274
+ "plugin could not detect. If this happened with you then do the following and all will be fine."
275
+ msgstr ""
276
+
277
+ #: inc/php/page.php:158
278
+ msgid ""
279
+ "Via FTP, go to the plugin folder (in <code>wp-content/plugins/my-custom-functions/</code>). Rename "
280
+ "the \"START\" file to \"STOP\"."
281
+ msgstr ""
282
+
283
+ #: inc/php/page.php:159
284
+ msgid "Return to the plugin settings page."
285
+ msgstr ""
286
+
287
+ #: inc/php/page.php:160
288
+ msgid "Edit/fix your custom code that you entered before the crash."
289
+ msgstr ""
290
+
291
+ #: inc/php/page.php:161
292
+ msgid "Rename the \"STOP\" file to \"START\" and you're done!"
293
+ msgstr ""
294
+
295
+ #: inc/php/page.php:163
296
+ msgid ""
297
+ "This plugin stored you entered code in the Database of your website. For getting your code, you "
298
+ "also can go to the <code>Database</code> &#10145; Table <code>wp_options</code> &#10145; Option "
299
+ "<code>anarcho_cfunctions_settings</code> &#10145; <code>option_value</code>."
300
+ msgstr ""
301
+
302
+ #: inc/php/page.php:165
303
+ msgid "Where to report bug if found?"
304
+ msgstr ""
305
+
306
+ #: inc/php/page.php:167
307
+ #, php-format
308
+ msgid "Please visit the %s Dedicated Plugin Page on GitHub %s and report."
309
+ msgstr ""
310
+
311
+ #: inc/php/page.php:173
312
+ msgid "Where to share any ideas or suggestions to make the plugin better?"
313
+ msgstr ""
314
+
315
+ #: inc/php/page.php:175
316
+ #, php-format
317
+ msgid ""
318
+ "Any suggestions are very welcome! Please send me an email to %s arthurgareginyan@gmail.com %s. "
319
+ "Thank you!"
320
+ msgstr ""
321
+
322
+ #: inc/php/page.php:181
323
+ msgid "I love this plugin! Can I help somehow?"
324
+ msgstr ""
325
+
326
+ #: inc/php/page.php:183
327
+ #, php-format
328
+ msgid ""
329
+ "Yes, any financial contributions are welcome! Just visit %s my website %s, click on the donate "
330
+ "button, and thank you!"
331
+ msgstr ""
332
+
333
+ #: inc/php/settings.php:21
334
+ msgid "About"
335
+ msgstr ""
336
+
337
+ #: inc/php/settings.php:23
338
+ msgid ""
339
+ "This plugin allows you to easily and safely add your custom functions (PHP code) to your website."
340
+ msgstr ""
341
+
342
+ #: inc/php/settings.php:28
343
+ msgid "Upgrade"
344
+ msgstr ""
345
+
346
+ #: inc/php/settings.php:39 inc/php/settings.php:92
347
+ msgid ""
348
+ "I'm an independent developer, without a regular income, so every little contribution helps cover my "
349
+ "costs and lets me spend more time building things for people like you to enjoy."
350
+ msgstr ""
351
+
352
+ #: inc/php/settings.php:40 inc/php/settings.php:93
353
+ msgid "Donate with PayPal"
354
+ msgstr ""
355
+
356
+ #: inc/php/settings.php:41 inc/php/settings.php:94
357
  msgid "Thanks for your support!"
358
  msgstr ""
359
 
360
+ #: inc/php/settings.php:46
361
+ msgid "Help"
362
  msgstr ""
363
 
364
+ #: inc/php/settings.php:48
365
+ msgid "Got something to say? Need help?"
366
  msgstr ""
367
 
368
+ #: inc/php/settings.php:76
369
+ msgid "Functions (PHP code)"
370
  msgstr ""
371
 
372
+ #: inc/php/settings.php:87
373
+ msgid "Save Changes"
374
  msgstr ""
375
 
376
  #. Plugin URI of the plugin/theme
379
 
380
  #. Description of the plugin/theme
381
  msgid ""
382
+ "Easily and safely add your custom functions (PHP code) directly out of your WordPress Dashboard "
383
+ "without need of an external editor."
384
  msgstr ""
385
 
386
  #. Author of the plugin/theme
LICENSE.txt → license.txt RENAMED
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
671
  may consider it more useful to permit linking proprietary applications with
672
  the library. If this is what you want to do, use the GNU Lesser General
673
  Public License instead of this License. But first, please read
674
- <http://www.gnu.org/philosophy/why-not-lgpl.html>.
671
  may consider it more useful to permit linking proprietary applications with
672
  the library. If this is what you want to do, use the GNU Lesser General
673
  Public License instead of this License. But first, please read
674
+ <http://www.gnu.org/philosophy/why-not-lgpl.html>.
my-custom-functions.php CHANGED
@@ -2,15 +2,15 @@
2
  /**
3
  * Plugin Name: My Custom Functions
4
  * Plugin URI: https://github.com/ArthurGareginyan/my-custom-functions
5
- * Description: Easily and safely add your custome functions (PHP code) directly out of your WordPress Dashboard without need of an external editor.
6
  * Author: Arthur Gareginyan
7
  * Author URI: http://www.arthurgareginyan.com
8
- * Version: 3.5
9
  * License: GPL3
10
  * Text Domain: my-custom-functions
11
  * Domain Path: /languages/
12
  *
13
- * Copyright 2014-2016 Arthur Gareginyan (email : arthurgareginyan@gmail.com)
14
  *
15
  * This file is part of "My Custom Functions".
16
  *
@@ -27,6 +27,21 @@
27
  * You should have received a copy of the GNU General Public License
28
  * along with "My Custom Functions". If not, see <http://www.gnu.org/licenses/>.
29
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  */
31
 
32
 
@@ -40,197 +55,24 @@ defined('ABSPATH') or die("Restricted access!");
40
  /**
41
  * Define constants
42
  *
43
- * @since 3.5
44
  */
45
  defined('MCFUNC_DIR') or define('MCFUNC_DIR', dirname(plugin_basename(__FILE__)));
46
  defined('MCFUNC_BASE') or define('MCFUNC_BASE', plugin_basename(__FILE__));
47
  defined('MCFUNC_URL') or define('MCFUNC_URL', plugin_dir_url(__FILE__));
48
  defined('MCFUNC_PATH') or define('MCFUNC_PATH', plugin_dir_path(__FILE__));
49
  defined('MCFUNC_TEXT') or define('MCFUNC_TEXT', 'my-custom-functions');
50
- defined('MCFUNC_VERSION') or define('MCFUNC_VERSION', '3.5');
51
-
52
- /**
53
- * Register text domain
54
- *
55
- * @since 2.2
56
- */
57
- function MCFunctions_textdomain() {
58
- load_plugin_textdomain( MCFUNC_TEXT, false, MCFUNC_DIR . '/languages/' );
59
- }
60
- add_action( 'init', 'MCFunctions_textdomain' );
61
-
62
- /**
63
- * Print direct link to Custom Functions admin page
64
- *
65
- * Fetches array of links generated by WP Plugin admin page ( Deactivate | Edit )
66
- * and inserts a link to the Custom Functions admin page
67
- *
68
- * @since 2.2
69
- * @param array $links Array of links generated by WP in Plugin Admin page.
70
- * @return array Array of links to be output on Plugin Admin page.
71
- */
72
- function MCFunctions_settings_link( $links ) {
73
- $settings_page = '<a href="' . admin_url( 'themes.php?page=my-custom-functions.php' ) .'">' . __( 'Settings', MCFUNC_TEXT ) . '</a>';
74
- array_unshift( $links, $settings_page );
75
- return $links;
76
- }
77
- add_filter( 'plugin_action_links_'.MCFUNC_BASE, 'MCFunctions_settings_link' );
78
-
79
- /**
80
- * Register "Custom Functions" submenu in "Appearance" Admin Menu
81
- *
82
- * @since 2.2
83
- */
84
- function MCFunctions_register_submenu_page() {
85
- add_theme_page( __( 'My Custom Functions', MCFUNC_TEXT ), __( 'Custom Functions', MCFUNC_TEXT ), 'edit_theme_options', basename( __FILE__ ), 'MCFunctions_render_submenu_page' );
86
- }
87
- add_action( 'admin_menu', 'MCFunctions_register_submenu_page' );
88
-
89
- /**
90
- * Attach Settings Page
91
- *
92
- * @since 3.0
93
- */
94
- require_once( MCFUNC_PATH . 'inc/php/settings_page.php' );
95
-
96
- /**
97
- * Register settings
98
- *
99
- * @since 2.0
100
- */
101
- function MCFunctions_register_settings() {
102
- register_setting( 'anarcho_cfunctions_settings_group', 'anarcho_cfunctions_settings' );
103
- register_setting( 'anarcho_cfunctions_settings_group', 'anarcho_cfunctions_error' );
104
- }
105
- add_action( 'admin_init', 'MCFunctions_register_settings' );
106
-
107
- /**
108
- * Load scripts and style sheet for settings page
109
- *
110
- * @since 3.1
111
- */
112
- function MCFunctions_load_scripts($hook) {
113
-
114
- // Return if the page is not a settings page of this plugin
115
- if ( 'appearance_page_my-custom-functions' != $hook ) {
116
- return;
117
- }
118
-
119
- // Style sheet
120
- wp_enqueue_style( 'MCFunctions-admin-css', MCFUNC_URL . 'inc/css/admin.css' );
121
-
122
- // JavaScript
123
- wp_enqueue_script( 'MCFunctions-admin-js', MCFUNC_URL . 'inc/js/admin.js', array(), false, true );
124
-
125
- // CodeMirror
126
- wp_enqueue_style( 'MCFunctions-codemirror-css', MCFUNC_URL . 'inc/lib/codemirror/codemirror.css' );
127
- wp_enqueue_script( 'MCFunctions-codemirror-js', MCFUNC_URL . 'inc/lib/codemirror/codemirror-compressed.js' );
128
- wp_enqueue_script( 'MCFunctions-codemirror-active-line', MCFUNC_URL . 'inc/lib/codemirror/addons/active-line.js' );
129
-
130
- }
131
- add_action( 'admin_enqueue_scripts', 'MCFunctions_load_scripts' );
132
-
133
- /**
134
- * Prepare the user entered code for execution
135
- *
136
- * @since 2.4
137
- */
138
- function MCFunctions_prepare($content) {
139
-
140
- // Cleaning
141
- $content = trim( $content );
142
- $content = ltrim( $content, '<?php' );
143
- $content = rtrim( $content, '?>' );
144
-
145
- // Return prepared code
146
- return $content;
147
- }
148
-
149
- /**
150
- * Check the user entered code for duplicate names of functions
151
- *
152
- * @since 2.5.1
153
- */
154
- function MCFunctions_duplicates($content) {
155
-
156
- // Find names of user entered functions and check for duplicates
157
- preg_match_all('/function[\s\n]+(\S+)[\s\n]*\(/i', $content, $user_func_names);
158
- $user_func_a = count( $user_func_names[1] );
159
- $user_func_b = count( array_unique( $user_func_names[1] ) );
160
-
161
- // Find all names of declared user functions and mutch with names of user entered functions
162
- $declared_func = get_defined_functions();
163
- $declared_func_user = array_intersect( $user_func_names[1], $declared_func['user'] );
164
- $declared_func_internal = array_intersect( $user_func_names[1], $declared_func['internal'] );
165
-
166
- // Update error status
167
- if ( $user_func_a != $user_func_b OR count( $declared_func_user ) != 0 OR count( $declared_func_internal ) != 0 ) {
168
- update_option( 'anarcho_cfunctions_error', '1' ); // ERROR
169
- $error_status = '1';
170
- } else {
171
- update_option( 'anarcho_cfunctions_error', '0' ); // RESET ERROR VALUE
172
- $error_status = '0';
173
- }
174
-
175
- // Return error status
176
- return $error_status;
177
- }
178
 
179
  /**
180
- * Execute the user entered code
181
  *
182
- * @since 3.2
183
  */
184
- function MCFunctions_exec() {
185
-
186
- // If STOP file exist...
187
- if ( file_exists( MCFUNC_PATH . 'STOP' ) ) {
188
- return; // EXIT
189
- }
190
-
191
- // Read data from DB
192
- $options = get_option( 'anarcho_cfunctions_settings' );
193
- $content = isset( $options['anarcho_cfunctions-content'] ) && !empty( $options['anarcho_cfunctions-content'] ) ? $options['anarcho_cfunctions-content'] : ' ';
194
- $enable = isset( $options['enable'] ) && !empty( $options['enable'] ) ? $options['enable'] : ' ';
195
-
196
- // If the user entered code is disabled...
197
- if ( $enable == 'on') {
198
- return; // EXIT
199
- }
200
-
201
- // Prepare the user entered functions by calling the "prepare" function
202
- $content = MCFunctions_prepare($content);
203
-
204
- // If content is empty...
205
- if ( empty($content) OR $content == ' ' ) {
206
- return; // EXIT
207
- }
208
-
209
- // If the duplicates functions finded...
210
- $duplicates = MCFunctions_duplicates($content);
211
- if ( $duplicates != 0 ) {
212
- return; // EXIT
213
- }
214
-
215
- // Parsing and execute by Eval
216
- if( false === @eval( $content ) ) {
217
- update_option( 'anarcho_cfunctions_error', '1' ); // ERROR
218
- return; // EXIT
219
- } else {
220
- update_option( 'anarcho_cfunctions_error', '0' ); // RESET ERROR VALUE
221
- }
222
- }
223
- MCFunctions_exec();
224
-
225
- /**
226
- * Delete options on uninstall
227
- *
228
- * @since 0.1
229
- */
230
- function MCFunctions_uninstall() {
231
- delete_option( 'anarcho_cfunctions_settings' );
232
- delete_option( 'anarcho_cfunctions_error' );
233
- }
234
- register_uninstall_hook( __FILE__, 'MCFunctions_uninstall' );
235
-
236
- ?>
2
  /**
3
  * Plugin Name: My Custom Functions
4
  * Plugin URI: https://github.com/ArthurGareginyan/my-custom-functions
5
+ * Description: Easily and safely add your custom functions (PHP code) directly out of your WordPress Dashboard without need of an external editor.
6
  * Author: Arthur Gareginyan
7
  * Author URI: http://www.arthurgareginyan.com
8
+ * Version: 4.0
9
  * License: GPL3
10
  * Text Domain: my-custom-functions
11
  * Domain Path: /languages/
12
  *
13
+ * Copyright 2014-2017 Arthur Gareginyan (email : arthurgareginyan@gmail.com)
14
  *
15
  * This file is part of "My Custom Functions".
16
  *
27
  * You should have received a copy of the GNU General Public License
28
  * along with "My Custom Functions". If not, see <http://www.gnu.org/licenses/>.
29
  *
30
+ *
31
+ * █████╗ ██████╗ ████████╗██╗ ██╗██╗ ██╗██████╗
32
+ * ██╔══██╗██╔══██╗╚══██╔══╝██║ ██║██║ ██║██╔══██╗
33
+ * ███████║██████╔╝ ██║ ███████║██║ ██║██████╔╝
34
+ * ██╔══██║██╔══██╗ ██║ ██╔══██║██║ ██║██╔══██╗
35
+ * ██║ ██║██║ ██║ ██║ ██║ ██║╚██████╔╝██║ ██║
36
+ * ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
37
+ *
38
+ * ██████╗ █████╗ ██████╗ ███████╗ ██████╗ ██╗███╗ ██╗██╗ ██╗ █████╗ ███╗ ██╗
39
+ * ██╔════╝ ██╔══██╗██╔══██╗██╔════╝██╔════╝ ██║████╗ ██║╚██╗ ██╔╝██╔══██╗████╗ ██║
40
+ * ██║ ███╗███████║██████╔╝█████╗ ██║ ███╗██║██╔██╗ ██║ ╚████╔╝ ███████║██╔██╗ ██║
41
+ * ██║ ██║██╔══██║██╔══██╗██╔══╝ ██║ ██║██║██║╚██╗██║ ╚██╔╝ ██╔══██║██║╚██╗██║
42
+ * ╚██████╔╝██║ ██║██║ ██║███████╗╚██████╔╝██║██║ ╚████║ ██║ ██║ ██║██║ ╚████║
43
+ * ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝
44
+ *
45
  */
46
 
47
 
55
  /**
56
  * Define constants
57
  *
58
+ * @since 3.6
59
  */
60
  defined('MCFUNC_DIR') or define('MCFUNC_DIR', dirname(plugin_basename(__FILE__)));
61
  defined('MCFUNC_BASE') or define('MCFUNC_BASE', plugin_basename(__FILE__));
62
  defined('MCFUNC_URL') or define('MCFUNC_URL', plugin_dir_url(__FILE__));
63
  defined('MCFUNC_PATH') or define('MCFUNC_PATH', plugin_dir_path(__FILE__));
64
  defined('MCFUNC_TEXT') or define('MCFUNC_TEXT', 'my-custom-functions');
65
+ defined('MCFUNC_VERSION') or define('MCFUNC_VERSION', '4.0');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
  /**
68
+ * Load the plugin modules
69
  *
70
+ * @since 4.0
71
  */
72
+ require_once( MCFUNC_PATH . 'inc/php/core.php' );
73
+ require_once( MCFUNC_PATH . 'inc/php/enqueue.php' );
74
+ require_once( MCFUNC_PATH . 'inc/php/version.php' );
75
+ require_once( MCFUNC_PATH . 'inc/php/functional.php' );
76
+ require_once( MCFUNC_PATH . 'inc/php/page.php' );
77
+ require_once( MCFUNC_PATH . 'inc/php/messages.php' );
78
+ require_once( MCFUNC_PATH . 'inc/php/uninstall.php' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -4,28 +4,37 @@ Tags: code, php, function, snippet, custom, execute, edit, editing, editor, func
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8A88KC7TFF6CS
5
  Requires at least: 3.9
6
  Tested up to: 4.7
7
- Stable tag: 3.5
8
  License: GPL3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
11
- Easily and safely add your custom functions (PHP code) directly out of your WordPress Dashboard without need of an external editor.
12
 
13
 
14
  == Description ==
15
- An easy to use WordPress plugin that gives you the ability to easily and safely add your custome functions (PHP code) for execution in WordPress environment directly out of your WordPress Dashboard and without any need of an external editor.
16
-
17
 
18
  = Features =
19
 
20
- * Responsive & Mobile optimized settings page
 
 
 
 
 
 
 
 
 
21
  * Checks the entered code for fatal errors (simple checks)
22
- * Trigger for temporary disable the custom functions
23
  * Easy disable option for WSOD
24
  * Syntax highlighting (by CodeMirror)
25
  * Line numbering
26
  * Active line highlighting
27
  * Editor allow for tab indentation
28
- * Ready for translation (POT file included)
29
 
30
  **Coming soon:**
31
  * Reload the settings page at same position after pushing the save button
@@ -33,57 +42,51 @@ An easy to use WordPress plugin that gives you the ability to easily and safely
33
 
34
  = Translation =
35
 
36
- Please keep in mind that not all translations are up to date. You are welcome to contribute!
37
-
38
  * English (default)
39
  * Russian
40
  * Chinese-Taiwan (translation by Gordon Yu)
41
  * Spanish (translation by [Ramiro Garcés](http://www.ramirogarces.com.ve/))
42
  * French (translation by Theophil Bethel)
43
 
44
- **Consider Going Pro For Additional Features!**
 
 
 
45
 
46
 
47
  == Installation ==
48
  Install "My Custom Functions" just as you would any other WordPress Plugin.
49
 
50
- Automatically via WordPress:
51
 
52
- 1. Log into Dashboard of your WordPress website.
53
- 2. Go to "`Plugins`" —> "`Add New`".
54
  3. Find this plugin and click install.
55
  4. Activate this plugin through the "`Plugins`" tab.
56
 
57
- Manual via FTP:
58
 
59
  1. Download a copy (ZIP file) of this plugin from WordPress.org.
60
  2. Unzip the ZIP file.
61
  3. Upload the unzipped catalog to your website's plugin directory (`/wp-content/plugins/`).
62
- 4. Log into Dashboard of your WordPress website.
63
  5. Activate this plugin through the "`Plugins`" tab.
64
 
65
- After installation, a "`Custom Functions`" menu item will appear in the "`Appearance`" section. Click on this in order to view plugin's administration page.
66
 
67
  [More help installing Plugins](http://codex.wordpress.org/Managing_Plugins#Installing_Plugins "WordPress Codex: Installing Plugins")
68
 
69
 
70
  == Frequently Asked Questions ==
71
  = Q. Will this plugin work on my WordPress.COM website? =
72
- A. Sorry, this plugin is available for use only on self-hosted (WordPress.org) websites.
73
 
74
  = Q. Can I use this plugin on my language? =
75
- A. Yes. But If your language is not available then you can make one. This plugin is ready for translation. The `.pot` file is included and placed in "`languages`" folder. Many of plugin users would be delighted if you shared your translation with the community. Just send the translation files (`*.po, *.mo`) to me at the arthurgareginyan@gmail.com and I will include the translation within the next plugin update.
76
-
77
- = Q. Does this plugin require modification to the theme? =
78
- A. Absolutely not. This plugin is added/configured entirely from the website's Admin section.
79
 
80
  = Q. How does it work? =
81
- A. Just place your PHP code to the field and click "Save Changes". Example of PHP code:
82
- `function NameOfYourFunction {
83
-
84
- // Content of your function
85
-
86
- }`
87
 
88
  = Q. Can I use HTML/CSS/JS code integrated in PHP code? =
89
  A. Yes. But you need to do it properly, like this:
@@ -106,24 +109,35 @@ A. Here are a few of the most likely causes of the error message:
106
  3. You have entered function with a name that is already occupied by another function. Use a unique name for your function.
107
  4. You are trying to overwrite an existing function (of WordPress, theme, or plugin). Instead, use filters and hooks.
108
 
 
 
 
 
 
 
109
  = Q. It's not working. What could be wrong? =
110
- A. As with every plugin, it's possible that things don't work. The most common reason for this is that the plugin has a conflict with another plugin you're using. It's impossible to tell what could be wrong exactly, but if you post a support request in the plugin's support forum on WordPress.org, I'd be happy to give it a look and try to help out. Please include as much information as possible, including a link to your website where the problem can be seen.
111
 
112
- = Q. What to do if this plugin caused the white screen? =
113
- A. This plugin is not perfect, so there are times when the entered custom code causes the error and white screen (WSOD). If this happened with you then do the following.
114
 
115
- Go to plugin folder (in `wp-content/plugins/my-custom-functions/`). Rename the "`START`" file to "`STOP`". Then you can go to plugin settings page and edit your entered custom code. After editing, just rename the "`STOP`" file which you written before to "`START`".
 
116
 
117
- This plugin stored you entered code in the Database of your website. For getting your code, you also can go to the `Database` —> Table "`wp_options`" —> Option "`anarcho_cfunctions_settings`" —> "`option_value`".
 
 
 
 
 
118
 
119
  = Q. Where to report bug if found? =
120
- A. Please visit [Dedicated Plugin Page on GitHub](https://github.com/ArthurGareginyan/my-custom-functions) and report.
121
 
122
  = Q. Where to share any ideas or suggestions to make the plugin better? =
123
- A. Please send me email [arthurgareginyan@gmail.com](mailto:arthurgareginyan@gmail.com).
124
 
125
  = Q. I love this plugin! Can I help somehow? =
126
- A. Yes, any financial contributions are welcome! Just visit my website and click on the donate link, and thank you! [My website](http://www.arthurgareginyan.com/donate.html)
127
 
128
 
129
  == Screenshots ==
@@ -139,13 +153,15 @@ A. Yes, any financial contributions are welcome! Just visit my website and click
139
 
140
  **License**
141
 
142
- This plugin is licensed under the [GNU General Public License, version 3 (GPLv3)](http://www.gnu.org/licenses/gpl-3.0.html)
143
- and is distributed free of charge.
144
  Commercial licensing (e.g. for projects that can’t use an open-source license) is available upon request.
145
 
146
  **Credits**
147
 
148
- [CodeMirror](https://codemirror.net/) is an open-source project shared under the [MIT license](https://codemirror.net/LICENSE).
 
 
 
149
 
150
  **Links**
151
 
@@ -155,36 +171,76 @@ Commercial licensing (e.g. for projects that can’t use an open-source license)
155
 
156
 
157
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  = 3.5 =
159
  * Added French translation. (Thanks Theophil Bethel)
160
  * Image of the donate button changed.
 
161
  = 3.4.1 =
162
  * Translations updated.
163
  * Readme for translations updated.
164
  * Link of banner image updated.
 
165
  = 3.4 =
166
  * Added Spanish translation. (Thanks [Ramiro Garcés](http://www.ramirogarces.com.ve/))
 
167
  = 3.3 =
168
  * User's PHP code displayed on settings page are escaped for output by `htmlentities()` instead of `esc_attr()` for prevent converting characters to HTML entities.
169
  * Added global constant for plugin text-domain.
170
  * Russian translation improved.
 
171
  = 3.2 =
172
  * Added option for easy disable the custom code for cases of WSOD.
173
  * Style sheet of settings page improved.
174
  * On the settings page added an advertisement about the PRO version of this plugin.
175
  * The Readme.txt file improved.
176
  * Added the Readme.txt file for translation contribution.
 
177
  = 3.1 =
178
  * Added prefixes to the stylesheet and script names when using wp_enqueue_style() and wp_enqueue_script().
179
  * Added constant for storing the plugin version number.
 
180
  = 3.0 =
181
  * The structure of files changed.
182
  * Style sheet of settings page improved and better commented.
183
  * JS code improved.
184
  * The "thanks.png" image removed.
185
  * POT file updated.
 
186
  = 2.5.1 =
187
  * The update_option() returned into _duplicates function.
 
188
  = 2.5 =
189
  * Added active-line add-on to CodeMirror.
190
  * Extra update_option() removed from the _duplicates function.
@@ -192,10 +248,12 @@ Commercial licensing (e.g. for projects that can’t use an open-source license)
192
  * CSS class "slider" renamed to "trigger".
193
  * Styles of settings page optimized for mobile devices.
194
  * The styles.css file better commented.
195
- * The _enqueue_codemirror_scripts function renamed to mcstyles_load_scripts.
 
196
  = 2.4 =
197
- * Added trigger for temporary disable the custom functions.
198
  * Functions _prepare, _duplicates, and _exec optimized.
 
199
  = 2.3 =
200
  * Added function to check for duplicate function names. Compares the names of all functions (internal, user). The _duplicates function added.
201
  * Added function of automatic remove the "successful" message after 3 seconds.
@@ -203,15 +261,18 @@ Commercial licensing (e.g. for projects that can’t use an open-source license)
203
  * The function of user code cleaning modified.
204
  * File js-functions.js renamed to functions.js.
205
  * Removed my personal ad about freelance.
 
206
  = 2.2 =
207
  * Added Chinese (Taiwan) translation. (Thanks Gordon Yu)
208
  * Text domain changed to "my-custom-functions".
209
  * Added compatibility with the translate.wordpress.org.
 
210
  = 2.1 =
211
- * In the settings_page.php, on the line 21, fixed typo.
212
  * Removed extra rules in style.css file.
213
  * All images are moved to the directory "images".
214
  * Image "btn_donateCC_LG.gif" is now located in the "images" directory.
 
215
  = 2.0 =
216
  * New design of settings page (new layout).
217
  * Constants variables added.
@@ -223,53 +284,68 @@ Commercial licensing (e.g. for projects that can’t use an open-source license)
223
  * Added my personal ad about freelance.
224
  * .pot file updated.
225
  * Russian translation updated.
 
226
  = 1.9 =
227
  * Authors URI changed.
228
  * Donate link changed.
229
  * Localization improved.
230
  * .pot file updated.
231
  * Russian translation updated.
 
232
  = 1.8 =
233
  * The mode of CodeMirror editor changed from 'application/x-httpd-php' (HTML+PHP) to 'text/x-php' (PHP).
234
  * Placeholder of <textarea> changed to "/* Enter Your Custom Functions Here */".
235
- * Removed more unused do_action() from settings_page.php file.
 
236
  = 1.7 =
237
- * The stylesheet of plugin's page moved to separate file.
238
- * The javascript from settings_page.php moved to separate file.
239
  * Textdomain changed to "mcfunctions".
240
- * Changed the style of title in plugin's page.
241
  * The LICENSE file renamed to LICENSE.txt
 
242
  = 1.6 =
243
  * Fixed the issue due to which nothing appears below line 26 until you click below that line.
244
  * Added "register_setting" for error option.
245
  * Corrected comments to source code.
 
246
  = 1.5 =
247
  * CodeMirror scripts are combined and minified.
 
248
  = 1.4 =
249
  * Fixed the issue due to which the alert message was appearing after installation.
 
250
  = 1.3 =
251
  * .pot file included.
252
  * Minor fixes.
 
253
  = 1.2 =
254
  * Added the syntax highlighting and line numbering.
 
255
  = 1.1 =
256
- * Fixed positioning of the sidebar at the plugin page.
 
257
  = 1.0 =
258
  * Initial release.
259
  * Added the check for safety execution code.
260
  * Added ready for translation.
261
- = 0.2 =
262
- * Beta version.
263
- = 0.1 =
 
 
 
 
 
264
  * Alfa version.
265
 
266
 
267
  == Upgrade Notice ==
 
 
268
  = 3.0 =
269
  Please update to new release!
270
  = 2.0 =
271
  Please update to new release!
272
  = 1.0 =
273
  Please update to first stable release!
274
- = 0.2 =
275
- Please update to beta version.
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8A88KC7TFF6CS
5
  Requires at least: 3.9
6
  Tested up to: 4.7
7
+ Stable tag: 4.0
8
  License: GPL3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
11
+ Easily and safely add your custom functions (PHP code) directly out of your WordPress Admin area without need of an external editor.
12
 
13
 
14
  == Description ==
15
+ An easy to use, with intuitive interface WordPress plugin that gives you the ability to easily and safely add your custom functions (PHP code) for execution in WordPress environment directly out of your WordPress Admin area and without any need of an external editor.
16
+
17
 
18
  = Features =
19
 
20
+ * Lightweight and fast
21
+ * Secure code with using clear coding standards
22
+ * Intuitive interface with many settings
23
+ * Cross browser compatible (work smooth in any modern browser)
24
+ * Compatible with all WordPress themes
25
+ * RTL compatible (right to left)
26
+ * Translation ready
27
+
28
+ **Key features include...**
29
+
30
  * Checks the entered code for fatal errors (simple checks)
31
+ * Toggle for temporary disable the custom functions
32
  * Easy disable option for WSOD
33
  * Syntax highlighting (by CodeMirror)
34
  * Line numbering
35
  * Active line highlighting
36
  * Editor allow for tab indentation
37
+ * And much, much more!
38
 
39
  **Coming soon:**
40
  * Reload the settings page at same position after pushing the save button
42
 
43
  = Translation =
44
 
 
 
45
  * English (default)
46
  * Russian
47
  * Chinese-Taiwan (translation by Gordon Yu)
48
  * Spanish (translation by [Ramiro Garcés](http://www.ramirogarces.com.ve/))
49
  * French (translation by Theophil Bethel)
50
 
51
+ If you would like to add a translation to this plugin then please head to our [Translating WordPress](https://translate.wordpress.org/projects/wp-plugins/my-custom-functions) page.
52
+
53
+ **Consider Going Pro For Additional Features!**
54
+ > All features from Free version included plus:
55
 
56
 
57
  == Installation ==
58
  Install "My Custom Functions" just as you would any other WordPress Plugin.
59
 
60
+ Automatically via WordPress Admin area:
61
 
62
+ 1. Log into Admin area of your WordPress website.
63
+ 2. Go to "`Plugins`" -> "`Add New`".
64
  3. Find this plugin and click install.
65
  4. Activate this plugin through the "`Plugins`" tab.
66
 
67
+ Manually via FTP access:
68
 
69
  1. Download a copy (ZIP file) of this plugin from WordPress.org.
70
  2. Unzip the ZIP file.
71
  3. Upload the unzipped catalog to your website's plugin directory (`/wp-content/plugins/`).
72
+ 4. Log into Admin area of your WordPress website.
73
  5. Activate this plugin through the "`Plugins`" tab.
74
 
75
+ After installation, a "`Custom Functions`" menu item will appear in the "`Appearance`" section. Click on this in order to view plugin administration page.
76
 
77
  [More help installing Plugins](http://codex.wordpress.org/Managing_Plugins#Installing_Plugins "WordPress Codex: Installing Plugins")
78
 
79
 
80
  == Frequently Asked Questions ==
81
  = Q. Will this plugin work on my WordPress.COM website? =
82
+ A. Sorry, this plugin is available for use only on self-hosted (WordPress.ORG) websites.
83
 
84
  = Q. Can I use this plugin on my language? =
85
+ A. Yes. But If your language is not available then you can make one. This plugin is ready for translation. The `.pot` file is included and placed in the "`languages`" folder. Many of plugin users would be delighted if you shared your translation with the community. Just send the translation files (`*.po, *.mo`) to me at the arthurgareginyan@gmail.com and I will include the translation within the next plugin update.
 
 
 
86
 
87
  = Q. How does it work? =
88
+ A. Simply go to the plugin settings page, add your PHP code to the field, switch the toggle to the "ON" position and click the "Save Changes" button. Enjoy the result of applying your PHP code. It's that simple!
89
+ You can find the plugin settings page at "`WP Admin Panel`" -> "`Appearance`" -> "`Custom Functions`".
 
 
 
 
90
 
91
  = Q. Can I use HTML/CSS/JS code integrated in PHP code? =
92
  A. Yes. But you need to do it properly, like this:
109
  3. You have entered function with a name that is already occupied by another function. Use a unique name for your function.
110
  4. You are trying to overwrite an existing function (of WordPress, theme, or plugin). Instead, use filters and hooks.
111
 
112
+ = Q. Does this plugin requires any modification of the theme? =
113
+ A. Absolutely not. This plugin is configurable entirely from the plugin settings page that you can find in the Admin Panel of your WordPress website.
114
+
115
+ = Q. Does this require any knowledge of HTML or CSS? =
116
+ A. This plugin can be configured with no knowledge of HTML or CSS, using an easy-to-use plugin settings page. But you need to know the HTML or CSS in order to add/remove/modify the HTML or CSS code by using this plugin.
117
+
118
  = Q. It's not working. What could be wrong? =
119
+ A. As with every plugin, it's possible that things don't work. The most common reason for this is a web browser's cache. Every web browser stores a cache of the websites you visit (pages, images, and etc.) to reduce bandwidth usage and server load. This is called the browser's cache.​ Clearing your browser's cache may solve the problem.
120
 
121
+ It's impossible to tell what could be wrong exactly, but if you post a support request in the plugin's support forum on WordPress.org, I'd be happy to give it a look and try to help out. Please include as much information as possible, including a link to your website where the problem can be seen.
 
122
 
123
+ = Q. What to do if this plugin caused the white screen (WSOD)? =
124
+ A. This plugin is not perfect, so there are times when the entered custom code causes the error and white screen (WSOD). This is due to the fact that your custom code has a syntax error that this plugin could not detect. If this happened with you then do the following and all will be fine.
125
 
126
+ 1. Via FTP, go to the plugin folder (in `wp-content/plugins/my-custom-functions/`). Rename the "`START`" file to "`STOP`".
127
+ 2. Return to the plugin settings page.
128
+ 3. Edit/fix your custom code that you entered before the crash.
129
+ 4. Rename the "`STOP`" file to "`START`" and you're done!
130
+
131
+ This plugin stored you entered code in the Database of your website. For getting your code, you also can go to the `Database` -> Table "`wp_options`" -> Option "`anarcho_cfunctions_settings`" -> "`option_value`".
132
 
133
  = Q. Where to report bug if found? =
134
+ A. Please visit the [Dedicated Plugin Page on GitHub](https://github.com/ArthurGareginyan/my-custom-functions) and report.
135
 
136
  = Q. Where to share any ideas or suggestions to make the plugin better? =
137
+ A. Any suggestions are very welcome! Please send me an email to [arthurgareginyan@gmail.com](mailto:arthurgareginyan@gmail.com). Thank you!
138
 
139
  = Q. I love this plugin! Can I help somehow? =
140
+ A. Yes, any financial contributions are welcome! Just visit [my website](http://www.arthurgareginyan.com/donate.html), click on the donate button, and thank you!
141
 
142
 
143
  == Screenshots ==
153
 
154
  **License**
155
 
156
+ This plugin is licensed under the [GNU General Public License, version 3 (GPLv3)](http://www.gnu.org/licenses/gpl-3.0.html) and is distributed free of charge.
 
157
  Commercial licensing (e.g. for projects that can’t use an open-source license) is available upon request.
158
 
159
  **Credits**
160
 
161
+ * The icon of plugin is a copyrighted image created by [Arthur Gareginyan](http://www.arthurgareginyan.com). (C) All rights reserved.
162
+ * The banner of plugin is a copyrighted image created by [Arthur Gareginyan](http://www.arthurgareginyan.com). (C) All rights reserved.
163
+ * [CodeMirror](https://codemirror.net/) is an open-source project shared under the [MIT license](https://codemirror.net/LICENSE).
164
+ * [Bootstrap](http://getbootstrap.com) by Twitter, Inc. released under the [MIT license](https://github.com/twbs/bootstrap/blob/master/LICENSE).
165
 
166
  **Links**
167
 
171
 
172
 
173
  == Changelog ==
174
+
175
+ = 4.0 =
176
+ * The design of the plugin settings page is completely redone.
177
+ * Added additional donate link to the "Plugins" page.
178
+ * The 'Using' section renamed to 'Usage'.
179
+ * My Unicode signature added to the main file.
180
+ * The donate button replaced with new.
181
+ * The 'Donate' section renamed to 'Support'.
182
+ * The 'donate.png' image removed.
183
+ * Options from the settings page moved to a separate file.
184
+ * The "Usage" section removed from the sidebar area.
185
+ * Additional "Support" section added.
186
+ * Added tab navigation menu for the settings page.
187
+ * Added additional tabs on the settings page.
188
+ * Code of the 'admin.css' file improved and better commented.
189
+ * A full version of the Bootstrap framework is integrated.
190
+ * The 'MCFunctions_load_scripts' function renamed to 'MCFunctions_load_scripts_admin'.
191
+ * Added the CSS code for the custom list numbers on the plugin settings page.
192
+ * The main font is changed to "Verdana".
193
+ * All PHP and HTML code is better formatted.
194
+ * The header on the settings page of plugin is redesigned.
195
+ * The "LICENSE.txt" file renamed to "license.txt".
196
+ * The "humans.txt" file added.
197
+ * Messages from the plugin settings page moved to a separate file "messages.php".
198
+ * The "_service_info" setting added to the data-base.
199
+ * Added function for managing information about the version number of the plugin.
200
+ * Added the "Hello" message that show when the plugin is just installed.
201
+ * Added the "Error" message that show when user is trying to degrade the version number of the plugin.
202
+ * Fixed the parameter that contain the path to source files in all translation files.
203
+ * The POT file updated.
204
+ * Translations updated.
205
+
206
  = 3.5 =
207
  * Added French translation. (Thanks Theophil Bethel)
208
  * Image of the donate button changed.
209
+
210
  = 3.4.1 =
211
  * Translations updated.
212
  * Readme for translations updated.
213
  * Link of banner image updated.
214
+
215
  = 3.4 =
216
  * Added Spanish translation. (Thanks [Ramiro Garcés](http://www.ramirogarces.com.ve/))
217
+
218
  = 3.3 =
219
  * User's PHP code displayed on settings page are escaped for output by `htmlentities()` instead of `esc_attr()` for prevent converting characters to HTML entities.
220
  * Added global constant for plugin text-domain.
221
  * Russian translation improved.
222
+
223
  = 3.2 =
224
  * Added option for easy disable the custom code for cases of WSOD.
225
  * Style sheet of settings page improved.
226
  * On the settings page added an advertisement about the PRO version of this plugin.
227
  * The Readme.txt file improved.
228
  * Added the Readme.txt file for translation contribution.
229
+
230
  = 3.1 =
231
  * Added prefixes to the stylesheet and script names when using wp_enqueue_style() and wp_enqueue_script().
232
  * Added constant for storing the plugin version number.
233
+
234
  = 3.0 =
235
  * The structure of files changed.
236
  * Style sheet of settings page improved and better commented.
237
  * JS code improved.
238
  * The "thanks.png" image removed.
239
  * POT file updated.
240
+
241
  = 2.5.1 =
242
  * The update_option() returned into _duplicates function.
243
+
244
  = 2.5 =
245
  * Added active-line add-on to CodeMirror.
246
  * Extra update_option() removed from the _duplicates function.
248
  * CSS class "slider" renamed to "trigger".
249
  * Styles of settings page optimized for mobile devices.
250
  * The styles.css file better commented.
251
+ * The _enqueue_codemirror_scripts function renamed to mcfunctions_load_scripts.
252
+
253
  = 2.4 =
254
+ * Added a toggle for temporary disable the custom functions.
255
  * Functions _prepare, _duplicates, and _exec optimized.
256
+
257
  = 2.3 =
258
  * Added function to check for duplicate function names. Compares the names of all functions (internal, user). The _duplicates function added.
259
  * Added function of automatic remove the "successful" message after 3 seconds.
261
  * The function of user code cleaning modified.
262
  * File js-functions.js renamed to functions.js.
263
  * Removed my personal ad about freelance.
264
+
265
  = 2.2 =
266
  * Added Chinese (Taiwan) translation. (Thanks Gordon Yu)
267
  * Text domain changed to "my-custom-functions".
268
  * Added compatibility with the translate.wordpress.org.
269
+
270
  = 2.1 =
271
+ * In the page.php, on the line 21, fixed typo.
272
  * Removed extra rules in style.css file.
273
  * All images are moved to the directory "images".
274
  * Image "btn_donateCC_LG.gif" is now located in the "images" directory.
275
+
276
  = 2.0 =
277
  * New design of settings page (new layout).
278
  * Constants variables added.
284
  * Added my personal ad about freelance.
285
  * .pot file updated.
286
  * Russian translation updated.
287
+
288
  = 1.9 =
289
  * Authors URI changed.
290
  * Donate link changed.
291
  * Localization improved.
292
  * .pot file updated.
293
  * Russian translation updated.
294
+
295
  = 1.8 =
296
  * The mode of CodeMirror editor changed from 'application/x-httpd-php' (HTML+PHP) to 'text/x-php' (PHP).
297
  * Placeholder of <textarea> changed to "/* Enter Your Custom Functions Here */".
298
+ * Removed more unused do_action() from page.php file.
299
+
300
  = 1.7 =
301
+ * The stylesheet of plugin page moved to separate file.
302
+ * The javascript from page.php moved to separate file.
303
  * Textdomain changed to "mcfunctions".
304
+ * Changed the style of title in plugin page.
305
  * The LICENSE file renamed to LICENSE.txt
306
+
307
  = 1.6 =
308
  * Fixed the issue due to which nothing appears below line 26 until you click below that line.
309
  * Added "register_setting" for error option.
310
  * Corrected comments to source code.
311
+
312
  = 1.5 =
313
  * CodeMirror scripts are combined and minified.
314
+
315
  = 1.4 =
316
  * Fixed the issue due to which the alert message was appearing after installation.
317
+
318
  = 1.3 =
319
  * .pot file included.
320
  * Minor fixes.
321
+
322
  = 1.2 =
323
  * Added the syntax highlighting and line numbering.
324
+
325
  = 1.1 =
326
+ * Fixed positioning of the sidebar at the plugin settings page.
327
+
328
  = 1.0 =
329
  * Initial release.
330
  * Added the check for safety execution code.
331
  * Added ready for translation.
332
+
333
+ = 0.3 =
334
+ * Release candidate.
335
+
336
+ = 0.2 =
337
+ * Beta version.
338
+
339
+ = 0.1 =
340
  * Alfa version.
341
 
342
 
343
  == Upgrade Notice ==
344
+ = 4.0 =
345
+ Please update to new release!
346
  = 3.0 =
347
  Please update to new release!
348
  = 2.0 =
349
  Please update to new release!
350
  = 1.0 =
351
  Please update to first stable release!