-
-
Notifications
You must be signed in to change notification settings - Fork 552
/
app.js.map
185 lines (185 loc) · 756 KB
/
app.js.map
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
{
"version": 3,
"sources": [
"node_modules/browserify/node_modules/browser-pack/_prelude.js",
"node_modules/browserify-css/browser.js",
"node_modules/colornames/colors.js",
"node_modules/colornames/index.js",
"node_modules/superagent/lib/client.js",
"node_modules/superagent/node_modules/component-emitter/index.js",
"node_modules/superagent/node_modules/reduce-component/index.js",
"web/components/common/PressAndHold/index.jsx",
"web/components/header/GrblQuickAccessToolbar.jsx",
"web/components/header/Header.jsx",
"web/components/header/index.css",
"web/components/header/index.jsx",
"web/components/widget/Widget.jsx",
"web/components/widget/WidgetContent.jsx",
"web/components/widget/WidgetFooter.jsx",
"web/components/widget/WidgetHeader.jsx",
"web/components/widget/WidgetHeaderToolbar.jsx",
"web/components/widget/index.css",
"web/components/widget/index.js",
"web/components/widgets/axes/Axes.jsx",
"web/components/widgets/axes/ControlPanel.jsx",
"web/components/widgets/axes/DisplayPanel.jsx",
"web/components/widgets/axes/JogDistanceControl.jsx",
"web/components/widgets/axes/JogJoystickControl.jsx",
"web/components/widgets/axes/MotionControls.jsx",
"web/components/widgets/axes/ToolbarButton.jsx",
"web/components/widgets/axes/constants.js",
"web/components/widgets/axes/index.css",
"web/components/widgets/axes/index.jsx",
"web/components/widgets/connection/Alert.jsx",
"web/components/widgets/connection/Connection.jsx",
"web/components/widgets/connection/index.css",
"web/components/widgets/connection/index.jsx",
"web/components/widgets/console/Console.jsx",
"web/components/widgets/console/ConsoleInput.jsx",
"web/components/widgets/console/ConsoleWindow.jsx",
"web/components/widgets/console/constants.js",
"web/components/widgets/console/index.css",
"web/components/widgets/console/index.jsx",
"web/components/widgets/gcode/GCode.jsx",
"web/components/widgets/gcode/GCodeStats.jsx",
"web/components/widgets/gcode/GCodeTable.jsx",
"web/components/widgets/gcode/constants.js",
"web/components/widgets/gcode/index.css",
"web/components/widgets/gcode/index.jsx",
"web/components/widgets/grbl/Grbl.jsx",
"web/components/widgets/grbl/index.css",
"web/components/widgets/grbl/index.jsx",
"web/components/widgets/index.js",
"web/components/widgets/probe/Probe.jsx",
"web/components/widgets/probe/ToolbarButton.jsx",
"web/components/widgets/probe/constants.js",
"web/components/widgets/probe/index.css",
"web/components/widgets/probe/index.jsx",
"web/components/widgets/spindle/Spindle.jsx",
"web/components/widgets/spindle/index.css",
"web/components/widgets/spindle/index.jsx",
"web/components/widgets/visualizer/FileUploader.jsx",
"web/components/widgets/visualizer/Joystick.jsx",
"web/components/widgets/visualizer/Toolbar.jsx",
"web/components/widgets/visualizer/Visualizer.jsx",
"web/components/widgets/visualizer/constants.js",
"web/components/widgets/visualizer/helpers/CoordinateAxes.js",
"web/components/widgets/visualizer/helpers/EngravingCutter.js",
"web/components/widgets/visualizer/helpers/GridLine.js",
"web/components/widgets/visualizer/helpers/PivotPoint3.js",
"web/components/widgets/visualizer/helpers/index.jsx",
"web/components/widgets/visualizer/index.css",
"web/components/widgets/visualizer/index.jsx",
"web/components/workspace/Workspace.jsx",
"web/components/workspace/index.css",
"web/components/workspace/index.js",
"web/config/settings.js",
"web/constants/modal-groups.js",
"web/containers/App.jsx",
"web/index.jsx",
"web/lib/GCodePath.js",
"web/lib/GCodeRunner.js",
"web/lib/browser.js",
"web/lib/i18n.js",
"web/lib/log.js",
"web/lib/serialport.js",
"web/lib/socket.js",
"web/lib/three/OrbitControls.js",
"web/store/index.js",
"web/styles/app.css",
"web/styles/vendor.css"
],
"names": [],
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACv+EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ICrBqB,YAAY;cAAZ,YAAY;;aAAZ,YAAY;8BAAZ,YAAY;;sEAAZ,YAAY;;;iBAAZ,YAAY;;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",
"file": "generated.js",
"sourceRoot": "",
"sourcesContent": [
"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})",
"'use strict';\n// For more information about browser field, check out the browser field at https://github.com/substack/browserify-handbook#browser-field.\n\nmodule.exports = {\n // Create a <link> tag with optional data attributes\n createLink: function(href, attributes) {\n var head = document.head || document.getElementsByTagName('head')[0];\n var link = document.createElement('link');\n\n link.href = href;\n link.rel = 'stylesheet';\n\n for (var key in attributes) {\n if ( ! attributes.hasOwnProperty(key)) {\n continue;\n }\n var value = attributes[key];\n link.setAttribute('data-' + key, value);\n }\n\n head.appendChild(link);\n },\n // Create a <style> tag with optional data attributes\n createStyle: function(cssText, attributes) {\n var head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n\n for (var key in attributes) {\n if ( ! attributes.hasOwnProperty(key)) {\n continue;\n }\n var value = attributes[key];\n style.setAttribute('data-' + key, value);\n }\n \n if (style.sheet) { // for jsdom and IE9+\n style.innerHTML = cssText;\n style.sheet.cssText = cssText;\n head.appendChild(style);\n } else if (style.styleSheet) { // for IE8 and below\n head.appendChild(style);\n style.styleSheet.cssText = cssText;\n } else { // for Chrome, Firefox, and Safari\n style.appendChild(document.createTextNode(cssText));\n head.appendChild(style);\n }\n }\n};\n",
"module.exports = [\n {\n \"value\":\"#B0171F\",\n \"name\":\"indian red\"\n },\n {\n \"value\":\"#DC143C\",\n \"css\":true,\n \"name\":\"crimson\"\n },\n {\n \"value\":\"#FFB6C1\",\n \"css\":true,\n \"name\":\"lightpink\"\n },\n {\n \"value\":\"#FFAEB9\",\n \"name\":\"lightpink 1\"\n },\n {\n \"value\":\"#EEA2AD\",\n \"name\":\"lightpink 2\"\n },\n {\n \"value\":\"#CD8C95\",\n \"name\":\"lightpink 3\"\n },\n {\n \"value\":\"#8B5F65\",\n \"name\":\"lightpink 4\"\n },\n {\n \"value\":\"#FFC0CB\",\n \"css\":true,\n \"name\":\"pink\"\n },\n {\n \"value\":\"#FFB5C5\",\n \"name\":\"pink 1\"\n },\n {\n \"value\":\"#EEA9B8\",\n \"name\":\"pink 2\"\n },\n {\n \"value\":\"#CD919E\",\n \"name\":\"pink 3\"\n },\n {\n \"value\":\"#8B636C\",\n \"name\":\"pink 4\"\n },\n {\n \"value\":\"#DB7093\",\n \"css\":true,\n \"name\":\"palevioletred\"\n },\n {\n \"value\":\"#FF82AB\",\n \"name\":\"palevioletred 1\"\n },\n {\n \"value\":\"#EE799F\",\n \"name\":\"palevioletred 2\"\n },\n {\n \"value\":\"#CD6889\",\n \"name\":\"palevioletred 3\"\n },\n {\n \"value\":\"#8B475D\",\n \"name\":\"palevioletred 4\"\n },\n {\n \"value\":\"#FFF0F5\",\n \"name\":\"lavenderblush 1\"\n },\n {\n \"value\":\"#FFF0F5\",\n \"css\":true,\n \"name\":\"lavenderblush\"\n },\n {\n \"value\":\"#EEE0E5\",\n \"name\":\"lavenderblush 2\"\n },\n {\n \"value\":\"#CDC1C5\",\n \"name\":\"lavenderblush 3\"\n },\n {\n \"value\":\"#8B8386\",\n \"name\":\"lavenderblush 4\"\n },\n {\n \"value\":\"#FF3E96\",\n \"name\":\"violetred 1\"\n },\n {\n \"value\":\"#EE3A8C\",\n \"name\":\"violetred 2\"\n },\n {\n \"value\":\"#CD3278\",\n \"name\":\"violetred 3\"\n },\n {\n \"value\":\"#8B2252\",\n \"name\":\"violetred 4\"\n },\n {\n \"value\":\"#FF69B4\",\n \"css\":true,\n \"name\":\"hotpink\"\n },\n {\n \"value\":\"#FF6EB4\",\n \"name\":\"hotpink 1\"\n },\n {\n \"value\":\"#EE6AA7\",\n \"name\":\"hotpink 2\"\n },\n {\n \"value\":\"#CD6090\",\n \"name\":\"hotpink 3\"\n },\n {\n \"value\":\"#8B3A62\",\n \"name\":\"hotpink 4\"\n },\n {\n \"value\":\"#872657\",\n \"name\":\"raspberry\"\n },\n {\n \"value\":\"#FF1493\",\n \"name\":\"deeppink 1\"\n },\n {\n \"value\":\"#FF1493\",\n \"css\":true,\n \"name\":\"deeppink\"\n },\n {\n \"value\":\"#EE1289\",\n \"name\":\"deeppink 2\"\n },\n {\n \"value\":\"#CD1076\",\n \"name\":\"deeppink 3\"\n },\n {\n \"value\":\"#8B0A50\",\n \"name\":\"deeppink 4\"\n },\n {\n \"value\":\"#FF34B3\",\n \"name\":\"maroon 1\"\n },\n {\n \"value\":\"#EE30A7\",\n \"name\":\"maroon 2\"\n },\n {\n \"value\":\"#CD2990\",\n \"name\":\"maroon 3\"\n },\n {\n \"value\":\"#8B1C62\",\n \"name\":\"maroon 4\"\n },\n {\n \"value\":\"#C71585\",\n \"css\":true,\n \"name\":\"mediumvioletred\"\n },\n {\n \"value\":\"#D02090\",\n \"name\":\"violetred\"\n },\n {\n \"value\":\"#DA70D6\",\n \"css\":true,\n \"name\":\"orchid\"\n },\n {\n \"value\":\"#FF83FA\",\n \"name\":\"orchid 1\"\n },\n {\n \"value\":\"#EE7AE9\",\n \"name\":\"orchid 2\"\n },\n {\n \"value\":\"#CD69C9\",\n \"name\":\"orchid 3\"\n },\n {\n \"value\":\"#8B4789\",\n \"name\":\"orchid 4\"\n },\n {\n \"value\":\"#D8BFD8\",\n \"css\":true,\n \"name\":\"thistle\"\n },\n {\n \"value\":\"#FFE1FF\",\n \"name\":\"thistle 1\"\n },\n {\n \"value\":\"#EED2EE\",\n \"name\":\"thistle 2\"\n },\n {\n \"value\":\"#CDB5CD\",\n \"name\":\"thistle 3\"\n },\n {\n \"value\":\"#8B7B8B\",\n \"name\":\"thistle 4\"\n },\n {\n \"value\":\"#FFBBFF\",\n \"name\":\"plum 1\"\n },\n {\n \"value\":\"#EEAEEE\",\n \"name\":\"plum 2\"\n },\n {\n \"value\":\"#CD96CD\",\n \"name\":\"plum 3\"\n },\n {\n \"value\":\"#8B668B\",\n \"name\":\"plum 4\"\n },\n {\n \"value\":\"#DDA0DD\",\n \"css\":true,\n \"name\":\"plum\"\n },\n {\n \"value\":\"#EE82EE\",\n \"css\":true,\n \"name\":\"violet\"\n },\n {\n \"value\":\"#FF00FF\",\n \"vga\":true,\n \"name\":\"magenta\"\n },\n {\n \"value\":\"#FF00FF\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"fuchsia\"\n },\n {\n \"value\":\"#EE00EE\",\n \"name\":\"magenta 2\"\n },\n {\n \"value\":\"#CD00CD\",\n \"name\":\"magenta 3\"\n },\n {\n \"value\":\"#8B008B\",\n \"name\":\"magenta 4\"\n },\n {\n \"value\":\"#8B008B\",\n \"css\":true,\n \"name\":\"darkmagenta\"\n },\n {\n \"value\":\"#800080\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"purple\"\n },\n {\n \"value\":\"#BA55D3\",\n \"css\":true,\n \"name\":\"mediumorchid\"\n },\n {\n \"value\":\"#E066FF\",\n \"name\":\"mediumorchid 1\"\n },\n {\n \"value\":\"#D15FEE\",\n \"name\":\"mediumorchid 2\"\n },\n {\n \"value\":\"#B452CD\",\n \"name\":\"mediumorchid 3\"\n },\n {\n \"value\":\"#7A378B\",\n \"name\":\"mediumorchid 4\"\n },\n {\n \"value\":\"#9400D3\",\n \"css\":true,\n \"name\":\"darkviolet\"\n },\n {\n \"value\":\"#9932CC\",\n \"css\":true,\n \"name\":\"darkorchid\"\n },\n {\n \"value\":\"#BF3EFF\",\n \"name\":\"darkorchid 1\"\n },\n {\n \"value\":\"#B23AEE\",\n \"name\":\"darkorchid 2\"\n },\n {\n \"value\":\"#9A32CD\",\n \"name\":\"darkorchid 3\"\n },\n {\n \"value\":\"#68228B\",\n \"name\":\"darkorchid 4\"\n },\n {\n \"value\":\"#4B0082\",\n \"css\":true,\n \"name\":\"indigo\"\n },\n {\n \"value\":\"#8A2BE2\",\n \"css\":true,\n \"name\":\"blueviolet\"\n },\n {\n \"value\":\"#9B30FF\",\n \"name\":\"purple 1\"\n },\n {\n \"value\":\"#912CEE\",\n \"name\":\"purple 2\"\n },\n {\n \"value\":\"#7D26CD\",\n \"name\":\"purple 3\"\n },\n {\n \"value\":\"#551A8B\",\n \"name\":\"purple 4\"\n },\n {\n \"value\":\"#9370DB\",\n \"css\":true,\n \"name\":\"mediumpurple\"\n },\n {\n \"value\":\"#AB82FF\",\n \"name\":\"mediumpurple 1\"\n },\n {\n \"value\":\"#9F79EE\",\n \"name\":\"mediumpurple 2\"\n },\n {\n \"value\":\"#8968CD\",\n \"name\":\"mediumpurple 3\"\n },\n {\n \"value\":\"#5D478B\",\n \"name\":\"mediumpurple 4\"\n },\n {\n \"value\":\"#483D8B\",\n \"css\":true,\n \"name\":\"darkslateblue\"\n },\n {\n \"value\":\"#8470FF\",\n \"name\":\"lightslateblue\"\n },\n {\n \"value\":\"#7B68EE\",\n \"css\":true,\n \"name\":\"mediumslateblue\"\n },\n {\n \"value\":\"#6A5ACD\",\n \"css\":true,\n \"name\":\"slateblue\"\n },\n {\n \"value\":\"#836FFF\",\n \"name\":\"slateblue 1\"\n },\n {\n \"value\":\"#7A67EE\",\n \"name\":\"slateblue 2\"\n },\n {\n \"value\":\"#6959CD\",\n \"name\":\"slateblue 3\"\n },\n {\n \"value\":\"#473C8B\",\n \"name\":\"slateblue 4\"\n },\n {\n \"value\":\"#F8F8FF\",\n \"css\":true,\n \"name\":\"ghostwhite\"\n },\n {\n \"value\":\"#E6E6FA\",\n \"css\":true,\n \"name\":\"lavender\"\n },\n {\n \"value\":\"#0000FF\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"blue\"\n },\n {\n \"value\":\"#0000EE\",\n \"name\":\"blue 2\"\n },\n {\n \"value\":\"#0000CD\",\n \"name\":\"blue 3\"\n },\n {\n \"value\":\"#0000CD\",\n \"css\":true,\n \"name\":\"mediumblue\"\n },\n {\n \"value\":\"#00008B\",\n \"name\":\"blue 4\"\n },\n {\n \"value\":\"#00008B\",\n \"css\":true,\n \"name\":\"darkblue\"\n },\n {\n \"value\":\"#000080\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"navy\"\n },\n {\n \"value\":\"#191970\",\n \"css\":true,\n \"name\":\"midnightblue\"\n },\n {\n \"value\":\"#3D59AB\",\n \"name\":\"cobalt\"\n },\n {\n \"value\":\"#4169E1\",\n \"css\":true,\n \"name\":\"royalblue\"\n },\n {\n \"value\":\"#4876FF\",\n \"name\":\"royalblue 1\"\n },\n {\n \"value\":\"#436EEE\",\n \"name\":\"royalblue 2\"\n },\n {\n \"value\":\"#3A5FCD\",\n \"name\":\"royalblue 3\"\n },\n {\n \"value\":\"#27408B\",\n \"name\":\"royalblue 4\"\n },\n {\n \"value\":\"#6495ED\",\n \"css\":true,\n \"name\":\"cornflowerblue\"\n },\n {\n \"value\":\"#B0C4DE\",\n \"css\":true,\n \"name\":\"lightsteelblue\"\n },\n {\n \"value\":\"#CAE1FF\",\n \"name\":\"lightsteelblue 1\"\n },\n {\n \"value\":\"#BCD2EE\",\n \"name\":\"lightsteelblue 2\"\n },\n {\n \"value\":\"#A2B5CD\",\n \"name\":\"lightsteelblue 3\"\n },\n {\n \"value\":\"#6E7B8B\",\n \"name\":\"lightsteelblue 4\"\n },\n {\n \"value\":\"#778899\",\n \"css\":true,\n \"name\":\"lightslategray\"\n },\n {\n \"value\":\"#708090\",\n \"css\":true,\n \"name\":\"slategray\"\n },\n {\n \"value\":\"#C6E2FF\",\n \"name\":\"slategray 1\"\n },\n {\n \"value\":\"#B9D3EE\",\n \"name\":\"slategray 2\"\n },\n {\n \"value\":\"#9FB6CD\",\n \"name\":\"slategray 3\"\n },\n {\n \"value\":\"#6C7B8B\",\n \"name\":\"slategray 4\"\n },\n {\n \"value\":\"#1E90FF\",\n \"name\":\"dodgerblue 1\"\n },\n {\n \"value\":\"#1E90FF\",\n \"css\":true,\n \"name\":\"dodgerblue\"\n },\n {\n \"value\":\"#1C86EE\",\n \"name\":\"dodgerblue 2\"\n },\n {\n \"value\":\"#1874CD\",\n \"name\":\"dodgerblue 3\"\n },\n {\n \"value\":\"#104E8B\",\n \"name\":\"dodgerblue 4\"\n },\n {\n \"value\":\"#F0F8FF\",\n \"css\":true,\n \"name\":\"aliceblue\"\n },\n {\n \"value\":\"#4682B4\",\n \"css\":true,\n \"name\":\"steelblue\"\n },\n {\n \"value\":\"#63B8FF\",\n \"name\":\"steelblue 1\"\n },\n {\n \"value\":\"#5CACEE\",\n \"name\":\"steelblue 2\"\n },\n {\n \"value\":\"#4F94CD\",\n \"name\":\"steelblue 3\"\n },\n {\n \"value\":\"#36648B\",\n \"name\":\"steelblue 4\"\n },\n {\n \"value\":\"#87CEFA\",\n \"css\":true,\n \"name\":\"lightskyblue\"\n },\n {\n \"value\":\"#B0E2FF\",\n \"name\":\"lightskyblue 1\"\n },\n {\n \"value\":\"#A4D3EE\",\n \"name\":\"lightskyblue 2\"\n },\n {\n \"value\":\"#8DB6CD\",\n \"name\":\"lightskyblue 3\"\n },\n {\n \"value\":\"#607B8B\",\n \"name\":\"lightskyblue 4\"\n },\n {\n \"value\":\"#87CEFF\",\n \"name\":\"skyblue 1\"\n },\n {\n \"value\":\"#7EC0EE\",\n \"name\":\"skyblue 2\"\n },\n {\n \"value\":\"#6CA6CD\",\n \"name\":\"skyblue 3\"\n },\n {\n \"value\":\"#4A708B\",\n \"name\":\"skyblue 4\"\n },\n {\n \"value\":\"#87CEEB\",\n \"css\":true,\n \"name\":\"skyblue\"\n },\n {\n \"value\":\"#00BFFF\",\n \"name\":\"deepskyblue 1\"\n },\n {\n \"value\":\"#00BFFF\",\n \"css\":true,\n \"name\":\"deepskyblue\"\n },\n {\n \"value\":\"#00B2EE\",\n \"name\":\"deepskyblue 2\"\n },\n {\n \"value\":\"#009ACD\",\n \"name\":\"deepskyblue 3\"\n },\n {\n \"value\":\"#00688B\",\n \"name\":\"deepskyblue 4\"\n },\n {\n \"value\":\"#33A1C9\",\n \"name\":\"peacock\"\n },\n {\n \"value\":\"#ADD8E6\",\n \"css\":true,\n \"name\":\"lightblue\"\n },\n {\n \"value\":\"#BFEFFF\",\n \"name\":\"lightblue 1\"\n },\n {\n \"value\":\"#B2DFEE\",\n \"name\":\"lightblue 2\"\n },\n {\n \"value\":\"#9AC0CD\",\n \"name\":\"lightblue 3\"\n },\n {\n \"value\":\"#68838B\",\n \"name\":\"lightblue 4\"\n },\n {\n \"value\":\"#B0E0E6\",\n \"css\":true,\n \"name\":\"powderblue\"\n },\n {\n \"value\":\"#98F5FF\",\n \"name\":\"cadetblue 1\"\n },\n {\n \"value\":\"#8EE5EE\",\n \"name\":\"cadetblue 2\"\n },\n {\n \"value\":\"#7AC5CD\",\n \"name\":\"cadetblue 3\"\n },\n {\n \"value\":\"#53868B\",\n \"name\":\"cadetblue 4\"\n },\n {\n \"value\":\"#00F5FF\",\n \"name\":\"turquoise 1\"\n },\n {\n \"value\":\"#00E5EE\",\n \"name\":\"turquoise 2\"\n },\n {\n \"value\":\"#00C5CD\",\n \"name\":\"turquoise 3\"\n },\n {\n \"value\":\"#00868B\",\n \"name\":\"turquoise 4\"\n },\n {\n \"value\":\"#5F9EA0\",\n \"css\":true,\n \"name\":\"cadetblue\"\n },\n {\n \"value\":\"#00CED1\",\n \"css\":true,\n \"name\":\"darkturquoise\"\n },\n {\n \"value\":\"#F0FFFF\",\n \"name\":\"azure 1\"\n },\n {\n \"value\":\"#F0FFFF\",\n \"css\":true,\n \"name\":\"azure\"\n },\n {\n \"value\":\"#E0EEEE\",\n \"name\":\"azure 2\"\n },\n {\n \"value\":\"#C1CDCD\",\n \"name\":\"azure 3\"\n },\n {\n \"value\":\"#838B8B\",\n \"name\":\"azure 4\"\n },\n {\n \"value\":\"#E0FFFF\",\n \"name\":\"lightcyan 1\"\n },\n {\n \"value\":\"#E0FFFF\",\n \"css\":true,\n \"name\":\"lightcyan\"\n },\n {\n \"value\":\"#D1EEEE\",\n \"name\":\"lightcyan 2\"\n },\n {\n \"value\":\"#B4CDCD\",\n \"name\":\"lightcyan 3\"\n },\n {\n \"value\":\"#7A8B8B\",\n \"name\":\"lightcyan 4\"\n },\n {\n \"value\":\"#BBFFFF\",\n \"name\":\"paleturquoise 1\"\n },\n {\n \"value\":\"#AEEEEE\",\n \"name\":\"paleturquoise 2\"\n },\n {\n \"value\":\"#AEEEEE\",\n \"css\":true,\n \"name\":\"paleturquoise\"\n },\n {\n \"value\":\"#96CDCD\",\n \"name\":\"paleturquoise 3\"\n },\n {\n \"value\":\"#668B8B\",\n \"name\":\"paleturquoise 4\"\n },\n {\n \"value\":\"#2F4F4F\",\n \"css\":true,\n \"name\":\"darkslategray\"\n },\n {\n \"value\":\"#97FFFF\",\n \"name\":\"darkslategray 1\"\n },\n {\n \"value\":\"#8DEEEE\",\n \"name\":\"darkslategray 2\"\n },\n {\n \"value\":\"#79CDCD\",\n \"name\":\"darkslategray 3\"\n },\n {\n \"value\":\"#528B8B\",\n \"name\":\"darkslategray 4\"\n },\n {\n \"value\":\"#00FFFF\",\n \"name\":\"cyan\"\n },\n {\n \"value\":\"#00FFFF\",\n \"css\":true,\n \"name\":\"aqua\"\n },\n {\n \"value\":\"#00EEEE\",\n \"name\":\"cyan 2\"\n },\n {\n \"value\":\"#00CDCD\",\n \"name\":\"cyan 3\"\n },\n {\n \"value\":\"#008B8B\",\n \"name\":\"cyan 4\"\n },\n {\n \"value\":\"#008B8B\",\n \"css\":true,\n \"name\":\"darkcyan\"\n },\n {\n \"value\":\"#008080\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"teal\"\n },\n {\n \"value\":\"#48D1CC\",\n \"css\":true,\n \"name\":\"mediumturquoise\"\n },\n {\n \"value\":\"#20B2AA\",\n \"css\":true,\n \"name\":\"lightseagreen\"\n },\n {\n \"value\":\"#03A89E\",\n \"name\":\"manganeseblue\"\n },\n {\n \"value\":\"#40E0D0\",\n \"css\":true,\n \"name\":\"turquoise\"\n },\n {\n \"value\":\"#808A87\",\n \"name\":\"coldgrey\"\n },\n {\n \"value\":\"#00C78C\",\n \"name\":\"turquoiseblue\"\n },\n {\n \"value\":\"#7FFFD4\",\n \"name\":\"aquamarine 1\"\n },\n {\n \"value\":\"#7FFFD4\",\n \"css\":true,\n \"name\":\"aquamarine\"\n },\n {\n \"value\":\"#76EEC6\",\n \"name\":\"aquamarine 2\"\n },\n {\n \"value\":\"#66CDAA\",\n \"name\":\"aquamarine 3\"\n },\n {\n \"value\":\"#66CDAA\",\n \"css\":true,\n \"name\":\"mediumaquamarine\"\n },\n {\n \"value\":\"#458B74\",\n \"name\":\"aquamarine 4\"\n },\n {\n \"value\":\"#00FA9A\",\n \"css\":true,\n \"name\":\"mediumspringgreen\"\n },\n {\n \"value\":\"#F5FFFA\",\n \"css\":true,\n \"name\":\"mintcream\"\n },\n {\n \"value\":\"#00FF7F\",\n \"css\":true,\n \"name\":\"springgreen\"\n },\n {\n \"value\":\"#00EE76\",\n \"name\":\"springgreen 1\"\n },\n {\n \"value\":\"#00CD66\",\n \"name\":\"springgreen 2\"\n },\n {\n \"value\":\"#008B45\",\n \"name\":\"springgreen 3\"\n },\n {\n \"value\":\"#3CB371\",\n \"css\":true,\n \"name\":\"mediumseagreen\"\n },\n {\n \"value\":\"#54FF9F\",\n \"name\":\"seagreen 1\"\n },\n {\n \"value\":\"#4EEE94\",\n \"name\":\"seagreen 2\"\n },\n {\n \"value\":\"#43CD80\",\n \"name\":\"seagreen 3\"\n },\n {\n \"value\":\"#2E8B57\",\n \"name\":\"seagreen 4\"\n },\n {\n \"value\":\"#2E8B57\",\n \"css\":true,\n \"name\":\"seagreen\"\n },\n {\n \"value\":\"#00C957\",\n \"name\":\"emeraldgreen\"\n },\n {\n \"value\":\"#BDFCC9\",\n \"name\":\"mint\"\n },\n {\n \"value\":\"#3D9140\",\n \"name\":\"cobaltgreen\"\n },\n {\n \"value\":\"#F0FFF0\",\n \"name\":\"honeydew 1\"\n },\n {\n \"value\":\"#F0FFF0\",\n \"css\":true,\n \"name\":\"honeydew\"\n },\n {\n \"value\":\"#E0EEE0\",\n \"name\":\"honeydew 2\"\n },\n {\n \"value\":\"#C1CDC1\",\n \"name\":\"honeydew 3\"\n },\n {\n \"value\":\"#838B83\",\n \"name\":\"honeydew 4\"\n },\n {\n \"value\":\"#8FBC8F\",\n \"css\":true,\n \"name\":\"darkseagreen\"\n },\n {\n \"value\":\"#C1FFC1\",\n \"name\":\"darkseagreen 1\"\n },\n {\n \"value\":\"#B4EEB4\",\n \"name\":\"darkseagreen 2\"\n },\n {\n \"value\":\"#9BCD9B\",\n \"name\":\"darkseagreen 3\"\n },\n {\n \"value\":\"#698B69\",\n \"name\":\"darkseagreen 4\"\n },\n {\n \"value\":\"#98FB98\",\n \"css\":true,\n \"name\":\"palegreen\"\n },\n {\n \"value\":\"#9AFF9A\",\n \"name\":\"palegreen 1\"\n },\n {\n \"value\":\"#90EE90\",\n \"name\":\"palegreen 2\"\n },\n {\n \"value\":\"#90EE90\",\n \"css\":true,\n \"name\":\"lightgreen\"\n },\n {\n \"value\":\"#7CCD7C\",\n \"name\":\"palegreen 3\"\n },\n {\n \"value\":\"#548B54\",\n \"name\":\"palegreen 4\"\n },\n {\n \"value\":\"#32CD32\",\n \"css\":true,\n \"name\":\"limegreen\"\n },\n {\n \"value\":\"#228B22\",\n \"css\":true,\n \"name\":\"forestgreen\"\n },\n {\n \"value\":\"#00FF00\",\n \"vga\":true,\n \"name\":\"green 1\"\n },\n {\n \"value\":\"#00FF00\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"lime\"\n },\n {\n \"value\":\"#00EE00\",\n \"name\":\"green 2\"\n },\n {\n \"value\":\"#00CD00\",\n \"name\":\"green 3\"\n },\n {\n \"value\":\"#008B00\",\n \"name\":\"green 4\"\n },\n {\n \"value\":\"#008000\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"green\"\n },\n {\n \"value\":\"#006400\",\n \"css\":true,\n \"name\":\"darkgreen\"\n },\n {\n \"value\":\"#308014\",\n \"name\":\"sapgreen\"\n },\n {\n \"value\":\"#7CFC00\",\n \"css\":true,\n \"name\":\"lawngreen\"\n },\n {\n \"value\":\"#7FFF00\",\n \"name\":\"chartreuse 1\"\n },\n {\n \"value\":\"#7FFF00\",\n \"css\":true,\n \"name\":\"chartreuse\"\n },\n {\n \"value\":\"#76EE00\",\n \"name\":\"chartreuse 2\"\n },\n {\n \"value\":\"#66CD00\",\n \"name\":\"chartreuse 3\"\n },\n {\n \"value\":\"#458B00\",\n \"name\":\"chartreuse 4\"\n },\n {\n \"value\":\"#ADFF2F\",\n \"css\":true,\n \"name\":\"greenyellow\"\n },\n {\n \"value\":\"#CAFF70\",\n \"name\":\"darkolivegreen 1\"\n },\n {\n \"value\":\"#BCEE68\",\n \"name\":\"darkolivegreen 2\"\n },\n {\n \"value\":\"#A2CD5A\",\n \"name\":\"darkolivegreen 3\"\n },\n {\n \"value\":\"#6E8B3D\",\n \"name\":\"darkolivegreen 4\"\n },\n {\n \"value\":\"#556B2F\",\n \"css\":true,\n \"name\":\"darkolivegreen\"\n },\n {\n \"value\":\"#6B8E23\",\n \"css\":true,\n \"name\":\"olivedrab\"\n },\n {\n \"value\":\"#C0FF3E\",\n \"name\":\"olivedrab 1\"\n },\n {\n \"value\":\"#B3EE3A\",\n \"name\":\"olivedrab 2\"\n },\n {\n \"value\":\"#9ACD32\",\n \"name\":\"olivedrab 3\"\n },\n {\n \"value\":\"#9ACD32\",\n \"css\":true,\n \"name\":\"yellowgreen\"\n },\n {\n \"value\":\"#698B22\",\n \"name\":\"olivedrab 4\"\n },\n {\n \"value\":\"#FFFFF0\",\n \"name\":\"ivory 1\"\n },\n {\n \"value\":\"#FFFFF0\",\n \"css\":true,\n \"name\":\"ivory\"\n },\n {\n \"value\":\"#EEEEE0\",\n \"name\":\"ivory 2\"\n },\n {\n \"value\":\"#CDCDC1\",\n \"name\":\"ivory 3\"\n },\n {\n \"value\":\"#8B8B83\",\n \"name\":\"ivory 4\"\n },\n {\n \"value\":\"#F5F5DC\",\n \"css\":true,\n \"name\":\"beige\"\n },\n {\n \"value\":\"#FFFFE0\",\n \"name\":\"lightyellow 1\"\n },\n {\n \"value\":\"#FFFFE0\",\n \"css\":true,\n \"name\":\"lightyellow\"\n },\n {\n \"value\":\"#EEEED1\",\n \"name\":\"lightyellow 2\"\n },\n {\n \"value\":\"#CDCDB4\",\n \"name\":\"lightyellow 3\"\n },\n {\n \"value\":\"#8B8B7A\",\n \"name\":\"lightyellow 4\"\n },\n {\n \"value\":\"#FAFAD2\",\n \"css\":true,\n \"name\":\"lightgoldenrodyellow\"\n },\n {\n \"value\":\"#FFFF00\",\n \"vga\":true,\n \"name\":\"yellow 1\"\n },\n {\n \"value\":\"#FFFF00\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"yellow\"\n },\n {\n \"value\":\"#EEEE00\",\n \"name\":\"yellow 2\"\n },\n {\n \"value\":\"#CDCD00\",\n \"name\":\"yellow 3\"\n },\n {\n \"value\":\"#8B8B00\",\n \"name\":\"yellow 4\"\n },\n {\n \"value\":\"#808069\",\n \"name\":\"warmgrey\"\n },\n {\n \"value\":\"#808000\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"olive\"\n },\n {\n \"value\":\"#BDB76B\",\n \"css\":true,\n \"name\":\"darkkhaki\"\n },\n {\n \"value\":\"#FFF68F\",\n \"name\":\"khaki 1\"\n },\n {\n \"value\":\"#EEE685\",\n \"name\":\"khaki 2\"\n },\n {\n \"value\":\"#CDC673\",\n \"name\":\"khaki 3\"\n },\n {\n \"value\":\"#8B864E\",\n \"name\":\"khaki 4\"\n },\n {\n \"value\":\"#F0E68C\",\n \"css\":true,\n \"name\":\"khaki\"\n },\n {\n \"value\":\"#EEE8AA\",\n \"css\":true,\n \"name\":\"palegoldenrod\"\n },\n {\n \"value\":\"#FFFACD\",\n \"name\":\"lemonchiffon 1\"\n },\n {\n \"value\":\"#FFFACD\",\n \"css\":true,\n \"name\":\"lemonchiffon\"\n },\n {\n \"value\":\"#EEE9BF\",\n \"name\":\"lemonchiffon 2\"\n },\n {\n \"value\":\"#CDC9A5\",\n \"name\":\"lemonchiffon 3\"\n },\n {\n \"value\":\"#8B8970\",\n \"name\":\"lemonchiffon 4\"\n },\n {\n \"value\":\"#FFEC8B\",\n \"name\":\"lightgoldenrod 1\"\n },\n {\n \"value\":\"#EEDC82\",\n \"name\":\"lightgoldenrod 2\"\n },\n {\n \"value\":\"#CDBE70\",\n \"name\":\"lightgoldenrod 3\"\n },\n {\n \"value\":\"#8B814C\",\n \"name\":\"lightgoldenrod 4\"\n },\n {\n \"value\":\"#E3CF57\",\n \"name\":\"banana\"\n },\n {\n \"value\":\"#FFD700\",\n \"name\":\"gold 1\"\n },\n {\n \"value\":\"#FFD700\",\n \"css\":true,\n \"name\":\"gold\"\n },\n {\n \"value\":\"#EEC900\",\n \"name\":\"gold 2\"\n },\n {\n \"value\":\"#CDAD00\",\n \"name\":\"gold 3\"\n },\n {\n \"value\":\"#8B7500\",\n \"name\":\"gold 4\"\n },\n {\n \"value\":\"#FFF8DC\",\n \"name\":\"cornsilk 1\"\n },\n {\n \"value\":\"#FFF8DC\",\n \"css\":true,\n \"name\":\"cornsilk\"\n },\n {\n \"value\":\"#EEE8CD\",\n \"name\":\"cornsilk 2\"\n },\n {\n \"value\":\"#CDC8B1\",\n \"name\":\"cornsilk 3\"\n },\n {\n \"value\":\"#8B8878\",\n \"name\":\"cornsilk 4\"\n },\n {\n \"value\":\"#DAA520\",\n \"css\":true,\n \"name\":\"goldenrod\"\n },\n {\n \"value\":\"#FFC125\",\n \"name\":\"goldenrod 1\"\n },\n {\n \"value\":\"#EEB422\",\n \"name\":\"goldenrod 2\"\n },\n {\n \"value\":\"#CD9B1D\",\n \"name\":\"goldenrod 3\"\n },\n {\n \"value\":\"#8B6914\",\n \"name\":\"goldenrod 4\"\n },\n {\n \"value\":\"#B8860B\",\n \"css\":true,\n \"name\":\"darkgoldenrod\"\n },\n {\n \"value\":\"#FFB90F\",\n \"name\":\"darkgoldenrod 1\"\n },\n {\n \"value\":\"#EEAD0E\",\n \"name\":\"darkgoldenrod 2\"\n },\n {\n \"value\":\"#CD950C\",\n \"name\":\"darkgoldenrod 3\"\n },\n {\n \"value\":\"#8B6508\",\n \"name\":\"darkgoldenrod 4\"\n },\n {\n \"value\":\"#FFA500\",\n \"name\":\"orange 1\"\n },\n {\n \"value\":\"#FF8000\",\n \"css\":true,\n \"name\":\"orange\"\n },\n {\n \"value\":\"#EE9A00\",\n \"name\":\"orange 2\"\n },\n {\n \"value\":\"#CD8500\",\n \"name\":\"orange 3\"\n },\n {\n \"value\":\"#8B5A00\",\n \"name\":\"orange 4\"\n },\n {\n \"value\":\"#FFFAF0\",\n \"css\":true,\n \"name\":\"floralwhite\"\n },\n {\n \"value\":\"#FDF5E6\",\n \"css\":true,\n \"name\":\"oldlace\"\n },\n {\n \"value\":\"#F5DEB3\",\n \"css\":true,\n \"name\":\"wheat\"\n },\n {\n \"value\":\"#FFE7BA\",\n \"name\":\"wheat 1\"\n },\n {\n \"value\":\"#EED8AE\",\n \"name\":\"wheat 2\"\n },\n {\n \"value\":\"#CDBA96\",\n \"name\":\"wheat 3\"\n },\n {\n \"value\":\"#8B7E66\",\n \"name\":\"wheat 4\"\n },\n {\n \"value\":\"#FFE4B5\",\n \"css\":true,\n \"name\":\"moccasin\"\n },\n {\n \"value\":\"#FFEFD5\",\n \"css\":true,\n \"name\":\"papayawhip\"\n },\n {\n \"value\":\"#FFEBCD\",\n \"css\":true,\n \"name\":\"blanchedalmond\"\n },\n {\n \"value\":\"#FFDEAD\",\n \"name\":\"navajowhite 1\"\n },\n {\n \"value\":\"#FFDEAD\",\n \"css\":true,\n \"name\":\"navajowhite\"\n },\n {\n \"value\":\"#EECFA1\",\n \"name\":\"navajowhite 2\"\n },\n {\n \"value\":\"#CDB38B\",\n \"name\":\"navajowhite 3\"\n },\n {\n \"value\":\"#8B795E\",\n \"name\":\"navajowhite 4\"\n },\n {\n \"value\":\"#FCE6C9\",\n \"name\":\"eggshell\"\n },\n {\n \"value\":\"#D2B48C\",\n \"css\":true,\n \"name\":\"tan\"\n },\n {\n \"value\":\"#9C661F\",\n \"name\":\"brick\"\n },\n {\n \"value\":\"#FF9912\",\n \"name\":\"cadmiumyellow\"\n },\n {\n \"value\":\"#FAEBD7\",\n \"css\":true,\n \"name\":\"antiquewhite\"\n },\n {\n \"value\":\"#FFEFDB\",\n \"name\":\"antiquewhite 1\"\n },\n {\n \"value\":\"#EEDFCC\",\n \"name\":\"antiquewhite 2\"\n },\n {\n \"value\":\"#CDC0B0\",\n \"name\":\"antiquewhite 3\"\n },\n {\n \"value\":\"#8B8378\",\n \"name\":\"antiquewhite 4\"\n },\n {\n \"value\":\"#DEB887\",\n \"css\":true,\n \"name\":\"burlywood\"\n },\n {\n \"value\":\"#FFD39B\",\n \"name\":\"burlywood 1\"\n },\n {\n \"value\":\"#EEC591\",\n \"name\":\"burlywood 2\"\n },\n {\n \"value\":\"#CDAA7D\",\n \"name\":\"burlywood 3\"\n },\n {\n \"value\":\"#8B7355\",\n \"name\":\"burlywood 4\"\n },\n {\n \"value\":\"#FFE4C4\",\n \"name\":\"bisque 1\"\n },\n {\n \"value\":\"#FFE4C4\",\n \"css\":true,\n \"name\":\"bisque\"\n },\n {\n \"value\":\"#EED5B7\",\n \"name\":\"bisque 2\"\n },\n {\n \"value\":\"#CDB79E\",\n \"name\":\"bisque 3\"\n },\n {\n \"value\":\"#8B7D6B\",\n \"name\":\"bisque 4\"\n },\n {\n \"value\":\"#E3A869\",\n \"name\":\"melon\"\n },\n {\n \"value\":\"#ED9121\",\n \"name\":\"carrot\"\n },\n {\n \"value\":\"#FF8C00\",\n \"css\":true,\n \"name\":\"darkorange\"\n },\n {\n \"value\":\"#FF7F00\",\n \"name\":\"darkorange 1\"\n },\n {\n \"value\":\"#EE7600\",\n \"name\":\"darkorange 2\"\n },\n {\n \"value\":\"#CD6600\",\n \"name\":\"darkorange 3\"\n },\n {\n \"value\":\"#8B4500\",\n \"name\":\"darkorange 4\"\n },\n {\n \"value\":\"#FFA54F\",\n \"name\":\"tan 1\"\n },\n {\n \"value\":\"#EE9A49\",\n \"name\":\"tan 2\"\n },\n {\n \"value\":\"#CD853F\",\n \"name\":\"tan 3\"\n },\n {\n \"value\":\"#CD853F\",\n \"css\":true,\n \"name\":\"peru\"\n },\n {\n \"value\":\"#8B5A2B\",\n \"name\":\"tan 4\"\n },\n {\n \"value\":\"#FAF0E6\",\n \"css\":true,\n \"name\":\"linen\"\n },\n {\n \"value\":\"#FFDAB9\",\n \"name\":\"peachpuff 1\"\n },\n {\n \"value\":\"#FFDAB9\",\n \"css\":true,\n \"name\":\"peachpuff\"\n },\n {\n \"value\":\"#EECBAD\",\n \"name\":\"peachpuff 2\"\n },\n {\n \"value\":\"#CDAF95\",\n \"name\":\"peachpuff 3\"\n },\n {\n \"value\":\"#8B7765\",\n \"name\":\"peachpuff 4\"\n },\n {\n \"value\":\"#FFF5EE\",\n \"name\":\"seashell 1\"\n },\n {\n \"value\":\"#FFF5EE\",\n \"css\":true,\n \"name\":\"seashell\"\n },\n {\n \"value\":\"#EEE5DE\",\n \"name\":\"seashell 2\"\n },\n {\n \"value\":\"#CDC5BF\",\n \"name\":\"seashell 3\"\n },\n {\n \"value\":\"#8B8682\",\n \"name\":\"seashell 4\"\n },\n {\n \"value\":\"#F4A460\",\n \"css\":true,\n \"name\":\"sandybrown\"\n },\n {\n \"value\":\"#C76114\",\n \"name\":\"rawsienna\"\n },\n {\n \"value\":\"#D2691E\",\n \"css\":true,\n \"name\":\"chocolate\"\n },\n {\n \"value\":\"#FF7F24\",\n \"name\":\"chocolate 1\"\n },\n {\n \"value\":\"#EE7621\",\n \"name\":\"chocolate 2\"\n },\n {\n \"value\":\"#CD661D\",\n \"name\":\"chocolate 3\"\n },\n {\n \"value\":\"#8B4513\",\n \"name\":\"chocolate 4\"\n },\n {\n \"value\":\"#8B4513\",\n \"css\":true,\n \"name\":\"saddlebrown\"\n },\n {\n \"value\":\"#292421\",\n \"name\":\"ivoryblack\"\n },\n {\n \"value\":\"#FF7D40\",\n \"name\":\"flesh\"\n },\n {\n \"value\":\"#FF6103\",\n \"name\":\"cadmiumorange\"\n },\n {\n \"value\":\"#8A360F\",\n \"name\":\"burntsienna\"\n },\n {\n \"value\":\"#A0522D\",\n \"css\":true,\n \"name\":\"sienna\"\n },\n {\n \"value\":\"#FF8247\",\n \"name\":\"sienna 1\"\n },\n {\n \"value\":\"#EE7942\",\n \"name\":\"sienna 2\"\n },\n {\n \"value\":\"#CD6839\",\n \"name\":\"sienna 3\"\n },\n {\n \"value\":\"#8B4726\",\n \"name\":\"sienna 4\"\n },\n {\n \"value\":\"#FFA07A\",\n \"name\":\"lightsalmon 1\"\n },\n {\n \"value\":\"#FFA07A\",\n \"css\":true,\n \"name\":\"lightsalmon\"\n },\n {\n \"value\":\"#EE9572\",\n \"name\":\"lightsalmon 2\"\n },\n {\n \"value\":\"#CD8162\",\n \"name\":\"lightsalmon 3\"\n },\n {\n \"value\":\"#8B5742\",\n \"name\":\"lightsalmon 4\"\n },\n {\n \"value\":\"#FF7F50\",\n \"css\":true,\n \"name\":\"coral\"\n },\n {\n \"value\":\"#FF4500\",\n \"name\":\"orangered 1\"\n },\n {\n \"value\":\"#FF4500\",\n \"css\":true,\n \"name\":\"orangered\"\n },\n {\n \"value\":\"#EE4000\",\n \"name\":\"orangered 2\"\n },\n {\n \"value\":\"#CD3700\",\n \"name\":\"orangered 3\"\n },\n {\n \"value\":\"#8B2500\",\n \"name\":\"orangered 4\"\n },\n {\n \"value\":\"#5E2612\",\n \"name\":\"sepia\"\n },\n {\n \"value\":\"#E9967A\",\n \"css\":true,\n \"name\":\"darksalmon\"\n },\n {\n \"value\":\"#FF8C69\",\n \"name\":\"salmon 1\"\n },\n {\n \"value\":\"#EE8262\",\n \"name\":\"salmon 2\"\n },\n {\n \"value\":\"#CD7054\",\n \"name\":\"salmon 3\"\n },\n {\n \"value\":\"#8B4C39\",\n \"name\":\"salmon 4\"\n },\n {\n \"value\":\"#FF7256\",\n \"name\":\"coral 1\"\n },\n {\n \"value\":\"#EE6A50\",\n \"name\":\"coral 2\"\n },\n {\n \"value\":\"#CD5B45\",\n \"name\":\"coral 3\"\n },\n {\n \"value\":\"#8B3E2F\",\n \"name\":\"coral 4\"\n },\n {\n \"value\":\"#8A3324\",\n \"name\":\"burntumber\"\n },\n {\n \"value\":\"#FF6347\",\n \"name\":\"tomato 1\"\n },\n {\n \"value\":\"#FF6347\",\n \"css\":true,\n \"name\":\"tomato\"\n },\n {\n \"value\":\"#EE5C42\",\n \"name\":\"tomato 2\"\n },\n {\n \"value\":\"#CD4F39\",\n \"name\":\"tomato 3\"\n },\n {\n \"value\":\"#8B3626\",\n \"name\":\"tomato 4\"\n },\n {\n \"value\":\"#FA8072\",\n \"css\":true,\n \"name\":\"salmon\"\n },\n {\n \"value\":\"#FFE4E1\",\n \"name\":\"mistyrose 1\"\n },\n {\n \"value\":\"#FFE4E1\",\n \"css\":true,\n \"name\":\"mistyrose\"\n },\n {\n \"value\":\"#EED5D2\",\n \"name\":\"mistyrose 2\"\n },\n {\n \"value\":\"#CDB7B5\",\n \"name\":\"mistyrose 3\"\n },\n {\n \"value\":\"#8B7D7B\",\n \"name\":\"mistyrose 4\"\n },\n {\n \"value\":\"#FFFAFA\",\n \"name\":\"snow 1\"\n },\n {\n \"value\":\"#FFFAFA\",\n \"css\":true,\n \"name\":\"snow\"\n },\n {\n \"value\":\"#EEE9E9\",\n \"name\":\"snow 2\"\n },\n {\n \"value\":\"#CDC9C9\",\n \"name\":\"snow 3\"\n },\n {\n \"value\":\"#8B8989\",\n \"name\":\"snow 4\"\n },\n {\n \"value\":\"#BC8F8F\",\n \"css\":true,\n \"name\":\"rosybrown\"\n },\n {\n \"value\":\"#FFC1C1\",\n \"name\":\"rosybrown 1\"\n },\n {\n \"value\":\"#EEB4B4\",\n \"name\":\"rosybrown 2\"\n },\n {\n \"value\":\"#CD9B9B\",\n \"name\":\"rosybrown 3\"\n },\n {\n \"value\":\"#8B6969\",\n \"name\":\"rosybrown 4\"\n },\n {\n \"value\":\"#F08080\",\n \"css\":true,\n \"name\":\"lightcoral\"\n },\n {\n \"value\":\"#CD5C5C\",\n \"css\":true,\n \"name\":\"indianred\"\n },\n {\n \"value\":\"#FF6A6A\",\n \"name\":\"indianred 1\"\n },\n {\n \"value\":\"#EE6363\",\n \"name\":\"indianred 2\"\n },\n {\n \"value\":\"#8B3A3A\",\n \"name\":\"indianred 4\"\n },\n {\n \"value\":\"#CD5555\",\n \"name\":\"indianred 3\"\n },\n {\n \"value\":\"#A52A2A\",\n \"css\":true,\n \"name\":\"brown\"\n },\n {\n \"value\":\"#FF4040\",\n \"name\":\"brown 1\"\n },\n {\n \"value\":\"#EE3B3B\",\n \"name\":\"brown 2\"\n },\n {\n \"value\":\"#CD3333\",\n \"name\":\"brown 3\"\n },\n {\n \"value\":\"#8B2323\",\n \"name\":\"brown 4\"\n },\n {\n \"value\":\"#B22222\",\n \"css\":true,\n \"name\":\"firebrick\"\n },\n {\n \"value\":\"#FF3030\",\n \"name\":\"firebrick 1\"\n },\n {\n \"value\":\"#EE2C2C\",\n \"name\":\"firebrick 2\"\n },\n {\n \"value\":\"#CD2626\",\n \"name\":\"firebrick 3\"\n },\n {\n \"value\":\"#8B1A1A\",\n \"name\":\"firebrick 4\"\n },\n {\n \"value\":\"#FF0000\",\n \"vga\":true,\n \"name\":\"red 1\"\n },\n {\n \"value\":\"#FF0000\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"red\"\n },\n {\n \"value\":\"#EE0000\",\n \"name\":\"red 2\"\n },\n {\n \"value\":\"#CD0000\",\n \"name\":\"red 3\"\n },\n {\n \"value\":\"#8B0000\",\n \"name\":\"red 4\"\n },\n {\n \"value\":\"#8B0000\",\n \"css\":true,\n \"name\":\"darkred\"\n },\n {\n \"value\":\"#800000\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"maroon\"\n },\n {\n \"value\":\"#8E388E\",\n \"name\":\"sgi beet\"\n },\n {\n \"value\":\"#7171C6\",\n \"name\":\"sgi slateblue\"\n },\n {\n \"value\":\"#7D9EC0\",\n \"name\":\"sgi lightblue\"\n },\n {\n \"value\":\"#388E8E\",\n \"name\":\"sgi teal\"\n },\n {\n \"value\":\"#71C671\",\n \"name\":\"sgi chartreuse\"\n },\n {\n \"value\":\"#8E8E38\",\n \"name\":\"sgi olivedrab\"\n },\n {\n \"value\":\"#C5C1AA\",\n \"name\":\"sgi brightgray\"\n },\n {\n \"value\":\"#C67171\",\n \"name\":\"sgi salmon\"\n },\n {\n \"value\":\"#555555\",\n \"name\":\"sgi darkgray\"\n },\n {\n \"value\":\"#1E1E1E\",\n \"name\":\"sgi gray 12\"\n },\n {\n \"value\":\"#282828\",\n \"name\":\"sgi gray 16\"\n },\n {\n \"value\":\"#515151\",\n \"name\":\"sgi gray 32\"\n },\n {\n \"value\":\"#5B5B5B\",\n \"name\":\"sgi gray 36\"\n },\n {\n \"value\":\"#848484\",\n \"name\":\"sgi gray 52\"\n },\n {\n \"value\":\"#8E8E8E\",\n \"name\":\"sgi gray 56\"\n },\n {\n \"value\":\"#AAAAAA\",\n \"name\":\"sgi lightgray\"\n },\n {\n \"value\":\"#B7B7B7\",\n \"name\":\"sgi gray 72\"\n },\n {\n \"value\":\"#C1C1C1\",\n \"name\":\"sgi gray 76\"\n },\n {\n \"value\":\"#EAEAEA\",\n \"name\":\"sgi gray 92\"\n },\n {\n \"value\":\"#F4F4F4\",\n \"name\":\"sgi gray 96\"\n },\n {\n \"value\":\"#FFFFFF\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"white\"\n },\n {\n \"value\":\"#F5F5F5\",\n \"name\":\"white smoke\"\n },\n {\n \"value\":\"#F5F5F5\",\n \"name\":\"gray 96\"\n },\n {\n \"value\":\"#DCDCDC\",\n \"css\":true,\n \"name\":\"gainsboro\"\n },\n {\n \"value\":\"#D3D3D3\",\n \"css\":true,\n \"name\":\"lightgrey\"\n },\n {\n \"value\":\"#C0C0C0\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"silver\"\n },\n {\n \"value\":\"#A9A9A9\",\n \"css\":true,\n \"name\":\"darkgray\"\n },\n {\n \"value\":\"#808080\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"gray\"\n },\n {\n \"value\":\"#696969\",\n \"css\":true,\n \"name\":\"dimgray\"\n },\n {\n \"value\":\"#696969\",\n \"name\":\"gray 42\"\n },\n {\n \"value\":\"#000000\",\n \"vga\":true,\n \"css\":true,\n \"name\":\"black\"\n },\n {\n \"value\":\"#FCFCFC\",\n \"name\":\"gray 99\"\n },\n {\n \"value\":\"#FAFAFA\",\n \"name\":\"gray 98\"\n },\n {\n \"value\":\"#F7F7F7\",\n \"name\":\"gray 97\"\n },\n {\n \"value\":\"#F2F2F2\",\n \"name\":\"gray 95\"\n },\n {\n \"value\":\"#F0F0F0\",\n \"name\":\"gray 94\"\n },\n {\n \"value\":\"#EDEDED\",\n \"name\":\"gray 93\"\n },\n {\n \"value\":\"#EBEBEB\",\n \"name\":\"gray 92\"\n },\n {\n \"value\":\"#E8E8E8\",\n \"name\":\"gray 91\"\n },\n {\n \"value\":\"#E5E5E5\",\n \"name\":\"gray 90\"\n },\n {\n \"value\":\"#E3E3E3\",\n \"name\":\"gray 89\"\n },\n {\n \"value\":\"#E0E0E0\",\n \"name\":\"gray 88\"\n },\n {\n \"value\":\"#DEDEDE\",\n \"name\":\"gray 87\"\n },\n {\n \"value\":\"#DBDBDB\",\n \"name\":\"gray 86\"\n },\n {\n \"value\":\"#D9D9D9\",\n \"name\":\"gray 85\"\n },\n {\n \"value\":\"#D6D6D6\",\n \"name\":\"gray 84\"\n },\n {\n \"value\":\"#D4D4D4\",\n \"name\":\"gray 83\"\n },\n {\n \"value\":\"#D1D1D1\",\n \"name\":\"gray 82\"\n },\n {\n \"value\":\"#CFCFCF\",\n \"name\":\"gray 81\"\n },\n {\n \"value\":\"#CCCCCC\",\n \"name\":\"gray 80\"\n },\n {\n \"value\":\"#C9C9C9\",\n \"name\":\"gray 79\"\n },\n {\n \"value\":\"#C7C7C7\",\n \"name\":\"gray 78\"\n },\n {\n \"value\":\"#C4C4C4\",\n \"name\":\"gray 77\"\n },\n {\n \"value\":\"#C2C2C2\",\n \"name\":\"gray 76\"\n },\n {\n \"value\":\"#BFBFBF\",\n \"name\":\"gray 75\"\n },\n {\n \"value\":\"#BDBDBD\",\n \"name\":\"gray 74\"\n },\n {\n \"value\":\"#BABABA\",\n \"name\":\"gray 73\"\n },\n {\n \"value\":\"#B8B8B8\",\n \"name\":\"gray 72\"\n },\n {\n \"value\":\"#B5B5B5\",\n \"name\":\"gray 71\"\n },\n {\n \"value\":\"#B3B3B3\",\n \"name\":\"gray 70\"\n },\n {\n \"value\":\"#B0B0B0\",\n \"name\":\"gray 69\"\n },\n {\n \"value\":\"#ADADAD\",\n \"name\":\"gray 68\"\n },\n {\n \"value\":\"#ABABAB\",\n \"name\":\"gray 67\"\n },\n {\n \"value\":\"#A8A8A8\",\n \"name\":\"gray 66\"\n },\n {\n \"value\":\"#A6A6A6\",\n \"name\":\"gray 65\"\n },\n {\n \"value\":\"#A3A3A3\",\n \"name\":\"gray 64\"\n },\n {\n \"value\":\"#A1A1A1\",\n \"name\":\"gray 63\"\n },\n {\n \"value\":\"#9E9E9E\",\n \"name\":\"gray 62\"\n },\n {\n \"value\":\"#9C9C9C\",\n \"name\":\"gray 61\"\n },\n {\n \"value\":\"#999999\",\n \"name\":\"gray 60\"\n },\n {\n \"value\":\"#969696\",\n \"name\":\"gray 59\"\n },\n {\n \"value\":\"#949494\",\n \"name\":\"gray 58\"\n },\n {\n \"value\":\"#919191\",\n \"name\":\"gray 57\"\n },\n {\n \"value\":\"#8F8F8F\",\n \"name\":\"gray 56\"\n },\n {\n \"value\":\"#8C8C8C\",\n \"name\":\"gray 55\"\n },\n {\n \"value\":\"#8A8A8A\",\n \"name\":\"gray 54\"\n },\n {\n \"value\":\"#878787\",\n \"name\":\"gray 53\"\n },\n {\n \"value\":\"#858585\",\n \"name\":\"gray 52\"\n },\n {\n \"value\":\"#828282\",\n \"name\":\"gray 51\"\n },\n {\n \"value\":\"#7F7F7F\",\n \"name\":\"gray 50\"\n },\n {\n \"value\":\"#7D7D7D\",\n \"name\":\"gray 49\"\n },\n {\n \"value\":\"#7A7A7A\",\n \"name\":\"gray 48\"\n },\n {\n \"value\":\"#787878\",\n \"name\":\"gray 47\"\n },\n {\n \"value\":\"#757575\",\n \"name\":\"gray 46\"\n },\n {\n \"value\":\"#737373\",\n \"name\":\"gray 45\"\n },\n {\n \"value\":\"#707070\",\n \"name\":\"gray 44\"\n },\n {\n \"value\":\"#6E6E6E\",\n \"name\":\"gray 43\"\n },\n {\n \"value\":\"#666666\",\n \"name\":\"gray 40\"\n },\n {\n \"value\":\"#636363\",\n \"name\":\"gray 39\"\n },\n {\n \"value\":\"#616161\",\n \"name\":\"gray 38\"\n },\n {\n \"value\":\"#5E5E5E\",\n \"name\":\"gray 37\"\n },\n {\n \"value\":\"#5C5C5C\",\n \"name\":\"gray 36\"\n },\n {\n \"value\":\"#595959\",\n \"name\":\"gray 35\"\n },\n {\n \"value\":\"#575757\",\n \"name\":\"gray 34\"\n },\n {\n \"value\":\"#545454\",\n \"name\":\"gray 33\"\n },\n {\n \"value\":\"#525252\",\n \"name\":\"gray 32\"\n },\n {\n \"value\":\"#4F4F4F\",\n \"name\":\"gray 31\"\n },\n {\n \"value\":\"#4D4D4D\",\n \"name\":\"gray 30\"\n },\n {\n \"value\":\"#4A4A4A\",\n \"name\":\"gray 29\"\n },\n {\n \"value\":\"#474747\",\n \"name\":\"gray 28\"\n },\n {\n \"value\":\"#454545\",\n \"name\":\"gray 27\"\n },\n {\n \"value\":\"#424242\",\n \"name\":\"gray 26\"\n },\n {\n \"value\":\"#404040\",\n \"name\":\"gray 25\"\n },\n {\n \"value\":\"#3D3D3D\",\n \"name\":\"gray 24\"\n },\n {\n \"value\":\"#3B3B3B\",\n \"name\":\"gray 23\"\n },\n {\n \"value\":\"#383838\",\n \"name\":\"gray 22\"\n },\n {\n \"value\":\"#363636\",\n \"name\":\"gray 21\"\n },\n {\n \"value\":\"#333333\",\n \"name\":\"gray 20\"\n },\n {\n \"value\":\"#303030\",\n \"name\":\"gray 19\"\n },\n {\n \"value\":\"#2E2E2E\",\n \"name\":\"gray 18\"\n },\n {\n \"value\":\"#2B2B2B\",\n \"name\":\"gray 17\"\n },\n {\n \"value\":\"#292929\",\n \"name\":\"gray 16\"\n },\n {\n \"value\":\"#262626\",\n \"name\":\"gray 15\"\n },\n {\n \"value\":\"#242424\",\n \"name\":\"gray 14\"\n },\n {\n \"value\":\"#212121\",\n \"name\":\"gray 13\"\n },\n {\n \"value\":\"#1F1F1F\",\n \"name\":\"gray 12\"\n },\n {\n \"value\":\"#1C1C1C\",\n \"name\":\"gray 11\"\n },\n {\n \"value\":\"#1A1A1A\",\n \"name\":\"gray 10\"\n },\n {\n \"value\":\"#171717\",\n \"name\":\"gray 9\"\n },\n {\n \"value\":\"#141414\",\n \"name\":\"gray 8\"\n },\n {\n \"value\":\"#121212\",\n \"name\":\"gray 7\"\n },\n {\n \"value\":\"#0F0F0F\",\n \"name\":\"gray 6\"\n },\n {\n \"value\":\"#0D0D0D\",\n \"name\":\"gray 5\"\n },\n {\n \"value\":\"#0A0A0A\",\n \"name\":\"gray 4\"\n },\n {\n \"value\":\"#080808\",\n \"name\":\"gray 3\"\n },\n {\n \"value\":\"#050505\",\n \"name\":\"gray 2\"\n },\n {\n \"value\":\"#030303\",\n \"name\":\"gray 1\"\n },\n {\n \"value\":\"#F5F5F5\",\n \"css\":true,\n \"name\":\"whitesmoke\"\n }\n]\n",
"/**\n * Module dependencies\n */\nvar colors = require('./colors')\n\nvar cssColors = colors.filter(function(color){\n return !! color.css\n})\n\nvar vgaColors = colors.filter(function(color){\n return !! color.vga\n})\n\n\n/**\n * Get color value for a certain name.\n * @param name {String}\n * @return {String} Hex color value\n * @api public\n */\n\nmodule.exports = function(name) {\n var color = module.exports.get(name)\n return color && color.value\n}\n\n/**\n * Get color object.\n *\n * @param name {String}\n * @return {Object} Color object\n * @api public\n */\n\nmodule.exports.get = function(name) {\n name = name || ''\n name = name.trim()\n return colors.filter(function(color){\n return color.name === name\n }).pop()\n}\n\n/**\n * Get all color object.\n *\n * @return {Array}\n * @api public\n */\n\nmodule.exports.all = module.exports.get.all = function() {\n return colors\n}\n\n/**\n * Get color object compatible with CSS.\n *\n * @return {Array}\n * @api public\n */\n\nmodule.exports.get.css = function(name) {\n if (!name) return cssColors\n name = name || ''\n name = name.trim()\n return cssColors.filter(function(color){\n return color.name === name\n }).pop()\n}\n\n\n\nmodule.exports.get.vga = function(name) {\n if (!name) return vgaColors\n name = name || ''\n name = name.trim()\n return vgaColors.filter(function(color){\n return color.name === name\n }).pop()\n}\n",
"/**\n * Module dependencies.\n */\n\nvar Emitter = require('emitter');\nvar reduce = require('reduce');\n\n/**\n * Root reference for iframes.\n */\n\nvar root;\nif (typeof window !== 'undefined') { // Browser window\n root = window;\n} else if (typeof self !== 'undefined') { // Web Worker\n root = self;\n} else { // Other environments\n root = this;\n}\n\n/**\n * Noop.\n */\n\nfunction noop(){};\n\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * TODO: future proof, move to compoent land\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isHost(obj) {\n var str = {}.toString.call(obj);\n\n switch (str) {\n case '[object File]':\n case '[object Blob]':\n case '[object FormData]':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = function () {\n if (root.XMLHttpRequest\n && (!root.location || 'file:' != root.location.protocol\n || !root.ActiveXObject)) {\n return new XMLHttpRequest;\n } else {\n try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {}\n try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {}\n }\n return false;\n};\n\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\nvar trim = ''.trim\n ? function(s) { return s.trim(); }\n : function(s) { return s.replace(/(^\\s*|\\s*$)/g, ''); };\n\n/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isObject(obj) {\n return obj === Object(obj);\n}\n\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n var pairs = [];\n for (var key in obj) {\n if (null != obj[key]) {\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n }\n return pairs.join('&');\n}\n\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (Array.isArray(val)) {\n return val.forEach(function(v) {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n }\n pairs.push(encodeURIComponent(key)\n + '=' + encodeURIComponent(val));\n}\n\n/**\n * Expose serialization method.\n */\n\n request.serializeObject = serialize;\n\n /**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n var obj = {};\n var pairs = str.split('&');\n var parts;\n var pair;\n\n for (var i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n parts = pair.split('=');\n obj[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]);\n }\n\n return obj;\n}\n\n/**\n * Expose parser.\n */\n\nrequest.parseString = parseString;\n\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'application/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n 'form': 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\n request.serialize = {\n 'application/x-www-form-urlencoded': serialize,\n 'application/json': JSON.stringify\n };\n\n /**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n var lines = str.split(/\\r?\\n/);\n var fields = {};\n var index;\n var line;\n var field;\n var val;\n\n lines.pop(); // trailing CRLF\n\n for (var i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\nfunction isJSON(mime) {\n return /[\\/+]json\\b/.test(mime);\n}\n\n/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction type(str){\n return str.split(/ *; */).shift();\n};\n\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction params(str){\n return reduce(str.split(/ *; */), function(obj, str){\n var parts = str.split(/ *= */)\n , key = parts.shift()\n , val = parts.shift();\n\n if (key && val) obj[key] = val;\n return obj;\n }, {});\n};\n\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\nfunction Response(req, options) {\n options = options || {};\n this.req = req;\n this.xhr = this.req.xhr;\n // responseText is accessible only if responseType is '' or 'text' and on older browsers\n this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined')\n ? this.xhr.responseText\n : null;\n this.statusText = this.req.xhr.statusText;\n this.setStatusProperties(this.xhr.status);\n this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n this.setHeaderProperties(this.header);\n this.body = this.req.method != 'HEAD'\n ? this.parseBody(this.text ? this.text : this.xhr.response)\n : null;\n}\n\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nResponse.prototype.get = function(field){\n return this.header[field.toLowerCase()];\n};\n\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\nResponse.prototype.setHeaderProperties = function(header){\n // content-type\n var ct = this.header['content-type'] || '';\n this.type = type(ct);\n\n // params\n var obj = params(ct);\n for (var key in obj) this[key] = obj[key];\n};\n\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype.parseBody = function(str){\n var parse = request.parse[this.type];\n return parse && str && (str.length || str instanceof Object)\n ? parse(str)\n : null;\n};\n\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\nResponse.prototype.setStatusProperties = function(status){\n // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n if (status === 1223) {\n status = 204;\n }\n\n var type = status / 100 | 0;\n\n // status / class\n this.status = this.statusCode = status;\n this.statusType = type;\n\n // basics\n this.info = 1 == type;\n this.ok = 2 == type;\n this.clientError = 4 == type;\n this.serverError = 5 == type;\n this.error = (4 == type || 5 == type)\n ? this.toError()\n : false;\n\n // sugar\n this.accepted = 202 == status;\n this.noContent = 204 == status;\n this.badRequest = 400 == status;\n this.unauthorized = 401 == status;\n this.notAcceptable = 406 == status;\n this.notFound = 404 == status;\n this.forbidden = 403 == status;\n};\n\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\nResponse.prototype.toError = function(){\n var req = this.req;\n var method = req.method;\n var url = req.url;\n\n var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')';\n var err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n\n return err;\n};\n\n/**\n * Expose `Response`.\n */\n\nrequest.Response = Response;\n\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n var self = this;\n Emitter.call(this);\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {};\n this._header = {};\n this.on('end', function(){\n var err = null;\n var res = null;\n\n try {\n res = new Response(self);\n } catch(e) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = e;\n // issue #675: return the raw response if the response parsing fails\n err.rawResponse = self.xhr && self.xhr.responseText ? self.xhr.responseText : null;\n return self.callback(err);\n }\n\n self.emit('response', res);\n\n if (err) {\n return self.callback(err, res);\n }\n\n if (res.status >= 200 && res.status < 300) {\n return self.callback(err, res);\n }\n\n var new_err = new Error(res.statusText || 'Unsuccessful HTTP response');\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n\n self.callback(new_err, res);\n });\n}\n\n/**\n * Mixin `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Allow for extension\n */\n\nRequest.prototype.use = function(fn) {\n fn(this);\n return this;\n}\n\n/**\n * Set timeout to `ms`.\n *\n * @param {Number} ms\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.timeout = function(ms){\n this._timeout = ms;\n return this;\n};\n\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.clearTimeout = function(){\n this._timeout = 0;\n clearTimeout(this._timer);\n return this;\n};\n\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request}\n * @api public\n */\n\nRequest.prototype.abort = function(){\n if (this.aborted) return;\n this.aborted = true;\n this.xhr.abort();\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.set = function(field, val){\n if (isObject(field)) {\n for (var key in field) {\n this.set(key, field[key]);\n }\n return this;\n }\n this._header[field.toLowerCase()] = val;\n this.header[field] = val;\n return this;\n};\n\n/**\n * Remove header `field`.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.unset = function(field){\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n\n/**\n * Get case-insensitive header `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api private\n */\n\nRequest.prototype.getHeader = function(field){\n return this._header[field.toLowerCase()];\n};\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function(type){\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Force given parser\n *\n * Sets the body parser no matter type.\n *\n * @param {Function}\n * @api public\n */\n\nRequest.prototype.parse = function(fn){\n this._parser = fn;\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function(type){\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} pass\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function(user, pass){\n var str = btoa(user + ':' + pass);\n this.set('Authorization', 'Basic ' + str);\n return this;\n};\n\n/**\n* Add query-string `val`.\n*\n* Examples:\n*\n* request.get('/shoes')\n* .query('size=10')\n* .query({ color: 'blue' })\n*\n* @param {Object|String} val\n* @return {Request} for chaining\n* @api public\n*/\n\nRequest.prototype.query = function(val){\n if ('string' != typeof val) val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Write the field `name` and `val` for \"multipart/form-data\"\n * request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n * ```\n *\n * @param {String} name\n * @param {String|Blob|File} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.field = function(name, val){\n if (!this._formData) this._formData = new root.FormData();\n this._formData.append(name, val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `filename`.\n *\n * ``` js\n * request.post('/upload')\n * .attach(new Blob(['<a id=\"a\"><b id=\"b\">hey!</b></a>'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String} filename\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function(field, file, filename){\n if (!this._formData) this._formData = new root.FormData();\n this._formData.append(field, file, filename);\n return this;\n};\n\n/**\n * Send `data`, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // querystring\n * request.get('/search')\n * .end(callback)\n *\n * // multiple data \"writes\"\n * request.get('/search')\n * .send({ search: 'query' })\n * .send({ range: '1..5' })\n * .send({ order: 'desc' })\n * .end(callback)\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.send = function(data){\n var obj = isObject(data);\n var type = this.getHeader('Content-Type');\n\n // merge\n if (obj && isObject(this._data)) {\n for (var key in data) {\n this._data[key] = data[key];\n }\n } else if ('string' == typeof data) {\n if (!type) this.type('form');\n type = this.getHeader('Content-Type');\n if ('application/x-www-form-urlencoded' == type) {\n this._data = this._data\n ? this._data + '&' + data\n : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!obj || isHost(data)) return this;\n if (!type) this.type('json');\n return this;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function(err, res){\n var fn = this._callback;\n this.clearTimeout();\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function(){\n var err = new Error('Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequest.prototype.timeoutError = function(){\n var timeout = this._timeout;\n var err = new Error('timeout of ' + timeout + 'ms exceeded');\n err.timeout = timeout;\n this.callback(err);\n};\n\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\nRequest.prototype.withCredentials = function(){\n this._withCredentials = true;\n return this;\n};\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function(fn){\n var self = this;\n var xhr = this.xhr = request.getXHR();\n var query = this._query.join('&');\n var timeout = this._timeout;\n var data = this._formData || this._data;\n\n // store callback\n this._callback = fn || noop;\n\n // state change\n xhr.onreadystatechange = function(){\n if (4 != xhr.readyState) return;\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n var status;\n try { status = xhr.status } catch(e) { status = 0; }\n\n if (0 == status) {\n if (self.timedout) return self.timeoutError();\n if (self.aborted) return;\n return self.crossDomainError();\n }\n self.emit('end');\n };\n\n // progress\n var handleProgress = function(e){\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n self.emit('progress', e);\n };\n if (this.hasListeners('progress')) {\n xhr.onprogress = handleProgress;\n }\n try {\n if (xhr.upload && this.hasListeners('progress')) {\n xhr.upload.onprogress = handleProgress;\n }\n } catch(e) {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n\n // timeout\n if (timeout && !this._timer) {\n this._timer = setTimeout(function(){\n self.timedout = true;\n self.abort();\n }, timeout);\n }\n\n // querystring\n if (query) {\n query = request.serializeObject(query);\n this.url += ~this.url.indexOf('?')\n ? '&' + query\n : '?' + query;\n }\n\n // initiate request\n xhr.open(this.method, this.url, true);\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if ('GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !isHost(data)) {\n // serialize stuff\n var contentType = this.getHeader('Content-Type');\n var serialize = this._parser || request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) serialize = request.serialize['application/json'];\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (var field in this.header) {\n if (null == this.header[field]) continue;\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data !== 'undefined' ? data : null);\n return this;\n};\n\n/**\n * Faux promise support\n *\n * @param {Function} fulfill\n * @param {Function} reject\n * @return {Request}\n */\n\nRequest.prototype.then = function (fulfill, reject) {\n return this.end(function(err, res) {\n err ? reject(err) : fulfill(res);\n });\n}\n\n/**\n * Expose `Request`.\n */\n\nrequest.Request = Request;\n\n/**\n * Issue a request:\n *\n * Examples:\n *\n * request('GET', '/users').end(callback)\n * request('/users').end(callback)\n * request('/users', callback)\n *\n * @param {String} method\n * @param {String|Function} url or callback\n * @return {Request}\n * @api public\n */\n\nfunction request(method, url) {\n // callback\n if ('function' == typeof url) {\n return new Request('GET', method).end(url);\n }\n\n // url first\n if (1 == arguments.length) {\n return new Request('GET', method);\n }\n\n return new Request(method, url);\n}\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.get = function(url, data, fn){\n var req = request('GET', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.head = function(url, data, fn){\n var req = request('HEAD', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nfunction del(url, fn){\n var req = request('DELETE', url);\n if (fn) req.end(fn);\n return req;\n};\n\nrequest.del = del;\nrequest.delete = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} data\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.patch = function(url, data, fn){\n var req = request('PATCH', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} data\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.post = function(url, data, fn){\n var req = request('POST', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} data or fn\n * @param {Function} fn\n * @return {Request}\n * @api public\n */\n\nrequest.put = function(url, data, fn){\n var req = request('PUT', url);\n if ('function' == typeof data) fn = data, data = null;\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * Expose `request`.\n */\n\nmodule.exports = request;\n",
"\n/**\n * Expose `Emitter`.\n */\n\nmodule.exports = Emitter;\n\n/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nfunction Emitter(obj) {\n if (obj) return mixin(obj);\n};\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks[event] = this._callbacks[event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n var self = this;\n this._callbacks = this._callbacks || {};\n\n function on() {\n self.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks[event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks[event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n var args = [].slice.call(arguments, 1)\n , callbacks = this._callbacks[event];\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks[event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n",
"\n/**\n * Reduce `arr` with `fn`.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Mixed} initial\n *\n * TODO: combatible error handling?\n */\n\nmodule.exports = function(arr, fn, initial){ \n var idx = 0;\n var len = arr.length;\n var curr = arguments.length == 3\n ? initial\n : arr[idx++];\n\n while (idx < len) {\n curr = fn.call(null, curr, arr[idx], ++idx, arr);\n }\n \n return curr;\n};",
"import React from 'react';\n\nexport default class PressAndHold extends React.Component {\n componentWillMount() {\n this.timeout = null;\n this.interval = null;\n }\n componentWillUnmount() {\n this.handleRelease();\n }\n handleHoldDown() {\n let that = this;\n let delay = Number(this.props.delay) || 500;\n let throttle = Number(this.props.throttle) || 50;\n\n this.timeout = setTimeout(function() {\n that.handleRelease();\n\n that.interval = setInterval(function() {\n if (that.interval) {\n that.props.onClick();\n }\n }, throttle);\n }, delay);\n }\n handleRelease() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = null;\n }\n }\n render() {\n return (\n <div\n {...this.props}\n onMouseDown={::this.handleHoldDown}\n onMouseUp={::this.handleRelease}\n onMouseLeave={::this.handleRelease}\n >\n {this.props.children}\n </div>\n );\n }\n}\n",
"import React from 'react';\nimport i18n from '../../lib/i18n';\nimport serialport from '../../lib/serialport';\n\nclass GrblQuickAccessToolbar extends React.Component {\n handleCycleStart() {\n serialport.write('~');\n }\n handleFeedHold() {\n serialport.write('!');\n }\n handleReset() {\n serialport.write('\\x18');\n }\n handleHoming() {\n serialport.writeln('$H');\n }\n handleUnlock() {\n serialport.writeln('$X');\n }\n render() {\n return (\n <div className=\"grbl-quick-access-toolbar\">\n <div className=\"btn-group btn-group-sm\" role=\"group\">\n <button type=\"button\" className=\"btn btn-default\" onClick={::this.handleCycleStart} title={i18n._('Cycle Start (~)')}><i className=\"ion-loop\"></i>{i18n._('Cycle Start')}</button>\n <button type=\"button\" className=\"btn btn-default\" onClick={::this.handleFeedHold} title={i18n._('Feed Hold (!)')}><i className=\"ion-pause\"></i>{i18n._('Feed Hold')}</button>\n </div>\n <div className=\"btn-group btn-group-sm\" role=\"group\">\n <button type=\"button\" className=\"btn btn-primary\" onClick={::this.handleHoming} title={i18n._('Run homing cycle ($H)')}><i className=\"ion-home\"></i>{i18n._('Homing')}</button>\n <button type=\"button\" className=\"btn btn-warning\" onClick={::this.handleUnlock} title={i18n._('Kill alarm lock ($X)')}><i className=\"ion-unlocked\"></i>{i18n._('Unlock')}</button>\n <button type=\"button\" className=\"btn btn-danger\" onClick={::this.handleReset} title={i18n._('Reset Grbl (Ctrl-X)')}><i className=\"ion-refresh mirror\"></i>{i18n._('Reset')}</button>\n </div>\n </div>\n );\n }\n}\n\nexport default GrblQuickAccessToolbar;\n",
"import React from 'react';\nimport { Navbar, NavbarBrand, Nav, NavItem, NavDropdown, MenuItem } from 'react-bootstrap';\nimport i18n from '../../lib/i18n';\nimport settings from '../../config/settings';\nimport GrblQuickAccessToolbar from './GrblQuickAccessToolbar';\n\nclass Header extends React.Component {\n render() {\n let homepage = 'https://github.com/cheton/cnc.js';\n let lng = i18n.lng();\n\n return (\n <div data-component=\"Header\">\n <Navbar fixedTop fluid inverse>\n <NavbarBrand>\n <a href={homepage} target=\"_blank\">{settings.name}</a>\n </NavbarBrand>\n <Nav>\n <NavItem href=\"#/workspace\">{i18n._('Workspace')}</NavItem>\n <NavDropdown title={i18n._('Settings')} id=\"nav-dropdown\">\n <MenuItem header>{i18n._('Language')}</MenuItem>\n <MenuItem href=\"?lang=de\" active={lng === 'de'}>Deutsch</MenuItem>\n <MenuItem href=\"?lang=en\" active={lng === 'en'}>English (US)</MenuItem>\n <MenuItem href=\"?lang=es\" active={lng === 'es'}>Español</MenuItem>\n <MenuItem href=\"?lang=fr\" active={lng === 'fr'}>Français</MenuItem>\n <MenuItem href=\"?lang=it\" active={lng === 'it'}>Italiano</MenuItem>\n <MenuItem href=\"?lang=ja\" active={lng === 'ja'}>日本語</MenuItem>\n <MenuItem href=\"?lang=zh-cn\" active={lng === 'zh-cn'}>中文 (简体)</MenuItem>\n <MenuItem href=\"?lang=zh-tw\" active={lng === 'zh-tw'}>中文 (繁體)</MenuItem>\n </NavDropdown>\n </Nav>\n <div className=\"pull-right\">\n <GrblQuickAccessToolbar />\n </div>\n </Navbar>\n </div>\n );\n }\n}\n\nexport default Header;\n",
"var css = \"[data-component=Header] .navbar-fixed-top{border-width:0}[data-component=Header] .grbl-quick-access-toolbar{margin:10px 0}[data-component=Header] .grbl-quick-access-toolbar [class*=\\\" ion-\\\"]:before,[data-component=Header] .grbl-quick-access-toolbar [class^=ion-]:before{font-size:16px;margin-right:4px}[data-component=Header] .grbl-quick-access-toolbar [class*=\\\" ion-\\\"].mirror:before,[data-component=Header] .grbl-quick-access-toolbar [class^=ion-].mirror:before{-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}[data-component=Header] .grbl-quick-access-toolbar .btn-group{margin-right:15px}[data-component=Header] .grbl-quick-access-toolbar .btn-group:last-child{margin-right:0}[data-component=Header] .grbl-quick-access-toolbar .btn{height:30px}[data-component=Header] .grbl-quick-access-toolbar button:focus{outline:0}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/header/index.css\"})); module.exports = css;",
"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Header = require('./Header');\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nrequire('./index.css');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Header2.default;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbmRleC5qc3giLCJzb3VyY2VzQ29udGVudCI6W119",
"import classNames from 'classnames';\nimport React from 'react';\n\nclass Widget extends React.Component {\n static defaultProps = {\n options: {}\n };\n static propTypes = {\n options: React.PropTypes.object\n };\n\n render() {\n let options = this.props;\n let widgetClass = classNames(\n 'widget',\n { 'widget-borderless': !!options.borderless }\n );\n let widgetStyle = {\n width: options.width ? options.width : null\n };\n\n return (\n <div {...this.props} data-component=\"Widget\">\n <div className={widgetClass} style={widgetStyle}>\n {this.props.children}\n </div>\n </div>\n );\n }\n}\n\nexport default Widget;\n",
"import classNames from 'classnames';\nimport joinClasses from 'fbjs/lib/joinClasses';\nimport React from 'react';\n\nclass WidgetContent extends React.Component {\n render() {\n let contentClass = classNames(\n 'widget-content'\n );\n\n return (\n <div {...this.props} className={joinClasses(contentClass, this.props.className)}>\n {this.props.children}\n </div>\n );\n }\n}\n\nexport default WidgetContent;\n",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport React from 'react';\n\nclass WidgetFooter extends React.Component {\n render() {\n let options = _.defaultsDeep({}, this.props, {\n type: 'default'\n });\n let footerClass = classNames(\n 'widget-footer',\n { 'widget-footer-default': options.type === 'default' },\n { 'widget-footer-inverse': options.type === 'inverse' }\n );\n\n return (\n <div {...this.props} className={footerClass}>\n {this.props.children}\n </div>\n );\n }\n}\n\nexport default WidgetFooter;\n",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport joinClasses from 'fbjs/lib/joinClasses';\nimport React from 'react';\nimport WidgetHeaderToolbar from './WidgetHeaderToolbar';\n\nclass WidgetHeader extends React.Component {\n render() {\n let options = _.defaultsDeep({}, this.props, {\n type: 'default',\n title: '',\n toolbarButtons: []\n });\n let divClassNames = classNames(\n 'widget-header',\n 'clearfix',\n { 'widget-header-default': options.type === 'default' },\n { 'widget-header-inverse': options.type === 'inverse' }\n );\n\n return (\n <div {...this.props} className={divClassNames}>\n <h3 className=\"widget-header-title\">{options.title}</h3>\n <WidgetHeaderToolbar buttons={options.toolbarButtons} handleClick={this.props.handleClick}/>\n </div>\n );\n }\n}\n\nexport default WidgetHeader;\n",
"import _ from 'lodash';\nimport React from 'react';\nimport classNames from 'classnames';\nimport i18n from '../../lib/i18n';\n\nclass WidgetHeaderToolbar extends React.Component {\n state = {\n isCollapsed: false\n };\n\n handleClick(btn) {\n if (btn === 'toggle') {\n this.props.handleClick(btn, ! this.state.isCollapsed);\n this.setState({isCollapsed: ! this.state.isCollapsed});\n return;\n }\n\n this.props.handleClick(btn);\n }\n renderDragButton() {\n let style = {\n cursor: 'move'\n };\n\n return (\n <a href=\"javascript:void(0)\"\n key='drag'\n title=\"\"\n className=\"btn btn-link btn-drag\"\n style={style}\n onClick={() => this.handleClick('drag')}\n >\n <i className=\"glyphicon glyphicon-menu-hamburger\"></i>\n </a>\n );\n }\n renderRefreshButton() {\n return (\n <a href=\"javascript:void(0)\"\n key='refresh'\n title=\"\"\n className=\"btn btn-link btn-refresh\"\n onClick={() => this.handleClick('refresh')}\n >\n <i className=\"glyphicon glyphicon-refresh\"></i>\n </a>\n );\n }\n renderRemoveButton() {\n return (\n <a href=\"javascript:void(0)\"\n key='remove'\n title={i18n._('Remove')}\n className=\"btn btn-link btn-remove\"\n onClick={() => this.handleClick('remove')}\n >\n <i className=\"glyphicon glyphicon-remove\"></i>\n </a>\n );\n }\n renderToggleButton() {\n let iconClassNames = classNames(\n 'glyphicon',\n { 'glyphicon-chevron-up': ! this.state.isCollapsed },\n { 'glyphicon-chevron-down': this.state.isCollapsed }\n );\n\n return (\n <a href=\"javascript:void(0)\"\n key='toggle'\n title={i18n._('Expand/Collapse')}\n className=\"btn btn-link btn-toggle\"\n onClick={() => this.handleClick('toggle')}\n >\n <i className={iconClassNames}></i>\n </a>\n );\n }\n render() {\n let that = this;\n let buttons = _.map(this.props.buttons, (button) => {\n if (_.isObject(button)) {\n return button;\n }\n if (button === 'refresh') {\n return that.renderRefreshButton();\n }\n if (button === 'remove') {\n return that.renderRemoveButton();\n }\n if (button === 'toggle') {\n return that.renderToggleButton();\n }\n })\n .concat(this.renderDragButton());\n\n return (\n <div className=\"widget-header-toolbar btn-group\">{buttons}</div>\n );\n }\n}\n\nexport default WidgetHeaderToolbar;\n",
"var css = \"[data-component=Widget] .widget{background-color:#fff;border-color:#d0d0d0;border-radius:3px;border-width:1px;border-style:solid;margin-bottom:10px}[data-component=Widget] .widget.widget-borderless{border:none}[data-component=Widget] .widget.widget-no-header .widget-content .widget-title{margin-top:0;font-size:14px;color:#333}[data-component=Widget] .widget.widget-no-content .widget-header{border-bottom:none}[data-component=Widget] .widget .widget-header{padding:0 10px;border-bottom:1px solid #fff;line-height:32px}[data-component=Widget] .widget .widget-header.widget-header-default{background-color:#fff}[data-component=Widget] .widget .widget-header.widget-header-inverse{background-color:#222}[data-component=Widget] .widget .widget-header .widget-header-title{margin-top:0;font-size:14px;font-weight:700;color:#6a6a6a;display:inline-block;vertical-align:middle;margin-bottom:0}[data-component=Widget] .widget .widget-header .widget-header-title .glyphicon{font-size:14px;top:0;vertical-align:middle;margin-right:5px}[data-component=Widget] .widget .widget-header .btn-group .dropdown-toggle .icon,[data-component=Widget] .widget .widget-header .btn-group>a{color:#838383}[data-component=Widget] .widget .widget-header .btn-group .dropdown-toggle .icon:focus,[data-component=Widget] .widget .widget-header .btn-group .dropdown-toggle .icon:hover,[data-component=Widget] .widget .widget-header .btn-group>a:focus,[data-component=Widget] .widget .widget-header .btn-group>a:hover{color:#505050}[data-component=Widget] .widget .widget-header .btn .glyphicon{position:relative;font-size:12px;line-height:1}[data-component=Widget] .widget .widget-header .widget-header-toolbar{float:right;width:auto;margin:6px 0 0 10px}[data-component=Widget] .widget .widget-header .widget-header-toolbar .badge{margin-top:10px}[data-component=Widget] .widget .widget-header .widget-header-toolbar .label{position:relative;top:11px;padding:5px;font-size:85%}[data-component=Widget] .widget .widget-header .widget-header-toolbar .label .glyphicon{font-size:14px}[data-component=Widget] .widget .widget-header .widget-header-toolbar .btn-link{padding:0;margin-left:8px}[data-component=Widget] .widget .widget-header .widget-header-toolbar .btn-link:first-child{padding-left:0}[data-component=Widget] .widget .widget-header .widget-header-toolbar .btn-link .glyphicon{font-size:12px}@media screen and (max-width:480px){[data-component=Widget] .widget .widget-header .widget-header-toolbar{display:block;position:inherit}[data-component=Widget] .widget .widget-header .widget-header-toolbar .badge{margin-top:0}[data-component=Widget] .widget .widget-header .widget-header-toolbar .label{top:0}}[data-component=Widget] .widget .widget-footer.widget-footer-default{background-color:#fff}[data-component=Widget] .widget .widget-footer.widget-footer-inverse{background-color:#222}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widget/index.css\"})); module.exports = css;",
"import Widget from './Widget';\nimport WidgetHeader from './WidgetHeader';\nimport WidgetContent from './WidgetContent';\nimport WidgetFooter from './WidgetFooter';\nimport './index.css';\n\nexport {\n Widget,\n WidgetHeader,\n WidgetContent,\n WidgetFooter\n};\n",
"import _ from 'lodash';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport socket from '../../../lib/socket';\nimport serialport from '../../../lib/serialport';\nimport ToolbarButton from './ToolbarButton';\nimport DisplayPanel from './DisplayPanel';\nimport ControlPanel from './ControlPanel';\nimport {\n ACTIVE_STATE_IDLE,\n IMPERIAL_UNIT,\n METRIC_UNIT\n} from './constants';\n\nclass Axes extends React.Component {\n state = {\n port: '',\n unit: METRIC_UNIT,\n activeState: ACTIVE_STATE_IDLE,\n machinePos: { // Machine position\n x: '0.000',\n y: '0.000',\n z: '0.000'\n },\n workingPos: { // Working position\n x: '0.000',\n y: '0.000',\n z: '0.000'\n }\n };\n socketEventListener = {\n 'grbl:current-status': ::this.socketOnGrblCurrentStatus,\n 'grbl:gcode-modes': ::this.socketOnGrblGCodeModes\n };\n\n componentDidMount() {\n this.subscribe();\n this.addSocketEventListener();\n }\n componentWillUnmount() {\n this.unsubscribe();\n this.removeSocketEventListener();\n }\n shouldComponentUpdate(nextProps, nextState) {\n return JSON.stringify(nextState) !== JSON.stringify(this.state);\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // port\n let token = pubsub.subscribe('port', (msg, port) => {\n port = port || '';\n this.setState({ port: port });\n\n if (!port) {\n this.resetCurrentStatus();\n }\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n addSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.on(eventName, callback);\n });\n }\n removeSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.off(eventName, callback);\n });\n }\n socketOnGrblCurrentStatus(data) {\n this.setState({\n activeState: data.activeState,\n machinePos: data.machinePos,\n workingPos: data.workingPos\n });\n }\n socketOnGrblGCodeModes(modes) {\n let unit = this.state.unit;\n\n // Imperial\n if (_.includes(modes, 'G20')) {\n unit = IMPERIAL_UNIT;\n }\n\n // Metric\n if (_.includes(modes, 'G21')) {\n unit = METRIC_UNIT;\n }\n\n if (this.state.unit !== unit) {\n this.setState({ unit: unit });\n }\n }\n resetCurrentStatus() {\n this.setState({\n activeState: ACTIVE_STATE_IDLE,\n machinePos: { // Machine position\n x: '0.000',\n y: '0.000',\n z: '0.000'\n },\n workingPos: { // Working position\n x: '0.000',\n y: '0.000',\n z: '0.000'\n }\n });\n }\n toUnitString(val) {\n val = Number(val) || 0;\n if (this.state.unit === METRIC_UNIT) {\n val = (val / 1).toFixed(3);\n } else {\n val = (val / 25.4).toFixed(4);\n }\n return '' + val;\n }\n render() {\n let { port, unit, activeState, machinePos, workingPos } = this.state;\n let canClick = (!!port && (activeState === ACTIVE_STATE_IDLE));\n\n machinePos = _.mapValues(machinePos, (pos, axis) => this.toUnitString(pos));\n workingPos = _.mapValues(workingPos, (pos, axis) => this.toUnitString(pos));\n\n return (\n <div>\n <ToolbarButton\n port={port}\n unit={unit}\n activeState={activeState}\n />\n\n <DisplayPanel\n port={port}\n unit={unit}\n activeState={activeState}\n machinePos={machinePos}\n workingPos={workingPos}\n />\n\n <ControlPanel\n port={port}\n unit={unit}\n activeState={activeState}\n machinePos={machinePos}\n workingPos={workingPos}\n />\n </div>\n );\n }\n}\n\nexport default Axes;\n",
"import React from 'react';\nimport i18n from '../../../lib/i18n';\nimport serialport from '../../../lib/serialport';\nimport JogDistanceControl from './JogDistanceControl';\nimport JogJoystickControl from './JogJoystickControl';\nimport MotionControls from './MotionControls';\nimport {\n ACTIVE_STATE_IDLE,\n DISTANCE_DEFAULT\n} from './constants';\n\nclass ControlPanel extends React.Component {\n state = {\n distance: DISTANCE_DEFAULT\n };\n static propTypes = {\n port: React.PropTypes.string,\n unit: React.PropTypes.string,\n activeState: React.PropTypes.string,\n machinePos: React.PropTypes.object,\n workingPos: React.PropTypes.object\n };\n\n changeDistance(distance) {\n this.setState({ distance: Number(distance) || DISTANCE_DEFAULT });\n }\n render() {\n let { port, unit, activeState, machinePos, workingPos } = this.props;\n let { distance } = this.state;\n let canClick = (!!port && (activeState === ACTIVE_STATE_IDLE));\n let styles = {\n jogControls: {\n },\n motionControls: {\n }\n };\n\n return (\n <div className=\"container-fluid control-panel\">\n <div className=\"row no-gutter\">\n <div className=\"col-sm-6\">\n <JogJoystickControl\n port={port}\n unit={unit}\n activeState={activeState}\n distance={distance}\n />\n </div>\n <div className=\"col-sm-6\">\n <MotionControls\n port={port}\n unit={unit}\n activeState={activeState}\n machinePos={machinePos}\n workingPos={workingPos}\n />\n </div>\n </div>\n <div className=\"row no-gutter\">\n <div className=\"col-sm-12\">\n <JogDistanceControl\n unit={unit}\n onChange={::this.changeDistance}\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default ControlPanel;\n",
"import _ from 'lodash';\nimport colornames from 'colornames';\nimport React from 'react';\nimport { DropdownButton, MenuItem } from 'react-bootstrap';\nimport i18n from '../../../lib/i18n';\nimport serialport from '../../../lib/serialport';\nimport {\n ACTIVE_STATE_IDLE,\n METRIC_UNIT\n} from './constants';\n\nclass DisplayPanel extends React.Component {\n static propTypes = {\n port: React.PropTypes.string,\n unit: React.PropTypes.string,\n activeState: React.PropTypes.string,\n machinePos: React.PropTypes.object,\n workingPos: React.PropTypes.object\n }\n\n handleSelect(target, eventKey) {\n let data = eventKey;\n if (data) {\n serialport.writeln(data);\n }\n }\n render() {\n let { port, unit, activeState, machinePos, workingPos } = this.props;\n let canClick = (!!port && (activeState === ACTIVE_STATE_IDLE));\n let displayUnit = (unit === METRIC_UNIT) ? i18n._('mm') : i18n._('in');\n let styles = {\n activeState: {\n color: (activeState === 'Alarm') ? colornames('crimson') : colornames('gray 20')\n }\n };\n\n return (\n <div className=\"container-fluid display-panel\">\n <div className=\"row no-gutter\">\n <div className=\"active-state\">\n {i18n._('Active state:')} <span style={styles.activeState}>{activeState}</span>\n </div>\n <table className=\"table-bordered\">\n <thead>\n <tr>\n <th>{i18n._('Axis')}</th>\n <th>{i18n._('Machine Position')}</th>\n <th>{i18n._('Working Position')}</th>\n <th>{i18n._('Action')}</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td className=\"axis-label\">X</td>\n <td className=\"axis-position\">\n <span className=\"integer-part\">{machinePos.x.split('.')[0]}</span>\n <span className=\"decimal-point\">.</span>\n <span className=\"fractional-part\">{machinePos.x.split('.')[1]}</span>\n <span className=\"dimension-unit\">{displayUnit}</span>\n </td>\n <td className=\"axis-position\">\n <span className=\"integer-part\">{workingPos.x.split('.')[0]}</span>\n <span className=\"decimal-point\">.</span>\n <span className=\"fractional-part\">{workingPos.x.split('.')[1]}</span>\n <span className=\"dimension-unit\">{displayUnit}</span>\n </td>\n <td className=\"axis-control\">\n <DropdownButton\n bsSize=\"xs\"\n bsStyle=\"default\"\n title=\"X\"\n id=\"axis-x-dropdown\"\n pullRight\n disabled={!canClick}\n >\n <MenuItem header>{i18n._('Temporary Offsets (G92)')}</MenuItem>\n <MenuItem eventKey='G92 X0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Zero Out Temporary X Axis (G92 X0)')}</MenuItem>\n <MenuItem eventKey='G92.1 X0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Un-Zero Out Temporary X Axis (G92.1 X0)')}</MenuItem>\n <MenuItem divider />\n <MenuItem header>{i18n._('Work Coordinate System (G54)')}</MenuItem>\n <MenuItem eventKey='G0 X0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Go To Work Zero On X Axis (G0 X0)')}</MenuItem>\n <MenuItem eventKey='G10 L20 P1 X0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Zero Out Work X Axis (G10 L20 P1 X0)')}</MenuItem>\n <MenuItem divider />\n <MenuItem header>{i18n._('Machine Coordinate System (G53)')}</MenuItem>\n <MenuItem eventKey='G53 G0 X0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Go To Machine Zero On X Axis (G53 G0 X0)')}</MenuItem>\n </DropdownButton>\n </td>\n </tr>\n <tr>\n <td className=\"axis-label\">Y</td>\n <td className=\"axis-position\">\n <span className=\"integer-part\">{machinePos.y.split('.')[0]}</span>\n <span className=\"decimal-point\">.</span>\n <span className=\"fractional-part\">{machinePos.y.split('.')[1]}</span>\n <span className=\"dimension-unit\">{displayUnit}</span>\n </td>\n <td className=\"axis-position\">\n <span className=\"integer-part\">{workingPos.y.split('.')[0]}</span>\n <span className=\"decimal-point\">.</span>\n <span className=\"fractional-part\">{workingPos.y.split('.')[1]}</span>\n <span className=\"dimension-unit\">{displayUnit}</span>\n </td>\n <td className=\"axis-control\">\n <DropdownButton\n bsSize=\"xs\"\n bsStyle=\"default\"\n title=\"Y\"\n id=\"axis-y-dropdown\"\n pullRight\n disabled={!canClick}\n >\n <MenuItem header>{i18n._('Temporary Offsets (G92)')}</MenuItem>\n <MenuItem eventKey='G92 Y0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Zero Out Temporary Y Axis (G92 Y0)')}</MenuItem>\n <MenuItem eventKey='G92.1 Y0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Un-Zero Out Temporary Y Axis (G92.1 Y0)')}</MenuItem>\n <MenuItem divider />\n <MenuItem header>{i18n._('Work Coordinate System (G54)')}</MenuItem>\n <MenuItem eventKey='G0 Y0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Go To Work Zero On Y Axis (G0 Y0)')}</MenuItem>\n <MenuItem eventKey='G10 L20 P1 Y0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Zero Out Work Y Axis (G10 L20 P1 Y0)')}</MenuItem>\n <MenuItem divider />\n <MenuItem header>{i18n._('Machine Coordinate System (G53)')}</MenuItem>\n <MenuItem eventKey='G53 G0 Y0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Go To Machine Zero On Y Axis (G53 G0 Y0)')}</MenuItem>\n </DropdownButton>\n </td>\n </tr>\n <tr>\n <td className=\"axis-label\">Z</td>\n <td className=\"axis-position\">\n <span className=\"integer-part\">{machinePos.z.split('.')[0]}</span>\n <span className=\"decimal-point\">.</span>\n <span className=\"fractional-part\">{machinePos.z.split('.')[1]}</span>\n <span className=\"dimension-unit\">{displayUnit}</span>\n </td>\n <td className=\"axis-position\">\n <span className=\"integer-part\">{workingPos.z.split('.')[0]}</span>\n <span className=\"decimal-point\">.</span>\n <span className=\"fractional-part\">{workingPos.z.split('.')[1]}</span>\n <span className=\"dimension-unit\">{displayUnit}</span>\n </td>\n <td className=\"axis-control\">\n <DropdownButton\n bsSize=\"xs\"\n bsStyle=\"default\"\n title=\"Z\"\n id=\"axis-z-dropdown\"\n pullRight\n disabled={!canClick}\n >\n <MenuItem header>{i18n._('Temporary Offsets (G92)')}</MenuItem>\n <MenuItem eventKey='G92 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Zero Out Temporary Z Axis (G92 Z0)')}</MenuItem>\n <MenuItem eventKey='G92.1 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Un-Zero Out Temporary Z Axis (G92.1 Z0)')}</MenuItem>\n <MenuItem divider />\n <MenuItem header>{i18n._('Work Coordinate System (G54)')}</MenuItem>\n <MenuItem eventKey='G0 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Go To Work Zero On Z Axis (G0 Z0)')}</MenuItem>\n <MenuItem eventKey='G10 L20 P1 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Zero Out Work Z Axis (G10 L20 P1 Z0)')}</MenuItem>\n <MenuItem divider />\n <MenuItem header>{i18n._('Machine Coordinate System (G53)')}</MenuItem>\n <MenuItem eventKey='G53 G0 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Go To Machine Zero On X Axis (G53 G0 Z0)')}</MenuItem>\n </DropdownButton>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n );\n }\n}\n\nexport default DisplayPanel;\n",
"import React from 'react';\nimport i18n from '../../../lib/i18n';\nimport PressAndHold from '../../common/PressAndHold';\nimport {\n METRIC_UNIT,\n DISTANCE_MIN,\n DISTANCE_MAX,\n DISTANCE_STEP,\n DISTANCE_DEFAULT\n} from './constants';\n\nclass JogDistanceControl extends React.Component {\n state = {\n distance: DISTANCE_DEFAULT\n };\n static propTypes = {\n unit: React.PropTypes.string,\n onChange: React.PropTypes.func\n };\n\n normalizeToRange(n, min, max) {\n if (n < min) {\n return min;\n }\n if (n > max) {\n return max;\n }\n return n;\n }\n handleChange(event) {\n let distance = event.target.value;\n\n this.setState({ distance: distance });\n this.props.onChange(distance);\n }\n increaseDistance() {\n let distance = Math.min(Number(this.state.distance) + DISTANCE_STEP, DISTANCE_MAX);\n let digits = (this.props.unit === METRIC_UNIT) ? 3 : 4;\n this.setState({ distance: distance.toFixed(digits) * 1 });\n this.props.onChange(distance);\n }\n decreaseDistance() {\n let distance = Math.max(Number(this.state.distance) - DISTANCE_STEP, DISTANCE_MIN);\n let digits = (this.props.unit === METRIC_UNIT) ? 3 : 4;\n this.setState({ distance: distance.toFixed(digits) * 1 });\n this.props.onChange(distance);\n }\n resetDistance() {\n let distance = DISTANCE_DEFAULT;\n this.setState({ distance: distance });\n this.props.onChange(distance);\n }\n render() {\n let distance = this.normalizeToRange(this.state.distance, DISTANCE_MIN, DISTANCE_MAX);\n\n return (\n <div className=\"jog-distance-control\">\n <div className=\"form-inline\">\n <div className=\"form-group\">\n <div className=\"input-group input-group-xs\">\n <div className=\"input-group-addon\">{i18n._('Step')}</div>\n <div className=\"input-group-btn\">\n <input\n type=\"number\"\n className=\"form-control\"\n style={{borderRadius: 0}}\n min={DISTANCE_MIN}\n max={DISTANCE_MAX}\n step={DISTANCE_STEP}\n value={distance}\n onChange={::this.handleChange}\n title={i18n._('Step for every move operation')}\n />\n <PressAndHold className=\"btn btn-default\" onClick={::this.increaseDistance} title={i18n._('Increase step by 0.1 unit')}>\n <span className=\"glyphicon glyphicon-plus\"></span>\n </PressAndHold>\n <PressAndHold className=\"btn btn-default\" onClick={::this.decreaseDistance} title={i18n._('Decrease step by 0.1 unit')}>\n <span className=\"glyphicon glyphicon-minus\"></span>\n </PressAndHold>\n <button type=\"button\" className=\"btn btn-default\" onClick={::this.resetDistance} title={i18n._('Reset')}>\n <span className=\"glyphicon glyphicon-reset\"></span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default JogDistanceControl;\n",
"import _ from 'lodash';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport serialport from '../../../lib/serialport';\nimport {\n ACTIVE_STATE_IDLE\n} from './constants';\n\nclass JogJoystickControl extends React.Component {\n static propTypes = {\n port: React.PropTypes.string,\n unit: React.PropTypes.string,\n activeState: React.PropTypes.string,\n distance: React.PropTypes.number\n };\n\n jog(params) {\n serialport.writeln('G91'); // relative distance\n this.move(params);\n serialport.writeln('G90'); // absolute distance\n }\n move(params) {\n params = params || {};\n let s = _.map(params, (value, letter) => {\n return '' + letter + value;\n }).join(' ');\n\n serialport.writeln('G0 ' + s);\n }\n render() {\n let { port, activeState, distance } = this.props;\n let canClick = (!!port && (activeState === ACTIVE_STATE_IDLE));\n\n return (\n <div className=\"jog-joystick-control\">\n <table>\n <tbody>\n <tr>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-x-minus jog-y-plus\"\n onClick={() => this.jog({ X: -distance, Y: distance })}\n disabled={!canClick}\n title={i18n._('Move X- Y+')}\n >\n <i className=\"glyphicon glyphicon-circle-arrow-up rotate--45deg\"></i>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-y-plus\"\n onClick={() => this.jog({ Y: distance })}\n disabled={!canClick}\n title={i18n._('Move Y+')}\n >\n <span className=\"jog-direction\">Y+</span>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-x-plus jog-y-plus\"\n onClick={() => this.jog({ X: distance, Y: distance })}\n disabled={!canClick}\n title={i18n._('Move X+ Y+')}\n >\n <i className=\"glyphicon glyphicon-circle-arrow-up rotate-45deg\"></i>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-z-plus\"\n onClick={() => this.jog({ Z: distance })}\n disabled={!canClick}\n title={i18n._('Move Z+')}\n >\n <span className=\"jog-direction\">Z+</span>\n </button>\n </td>\n </tr>\n <tr>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-x-minus\"\n onClick={() => this.jog({ X: -distance })}\n disabled={!canClick}\n title={i18n._('Move X-')}\n >\n <span className=\"jog-direction\">X-</span>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-xy-zero\"\n onClick={() => this.move({ X: 0, Y: 0 })}\n disabled={!canClick}\n title={i18n._('Move To XY Zero (G0 X0 Y0)')}\n >\n <span className=\"jog-direction\">X/Y</span>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-x-plus\"\n onClick={() => this.jog({ X: distance })}\n disabled={!canClick}\n title={i18n._('Move X+')}\n >\n <span className=\"jog-direction\">X+</span>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-z-zero\"\n onClick={() => this.move({ Z: 0 })}\n disabled={!canClick}\n title={i18n._('Move To Z Zero (G0 Z0)')}\n >\n <span className=\"jog-direction\">Z</span>\n </button>\n </td>\n </tr>\n <tr>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-x-minus jog-y-minus\"\n onClick={() => this.jog({ X: -distance, Y: -distance })}\n disabled={!canClick}\n title={i18n._('Move X- Y-')}\n >\n <i className=\"glyphicon glyphicon-circle-arrow-down rotate-45deg\"></i>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-y-minus\"\n onClick={() => this.jog({ Y: -distance })}\n disabled={!canClick}\n title={i18n._('Move Y-')}\n >\n <span className=\"jog-direction\">Y-</span>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-x-plus jog-y-minus\"\n onClick={() => this.jog({ X: distance, Y: -distance })}\n disabled={!canClick}\n title={i18n._('Move X+ Y-')}\n >\n <i className=\"glyphicon glyphicon-circle-arrow-down rotate--45deg\"></i>\n </button>\n </td>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default jog-z-minus\"\n onClick={() => this.jog({ Z: -distance })}\n disabled={!canClick}\n title={i18n._('Move Z-')}\n >\n <span className=\"jog-direction\">Z-</span>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n );\n }\n}\n\nexport default JogJoystickControl;\n",
"import _ from 'lodash';\nimport React from 'react';\nimport { DropdownButton, MenuItem } from 'react-bootstrap';\nimport i18n from '../../../lib/i18n';\nimport serialport from '../../../lib/serialport';\nimport {\n ACTIVE_STATE_IDLE\n} from './constants';\n\nclass MotionControls extends React.Component {\n static propTypes = {\n port: React.PropTypes.string,\n unit: React.PropTypes.string,\n activeState: React.PropTypes.string,\n machinePos: React.PropTypes.object,\n workingPos: React.PropTypes.object\n };\n\n handleSelect(target, eventKey) {\n let data = eventKey;\n this.send(data);\n }\n send(data) {\n serialport.writeln(data);\n }\n render() {\n let { port, unit, activeState, machinePos } = this.props;\n let canClick = (!!port && (activeState === ACTIVE_STATE_IDLE));\n\n return (\n <div className=\"motion-controls\">\n <table>\n <tbody>\n <tr>\n <td>\n <DropdownButton\n bsSize=\"sm\"\n bsStyle=\"default\"\n title={\n <span><i className=\"glyphicon glyphicon-home\"></i> {i18n._('Predefined Position')}</span>\n }\n id=\"predefined-position-dropdown\"\n pullRight\n disabled={!canClick}\n >\n <MenuItem eventKey='G28' onSelect={::this.handleSelect} disabled={!canClick}>\n {i18n._('Go To Predefined Position 1 (G28)')}\n </MenuItem>\n <MenuItem eventKey='G30' onSelect={::this.handleSelect} disabled={!canClick}>\n {i18n._('Go To Predefined Position 2 (G30)')}\n </MenuItem>\n <MenuItem divider />\n <MenuItem eventKey='G28.1' onSelect={::this.handleSelect} disabled={!canClick}>\n {i18n._('Set Predefined Position 1 (G28.1)')}\n </MenuItem>\n <MenuItem eventKey='G30.1' onSelect={::this.handleSelect} disabled={!canClick}>\n {i18n._('Set Predefined Position 2 (G30.1)')}\n </MenuItem>\n </DropdownButton>\n </td>\n </tr>\n <tr>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default\"\n onClick={() => this.send('G0 X0 Y0 Z0')}\n disabled={!canClick}\n >\n {i18n._('Go To Work Zero')}\n </button>\n </td>\n </tr>\n <tr>\n <td>\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default\"\n onClick={() => this.send('G53 G0 X0 Y0 Z0')}\n disabled={!canClick}\n >\n {i18n._('Go To Machine Zero')}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n );\n }\n}\n\nexport default MotionControls;\n",
"import _ from 'lodash';\nimport React from 'react';\nimport { DropdownButton, MenuItem } from 'react-bootstrap';\nimport i18n from '../../../lib/i18n';\nimport serialport from '../../../lib/serialport';\nimport {\n ACTIVE_STATE_IDLE,\n METRIC_UNIT\n} from './constants';\n\nclass ToolbarButton extends React.Component {\n static propTypes = {\n port: React.PropTypes.string,\n unit: React.PropTypes.string,\n activeState: React.PropTypes.string\n };\n\n toggleDisplayUnit() {\n if (this.props.unit === METRIC_UNIT) {\n serialport.writeln('G20'); // G20 specifies Imperial unit\n } else {\n serialport.writeln('G21'); // G21 specifies Metric unit\n }\n }\n handleSelect(target, eventKey) {\n let data = eventKey;\n if (data) {\n serialport.writeln(data);\n }\n }\n render() {\n let { port, activeState } = this.props;\n let canClick = (!!port && (activeState === ACTIVE_STATE_IDLE));\n\n return (\n <div>\n <div className=\"toolbar-button btn-group\">\n <button type=\"button\" className=\"btn btn-xs btn-default\" onClick={::this.toggleDisplayUnit} disabled={!canClick}>{i18n._('in / mm')}</button>\n <DropdownButton\n bsSize=\"xs\"\n bsStyle=\"default\"\n title=\"XYZ\"\n id=\"axes-dropdown\"\n pullRight\n disabled={!canClick}\n >\n <MenuItem header>{i18n._('Temporary Offsets (G92)')}</MenuItem>\n <MenuItem eventKey='G92 X0 Y0 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Zero Out Temporary Offsets (G92 X0 Y0 Z0)')}</MenuItem>\n <MenuItem eventKey='G92.1 X0 Y0 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Un-Zero Out Temporary Offsets (G92.1 X0 Y0 Z0)')}</MenuItem>\n <MenuItem divider />\n <MenuItem header>{i18n._('Work Coordinate System (G54)')}</MenuItem>\n <MenuItem eventKey='G0 X0 Y0 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Go To Work Zero (G0 X0 Y0 Z0)')}</MenuItem>\n <MenuItem eventKey='G10 L20 P1 X0 Y0 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Zero Out Work Offsets (G10 L20 P1 X0 Y0 Z0)')}</MenuItem>\n <MenuItem divider />\n <MenuItem header>{i18n._('Machine Coordinate System (G53)')}</MenuItem>\n <MenuItem eventKey='G53 G0 X0 Y0 Z0' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Go To Machine Zero (G53 G0 X0 Y0 Z0)')}</MenuItem>\n </DropdownButton>\n </div>\n </div>\n );\n }\n}\n\nexport default ToolbarButton;\n",
"export const IMPERIAL_UNIT = 'in';\nexport const METRIC_UNIT = 'mm';\n\n// mm (or in)\nexport const DISTANCE_MIN = 0;\nexport const DISTANCE_MAX = 10000;\nexport const DISTANCE_STEP = 0.1;\nexport const DISTANCE_DEFAULT = 1.00;\n\n// Grbl Active State\nexport const ACTIVE_STATE_IDLE = 'Idle';\nexport const ACTIVE_STATE_RUN = 'Run';\nexport const ACTIVE_STATE_HOLD = 'Hold';\nexport const ACTIVE_STATE_DOOR = 'Door';\nexport const ACTIVE_STATE_HOME = 'Home';\nexport const ACTIVE_STATE_ALARM = 'Alarm';\nexport const ACTIVE_STATE_CHECK = 'Check';\n",
"var css = \"[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content{position:relative;padding:10px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .toolbar-button{position:absolute;top:5px;right:10px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .rotate-45deg,[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .rotate-45deg:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .rotate--45deg,[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .rotate--45deg:before{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .rotate-90deg,[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .rotate-90deg:before{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .rotate--90deg,[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .rotate--90deg:before{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content ion-log-in{font-size:16px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .glyphicon-reset{-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .glyphicon-reset:before{content:\\\"\\\\e030\\\"}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel{margin-bottom:10px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .active-state{margin-bottom:5px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-label{text-align:center;font-size:24px;padding:0 10px;width:1%}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-position{padding:0 5px 10px;text-align:right;white-space:nowrap;position:relative}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-position .decimal-point,[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-position .fractional-part,[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-position .integer-part{font-size:24px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-position .integer-part{width:90px;text-align:right}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-position .dimension-unit{font-size:12px;position:absolute;right:5px;bottom:0}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-control{width:1%;padding:0 4px;text-align:center}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .display-panel .axis-control .icon{font-size:12px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .control-panel table tbody>tr>td{padding:0 5px 5px 0}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .control-panel table tbody>tr>td:last-child{padding-right:0}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .control-panel table tbody>tr:last-child>td{padding-bottom:0}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .jog-joystick-control{margin-bottom:5px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .jog-joystick-control button[class*=\\\" jog-\\\"],[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .jog-joystick-control button[class^=jog-]{font-size:16px;padding:0;width:36px;height:30px;text-align:center;vertical-align:middle}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .jog-joystick-control button[class*=\\\" jog-\\\"] .glyphicon,[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .jog-joystick-control button[class^=jog-] .glyphicon{font-size:14px}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .motion-controls{float:right}[data-component=\\\"Widgets/AxesWidget\\\"] .widget-content .motion-controls .btn{width:100%}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widgets/axes/index.css\"})); module.exports = css;",
"import classNames from 'classnames';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport { Widget, WidgetHeader, WidgetContent } from '../../widget';\nimport Axes from './Axes';\nimport './index.css';\n\nclass AxesWidget extends React.Component {\n state = {\n isCollapsed: false\n };\n\n handleClick(target, val) {\n if (target === 'toggle') {\n this.setState({\n isCollapsed: !!val\n });\n }\n }\n render() {\n let width = 360;\n let title = i18n._('Axes');\n let toolbarButtons = [\n 'toggle'\n ];\n let widgetContentClass = classNames(\n { 'hidden': this.state.isCollapsed }\n );\n\n return (\n <div {...this.props} data-component=\"Widgets/AxesWidget\">\n <Widget width={width}>\n <WidgetHeader\n title={title}\n toolbarButtons={toolbarButtons}\n handleClick={::this.handleClick}\n />\n <WidgetContent className={widgetContentClass}>\n <Axes />\n </WidgetContent>\n </Widget>\n </div>\n );\n }\n}\n\nexport default AxesWidget;\n",
"import React from 'react';\n\nclass Alert extends React.Component {\n render() {\n return (\n <div>\n {this.props.msg &&\n <div className=\"alert alert-danger fade in\" style={{padding: '4px'}}>\n <a\n href=\"javascript:void(0)\"\n className=\"close\"\n data-dismiss=\"alert\"\n aria-label=\"close\"\n style={{fontSize: '16px'}}\n onClick={this.props.dismiss}\n >×</a>\n {this.props.msg}\n </div>\n }\n </div>\n );\n }\n}\n\nexport default Alert;\n",
"import _ from 'lodash';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport Select from 'react-select';\nimport Alert from './Alert';\nimport i18n from '../../../lib/i18n';\nimport log from '../../../lib/log';\nimport socket from '../../../lib/socket';\nimport store from '../../../store';\n\nclass Connection extends React.Component {\n state = {\n loading: false,\n ports: [],\n baudrates: [\n 9600,\n 19200,\n 38400,\n 57600,\n 115200\n ],\n port: '',\n baudrate: 115200,\n alertMessage: ''\n };\n socketEventListener = {\n 'serialport:list': ::this.socketOnSerialPortList,\n 'serialport:open': ::this.socketOnSerialPortOpen,\n 'serialport:close': ::this.socketOnSerialPortClose,\n 'serialport:error': ::this.socketOnSerialPortError\n };\n\n componentWillMount() {\n this.handleRefresh();\n }\n componentDidMount() {\n this.addSocketEventListener();\n }\n componentWillUnmount() {\n this.removeSocketEventListener();\n }\n addSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.on(eventName, callback);\n });\n }\n removeSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.off(eventName, callback);\n });\n }\n socketOnSerialPortList(ports) {\n log.debug('serialport:list', ports);\n\n this.stopLoading();\n\n this.clearAlert();\n\n let port = store.getState('widgets.connection.port') || '';\n\n if (_.includes(_.pluck(ports, 'port'), port)) {\n this.setState({\n port: port,\n ports: ports\n });\n } else {\n this.setState({ ports: ports });\n }\n }\n socketOnSerialPortOpen(options) {\n let { port, baudrate, inuse } = options;\n let ports = _.map(this.state.ports, function(o) {\n if (o.port !== port) {\n return o;\n }\n\n return _.extend(o, { inuse: inuse });\n });\n\n this.clearAlert();\n\n pubsub.publish('port', port);\n\n // save the port\n store.setState('widgets.connection.port', port);\n\n this.setState({\n connecting: false,\n connected: true,\n port: port,\n baudrate: baudrate,\n ports: ports\n });\n\n log.debug('Connected to \\'' + port + '\\' at ' + baudrate + '.');\n }\n socketOnSerialPortClose(options) {\n let { port, inuse } = options;\n\n this.clearAlert();\n\n // Close port\n pubsub.publish('port', '');\n\n this.setState({\n connecting: false,\n connected: false\n });\n\n log.debug('Disconnected from \\'' + port + '\\'.');\n }\n socketOnSerialPortError(options) {\n let { port } = options;\n\n this.showAlert('Error opening serial port: ' + port);\n\n // Close port\n pubsub.publish('port', '');\n\n this.setState({\n connecting: false,\n connected: false\n });\n\n log.error('Error opening serial port:', port);\n }\n showAlert(msg) {\n this.setState({ alertMessage: msg });\n }\n clearAlert() {\n this.setState({ alertMessage: '' });\n }\n startLoading() {\n let delay = 5 * 1000; // wait for 5 seconds\n\n this.setState({\n loading: true\n });\n this._loadingTimer = setTimeout(() => {\n this.setState({ loading: false });\n }, delay);\n }\n stopLoading() {\n if (this._loadingTimer) {\n clearTimeout(this._loadingTimer);\n this._loadingTimer = null;\n }\n this.setState({\n loading: false\n });\n }\n isPortInUse(port) {\n port = port || this.state.port;\n let o = _.findWhere(this.state.ports, { port: port }) || {};\n return !!(o.inuse);\n }\n handleRefresh() {\n socket.emit('list');\n this.startLoading();\n }\n openPort() {\n let port = this.state.port;\n let baudrate = this.state.baudrate;\n\n this.setState({\n connecting: true\n });\n socket.emit('open', {\n port: port,\n baudrate: baudrate\n });\n }\n closePort() {\n let port = this.state.port;\n\n // Close port\n pubsub.publish('port', '');\n\n this.setState({\n connecting: false,\n connected: false\n });\n socket.emit('close', {\n port: port\n });\n\n // Refresh ports\n socket.emit('list');\n }\n changePort(value) {\n this.setState({\n alertMessage: '',\n port: value\n });\n }\n changeBaudrate(value) {\n this.setState({\n alertMessage: '',\n baudrate: value\n });\n }\n renderPortOption(option) {\n let optionStyle = {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n };\n let noteStyle = {\n fontSize: '12px'\n };\n\n return (\n <div style={optionStyle} title={option.label}>\n <div>\n {option.inuse &&\n <span><i className=\"glyphicon glyphicon-lock\"></i> </span>\n }\n {option.label}\n </div>\n {option.manufacturer && \n <note style={noteStyle}>\n {i18n._('Manufacturer:')} {option.manufacturer}\n </note>\n }\n </div>\n );\n }\n renderPortValue(option) {\n let notLoading = !(this.state.loading);\n let canChangePort = notLoading;\n let style = {\n color: canChangePort ? '#333' : '#ccc',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n };\n return (\n <div style={style} title={option.label}>\n {option.inuse &&\n <span><i className=\"glyphicon glyphicon-lock\"></i> </span>\n }\n {option.label}\n </div>\n );\n }\n renderBaudrateValue(option) {\n let notLoading = !(this.state.loading);\n let notInUse = !(this.isPortInUse(this.state.port));\n let canChangeBaudrate = notLoading && notInUse;\n let style = {\n color: canChangeBaudrate ? '#333' : '#ccc',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n };\n return (\n <div style={style} title={option.label}>{option.label}</div>\n );\n }\n render() {\n let notLoading = !(this.state.loading);\n let notConnecting = !(this.state.connecting);\n let notConnected = !(this.state.connected);\n let isConnected = this.state.connected;\n let canRefresh = notLoading && notConnected;\n let canChangePort = notLoading && notConnected;\n let canChangeBaudrate = notLoading && notConnected && (!(this.isPortInUse(this.state.port)));\n let canOpenPort = this.state.port && this.state.baudrate && notConnecting && notConnected;\n let canClosePort = isConnected;\n\n return (\n <div>\n <Alert msg={this.state.alertMessage} dismiss={::this.clearAlert} />\n <div className=\"form-group\">\n <label className=\"control-label\">{i18n._('Port:')}</label>\n <div className=\"input-group input-group-sm\">\n <Select\n className=\"sm\"\n name=\"port\"\n value={this.state.port}\n options={_.map(this.state.ports, (port) => {\n return {\n value: port.port,\n label: port.port,\n manufacturer: port.manufacturer,\n inuse: port.inuse\n };\n })}\n disabled={!canChangePort}\n backspaceRemoves={false}\n clearable={false}\n searchable={false}\n placeholder={i18n._('Choose a port')}\n noResultsText={i18n._('No ports available')}\n optionRenderer={::this.renderPortOption}\n valueRenderer={::this.renderPortValue}\n onChange={::this.changePort}\n />\n <div className=\"input-group-btn\">\n <button type=\"button\" className=\"btn btn-default\" name=\"btn-refresh\" title={i18n._('Refresh')} onClick={::this.handleRefresh} disabled={!canRefresh}>\n {notLoading\n ? <i className=\"glyphicon glyphicon-refresh\"></i>\n : <i className=\"glyphicon glyphicon-refresh rotating\"></i>\n }\n </button>\n </div>\n </div>\n </div>\n <div className=\"form-group\">\n <label className=\"control-label\">{i18n._('Baud rate:')}</label>\n <Select\n className=\"sm\"\n name=\"baudrate\"\n value={this.state.baudrate}\n options={_.map(this.state.baudrates, function(baudrate) {\n return {\n value: baudrate,\n label: Number(baudrate).toString()\n };\n })}\n disabled={!canChangeBaudrate}\n backspaceRemoves={false}\n clearable={false}\n searchable={false}\n placeholder={i18n._('Choose a baud rate')}\n valueRenderer={::this.renderBaudrateValue}\n onChange={::this.changeBaudrate}\n />\n </div>\n <div className=\"btn-group btn-group-sm\">\n {notConnected &&\n <button\n type=\"button\"\n className=\"btn btn-primary\"\n disabled={!canOpenPort}\n onClick={::this.openPort}\n >\n <i className=\"glyphicon glyphicon-off\"></i> {i18n._('Open')}\n </button>\n }\n {isConnected &&\n <button\n type=\"button\"\n className=\"btn btn-danger\"\n disabled={!canClosePort}\n onClick={::this.closePort}\n >\n <i className=\"glyphicon glyphicon-off\"></i> {i18n._('Close')}\n </button>\n }\n </div>\n </div>\n );\n }\n}\n\nexport default Connection;\n",
"var css = \"[data-component=\\\"Widgets/ConnectionWidget\\\"] .widget-content{position:relative;padding:10px}[data-component=\\\"Widgets/ConnectionWidget\\\"] .widget-content .Select.sm .Select-control{height:30px;border-radius:3px}[data-component=\\\"Widgets/ConnectionWidget\\\"] .widget-content .Select.sm .Select-placeholder{line-height:28px}[data-component=\\\"Widgets/ConnectionWidget\\\"] .widget-content .Select.sm .Select-value{padding:6px 52px 6px 10px}[data-component=\\\"Widgets/ConnectionWidget\\\"] .widget-content .Select.sm .Select-input{height:28px}[data-component=\\\"Widgets/ConnectionWidget\\\"] .widget-content .input-group>.Select:not(:last-child) .Select-control{border-top-right-radius:0;border-bottom-right-radius:0}[data-component=\\\"Widgets/ConnectionWidget\\\"] .widget-content .input-group>.Select:not(:first-child) .Select-control{border-top-left-radius:0;border-bottom-left-radius:0}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widgets/connection/index.css\"})); module.exports = css;",
"import classNames from 'classnames';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport { Widget, WidgetHeader, WidgetContent } from '../../widget';\nimport Connection from './Connection';\nimport './index.css';\n\nclass ConnectionWidget extends React.Component {\n state = {\n isCollapsed: false\n };\n\n handleClick(target, val) {\n if (target === 'toggle') {\n this.setState({\n isCollapsed: !!val\n });\n }\n }\n render() {\n let width = 360;\n let title = i18n._('Connection');\n let toolbarButtons = [\n 'toggle'\n ];\n let widgetContentClass = classNames(\n { 'hidden': this.state.isCollapsed }\n );\n\n return (\n <div {...this.props} data-component=\"Widgets/ConnectionWidget\">\n <Widget width={width}>\n <WidgetHeader\n title={title}\n toolbarButtons={toolbarButtons}\n handleClick={::this.handleClick}\n />\n <WidgetContent className={widgetContentClass}>\n <Connection />\n </WidgetContent>\n </Widget>\n </div>\n );\n }\n}\n\nexport default ConnectionWidget;\n",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport ConsoleInput from './ConsoleInput';\nimport ConsoleWindow from './ConsoleWindow';\nimport serialport from '../../../lib/serialport';\nimport {\n SCROLL_BUFFER_SIZE\n} from './constants';\n\nclass Console extends React.Component {\n state = {\n port: '',\n buffers: []\n };\n\n buffers = [];\n\n componentDidMount() {\n this.subscribe();\n this.addSerialPortEvents();\n }\n componentWillUnmount() {\n this.unsubscribe();\n this.removeSerialPortEvents();\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // port\n let token = pubsub.subscribe('port', (msg, port) => {\n port = port || '';\n this.setState({ port: port });\n\n if (!port) {\n this.clear();\n }\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n addSerialPortEvents() {\n serialport.on('write', ::this.onSerialPortWrite);\n serialport.on('data', ::this.onSerialPortRead);\n }\n removeSocketEvents() {\n serialport.off('write', ::this.onSerialPortWrite);\n serialport.off('data', ::this.onSerialPortRead);\n }\n onSerialPortRead(data) {\n this.append(data);\n }\n onSerialPortWrite(data) {\n let lines = data.split('\\n');\n let values = _(lines)\n .compact()\n .map((line) => ('> ' + line))\n .value();\n\n this.append(values);\n }\n append(buffer) {\n this.buffers = _(this.buffers)\n .concat(buffer)\n .slice(0, SCROLL_BUFFER_SIZE)\n .value();\n this.setState({ buffers: this.buffers });\n }\n clear() {\n this.buffers = [];\n this.setState({ buffers: this.buffers });\n }\n render() {\n return (\n <div>\n <ConsoleInput\n port={this.state.port}\n onClear={::this.clear}\n />\n <ConsoleWindow\n buffers={this.state.buffers}\n />\n </div>\n );\n }\n}\n\nexport default Console;\n",
"import _ from 'lodash';\nimport i18n from '../../../lib/i18n';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { DropdownButton, MenuItem } from 'react-bootstrap';\nimport serialport from '../../../lib/serialport';\nimport {\n GRBL_REALTIME_COMMANDS\n} from './constants';\n\nclass ConsoleInput extends React.Component {\n static propTypes = {\n port: React.PropTypes.string,\n onClear: React.PropTypes.func\n };\n\n handleKeyDown(e) {\n let ENTER = 13;\n if (e.keyCode === ENTER) {\n this.handleSend();\n }\n }\n handleSend() {\n let el = ReactDOM.findDOMNode(this.refs.command);\n\n if (el.value === '') {\n return;\n }\n\n if (_.includes(GRBL_REALTIME_COMMANDS, el.value)) {\n serialport.write(el.value);\n } else {\n serialport.writeln(el.value);\n }\n\n el.value = '';\n }\n handleClear() {\n this.props.onClear();\n }\n render() {\n let { port } = this.props;\n let canInput = !!port;\n let canSend = canInput;\n let canClearAll = canInput;\n let canViewGrblHelp = canInput;\n let canViewGrblSettings = canInput;\n\n return (\n <div className=\"console-input\">\n <div className=\"input-group input-group-sm\">\n <input\n type=\"text\"\n className=\"form-control\"\n onKeyDown={::this.handleKeyDown}\n ref=\"command\"\n placeholder={i18n._('Type serial port command')}\n disabled={!canInput}\n />\n <div className=\"input-group-btn\">\n <button\n type=\"button\"\n className=\"btn btn-default\"\n onClick={::this.handleSend}\n disabled={!canSend}\n >\n {i18n._('Send')}\n </button>\n <DropdownButton bsSize=\"sm\" title=\"\" id=\"console-command-dropdown\" pullRight>\n <MenuItem onSelect={::this.handleClear} disabled={!canClearAll}>{i18n._('Clear all')}</MenuItem>\n </DropdownButton>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default ConsoleInput;\n",
"import _ from 'lodash';\nimport Infinite from 'react-infinite';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nclass ConsoleWindow extends React.Component {\n static propTypes = {\n buffers: React.PropTypes.array\n };\n\n // Scroll Position with React\n // http://blog.vjeux.com/2013/javascript/scroll-position-with-react.html\n componentWillUpdate() {\n let node = ReactDOM.findDOMNode(this.refs.infinite);\n let hScrollBarHeight = (node.scrollWidth != node.clientWidth) ? 20 : 0;\n this.shouldScrollBottom = ((node.scrollTop + node.clientHeight + hScrollBarHeight) >= node.scrollHeight);\n }\n componentDidUpdate() {\n let node = ReactDOM.findDOMNode(this.refs.infinite);\n if (this.shouldScrollBottom) {\n node.scrollTop = node.scrollHeight;\n }\n }\n buildElements(buffers) {\n return _.map(buffers, (msg, index) => {\n return (\n <div key={index} className=\"infinite-list-item\">{msg}</div>\n );\n });\n }\n render() {\n let { buffers } = this.props;\n let elements = this.buildElements(buffers);\n\n return (\n <div className=\"console-window code\">\n <Infinite\n containerHeight={260}\n elementHeight={20}\n ref=\"infinite\"\n >\n {elements}\n </Infinite>\n </div>\n );\n }\n}\n\nexport default ConsoleWindow;\n",
"export const SCROLL_BUFFER_SIZE = 5000; // lines\nexport const GRBL_REALTIME_COMMANDS = [\n '~', // Cycle Start\n '!', // Feed Hold\n '?', // Current Status\n '\\x18' // Reset Grbl (Ctrl-X)\n];\n",
"var css = \"[data-component=\\\"Widgets/ConsoleWidget\\\"] .widget-content{position:relative;padding:10px}[data-component=\\\"Widgets/ConsoleWidget\\\"] .widget-content .console-input{margin-bottom:10px}[data-component=\\\"Widgets/ConsoleWidget\\\"] .widget-content .console-input button.dropdown-toggle{height:30px}[data-component=\\\"Widgets/ConsoleWidget\\\"] .widget-content .console-window{background-color:#000;color:#fff}[data-component=\\\"Widgets/ConsoleWidget\\\"] .widget-content .console-window.code{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}[data-component=\\\"Widgets/ConsoleWidget\\\"] .widget-content .console-window .infinite-list-item{white-space:nowrap;height:20px}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widgets/console/index.css\"})); module.exports = css;",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport { Widget, WidgetHeader, WidgetContent } from '../../widget';\nimport Console from './Console';\nimport './index.css';\n\nclass ConsoleWidget extends React.Component {\n state = {\n isCollapsed: false\n };\n\n handleClick(target, val) {\n if (target === 'toggle') {\n this.setState({\n isCollapsed: !!val\n });\n }\n }\n render() {\n let width = 360;\n let title = i18n._('Console');\n let toolbarButtons = [\n 'toggle'\n ];\n let widgetContentClass = classNames(\n { 'hidden': this.state.isCollapsed }\n );\n\n return (\n <div {...this.props} data-component=\"Widgets/ConsoleWidget\">\n <Widget width={width}>\n <WidgetHeader\n title={title}\n toolbarButtons={toolbarButtons}\n handleClick={::this.handleClick}\n />\n <WidgetContent className={widgetContentClass}>\n <Console />\n </WidgetContent>\n </Widget>\n </div>\n );\n }\n}\n\nexport default ConsoleWidget;\n",
"import _ from 'lodash';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport update from 'react-addons-update';\nimport { parseText } from 'gcode-parser';\nimport GCodeStats from './GCodeStats';\nimport GCodeTable from './GCodeTable';\nimport log from '../../../lib/log';\nimport socket from '../../../lib/socket';\nimport {\n IMPERIAL_UNIT,\n METRIC_UNIT,\n GCODE_STATUS\n} from './constants';\n\nclass GCode extends React.Component {\n state = {\n port: '',\n unit: METRIC_UNIT,\n commands: [], // a list of gcode commands\n alertMessage: '',\n\n // Queue Status\n queueStatus: {\n executed: 0,\n total: 0\n }\n };\n socketEventListener = {\n 'gcode:queue-status': ::this.socketOnGCodeQueueStatus,\n 'grbl:gcode-modes': ::this.socketOnGrblGCodeModes\n };\n\n componentDidMount() {\n this.subscribe();\n this.addSocketEventListener();\n }\n componentWillUnmount() {\n this.removeSocketEventListener();\n this.unsubscribe();\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // port\n let token = pubsub.subscribe('port', (msg, port) => {\n port = port || '';\n this.setState({ port: port });\n });\n this.pubsubTokens.push(token);\n }\n\n { // gcode:load\n let token = pubsub.subscribe('gcode:load', (msg, gcode) => {\n gcode = gcode || '';\n\n parseText(gcode, (err, data) => {\n if (err) {\n log.error(err);\n return;\n }\n\n let commands = _(data)\n .map((o) => {\n return {\n status: GCODE_STATUS.NOT_STARTED,\n cmd: o.line\n };\n })\n .value();\n\n this.setState({ commands: commands });\n });\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n addSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.on(eventName, callback);\n });\n }\n removeSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.off(eventName, callback);\n });\n }\n socketOnGCodeQueueStatus(data) {\n let list = {};\n let from = this.state.queueStatus.executed;\n let to = data.executed;\n\n // Reset obsolete queue items\n for (let i = to; i < from; ++i) {\n list[i] = {\n status: {\n $set: GCODE_STATUS.NOT_STARTED\n }\n };\n }\n\n // Update completed queue items\n for (let i = from; i < to; ++i) {\n list[i] = {\n status: {\n $set: GCODE_STATUS.COMPLETED\n }\n };\n }\n\n let updatedCommands = update(this.state.commands, list);\n this.setState({\n commands: updatedCommands,\n queueStatus: {\n executed: Number(data.executed),\n total: Number(data.total)\n }\n });\n }\n socketOnGrblGCodeModes(modes) {\n let unit = this.state.unit;\n\n // Imperial\n if (_.includes(modes, 'G20')) {\n unit = IMPERIAL_UNIT;\n }\n\n // Metric\n if (_.includes(modes, 'G21')) {\n unit = METRIC_UNIT;\n }\n\n if (this.state.unit !== unit) {\n this.setState({ unit: unit });\n }\n }\n render() {\n let { port, unit, queueStatus } = this.state;\n let tableWidth = this.props.width - 2 /* border */ - 20 /* padding */;\n let tableHeight = 180;\n let rowHeight = 30;\n let visibleRows = Math.floor(tableHeight / rowHeight);\n let isLoaded = (_.size(this.state.commands) > 0);\n let notLoaded = !isLoaded;\n let scrollToRow = Math.min(\n queueStatus.executed + (Math.floor(visibleRows / 2) - 1),\n queueStatus.total\n );\n\n return (\n <div>\n <GCodeStats\n unit={unit}\n executed={queueStatus.executed}\n total={queueStatus.total}\n />\n\n {isLoaded &&\n <GCodeTable\n width={tableWidth}\n height={tableHeight}\n rowHeight={rowHeight}\n data={this.state.commands}\n scrollToRow={scrollToRow}\n />\n }\n </div>\n );\n }\n}\n\nexport default GCode;\n",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport moment from 'moment';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport update from 'react-addons-update';\nimport i18n from '../../../lib/i18n';\nimport socket from '../../../lib/socket';\nimport {\n METRIC_UNIT\n} from './constants';\n\nclass GCodeStats extends React.Component {\n static propTypes = {\n unit: React.PropTypes.string,\n executed: React.PropTypes.number,\n total: React.PropTypes.number\n };\n\n state = {\n startTime: 0,\n duration: 0,\n box: { // bounding box\n min: {\n x: 0,\n y: 0,\n z: 0\n },\n max: {\n x: 0,\n y: 0,\n z: 0\n },\n delta: {\n x: 0,\n y: 0,\n z: 0\n }\n }\n };\n\n componentDidMount() {\n this.subscribe();\n this.setTimer();\n }\n componentWillUnmount() {\n this.clearTimer();\n this.unsubscribe();\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // gcode:boundingBox\n let token = pubsub.subscribe('gcode:boundingBox', (msg, box) => {\n let dX = box.max.x - box.min.x;\n let dY = box.max.y - box.min.y;\n let dZ = box.max.z - box.min.z;\n\n this.setState({\n box: {\n min: {\n x: box.min.x,\n y: box.min.y,\n z: box.min.z\n },\n max: {\n x: box.max.x,\n y: box.max.y,\n z: box.max.z\n },\n delta: {\n x: dX,\n y: dY,\n z: dZ\n }\n }\n });\n });\n this.pubsubTokens.push(token);\n }\n\n { // gcode:run\n let token = pubsub.subscribe('gcode:run', (msg) => {\n let now = moment().unix();\n let startTime = this.state.startTime || now; // use startTime or current time\n let duration = (startTime !== now) ? this.state.duration : 0;\n this.setState({\n startTime: startTime,\n duration: duration\n });\n });\n this.pubsubTokens.push(token);\n }\n\n { // gcode:stop\n let token = pubsub.subscribe('gcode:stop', (msg) => {\n this.setState({\n startTime: 0,\n duration: 0\n });\n });\n this.pubsubTokens.push(token);\n }\n \n { // gcode:unload\n let token = pubsub.subscribe('gcode:unload', (msg) => {\n this.setState({\n startTime: 0,\n duration: 0\n });\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n setTimer() {\n this.timer = setInterval(() => {\n if (this.state.startTime === 0) {\n return;\n }\n\n let from = moment.unix(this.state.startTime);\n let to = moment();\n let duration = to.diff(from, 'seconds');\n this.setState({ duration: duration });\n }, 1000);\n }\n clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n toUnitString(val) {\n val = Number(val) || 0;\n if (this.props.unit === METRIC_UNIT) {\n val = (val / 1).toFixed(3);\n } else {\n val = (val / 25.4).toFixed(4);\n }\n return '' + val;\n }\n render() {\n let { unit, total, executed } = this.props;\n let box = _.mapValues(this.state.box, (position) => {\n return _.mapValues(position, (val, axis) => this.toUnitString(val));\n });\n let displayUnit = (unit === METRIC_UNIT) ? i18n._('mm') : i18n._('in');\n let startTime = '–';\n let duration = '–';\n\n if (this.state.startTime > 0) {\n startTime = moment.unix(this.state.startTime).format('YYYY-MM-DD HH:mm:ss');\n }\n if (this.state.duration > 0) {\n let d = moment.duration(this.state.duration, 'seconds');\n let hours = _.padLeft(d.hours(), 2, '0');\n let minutes = _.padLeft(d.minutes(), 2, '0');\n let seconds = _.padLeft(d.seconds(), 2, '0');\n\n duration = hours + ':' + minutes + ':' + seconds;\n }\n\n return (\n <div className=\"container-fluid gcode-stats\">\n <div className=\"row\">\n <div className=\"col-xs-12\">\n <div>{i18n._('Dimension:')}</div>\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col-xs-12\">\n <table className=\"table-bordered\" data-table=\"dimension\">\n <thead>\n <tr>\n <th className=\"axis\">{i18n._('Axis')}</th>\n <th>{i18n._('Min')}</th>\n <th>{i18n._('Max')}</th>\n <th>{i18n._('Delta')}</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td className=\"axis\">X</td>\n <td>{box.min.x} {displayUnit}</td>\n <td>{box.max.x} {displayUnit}</td>\n <td>{box.delta.x} {displayUnit}</td>\n </tr>\n <tr>\n <td className=\"axis\">Y</td>\n <td>{box.min.y} {displayUnit}</td>\n <td>{box.max.y} {displayUnit}</td>\n <td>{box.delta.y} {displayUnit}</td>\n </tr>\n <tr>\n <td className=\"axis\">Z</td>\n <td>{box.min.z} {displayUnit}</td>\n <td>{box.max.z} {displayUnit}</td>\n <td>{box.delta.z} {displayUnit}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col-xs-6\">{i18n._('Executed')}</div>\n <div className=\"col-xs-6\">{i18n._('Total')}</div>\n </div>\n <div className=\"row\">\n <div className=\"col-xs-6\">{executed}</div>\n <div className=\"col-xs-6\">{total}</div>\n </div>\n <div className=\"row\">\n <div className=\"col-xs-6\">{i18n._('Start Time')}</div>\n <div className=\"col-xs-6\">{i18n._('Duration')}</div>\n </div>\n <div className=\"row\">\n <div className=\"col-xs-6\">{startTime}</div>\n <div className=\"col-xs-6\">{duration}</div>\n </div>\n </div>\n );\n }\n}\n\nexport default GCodeStats;\n",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport React from 'react';\nimport update from 'react-addons-update';\nimport { Table, Column } from 'fixed-data-table';\nimport i18n from '../../../lib/i18n';\nimport { GCODE_STATUS } from './constants';\n\nlet isColumnResizing = false;\n\nclass GCodeTable extends React.Component {\n state = {\n table: {\n width: this.props.width,\n height: this.props.height,\n columns: [\n {\n dataKey: 'status',\n isResizable: false,\n width: 28,\n align: 'center',\n cellRenderer: (cellData, cellDataKey, rowData, rowIndex, columnData, width) => {\n let classes = {\n icon: classNames(\n 'glyphicon',\n { 'glyphicon-ok': cellData !== GCODE_STATUS.ERROR },\n { 'glyphicon-remove': cellData === GCODE_STATUS.ERROR }\n )\n };\n let styles = {\n icon: {\n color: (() => {\n let cdata = {};\n cdata[GCODE_STATUS.ERROR] = '#a71d5d';\n cdata[GCODE_STATUS.NOT_STARTED] = '#ddd';\n cdata[GCODE_STATUS.IN_PROGRESS] = '#ddd'; // FIXME\n cdata[GCODE_STATUS.COMPLETED] = '#333';\n return cdata[cellData] || '#ddd';\n })()\n }\n };\n return (\n <i className={classes.icon} style={styles.icon}></i>\n );\n }\n },\n {\n dataKey: 'cmd',\n isResizable: true,\n flexGrow: 1,\n width: 100,\n cellRenderer: (cellData, cellDataKey, rowData, rowIndex, columnData, width) => {\n return (\n <span className=\"text-overflow-ellipsis\" style={{width: width}}>\n <span className=\"label label-default\">{rowIndex + 1}</span> {cellData} \n </span>\n );\n }\n }\n ]\n }\n };\n\n rowGetter(index) {\n return this.props.data[index];\n }\n onContentHeightChange(contentHeight) {\n if (!(this.props.onContentDimensionsChange)) {\n return;\n }\n this.props.onContentDimensionsChange(\n contentHeight,\n Math.max(600, this.props.tableWidth)\n );\n }\n onColumnResizeEndCallback(newColumnWidth, dataKey) {\n isColumnResizing = false;\n this.setTableColumnWidth(dataKey, newColumnWidth);\n }\n setTableColumnWidth(dataKey, newColumnWidth) {\n let columns = this.state.table.columns;\n let newState = update(this.state, {\n table: {\n columns: {\n $apply: function() {\n let key = _.findKey(columns, { dataKey: dataKey });\n columns[key].width = newColumnWidth;\n return columns;\n }\n }\n }\n });\n this.setState(newState);\n }\n render() {\n if (_.size(this.props.data) > 0) {\n return this.renderTable();\n } else {\n return this.renderEmptyMessage();\n }\n }\n renderTable() {\n let controlledScrolling =\n this.props.left !== undefined || this.props.top !== undefined;\n\n return (\n <div className=\"gcode-table\">\n <Table\n className=\"noHeader\"\n headerHeight={0}\n rowHeight={this.props.rowHeight || 30}\n rowGetter={::this.rowGetter}\n rowsCount={_.size(this.props.data)}\n width={this.state.table.width}\n height={this.state.table.height}\n onContentHeightChange={::this.onContentHeightChange}\n scrollToRow={this.props.scrollToRow}\n scrollTop={this.props.top}\n scrollLeft={this.props.left}\n overflowX={controlledScrolling ? \"hidden\" : \"auto\"}\n overflowY={controlledScrolling ? \"hidden\" : \"auto\"}\n isColumnResizing={isColumnResizing}\n onColumnResizeEndCallback={::this.onColumnResizeEndCallback}\n >\n {this.renderTableColumns()}\n </Table>\n </div>\n );\n }\n renderTableColumns() {\n let columns = this.state.table.columns;\n return columns.map(function(column, key) {\n return (\n <Column\n label={column.name}\n dataKey={column.dataKey}\n width={column.width}\n flexGrow={column.flexGrow}\n isResizable={!!column.isResizable}\n key={key}\n align={column.align}\n headerClassName={column.headerClassName}\n headerRenderer={column.headerRenderer}\n cellClassName={column.cellClassName}\n cellRenderer={column.cellRenderer}\n />\n );\n }.bind(this));\n }\n renderEmptyMessage() {\n return (\n <p className=\"\">{i18n._('No data to display')}</p>\n );\n }\n}\n\nexport default GCodeTable;\n",
"export const IMPERIAL_UNIT = 'in';\nexport const METRIC_UNIT = 'mm';\nexport const GCODE_STATUS = {\n ERROR: -1,\n NOT_STARTED: 0,\n IN_PROGRESS: 1,\n COMPLETED: 2\n};\n",
"var css = \"[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content{position:relative;padding:10px}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-table .public_fixedDataTable_bottomShadow,[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-table .public_fixedDataTable_topShadow{background:0 0}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-table .public_fixedDataTable_header{border:none}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-table+.gcode-stats{border-top:none}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats{padding:0 5px}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats table[data-table=dimension]{width:100%}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats table[data-table=dimension] tbody>tr>td.axis,[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats table[data-table=dimension] thead>tr>th.axis{width:1%}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats table[data-table=dimension] tbody>tr>td{text-align:right}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats table[data-table=dimension] tbody>tr>td.axis{text-align:center}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats .row>[class^=col-]{padding-right:10px;padding-left:10px}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats .row:nth-child(even){margin-bottom:10px}[data-component=\\\"Widgets/GCodeWidget\\\"] .widget-content .gcode-stats .row:last-child{margin-bottom:0}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widgets/gcode/index.css\"})); module.exports = css;",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport { Widget, WidgetHeader, WidgetContent } from '../../widget';\nimport GCode from './GCode';\nimport './index.css';\n\nclass GCodeWidget extends React.Component {\n state = {\n isCollapsed: false\n };\n\n handleClick(target, val) {\n if (target === 'toggle') {\n this.setState({\n isCollapsed: !!val\n });\n }\n }\n render() {\n let width = 360;\n let title = i18n._('G-code');\n let toolbarButtons = [\n 'toggle'\n ];\n let widgetContentClass = classNames(\n { 'hidden': this.state.isCollapsed }\n );\n\n return (\n <div {...this.props} data-component=\"Widgets/GCodeWidget\">\n <Widget width={width}>\n <WidgetHeader\n title={title}\n toolbarButtons={toolbarButtons}\n handleClick={::this.handleClick}\n />\n <WidgetContent className={widgetContentClass}>\n <GCode width={width} />\n </WidgetContent>\n </Widget>\n </div>\n );\n }\n}\n\nexport default GCodeWidget;\n",
"import _ from 'lodash';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport { DropdownButton, MenuItem } from 'react-bootstrap';\nimport i18n from '../../../lib/i18n';\nimport log from '../../../lib/log';\nimport socket from '../../../lib/socket';\nimport serialport from '../../../lib/serialport';\nimport { MODAL_GROUPS } from '../../../constants/modal-groups';\n\nclass Grbl extends React.Component {\n state = {\n port: '',\n modes: {\n }\n };\n sokcetEventListener = {\n 'grbl:gcode-modes': ::this.socketOnGrblGCodeModes\n };\n\n componentDidMount() {\n this.subscribe();\n this.addSocketEventListener();\n }\n componentWillUnmount() {\n this.unsubscribe();\n this.removeSocketEventListener();\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // port\n let token = pubsub.subscribe('port', (msg, port) => {\n port = port || '';\n this.setState({ port: port });\n\n if (!port) {\n let modes = {};\n this.setState({ modes: modes });\n }\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n addSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.on(eventName, callback);\n });\n }\n removeSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.off(eventName, callback);\n });\n }\n socketOnGrblGCodeModes(modes) {\n let state = {};\n\n _.each(modes, (mode) => {\n // Gx, Mx\n if (mode.indexOf('G') === 0 || mode.indexOf('M') === 0) {\n let r = _.find(MODAL_GROUPS, (group) => {\n return _.includes(group.modes, mode);\n });\n if (r) {\n _.set(state, 'modal.' + r.group, mode);\n }\n }\n\n // T: tool number\n if (mode.indexOf('T') === 0) {\n _.set(state, 'tool', mode.substring(1));\n }\n\n // F: feed rate\n if (mode.indexOf('F') === 0) {\n _.set(state, 'feedrate', mode.substring(1));\n }\n\n // S: spindle speed\n if (mode.indexOf('S') === 0) {\n _.set(state, 'spindle', mode.substring(1));\n }\n });\n\n this.setState({ modes: state });\n\n log.trace(state);\n }\n shouldComponentUpdate(nextProps, nextState) {\n return JSON.stringify(nextState) !== JSON.stringify(this.state);\n }\n render() {\n let { port, modes } = this.state;\n let canClick = !!port;\n\n return (\n <div>\n <div className=\"form-group\">\n <div className=\"btn-group btn-group-justified\" role=\"group\" aria-label=\"...\">\n <DropdownButton bsSize=\"sm\" bsStyle=\"default\" title={i18n._('Real-Time Commands')} id=\"realtime-commands\">\n <MenuItem onSelect={() => serialport.write('~')} disabled={!canClick}>{i18n._('Cycle Start (~)')}</MenuItem>\n <MenuItem onSelect={() => serialport.write('!')} disabled={!canClick}>{i18n._('Feed Hold (!)')}</MenuItem>\n <MenuItem onSelect={() => serialport.write('?')} disabled={!canClick}>{i18n._('Current Status (?)')}</MenuItem>\n <MenuItem onSelect={() => serialport.write('\\x18')} disabled={!canClick}>{i18n._('Reset Grbl (Ctrl-X)')}</MenuItem>\n </DropdownButton>\n <DropdownButton bsSize=\"sm\" bsStyle=\"default\" title={i18n._('System Commands')} id=\"system-commands\">\n <MenuItem onSelect={() => serialport.writeln('$')} disabled={!canClick}>{i18n._('Grbl Help ($)')}</MenuItem>\n <MenuItem onSelect={() => serialport.writeln('$$')} disabled={!canClick}>{i18n._('Grbl Settings ($$)')}</MenuItem>\n <MenuItem onSelect={() => serialport.writeln('$#')} disabled={!canClick}>{i18n._('View G-code Parameters ($#)')}</MenuItem>\n <MenuItem onSelect={() => serialport.writeln('$G')} disabled={!canClick}>{i18n._('View G-code Parser State ($G)')}</MenuItem>\n <MenuItem onSelect={() => serialport.writeln('$I')} disabled={!canClick}>{i18n._('View Build Info ($I)')}</MenuItem>\n <MenuItem onSelect={() => serialport.writeln('$N')} disabled={!canClick}>{i18n._('View Startup Blocks ($N)')}</MenuItem>\n <MenuItem divider />\n <MenuItem onSelect={() => serialport.writeln('$C')} disabled={!canClick}>{i18n._('Check G-code Mode ($C)')}</MenuItem>\n <MenuItem onSelect={() => serialport.writeln('$X')} disabled={!canClick}>{i18n._('Kill Alarm Lock ($X)')}</MenuItem>\n <MenuItem onSelect={() => serialport.writeln('$H')} disabled={!canClick}>{i18n._('Run Homing Cycle ($H)')}</MenuItem>\n </DropdownButton>\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Feed rate:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'feedrate')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Spindle speed:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'spindle')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Tool number:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'tool')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Motion mode:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.motion')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Coordinate system select:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.coordinate')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Plane select:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.plane')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Distance mode:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.distance')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Feed rate mode:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.feedrate')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Units mode:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.units')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Program mode:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.program')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Spindle state:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.spindle')}\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col col-xs-6\">\n {i18n._('Coolant state:')}\n </div>\n <div className=\"col col-xs-6\">\n {_.get(modes, 'modal.coolant')}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default Grbl;\n",
"var css = \"[data-component=\\\"Widgets/GrblWidget\\\"] .widget-content{position:relative;padding:10px}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widgets/grbl/index.css\"})); module.exports = css;",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport { Widget, WidgetHeader, WidgetContent } from '../../widget';\nimport Grbl from './Grbl';\nimport './index.css';\n\nclass GrblWidget extends React.Component {\n state = {\n isCollapsed: false\n };\n\n handleClick(target, val) {\n if (target === 'toggle') {\n this.setState({\n isCollapsed: !!val\n });\n }\n }\n render() {\n let width = 360;\n let title = i18n._('Grbl');\n let toolbarButtons = [\n 'toggle'\n ];\n let widgetContentClass = classNames(\n { 'hidden': this.state.isCollapsed }\n );\n\n return (\n <div {...this.props} data-component=\"Widgets/GrblWidget\">\n <Widget width={width}>\n <WidgetHeader\n title={title}\n toolbarButtons={toolbarButtons}\n handleClick={::this.handleClick}\n />\n <WidgetContent className={widgetContentClass}>\n <Grbl />\n </WidgetContent>\n </Widget>\n </div>\n );\n }\n}\n\nexport default GrblWidget;\n",
"import AxesWidget from './axes';\nimport ConnectionWidget from './connection';\nimport ConsoleWidget from './console';\nimport GCodeWidget from './gcode';\nimport GrblWidget from './grbl';\nimport ProbeWidget from './probe';\nimport SpindleWidget from './spindle';\nimport VisualizerWidget from './visualizer';\n\nexport {\n AxesWidget,\n ConnectionWidget,\n ConsoleWidget,\n GCodeWidget,\n GrblWidget,\n ProbeWidget,\n SpindleWidget,\n VisualizerWidget\n};\n",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport socket from '../../../lib/socket';\nimport serialport from '../../../lib/serialport';\nimport ToolbarButton from './ToolbarButton';\nimport store from '../../../store';\nimport {\n IMPERIAL_UNIT,\n METRIC_UNIT,\n ACTIVE_STATE_IDLE\n} from './constants';\n\nclass Probe extends React.Component {\n state = {\n port: '',\n unit: METRIC_UNIT,\n activeState: ACTIVE_STATE_IDLE,\n probeCommand: store.getState('widgets.probe.probeCommand', 'G38.2'),\n probeDepth: store.getState('widgets.probe.probeDepth.mm', 10),\n probeFeedrate: store.getState('widgets.probe.probeFeedrate.mm', 20),\n tlo: store.getState('widgets.probe.tlo.mm', 10),\n retractionDistance: store.getState('widgets.probe.retractionDistance.mm', 2)\n }\n socketEventListener = {\n 'grbl:current-status': ::this.socketOnGrblCurrentStatus,\n 'grbl:gcode-modes': ::this.socketOnGrblGCodeModes\n };\n\n componentDidMount() {\n this.subscribe();\n this.addSocketEventListener();\n }\n componentWillUnmount() {\n this.unsubscribe();\n this.removeSocketEventListener();\n }\n shouldComponentUpdate(nextProps, nextState) {\n return ! _.isEqual(nextState, this.state);\n }\n componentDidUpdate() {\n store.setState('widgets.probe.probeCommand', this.state.probeCommand);\n\n if (this.state.unit === METRIC_UNIT) {\n store.setState('widgets.probe.probeDepth.mm', this.state.probeDepth);\n store.setState('widgets.probe.probeFeedrate.mm', this.state.probeFeedrate);\n store.setState('widgets.probe.tlo.mm', this.state.tlo);\n store.setState('widgets.probe.retractionDistance.mm', this.state.retractionDistance);\n }\n if (this.state.unit === IMPERIAL_UNIT) {\n store.setState('widgets.probe.probeDepth.in', this.state.probeDepth);\n store.setState('widgets.probe.probeFeedrate.in', this.state.probeFeedrate);\n store.setState('widgets.probe.tlo.in', this.state.tlo);\n store.setState('widgets.probe.retractionDistance.in', this.state.retractionDistance);\n }\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // port\n let token = pubsub.subscribe('port', (msg, port) => {\n port = port || '';\n this.setState({ port: port });\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n addSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.on(eventName, callback);\n });\n }\n removeSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.off(eventName, callback);\n });\n }\n socketOnGrblCurrentStatus(data) {\n if (data.activeState === this.state.activeState) {\n return;\n }\n\n this.setState({\n activeState: data.activeState\n });\n }\n socketOnGrblGCodeModes(modes) {\n let unit = this.state.unit;\n\n // Imperial\n if (_.includes(modes, 'G20')) {\n unit = IMPERIAL_UNIT;\n }\n\n // Metric\n if (_.includes(modes, 'G21')) {\n unit = METRIC_UNIT;\n }\n\n if (unit === this.state.unit) {\n return;\n }\n\n let defaults = this.getUnitDefaults(unit);\n let state = _.extend({}, this.state, defaults, { unit: unit });\n\n this.setState(state);\n }\n getUnitDefaults(unit) {\n unit = unit || this.state.unit;\n\n if (unit === METRIC_UNIT) {\n return {\n probeDepth: store.getState('widgets.probe.probeDepth.mm', 10),\n probeFeedrate: store.getState('widgets.probe.probeFeedrate.mm', 20),\n tlo: store.getState('widgets.probe.tlo.mm', 10),\n retractionDistance: store.getState('widgets.probe.retractionDistance.mm', 2)\n };\n }\n if (unit === IMPERIAL_UNIT) {\n return {\n probeDepth: store.getState('widgets.probe.probeDepth.in', 0.5),\n probeFeedrate: store.getState('widgets.probe.probeFeedrate.in', 1),\n tlo: store.getState('widgets.probe.tlo.in', 0.5),\n retractionDistance: store.getState('widgets.probe.retractionDistance.in', 0.1)\n };\n }\n }\n changeProbeCommand(value) {\n this.setState({\n probeCommand: value\n });\n }\n handleProbeDepthChange(event) {\n let probeDepth = event.target.value;\n this.setState({ probeDepth: probeDepth });\n }\n handleProbeFeedrateChange(event) {\n let probeFeedrate = event.target.value;\n this.setState({ probeFeedrate: probeFeedrate });\n }\n handleTLOChange(event) {\n let tlo = event.target.value;\n this.setState({ tlo: tlo });\n }\n handleRetractionDistanceChange(event) {\n let retractionDistance = event.target.value;\n this.setState({ retractionDistance: retractionDistance });\n }\n sendGCode(gcode, params) {\n let s = _.map(params, (value, letter) => {\n return '' + letter + value;\n }).join(' ');\n let msg = (s.length > 0) ? (gcode + ' ' + s) : gcode;\n serialport.writeln(msg);\n }\n runZProbe() {\n let { probeCommand, probeDepth, probeFeedrate, tlo, retractionDistance } = this.state;\n\n if (_.includes(['G38.2', 'G38.3'], probeCommand)) {\n probeDepth = -probeDepth;\n }\n\n // Cancel Tool Length Offset (TLO)\n this.sendGCode('G49');\n\n // Set relative distance mode\n this.sendGCode('G91');\n\n // Start Z-probing\n this.sendGCode(probeCommand, {\n Z: probeDepth,\n F: probeFeedrate\n });\n\n // Set back to asolute distance mode\n this.sendGCode('G90');\n\n // Zero out work z axis\n this.sendGCode('G10', {\n L: 20,\n P: 1,\n Z: 0\n });\n\n // Set TLO to the height of touch plate\n this.sendGCode('G43.1', {\n Z: -tlo\n });\n\n // Set relative distance mode\n this.sendGCode('G91');\n\n // Retract slightly from the touch plate\n this.sendGCode('G0', {\n Z: retractionDistance\n });\n\n // Set back to asolute distance mode\n this.sendGCode('G90');\n }\n restoreDefaults() {\n let defaults = this.getUnitDefaults();\n this.setState(defaults);\n }\n render() {\n let { port, unit, activeState } = this.state;\n let { probeCommand, probeDepth, probeFeedrate, tlo, retractionDistance } = this.state;\n let displayUnit = (unit === METRIC_UNIT) ? i18n._('mm') : i18n._('in');\n let feedrateUnit = (unit === METRIC_UNIT) ? i18n._('mm/min') : i18n._('in/mm');\n let step = (unit === METRIC_UNIT) ? 1 : 0.1;\n let canClick = (!!port && (activeState === ACTIVE_STATE_IDLE));\n let probeCommandOptions = _.map(['G38.2', 'G38.3', 'G38.4', 'G38.5'], (cmd) => {\n return {\n value: cmd,\n label: cmd\n };\n });\n let classes = {\n 'G38.2': classNames(\n 'btn',\n { 'btn-inverse': probeCommand === 'G38.2' },\n { 'btn-default': probeCommand !== 'G38.2' }\n ),\n 'G38.3': classNames(\n 'btn',\n { 'btn-inverse': probeCommand === 'G38.3' },\n { 'btn-default': probeCommand !== 'G38.3' }\n ),\n 'G38.4': classNames(\n 'btn',\n { 'btn-inverse': probeCommand === 'G38.4' },\n { 'btn-default': probeCommand !== 'G38.4' }\n ),\n 'G38.5': classNames(\n 'btn',\n { 'btn-inverse': probeCommand === 'G38.5' },\n { 'btn-default': probeCommand !== 'G38.5' }\n )\n };\n\n return (\n <div>\n <ToolbarButton\n port={port}\n activeState={activeState}\n />\n <div className=\"form-group\">\n <label className=\"control-label\">{i18n._('Probe Command:')}</label>\n <div className=\"btn-toolbar\" role=\"toolbar\">\n <div className=\"btn-group btn-group-xs\">\n <button\n type=\"button\"\n className={classes['G38.2']}\n title={i18n._('G38.2 probe toward workpiece, stop on contact, signal error if failure')}\n onClick={() => this.changeProbeCommand('G38.2')}\n >\n G38.2\n </button>\n <button\n type=\"button\"\n className={classes['G38.3']}\n title={i18n._('G38.3 probe toward workpiece, stop on contact')}\n onClick={() => this.changeProbeCommand('G38.3')}\n >\n G38.3\n </button>\n <button\n type=\"button\"\n className={classes['G38.4']}\n title={i18n._('G38.4 probe away from workpiece, stop on loss of contact, signal error if failure')}\n onClick={() => this.changeProbeCommand('G38.4')}\n >\n G38.4\n </button>\n <button\n type=\"button\"\n className={classes['G38.5']}\n title={i18n._('G38.5 probe away from workpiece, stop on loss of contact')}\n onClick={() => this.changeProbeCommand('G38.5')}\n >\n G38.5\n </button>\n </div>\n </div>\n <p className=\"probe-command-description\">\n {probeCommand === 'G38.2' &&\n <i>{i18n._('G38.2 probe toward workpiece, stop on contact, signal error if failure')}</i>\n }\n {probeCommand === 'G38.3' &&\n <i>{i18n._('G38.3 probe toward workpiece, stop on contact')}</i>\n }\n {probeCommand === 'G38.4' &&\n <i>{i18n._('G38.4 probe away from workpiece, stop on loss of contact, signal error if failure')}</i>\n }\n {probeCommand === 'G38.5' &&\n <i>{i18n._('G38.5 probe away from workpiece, stop on loss of contact')}</i>\n }\n </p>\n </div>\n <div className=\"container-fluid\">\n <div className=\"row no-gutter probe-options\">\n <div className=\"col-sm-6\">\n <div className=\"form-group\">\n <label className=\"control-label\">{i18n._('Probe Depth:')}</label>\n <div className=\"input-group input-group-xs\">\n <input\n type=\"number\"\n className=\"form-control\"\n value={probeDepth}\n placeholder=\"0.00\"\n min={0}\n step={step}\n onKeyDown={(e) => e.stopPropagation()}\n onChange={::this.handleProbeDepthChange}\n />\n <div className=\"input-group-addon\">{displayUnit}</div>\n </div>\n </div>\n </div>\n <div className=\"col-sm-6\">\n <div className=\"form-group\">\n <label className=\"control-label\">{i18n._('Probe Feedrate:')}</label>\n <div className=\"input-group input-group-xs\">\n <input\n type=\"number\"\n className=\"form-control\"\n value={probeFeedrate}\n placeholder=\"0.00\"\n min={0}\n step={step}\n onChange={::this.handleProbeFeedrateChange}\n />\n <span className=\"input-group-addon\">{feedrateUnit}</span>\n </div>\n </div>\n </div>\n <div className=\"col-sm-6\">\n <div className=\"form-group\">\n <label className=\"control-label\">{i18n._('Touch Plate Thickness:')}</label>\n <div className=\"input-group input-group-xs\">\n <input\n type=\"number\"\n className=\"form-control\"\n value={tlo}\n placeholder=\"0.00\"\n min={0}\n step={step}\n onChange={::this.handleTLOChange}\n />\n <span className=\"input-group-addon\">{displayUnit}</span>\n </div>\n </div>\n </div>\n <div className=\"col-sm-6\">\n <div className=\"form-group\">\n <label className=\"control-label\">{i18n._('Retraction Distance:')}</label>\n <div className=\"input-group input-group-xs\">\n <input\n type=\"number\"\n className=\"form-control\"\n value={retractionDistance}\n placeholder=\"0.00\"\n min={0}\n step={step}\n onChange={::this.handleRetractionDistanceChange}\n />\n <span className=\"input-group-addon\">{displayUnit}</span>\n </div>\n </div>\n </div>\n </div>\n <div className=\"row no-gutter\">\n <div className=\"col-sm-12\">\n <div className=\"btn-toolbar\">\n <div className=\"btn-group\" role=\"group\">\n <button\n type=\"button\"\n className=\"btn btn-sm btn-default\"\n onClick={::this.runZProbe}\n disabled={!canClick}\n >\n {i18n._('Run Z-probe')}\n </button>\n </div>\n <div className=\"btn-group\" role=\"group\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default Probe;\n",
"import _ from 'lodash';\nimport React from 'react';\nimport { DropdownButton, MenuItem } from 'react-bootstrap';\nimport i18n from '../../../lib/i18n';\nimport serialport from '../../../lib/serialport';\nimport {\n ACTIVE_STATE_IDLE\n} from './constants';\n\nclass ToolbarButton extends React.Component {\n static propTypes = {\n port: React.PropTypes.string,\n activeState: React.PropTypes.string\n };\n\n handleSelect(target, eventKey) {\n let data = eventKey;\n if (data) {\n serialport.writeln(data);\n }\n }\n render() {\n let { port, activeState } = this.props;\n let canClick = (!!port && (activeState === ACTIVE_STATE_IDLE));\n\n return (\n <div>\n <div className=\"toolbar-button btn-group\">\n <DropdownButton\n bsSize=\"xs\"\n bsStyle=\"default\"\n title={i18n._('More')}\n id=\"probe-dropdown\"\n pullRight\n disabled={!canClick}\n >\n <MenuItem eventKey='G49' onSelect={::this.handleSelect} disabled={!canClick}>{i18n._('Cancel Tool Length Offse (G49)')}</MenuItem>\n </DropdownButton>\n </div>\n </div>\n );\n }\n}\n\nexport default ToolbarButton;\n",
"export const IMPERIAL_UNIT = 'in';\nexport const METRIC_UNIT = 'mm';\n\n// Grbl Active State\nexport const ACTIVE_STATE_IDLE = 'Idle';\nexport const ACTIVE_STATE_RUN = 'Run';\nexport const ACTIVE_STATE_HOLD = 'Hold';\nexport const ACTIVE_STATE_DOOR = 'Door';\nexport const ACTIVE_STATE_HOME = 'Home';\nexport const ACTIVE_STATE_ALARM = 'Alarm';\nexport const ACTIVE_STATE_CHECK = 'Check';\n",
"var css = \"[data-component=\\\"Widgets/ProbeWidget\\\"] .widget-content{position:relative;padding:10px}[data-component=\\\"Widgets/ProbeWidget\\\"] .widget-content .toolbar-button{position:absolute;top:5px;right:10px}[data-component=\\\"Widgets/ProbeWidget\\\"] .widget-content .btn-toolbar{margin-bottom:5px}[data-component=\\\"Widgets/ProbeWidget\\\"] .widget-content .probe-command-description{height:30px}[data-component=\\\"Widgets/ProbeWidget\\\"] .widget-content .row.probe-options [class*=col-]:nth-child(odd){padding-right:10px}[data-component=\\\"Widgets/ProbeWidget\\\"] .widget-content .row.probe-options [class*=col-]:nth-child(even){padding-left:10px}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widgets/probe/index.css\"})); module.exports = css;",
"import classNames from 'classnames';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport { Widget, WidgetHeader, WidgetContent } from '../../widget';\nimport Probe from './Probe';\nimport './index.css';\n\nclass ProbeWidget extends React.Component {\n state = {\n isCollapsed: false\n };\n\n handleClick(target, val) {\n if (target === 'toggle') {\n this.setState({\n isCollapsed: !!val\n });\n }\n }\n render() {\n let width = 360;\n let title = i18n._('Probe');\n let toolbarButtons = [\n 'toggle'\n ];\n let widgetContentClass = classNames(\n { 'hidden': this.state.isCollapsed }\n );\n\n return (\n <div {...this.props} data-component=\"Widgets/ProbeWidget\">\n <Widget width={width}>\n <WidgetHeader\n title={title}\n toolbarButtons={toolbarButtons}\n handleClick={::this.handleClick}\n />\n <WidgetContent className={widgetContentClass}>\n <Probe />\n </WidgetContent>\n </Widget>\n </div>\n );\n }\n}\n\nexport default ProbeWidget;\n",
"import _ from 'lodash';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport serialport from '../../../lib/serialport';\n\nclass Spindle extends React.Component {\n state = {\n port: '',\n isCCWChecked: false,\n spindleSpeed: 0\n }\n\n componentDidMount() {\n this.subscribe();\n }\n componentWillUnmount() {\n this.unsubscribe();\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // port\n let token = pubsub.subscribe('port', (msg, port) => {\n port = port || '';\n this.setState({ port: port });\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n handleCCWChange() {\n this.setState({\n isCCWChecked: !(this.state.isCCWChecked)\n });\n }\n render() {\n let canClick = !!this.state.port;\n let cmd = this.state.isCCWChecked ? 'M4' : 'M3';\n let spindleSpeed = this.state.spindleSpeed;\n\n return (\n <div>\n <div className=\"btn-toolbar\" role=\"toolbar\">\n <div className=\"btn-group btn-group-sm\" role=\"group\">\n <button\n type=\"button\"\n className=\"btn btn-default\"\n onClick={() => {\n if (spindleSpeed > 0) {\n serialport.writeln(cmd + ' S' + spindleSpeed);\n } else {\n serialport.writeln(cmd);\n }\n }}\n title={i18n._('Start the spindle turning CW/CCW (M3/M4)')}\n disabled={!canClick}\n >\n <i className=\"glyphicon glyphicon-play\"></i>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-default\"\n onClick={() => serialport.writeln('M5')}\n title={i18n._('Stop the spindle from turning (M5)')}\n disabled={!canClick}\n >\n <i className=\"glyphicon glyphicon-stop\"></i>\n </button>\n </div>\n </div>\n <div className=\"checkbox\" >\n <label>\n <input type=\"checkbox\" checked={this.state.isCCWChecked} onChange={::this.handleCCWChange} disabled={!canClick} />\n {i18n._('Turn counterclockwise')}\n </label>\n </div>\n </div>\n );\n }\n}\n\nexport default Spindle;\n",
"var css = \"[data-component=\\\"Widgets/SpindleWidget\\\"] .widget-content{position:relative;padding:10px}[data-component=\\\"Widgets/SpindleWidget\\\"] .widget-content .horizontal-mirror{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widgets/spindle/index.css\"})); module.exports = css;",
"import classNames from 'classnames';\nimport React from 'react';\nimport i18n from '../../../lib/i18n';\nimport { Widget, WidgetHeader, WidgetContent } from '../../widget';\nimport Spindle from './Spindle';\nimport './index.css';\n\nclass SpindleWidget extends React.Component {\n state = {\n isCollapsed: false\n };\n\n handleClick(target, val) {\n if (target === 'toggle') {\n this.setState({\n isCollapsed: !!val\n });\n }\n }\n render() {\n let width = 360;\n let title = i18n._('Spindle');\n let toolbarButtons = [\n 'toggle'\n ];\n let widgetContentClass = classNames(\n { 'hidden': this.state.isCollapsed }\n );\n\n return (\n <div {...this.props} data-component=\"Widgets/SpindleWidget\">\n <Widget width={width}>\n <WidgetHeader\n title={title}\n toolbarButtons={toolbarButtons}\n handleClick={::this.handleClick}\n />\n <WidgetContent className={widgetContentClass}>\n <Spindle />\n </WidgetContent>\n </Widget>\n </div>\n );\n }\n}\n\nexport default SpindleWidget;\n",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport i18n from '../../../lib/i18n';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport request from 'superagent';\nimport log from '../../../lib/log';\n\nclass FileUploader extends React.Component {\n static propTypes = {\n port: React.PropTypes.string\n };\n state = {\n isUploading: false\n };\n\n componentDidMount() {\n }\n componentWillUnmount() {\n }\n startWaiting() {\n // Adds the 'wait' class to <html>\n let root = document.documentElement;\n root.classList.add('wait');\n }\n stopWaiting() {\n // Adds the 'wait' class to <html>\n let root = document.documentElement;\n root.classList.remove('wait');\n }\n onChangeFile(event) {\n let files = event.target.files;\n let { port } = this.props;\n\n if (!port) {\n return;\n }\n\n let file = files[0];\n let reader = new FileReader();\n\n reader.onloadend = (event) => {\n let contents = event.target.result,\n error = event.target.error;\n\n if (error) {\n log.error(error);\n return;\n }\n\n log.debug('FileReader:', _.pick(file, [\n 'lastModified',\n 'lastModifiedDate',\n 'meta',\n 'name',\n 'size',\n 'type'\n ]));\n\n this.startWaiting();\n this.setState({ isUploading: true });\n\n request\n .post('/api/file/upload')\n .send({\n meta: {\n name: file.name,\n size: file.size,\n port: port\n },\n contents: contents\n })\n .end((err, res) => {\n this.stopWaiting();\n\n if (err || !res.ok) {\n this.setState({ isUploading: false });\n log.error('Failed to upload file', err, res);\n return;\n }\n\n pubsub.publish('gcode:load', contents);\n });\n\n };\n\n reader.readAsText(file);\n }\n onClickToUpload() {\n this.fileInputEl.value = null;\n this.fileInputEl.click();\n }\n render() {\n let { port } = this.props;\n let { isUploading } = this.state;\n let notUploading = !isUploading;\n let canClick = !!port && notUploading;\n const inputAttributes = {\n type: 'file',\n style: { display: 'none' },\n multiple: false,\n // The ref attribute adds a reference to the component to\n // this.refs when the component is mounted.\n ref: el => this.fileInputEl = el, \n onChange: ::this.onChangeFile\n };\n\n return (\n <div className=\"file-uploader-block\">\n <div className=\"file-uploader-box\">\n <div className=\"file-uploader-content\" disabled={!canClick}>\n <i style={{ fontSize: 48 }} className=\"glyphicon glyphicon-upload\"></i>\n <h4>{i18n._('Drop G-code file here or click below to upload.')}</h4>\n <br />\n <button\n type=\"button\"\n className=\"btn btn-primary\"\n onClick={::this.onClickToUpload}\n disabled={!canClick}\n >\n {i18n._('Upload G-code')}\n </button>\n <input {...inputAttributes} />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default FileUploader;\n",
"import i18n from '../../../lib/i18n';\nimport React from 'react';\nimport PressAndHold from '../../common/PressAndHold';\n\nclass Joystick extends React.Component {\n static propTypes = {\n ready: React.PropTypes.bool,\n up: React.PropTypes.func,\n down: React.PropTypes.func,\n left: React.PropTypes.func,\n right: React.PropTypes.func,\n center: React.PropTypes.func\n };\n\n render() {\n let { ready, up, down, left, right, center } = this.props;\n let canClick = ready;\n\n return (\n <div className=\"joystick\">\n <table>\n <tbody>\n <tr>\n <td></td>\n <td className=\"noselect\">\n <PressAndHold\n className=\"joystick-button\"\n onClick={up}\n title={i18n._('Move Up')}\n disabled={!canClick}\n >\n <i className=\"glyphicon glyphicon-chevron-up\"></i>\n </PressAndHold>\n </td>\n <td></td>\n </tr>\n <tr>\n <td className=\"noselect\">\n <PressAndHold\n className=\"joystick-button\"\n onClick={left}\n title={i18n._('Move Left')}\n disabled={!canClick}\n >\n <i className=\"glyphicon glyphicon-chevron-left\"></i>\n </PressAndHold>\n </td>\n <td className=\"noselect\">\n <PressAndHold\n className=\"joystick-button\"\n onClick={center}\n title={i18n._('Reset Position')}\n disabled={!canClick}\n >\n <i className=\"glyphicon glyphicon-unchecked\"></i>\n </PressAndHold>\n </td>\n <td className=\"noselect\">\n <PressAndHold\n className=\"joystick-button\"\n onClick={right}\n title={i18n._('Move Right')}\n disabled={!canClick}\n >\n <i className=\"glyphicon glyphicon-chevron-right\"></i>\n </PressAndHold>\n </td>\n </tr>\n <tr>\n <td></td>\n <td className=\"noselect\">\n <PressAndHold\n className=\"joystick-button\"\n onClick={down}\n title={i18n._('Move Down')}\n disabled={!canClick}\n >\n <i className=\"glyphicon glyphicon-chevron-down\"></i>\n </PressAndHold>\n </td>\n <td></td>\n </tr>\n </tbody>\n </table>\n </div>\n );\n }\n}\n\nexport default Joystick;\n",
"import _ from 'lodash';\nimport i18n from '../../../lib/i18n';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport socket from '../../../lib/socket';\nimport serialport from '../../../lib/serialport';\nimport {\n WORKFLOW_STATE_RUNNING,\n WORKFLOW_STATE_PAUSED,\n WORKFLOW_STATE_IDLE,\n ACTIVE_STATE_IDLE\n} from './constants';\n\nclass Toolbar extends React.Component {\n static propTypes = {\n port: React.PropTypes.string,\n ready: React.PropTypes.bool,\n activeState: React.PropTypes.string\n };\n state = {\n workflowState: WORKFLOW_STATE_IDLE,\n queueFinished: false\n };\n socketEventListener = {\n 'gcode:queue-status': ::this.socketOnGCodeQueueStatus\n };\n\n componentDidMount() {\n this.addSocketEventListener();\n }\n componentWillUnmount() {\n this.removeSocketEventListener();\n }\n componentDidUpdate() {\n this.props.setWorkflowState(this.state.workflowState);\n }\n componentWillReceiveProps(nextProps) {\n let { port, activeState } = nextProps;\n\n if (!port) {\n this.setState({ workflowState: WORKFLOW_STATE_IDLE });\n return;\n }\n\n if ((this.state.queueFinished) && (activeState === ACTIVE_STATE_IDLE)) {\n socket.emit('gcode:stop', port);\n pubsub.publish('gcode:stop');\n this.setState({\n workflowState: WORKFLOW_STATE_IDLE,\n queueFinished: false\n });\n }\n }\n addSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.on(eventName, callback);\n });\n }\n removeSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.off(eventName, callback);\n });\n }\n socketOnGCodeQueueStatus(data) {\n if (data.executed >= data.total) {\n this.setState({ queueFinished: true });\n }\n }\n handleRun() {\n let { workflowState } = this.state;\n console.assert(_.includes([WORKFLOW_STATE_IDLE, WORKFLOW_STATE_PAUSED], workflowState));\n\n if (workflowState === WORKFLOW_STATE_PAUSED) {\n serialport.write('~'); // Grbl: Cycle Start\n }\n\n socket.emit('gcode:run', this.props.port);\n pubsub.publish('gcode:run');\n\n this.setState({\n workflowState: WORKFLOW_STATE_RUNNING\n });\n }\n handlePause() {\n let { workflowState } = this.state;\n console.assert(_.includes([WORKFLOW_STATE_RUNNING], workflowState));\n\n serialport.write('!'); // Grbl: Feed Hold\n socket.emit('gcode:pause', this.props.port);\n pubsub.publish('gcode:pause');\n\n this.setState({\n workflowState: WORKFLOW_STATE_PAUSED\n });\n }\n handleStop() {\n let { workflowState } = this.state;\n console.assert(_.includes([WORKFLOW_STATE_PAUSED], workflowState));\n\n serialport.write('\\x18'); // Grbl: Reset (ctrl-x)\n socket.emit('gcode:stop', this.props.port);\n pubsub.publish('gcode:stop');\n\n this.setState({\n workflowState: WORKFLOW_STATE_IDLE\n });\n }\n handleClose() {\n let { workflowState } = this.state;\n console.assert(_.includes([WORKFLOW_STATE_IDLE], workflowState));\n\n socket.emit('gcode:unload', this.props.port);\n pubsub.publish('gcode:unload'); // Unload the G-code\n\n this.setState({\n workflowState: WORKFLOW_STATE_IDLE\n });\n }\n render() {\n let { port, ready } = this.props;\n let { workflowState } = this.state;\n let canClick = !!port && ready;\n let canRun = canClick && _.includes([WORKFLOW_STATE_IDLE, WORKFLOW_STATE_PAUSED], workflowState);\n let canPause = canClick && _.includes([WORKFLOW_STATE_RUNNING], workflowState);\n let canStop = canClick && _.includes([WORKFLOW_STATE_PAUSED], workflowState);\n let canClose = canClick && _.includes([WORKFLOW_STATE_IDLE], workflowState);\n\n return (\n <div className=\"btn-toolbar\" role=\"toolbar\">\n <div className=\"btn-group btn-group-sm\" role=\"group\">\n <button type=\"button\" className=\"btn btn-default\" title={i18n._('Run')} onClick={::this.handleRun} disabled={!canRun}>\n <i className=\"glyphicon glyphicon-play\"></i>\n </button>\n <button type=\"button\" className=\"btn btn-default\" title={i18n._('Pause')} onClick={::this.handlePause} disabled={!canPause}>\n <i className=\"glyphicon glyphicon-pause\"></i>\n </button>\n <button type=\"button\" className=\"btn btn-default\" title={i18n._('Stop')} onClick={::this.handleStop} disabled={!canStop}>\n <i className=\"glyphicon glyphicon-stop\"></i>\n </button>\n <button type=\"button\" className=\"btn btn-default\" title={i18n._('Close')} onClick={::this.handleClose} disabled={!canClose}>\n <i className=\"glyphicon glyphicon-trash\"></i>\n </button>\n </div>\n </div>\n );\n }\n}\n\nexport default Toolbar;\n",
"import _ from 'lodash';\nimport colornames from 'colornames';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport THREE from 'three';\nimport OrbitControls from '../../../lib/three/OrbitControls';\nimport GCodePath from '../../../lib/GCodePath';\nimport log from '../../../lib/log';\nimport socket from '../../../lib/socket';\nimport Joystick from './Joystick';\nimport Toolbar from './Toolbar';\nimport FileUploader from './FileUploader';\nimport {\n fitCameraToObject, getBoundingBox, loadTexture,\n CoordinateAxes, EngravingCutter, GridLine, PivotPoint3\n} from './helpers';\nimport {\n COORDINATE_PLANE_XY,\n COORDINATE_PLANE_XZ,\n COORDINATE_PLANE_YZ,\n AXIS_LINE_LENGTH,\n GRID_LINE_LENGTH,\n GRID_SPACING,\n ACTIVE_STATE_IDLE,\n ACTIVE_STATE_RUN,\n WORKFLOW_STATE_RUNNING,\n WORKFLOW_STATE_PAUSED,\n WORKFLOW_STATE_IDLE,\n CAMERA_FOV,\n CAMERA_NEAR,\n CAMERA_FAR,\n CAMERA_POSITION_X,\n CAMERA_POSITION_Y,\n CAMERA_POSITION_Z\n} from './constants';\nimport { MODAL_GROUPS } from '../../../constants/modal-groups';\n\nclass Visualizer extends React.Component {\n state = {\n port: '',\n ready: false,\n activeState: ACTIVE_STATE_IDLE,\n workflowState: WORKFLOW_STATE_IDLE,\n boundingBox: {\n min: {\n x: 0,\n y: 0,\n z: 0\n },\n max: {\n x: 0,\n y: 0,\n z: 0\n }\n }\n };\n socketEventListener = {\n 'grbl:gcode-modes': ::this.socketOnGrblGCodeModes,\n 'grbl:current-status': ::this.socketOnGrblCurrentStatus,\n 'gcode:queue-status': ::this.socketOnGCodeQueueStatus\n };\n\n componentWillMount() {\n // Grbl\n this.modalState = {};\n this.gcodePath = null;\n // Three.js\n this.renderer = null;\n this.scene = null;\n this.camera = null;\n this.controls = null;\n this.group = new THREE.Group();\n }\n componentDidMount() {\n this.subscribe();\n this.addSocketEventListener();\n this.addResizeEventListener();\n\n let el = ReactDOM.findDOMNode(this.refs.visualizer);\n this.createScene(el);\n this.resizeRenderer();\n\n this.pivotPoint = new PivotPoint3({\n x: 0,\n y: 0,\n z: 0\n }, (x, y, z) => { // The relative xyz position\n _.each(this.group.children, (o) => {\n o.translateX(x);\n o.translateY(y);\n o.translateZ(z);\n });\n\n // Update the scene\n this.updateScene();\n });\n }\n componentWillUnmount() {\n this.removeResizeEventListener();\n this.removeSocketEventListener();\n this.unsubscribe();\n this.clearScene();\n }\n shouldComponentUpdate(nextProps, nextState) {\n let shouldUpdate =\n (nextState.port !== this.state.port) ||\n (nextState.ready !== this.state.ready) ||\n (nextState.activeState !== this.state.activeState) ||\n (nextState.workflowState !== this.state.workflowState) ||\n !(_.isEqual(nextState.boundingBox, this.state.boundingBox));\n\n return shouldUpdate;\n }\n componentDidUpdate(prevProps, prevState) {\n // The renderAnimationLoop will check the state of activeState and workflowState\n requestAnimationFrame(::this.renderAnimationLoop);\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // port\n let token = pubsub.subscribe('port', (msg, port) => {\n port = port || '';\n\n if (!port) {\n pubsub.publish('gcode:unload');\n this.setState({ port: '' });\n } else {\n this.setState({ port: port });\n }\n\n });\n this.pubsubTokens.push(token);\n }\n\n { // gcode:load\n let token = pubsub.subscribe('gcode:load', (msg, gcode) => {\n gcode = gcode || '';\n\n this.setState({ ready: true });\n\n // It may take some time to render the G-code\n setTimeout(() => {\n this.startWaiting();\n\n this.loadGCode(gcode, (options) => {\n pubsub.publish('gcode:boundingBox', options.boundingBox);\n\n this.setState({\n boundingBox: options.boundingBox\n });\n\n this.stopWaiting();\n });\n }, 0);\n });\n this.pubsubTokens.push(token);\n }\n\n { // gcode:unload\n let token = pubsub.subscribe('gcode:unload', (msg) => {\n this.unloadGCode();\n this.setState({ ready: false });\n });\n this.pubsubTokens.push(token);\n }\n\n { // resize\n let token = pubsub.subscribe('resize', (msg) => {\n this.resizeRenderer();\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n addSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.on(eventName, callback);\n });\n }\n removeSocketEventListener() {\n _.each(this.socketEventListener, (callback, eventName) => {\n socket.off(eventName, callback);\n });\n }\n socketOnGrblGCodeModes(modes) {\n let modalState = {};\n\n _.each(modes, (mode) => {\n // Gx, Mx\n if (mode.indexOf('G') === 0 || mode.indexOf('M') === 0) {\n let r = _.find(MODAL_GROUPS, (group) => {\n return _.includes(group.modes, mode);\n });\n if (r) {\n _.set(modalState, r.group, mode);\n }\n }\n });\n\n this.modalState = modalState;\n }\n socketOnGrblCurrentStatus(data) {\n let { activeState, workingPos } = data;\n\n if (this.state.activeState !== activeState) {\n this.setState({ activeState: activeState });\n }\n this.setEngravingCutterPosition(workingPos.x, workingPos.y, workingPos.z);\n\n // Update the scene\n this.updateScene();\n }\n socketOnGCodeQueueStatus(data) {\n if (!(this.gcodePath)) {\n return;\n }\n\n log.trace('socketOnGCodeQueueStatus:', data);\n\n let frameIndex = data.executed;\n this.gcodePath.setFrameIndex(frameIndex);\n }\n startWaiting() {\n // Adds the 'wait' class to <html>\n let root = document.documentElement;\n root.classList.add('wait');\n }\n stopWaiting() {\n // Adds the 'wait' class to <html>\n let root = document.documentElement;\n root.classList.remove('wait');\n }\n addResizeEventListener() {\n // handle resize event\n if (!(this.onResize)) {\n this.onResize = () => {\n this.resizeRenderer();\n };\n }\n this.onResize();\n this.onResizeThrottled = _.throttle(this.onResize, 10);\n window.addEventListener('resize', this.onResizeThrottled);\n }\n removeResizeEventListener() {\n // handle resize event\n window.removeEventListener('resize', this.onResizeThrottled);\n }\n resizeRenderer() {\n if (!(this.camera && this.renderer)) {\n return;\n }\n\n let el = ReactDOM.findDOMNode(this.refs.visualizer);\n let width = el.offsetWidth;\n let height = window.innerHeight - 50 - 1; // take off the navbar (50px) and an extra 1px space to disable scrollbar\n\n // Update the camera aspect ratio (width / height), and set a new size to the renderer.\n // Also see \"Window on resize, and aspect ratio #69\" at https://github.com/mrdoob/three.js/issues/69\n this.camera.aspect = width / height;\n this.camera.updateProjectionMatrix();\n\n this.renderer.setSize(width, height);\n\n // Update the scene\n this.updateScene();\n }\n //\n // Creating a scene\n // http://threejs.org/docs/#Manual/Introduction/Creating_a_scene\n //\n createScene(el) {\n let width = el.clientWidth;\n let height = el.clientHeight;\n\n // To actually be able to display anything with Three.js, we need three things:\n // A scene, a camera, and a renderer so we can render the scene with the camera.\n this.scene = new THREE.Scene();\n\n // Creating a renderer\n this.renderer = this.createRenderer(width, height);\n el.appendChild(this.renderer.domElement);\n\n // Creating a perspective camera\n this.camera = this.createPerspectiveCamera(width, height);\n\n { // Creating a directional light\n let directionalLight = this.createDirectionalLight();\n directionalLight.name = 'DirectionalLight';\n this.group.add(directionalLight);\n }\n\n { // Creating the coordinate grid\n let colorCenterLine = null; // Set to null to keep it transparent\n let colorGrid = colornames('gray 89');\n let gridLine = new GridLine(GRID_LINE_LENGTH, GRID_SPACING, colorCenterLine, colorGrid);\n gridLine.name = 'GridLine';\n this.group.add(gridLine);\n }\n\n { // Creating the coordinate axes\n let coordinateAxes = new CoordinateAxes(AXIS_LINE_LENGTH);\n coordinateAxes.name = 'CoordinateAxes';\n this.group.add(coordinateAxes);\n }\n\n { // Creating an engraving cutter\n let color = colornames('silver');\n let url = 'textures/brushed-steel-texture.jpg';\n loadTexture(url, (err, texture) => {\n let engravingCutter = new EngravingCutter(color, texture);\n engravingCutter.name = 'EngravingCutter';\n this.group.add(engravingCutter);\n\n // Update the scene\n this.updateScene();\n });\n }\n\n this.scene.add(this.group);\n\n this.controls = this.createOrbitControls(this.camera, this.renderer.domElement);\n this.controls.addEventListener('change', () => {\n // Update the scene\n this.updateScene();\n });\n\n return this.scene;\n }\n updateScene() {\n this.renderer.render(this.scene, this.camera);\n }\n clearScene() {\n // to iterrate over all children (except the first) in a scene \n let objsToRemove = _.rest(this.scene.children);\n _.each(objsToRemove, (obj) => {\n this.scene.remove(obj);\n });\n\n // Update the scene\n this.updateScene();\n }\n renderAnimationLoop() {\n let isAgitated = (this.state.activeState === ACTIVE_STATE_RUN) &&\n (this.state.workflowState === WORKFLOW_STATE_RUNNING);\n\n if (isAgitated) {\n // Call the render() function up to 60 times per second (i.e. 60fps)\n requestAnimationFrame(::this.renderAnimationLoop);\n\n // Set to 360 rounds per minute (rpm)\n this.rotateEngravingCutter(360);\n } else {\n\n // Stop rotation\n this.rotateEngravingCutter(0);\n }\n\n this.updateScene();\n }\n createRenderer(width, height) {\n let renderer = new THREE.WebGLRenderer({\n autoClearColor: true\n });\n renderer.setClearColor(new THREE.Color(colornames('gray 94'), 1.0));\n renderer.setSize(width, height);\n renderer.clear();\n\n return renderer;\n }\n createPerspectiveCamera(width, height) {\n let fov = CAMERA_FOV;\n let aspect = Number(width) / Number(height);\n let near = CAMERA_NEAR;\n let far = CAMERA_FAR;\n let camera = new THREE.PerspectiveCamera(fov, aspect, near, far);\n\n camera.position.x = CAMERA_POSITION_X;\n camera.position.y = CAMERA_POSITION_Y;\n camera.position.z = CAMERA_POSITION_Z;\n\n return camera;\n }\n // OrbitControls, on the other hand, can be used in static scenes in which the scene is rendered only when the mouse is moved, like so:\n // controls.addEventListener('change', render);\n createOrbitControls(object, domElement) {\n let controls = new THREE.OrbitControls(object, domElement);\n\n _.extend(controls, {\n enableKeys: false, // Disable use of the keys\n rotateSpeed: 0.3,\n zoomSpeed: 0.5,\n panSpeed: 1.0,\n // Set to true to enable damping (inertia)\n // If damping is enabled, you must call controls.update() in your animation loop\n enableDamping: true,\n dampingFactor: 0.25\n });\n\n return controls;\n }\n createDirectionalLight() {\n let directionalLight = new THREE.DirectionalLight(colornames('whitesmoke'), 0.5);\n\n directionalLight.position.set(-40, 60, -10);\n directionalLight.castShadow = true;\n directionalLight.shadowCameraNear = 2;\n directionalLight.shadowCameraFar = 200;\n directionalLight.shadowCameraLeft = -50;\n directionalLight.shadowCameraRight = 50;\n directionalLight.shadowCameraTop = 50;\n directionalLight.shadowCameraBottom = -50;\n directionalLight.distance = 0;\n directionalLight.intensity = 0.5;\n directionalLight.shadowMapHeight = 1024;\n directionalLight.shadowMapWidth = 1024;\n \n return directionalLight;\n }\n // Sets the position of the engraving cutter\n // @param {number} x The position along the x axis\n // @param {number} y The position along the y axis\n // @param {number} z The position along the z axis\n setEngravingCutterPosition(x, y, z) {\n let engravingCutter = this.group.getObjectByName('EngravingCutter');\n if (!engravingCutter) {\n return;\n }\n\n let pivotPoint = this.pivotPoint.get();\n x = (Number(x) || 0) - pivotPoint.x;\n y = (Number(y) || 0) - pivotPoint.y;\n z = (Number(z) || 0) - pivotPoint.z;\n\n engravingCutter.position.set(x, y, z);\n }\n // Rotates the engraving cutter around the z axis with a given rpm and an optional fps\n // @param {number} rpm The rounds per minutes\n // @param {number} [fps] The frame rate (Defaults to 60 frames per second)\n rotateEngravingCutter(rpm = 0, fps = 60) {\n let engravingCutter = this.group.getObjectByName('EngravingCutter');\n if (!engravingCutter) {\n return;\n }\n\n let delta = 1 / fps;\n let degrees = 360 * (delta * Math.PI / 180); // Rotates 360 degrees per second\n engravingCutter.rotateZ(-(rpm / 60 * degrees)); // rotate in clockwise direction\n }\n loadGCode(gcode, callback) {\n // Remove previous G-code object\n this.unloadGCode();\n\n let el = ReactDOM.findDOMNode(this.refs.visualizer);\n\n this.gcodePath = new GCodePath({ modalState: this.modalState });\n this.gcodePath.render({\n gcode: gcode,\n width: el.clientWidth,\n height: el.clientHeight\n }, (pathObject) => {\n pathObject.name = 'GCodePath';\n this.group.add(pathObject);\n\n let bbox = getBoundingBox(pathObject);\n let dX = bbox.max.x - bbox.min.x;\n let dY = bbox.max.y - bbox.min.y;\n let dZ = bbox.max.z - bbox.min.z;\n let center = new THREE.Vector3(\n bbox.min.x + (dX / 2),\n bbox.min.y + (dY / 2),\n bbox.min.z + (dZ / 2)\n );\n\n // Set the pivot point to the object's center position\n this.pivotPoint.set(center.x, center.y, center.z);\n\n { // Fit the camera to object\n let objectWidth = dX;\n let objectHeight = dY;\n let lookTarget = new THREE.Vector3(0, 0, bbox.max.z);\n\n fitCameraToObject(this.camera, objectWidth, objectHeight, lookTarget);\n }\n\n // Update the scene\n this.updateScene();\n\n (typeof callback === 'function') && callback({ boundingBox: bbox });\n });\n }\n unloadGCode() {\n let pathObject = this.group.getObjectByName('GCodePath');\n if (pathObject) {\n this.group.remove(pathObject);\n }\n\n // Sets the pivot point to the origin point (0, 0, 0)\n this.pivotPoint.set(0, 0, 0);\n\n // Reset controls\n this.controls.reset();\n\n // Update the scene\n this.updateScene();\n }\n setWorkflowState(workflowState) {\n this.setState({ workflowState: workflowState });\n }\n pan(deltaX, deltaY) {\n let domElement = this.renderer.domElement;\n let element = (domElement === document) ? domElement.body : domElement;\n this.controls.constraint.pan(deltaX, deltaY, element.clientWidth, element.clientHeight);\n this.controls.update();\n }\n // http://stackoverflow.com/questions/18581225/orbitcontrol-or-trackballcontrol\n joystickUp() {\n if (!(this.state.ready)) {\n return;\n }\n\n if (this.controls.enablePan) {\n let { keyPanSpeed } = this.controls;\n this.pan(0, keyPanSpeed);\n }\n }\n joystickDown() {\n if (!(this.state.ready)) {\n return;\n }\n\n if (this.controls.enablePan) {\n let { keyPanSpeed } = this.controls;\n this.pan(0, -keyPanSpeed);\n }\n }\n joystickLeft() {\n if (!(this.state.ready)) {\n return;\n }\n\n if (this.controls.enablePan) {\n let { keyPanSpeed } = this.controls;\n this.pan(keyPanSpeed, 0);\n }\n }\n joystickRight() {\n if (!(this.state.ready)) {\n return;\n }\n\n if (this.controls.enablePan) {\n let { keyPanSpeed } = this.controls;\n this.pan(-keyPanSpeed, 0);\n }\n }\n joystickCenter() {\n if (!(this.state.ready)) {\n return;\n }\n\n this.controls.reset();\n }\n render() {\n let { port, ready, activeState } = this.state;\n let hasLoaded = !!port && ready;\n let notLoaded = !hasLoaded;\n\n return (\n <div>\n <Toolbar\n port={port}\n ready={ready}\n setWorkflowState={::this.setWorkflowState}\n activeState={activeState}\n />\n <Joystick\n ready={ready}\n up={::this.joystickUp}\n down={::this.joystickDown}\n left={::this.joystickLeft}\n right={::this.joystickRight}\n center={::this.joystickCenter}\n />\n {notLoaded && \n <FileUploader port={port} />\n }\n <div ref=\"visualizer\" className=\"visualizer\" />\n </div>\n );\n }\n}\n\nexport default Visualizer;\n",
"export const COORDINATE_PLANE_XY = 'XY';\nexport const COORDINATE_PLANE_XZ = 'XZ';\nexport const COORDINATE_PLANE_YZ = 'YZ';\nexport const AXIS_LINE_LENGTH = 1200;\nexport const GRID_LINE_LENGTH = 1200;\nexport const GRID_SPACING = 10;\n\nexport const CAMERA_FOV = 50;\nexport const CAMERA_ASPECT = 1;\nexport const CAMERA_NEAR = 0.1;\nexport const CAMERA_FAR = 10000;\nexport const CAMERA_POSITION_X = 0;\nexport const CAMERA_POSITION_Y = 0;\nexport const CAMERA_POSITION_Z = 200; // Move the camera out a bit from the origin (0, 0, 0)\nexport const WORKFLOW_STATE_RUNNING = 'running';\nexport const WORKFLOW_STATE_PAUSED = 'paused';\nexport const WORKFLOW_STATE_IDLE = 'idle';\n\n// Grbl Active State\nexport const ACTIVE_STATE_IDLE = 'Idle';\nexport const ACTIVE_STATE_RUN = 'Run';\nexport const ACTIVE_STATE_HOLD = 'Hold';\nexport const ACTIVE_STATE_DOOR = 'Door';\nexport const ACTIVE_STATE_HOME = 'Home';\nexport const ACTIVE_STATE_ALARM = 'Alarm';\nexport const ACTIVE_STATE_CHECK = 'Check';\n",
"import colornames from 'colornames';\nimport THREE from 'three';\n\nconst buildAxis = (src, dst, color, dashed) => {\n let geometry = new THREE.Geometry();\n let material;\n\n if (dashed) {\n material = new THREE.LineDashedMaterial({\n linewidth: 1,\n color: color,\n dashSize: 1,\n gapSize: 1,\n opacity: 0.5,\n transparent: true\n });\n } else {\n material = new THREE.LineBasicMaterial({\n linewidth: 1,\n color: color,\n opacity: 0.5,\n transparent: true\n });\n }\n\n geometry.vertices.push(src.clone());\n geometry.vertices.push(dst.clone());\n geometry.computeLineDistances();\n\n return new THREE.Line(geometry, material);\n};\n\n// CoordinateAxes\n// An axis object to visualize the the 3 axes in a simple way. \n// The X axis is red. The Y axis is green. The Z axis is blue.\nclass CoordinateAxes {\n group = new THREE.Object3D();\n\n // Creates an axisHelper with lines of length size.\n // @param {number} size Define the size of the line representing the axes.\n // @see [Drawing the Coordinate Axes]{@http://soledadpenades.com/articles/three-js-tutorials/drawing-the-coordinate-axes/}\n constructor(size) {\n const red = colornames('red');\n const green = colornames('green');\n const blue = colornames('blue');\n\n this.group.add(\n buildAxis(new THREE.Vector3(0, 0, 0), new THREE.Vector3(size, 0, 0), red, false), // +X\n buildAxis(new THREE.Vector3(0, 0, 0), new THREE.Vector3(-size, 0, 0), red, true), // -X\n buildAxis(new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, size, 0), green, false), // +Y\n buildAxis(new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, -size, 0), green, true), // -Y\n buildAxis(new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 0, size), blue, false), // +Z\n buildAxis(new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 0, -size), blue, true) // -Z\n );\n\n return this.group;\n }\n}\n\nexport default CoordinateAxes;\n",
"import THREE from 'three';\n\nconst buildEngravingCutter = (color, texture) => {\n let object = new THREE.Object3D();\n let geometry, materialFront, materialBack;\n\n const radiusTop = 2.0;\n const radiusBottom = 0.1;\n const height = 20;\n const radiusSegments = 32;\n const heightSegments = 1;\n const openEnded = false;\n const thetaStart = 0;\n const thetaLength = 2 * Math.PI;\n\n // Geometry\n geometry = new THREE.CylinderGeometry(\n radiusTop, radiusBottom, height, radiusSegments, heightSegments, openEnded, thetaStart, thetaLength\n );\n // Rotates the geometry 90 degrees around the X axis.\n geometry.rotateX(Math.PI / 2);\n // Set the desired position from the origin rather than its center.\n geometry.translate(0, 0, height / 2);\n\n // Material\n materialFront = new THREE.MeshBasicMaterial({\n color: color,\n map: texture,\n opacity: 0.5,\n shading: THREE.SmoothShading,\n side: THREE.FrontSide,\n transparent: true\n });\n materialBack = new THREE.MeshBasicMaterial({\n color: color,\n map: texture,\n opacity: 0.5,\n shading: THREE.SmoothShading,\n side: THREE.BackSide,\n transparent: true\n });\n\n // http://stackoverflow.com/questions/15514274/three-js-how-to-control-rendering-order\n let meshFront = new THREE.Mesh(geometry, materialFront);\n meshFront.renderOrder = 2;\n object.add(meshFront);\n\n let meshBack = new THREE.Mesh(geometry, materialBack);\n object.add(meshBack);\n\n return object;\n};\n\nclass EngravingCutter {\n constructor(color, texture) {\n return buildEngravingCutter(color, texture);\n }\n}\n\nexport default EngravingCutter;\n",
"import _ from 'lodash';\nimport THREE from 'three';\n\nconst buildLine = (src, dst, color) => {\n let geometry = new THREE.Geometry();\n let material = new THREE.LineBasicMaterial({\n color: color,\n opacity: 0.5,\n transparent: true\n });\n\n geometry.vertices.push(src.clone());\n geometry.vertices.push(dst.clone());\n\n return new THREE.Line(geometry, material);\n};\n\nclass GridLine {\n group = new THREE.Object3D();\n\n constructor(size, step, colorCenterLine, colorGrid) {\n let list = _.range(-size, size, step);\n\n if (typeof colorCenterLine === 'undefined') {\n colorCenterLine = 0x444444;\n }\n if (typeof colorGrid === 'undefined') {\n colorGrid = 0x888888;\n }\n\n _.each(list, (i) => {\n let color = (i === 0) ? colorCenterLine : colorGrid;\n\n if (color === null) { // transparent\n return;\n }\n\n let lineX = buildLine(\n new THREE.Vector3(-size, i, 0),\n new THREE.Vector3(size, i, 0),\n color\n );\n\n let lineY = buildLine(\n new THREE.Vector3(i, -size, 0),\n new THREE.Vector3(i, size, 0),\n color\n );\n\n this.group.add(lineX);\n this.group.add(lineY);\n });\n\n return this.group;\n }\n}\n\nexport default GridLine;\n",
"import _ from 'lodash';\n\nexport default class PivotPoint3 {\n // @param {object} options The options object\n // @param {number} [options.x] The pivot point on the x-axis\n // @param {number} [options.y] The pivot point on the y-axis\n // @param {number} [options.z] The pivot point on the z-axis\n // @param callback {function} The callback function\n constructor(options, callback) {\n options = _.defaults({}, options, { x: 0, y: 0, z: 0 });\n\n options.x = Number(options.x) || 0;\n options.y = Number(options.y) || 0;\n options.z = Number(options.z) || 0;\n\n this.pivotPoint = { x: 0, y: 0, z: 0 };\n this.callback = _.isFunction(callback) ? callback : (() => {});\n\n this.set(options.x, options.y, options.z);\n }\n // Sets a new pivot point to rotate objects\n // @param {number} x The pivot point on the x-axis\n // @param {number} y The pivot point on the y-axis\n // @param {number} z The pivot point on the z-axis\n set(x, y, z) {\n let { pivotPoint } = this;\n\n x = Number(x) || 0;\n y = Number(y) || 0;\n z = Number(z) || 0;\n\n // Pass relative position to the callback\n this.callback(-(x - pivotPoint.x), -(y - pivotPoint.y), -(z - pivotPoint.z));\n\n this.pivotPoint = { x: x, y: y, z: z };\n }\n // Gets the pivot point\n // @return {object} The { x, y, z } position of the pivot point\n get() {\n return this.pivotPoint;\n }\n // Sets the pivot point to the origin point (0, 0, 0)\n clear() {\n let { pivotPoint } = this;\n\n this.callback(pivotPoint.x, pivotPoint.y, pivotPoint.z);\n\n this.pivotPoint = { x: 0, y: 0, z: 0 };\n }\n}\n",
"import _ from 'lodash';\nimport THREE from 'three';\nimport CoordinateAxes from './CoordinateAxes';\nimport EngravingCutter from './EngravingCutter';\nimport GridLine from './GridLine';\nimport PivotPoint3 from './PivotPoint3';\n\n// Fits camera to object\n// @param {number} width The object width\n// @param {number} height The object height\n// @param {THREE.Vector3} [lookTarget] The object's top position which is nearest to the camera\n//\n// http://stackoverflow.com/questions/14614252/how-to-fit-camera-to-object\n//\n// To match the object height with the visible height\n// fov = 2 * Math.atan(height / (2 * dist)) * ( 180 / Math.PI); // in degrees\n//\n// To match the object width with the visible width\n// fov = 2 * Math.atan((width / aspect) / (2 * dist)) * (180 / Math.PI); // in degrees\n//\nexport const fitCameraToObject = (camera, width, height, lookTarget) => {\n const FOV = 15;\n\n console.assert(_.isNumber(width));\n console.assert(_.isNumber(height));\n console.assert(lookTarget instanceof THREE.Vector3);\n\n let v1 = (lookTarget instanceof THREE.Vector3) ? lookTarget : new THREE.Vector3(0, 0, 0);\n let v2 = new THREE.Vector3(\n camera.position.x,\n camera.position.y,\n camera.position.z\n );\n let dist = v1.distanceTo(v2); // the distance from the camera to the closest face of the object\n let aspect = camera.aspect; // the aspect ratio of the canvas (width / height)\n\n width = Number(width) || 0;\n height = Number(height) || 0;\n\n // Find the largest value of fov\n let fov = _.max([\n // to fit the object height\n 2 * Math.atan(height / (2 * dist)) * (180 / Math.PI),\n // to fit the object width\n 2 * Math.atan((width / aspect) / (2 * dist)) * (180 / Math.PI),\n // a minimum value of fov\n FOV\n ]);\n\n camera.fov = fov;\n camera.updateProjectionMatrix();\n};\n\nexport const getBoundingBox = (object) => {\n let box = new THREE.Box3().setFromObject(object);\n let boundingBox = {\n min: {\n x: box.min.x === Infinity ? 0 : box.min.x,\n y: box.min.y === Infinity ? 0 : box.min.y,\n z: box.min.z === Infinity ? 0 : box.min.z\n },\n max: {\n x: box.max.x === -Infinity ? 0 : box.max.x,\n y: box.max.y === -Infinity ? 0 : box.max.y,\n z: box.max.z === -Infinity ? 0 : box.max.z\n }\n };\n\n return boundingBox;\n};\n\nexport const loadTexture = (url, callback) => {\n callback = callback || ((err, texture) => {});\n\n const onLoad = (texture) => {\n callback(null, texture);\n };\n const onProgress = (xhr) => {\n //console.log((xhr.loaded / xhr.total * 100) + '% loaded');\n };\n const onError = (xhr) => {\n callback(new Error('Failed to load texture with the url ' + JSON.stringify(url)));\n };\n\n let loader = new THREE.TextureLoader();\n loader.load(url, onLoad, onProgress, onError);\n};\n\nexport {\n // Function\n fitCameraToObject,\n getBoundingBox,\n loadTexture,\n // Class\n CoordinateAxes,\n EngravingCutter,\n GridLine,\n PivotPoint3\n};\n",
"var css = \"[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content{position:absolute;top:0;bottom:0;left:0;right:0}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .btn-toolbar{position:absolute;top:10px;left:10px;z-index:1;background-color:#f0f0f0}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .joystick{position:absolute;top:5px;right:5px;z-index:1}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .joystick .joystick-button{font-size:14px;color:#777}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .joystick .joystick-button:focus,[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .joystick .joystick-button:hover{cursor:pointer;color:#333}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .joystick .joystick-button:active{color:#333;text-shadow:0 1px #ccc}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .joystick .joystick-button[disabled]{cursor:not-allowed;color:#777}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .file-uploader-block{position:absolute;top:0;bottom:0;left:0;right:0;text-align:center;white-space:nowrap}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .file-uploader-block:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-.25em}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .file-uploader-block .file-uploader-box{display:inline-block;vertical-align:middle;background-color:#fff;border-width:1px;border-color:#d0d0d0;border-style:solid;border-radius:4px;margin:0 auto;min-width:240px;max-width:480px;padding:20px;z-index:1}[data-component=\\\"Widgets/VisualizerWidget\\\"] .widget-content .file-uploader-block .file-uploader-content[disabled]{cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none;opacity:.65;-ms-filter:\\\"alpha(Opacity=65)\\\";filter:alpha(opacity=65)}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/widgets/visualizer/index.css\"})); module.exports = css;",
"import React from 'react';\nimport Visualizer from './Visualizer';\nimport { Widget, WidgetHeader, WidgetContent } from '../../widget';\nimport './index.css';\n\nclass VisualizerWidget extends React.Component {\n render() {\n return (\n <div {...this.props} data-component=\"Widgets/VisualizerWidget\">\n <Widget borderless={true}>\n <WidgetContent>\n <Visualizer />\n </WidgetContent>\n </Widget>\n </div>\n );\n }\n}\n\nexport default VisualizerWidget;\n",
"import _ from 'lodash';\nimport classNames from 'classnames';\nimport Dropzone from 'react-dropzone';\nimport pubsub from 'pubsub-js';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport request from 'superagent';\nimport Sortable from 'Sortable';\nimport i18n from '../../lib/i18n';\nimport log from '../../lib/log';\nimport {\n AxesWidget,\n ConnectionWidget,\n ConsoleWidget,\n GCodeWidget,\n GrblWidget,\n ProbeWidget,\n SpindleWidget,\n VisualizerWidget\n} from '../widgets';\n\nconst widgets = [\n {\n id: 'axes',\n el: <AxesWidget data-id=\"axes\" key=\"axes\" />\n },\n {\n id: 'connection',\n el: <ConnectionWidget data-id=\"connection\" key=\"connection\" />\n },\n {\n id: 'console',\n el: <ConsoleWidget data-id=\"console\" key=\"console\" />\n },\n {\n id: 'gcode',\n el: <GCodeWidget data-id=\"gcode\" key=\"gcode\" />\n },\n {\n id: 'grbl',\n el: <GrblWidget data-id=\"grbl\" key=\"grbl\" />\n },\n {\n id: 'probe',\n el: <ProbeWidget data-id=\"probe\" key=\"probe\" />\n },\n {\n id: 'spindle',\n el: <SpindleWidget data-id=\"spindle\" key=\"spindle\" />\n },\n {\n id: 'visualizer',\n el: <VisualizerWidget data-id=\"visualizer\" key=\"visualizer\" />\n }\n];\n\nconst getWidgetElementById = (id) => {\n let widget = _.findWhere(widgets, { id: id }) || {};\n return widget.el;\n};\n\nclass Workspace extends React.Component {\n state = {\n port: '',\n isDragging: false,\n isUploading: false,\n showPrimaryContainer: true,\n showSecondaryContainer: true,\n defaultContainer: [],\n primaryContainer: [],\n secondaryContainer: []\n };\n sortableGroup = {\n primary: null,\n secondary: null\n };\n\n componentDidMount() {\n this.subscribe();\n\n this.createSortableGroups();\n\n this.loadSettings((err, settings) => {\n if (err) {\n settings = {};\n }\n\n let widgetList = _.pluck(widgets, 'id');\n let defaultList = ['visualizer'];\n let primaryDefault = ['connection', 'grbl', 'console'];\n let secondaryDefault = ['axes', 'gcode', 'probe', 'spindle'];\n let primaryList = _.get(settings, 'workspace.container.primary') || primaryDefault;\n let secondaryList = _.get(settings, 'workspace.container.secondary') || secondaryDefault;\n\n // primary list\n primaryList = _(primaryList) // Keep the order of primaryList\n .uniq()\n .intersection(widgetList) // intersect widgetList\n .difference(defaultList) // exclude defaultList\n .value();\n\n // secondary list\n secondaryList = _(secondaryList.concat(widgetList)) // Keep the order of secondaryList\n .uniq()\n .difference(primaryList) // exclude primaryList\n .difference(defaultList) // exclude defaultList\n .value();\n\n this.setState({\n defaultContainer: _.map(defaultList, (id) => {\n return getWidgetElementById(id);\n }),\n primaryContainer: _.map(primaryList, (id) => {\n return getWidgetElementById(id);\n }),\n secondaryContainer: _.map(secondaryList, (id) => {\n return getWidgetElementById(id);\n })\n });\n });\n }\n componentDidUpdate() {\n this.resizeVisualContainer();\n }\n componentWillUnmount() {\n this.destroySortableGroups();\n this.unsubscribe();\n }\n subscribe() {\n this.pubsubTokens = [];\n\n { // port\n let token = pubsub.subscribe('port', (msg, port) => {\n port = port || '';\n this.setState({ port: port });\n });\n this.pubsubTokens.push(token);\n }\n }\n unsubscribe() {\n _.each(this.pubsubTokens, (token) => {\n pubsub.unsubscribe(token);\n });\n this.pubsubTokens = [];\n }\n startWaiting() {\n // Adds the 'wait' class to <html>\n let root = document.documentElement;\n root.classList.add('wait');\n }\n stopWaiting() {\n // Adds the 'wait' class to <html>\n let root = document.documentElement;\n root.classList.remove('wait');\n }\n loadSettings(callback) {\n request\n .get('/api/config')\n .end((err, res) => {\n callback(err, res.body || {});\n });\n }\n saveSettings(settings, callback) {\n settings = settings || {};\n request\n .put('/api/config')\n .set('Content-Type', 'application/json')\n .send(settings)\n .end(callback);\n }\n createSortableGroups() {\n const onEndCallback = (evt) => {\n let settings = {\n workspace: {\n container: {\n primary: this.sortableGroup['primary'].toArray(),\n secondary: this.sortableGroup['secondary'].toArray()\n }\n }\n };\n\n this.saveSettings(settings, (err, res) => {\n // Publish a 'resize' event\n pubsub.publish('resize'); // Also see \"widgets/visualizer.jsx\"\n\n if (err) {\n log.error(res.text);\n return;\n }\n });\n };\n\n { // primary\n let el = ReactDOM.findDOMNode(this.refs.primaryContainer);\n this.sortableGroup['primary'] = Sortable.create(el, {\n group: {\n name: 'primary',\n pull: true,\n put: ['secondary']\n },\n handle: '.btn-drag',\n dataIdAttr: 'data-id',\n onEnd: onEndCallback\n });\n }\n\n { // secondary\n let el = ReactDOM.findDOMNode(this.refs.secondaryContainer);\n this.sortableGroup['secondary'] = Sortable.create(el, {\n group: {\n name: 'secondary',\n pull: true,\n put: ['primary']\n },\n handle: '.btn-drag',\n dataIdAttr: 'data-id',\n onEnd: onEndCallback\n });\n }\n }\n destroySortableGroups() {\n this.sortableGroup['primary'].destroy();\n this.sortableGroup['secondary'].destroy();\n }\n togglePrimaryContainer() {\n this.setState({ showPrimaryContainer: ! this.state.showPrimaryContainer });\n\n // Publish a 'resize' event\n pubsub.publish('resize'); // Also see \"widgets/visualizer.jsx\"\n }\n toggleSecondaryContainer() {\n this.setState({ showSecondaryContainer: ! this.state.showSecondaryContainer });\n\n // Publish a 'resize' event\n pubsub.publish('resize'); // Also see \"widgets/visualizer.jsx\"\n }\n resizeVisualContainer() {\n let primaryContainer = ReactDOM.findDOMNode(this.refs.primaryContainer);\n let primaryTogglerPane = ReactDOM.findDOMNode(this.refs.primaryTogglerPane);\n let secondaryContainer = ReactDOM.findDOMNode(this.refs.secondaryContainer);\n let secondaryTogglerPane = ReactDOM.findDOMNode(this.refs.secondaryTogglerPane);\n let defaultContainer = ReactDOM.findDOMNode(this.refs.defaultContainer);\n\n defaultContainer.style.left = primaryContainer.offsetWidth + primaryTogglerPane.offsetWidth + 'px';\n defaultContainer.style.right = secondaryContainer.offsetWidth + secondaryTogglerPane.offsetWidth + 'px';\n\n // Publish a 'resize' event\n pubsub.publish('resize'); // Also see \"widgets/visualizer.jsx\"\n }\n onDrop(files) {\n let { port } = this.state;\n\n if (!port) {\n return;\n }\n\n let file = files[0];\n let reader = new FileReader();\n\n reader.onloadend = (event) => {\n let contents = event.target.result,\n error = event.target.error;\n\n if (error) {\n log.error(error);\n return;\n }\n\n log.debug('FileReader:', _.pick(file, [\n 'lastModified',\n 'lastModifiedDate',\n 'meta',\n 'name',\n 'size',\n 'type'\n ]));\n\n this.startWaiting();\n this.setState({ isUploading: true });\n\n request\n .post('/api/file/upload')\n .send({\n meta: {\n name: file.name,\n size: file.size,\n port: port\n },\n contents: contents\n })\n .end((err, res) => {\n this.stopWaiting();\n this.setState({ isUploading: false });\n\n if (err || !res.ok) {\n log.error('Failed to upload file', err, res);\n return;\n }\n\n pubsub.publish('gcode:load', contents);\n });\n };\n\n reader.readAsText(file);\n }\n render() {\n let { isDragging, isUploading } = this.state;\n let notDragging = !isDragging;\n let classes = {\n primaryContainer: classNames(\n 'primary-container',\n { 'hidden': ! this.state.showPrimaryContainer }\n ),\n secondaryContainer: classNames(\n 'secondary-container',\n { 'hidden': ! this.state.showSecondaryContainer }\n ),\n defaultContainer: classNames(\n 'main-container',\n 'fixed'\n ),\n dropzoneOverlay: classNames(\n 'dropzone-overlay',\n { 'hidden': notDragging }\n )\n };\n\n return (\n <div className=\"container-fluid\" data-component=\"Workspace\">\n <div className=\"workspace-container\">\n <div className={classes.dropzoneOverlay}></div>\n <Dropzone\n ref=\"dropzone\"\n className=\"dropzone\"\n disableClick={true}\n multiple={false}\n onDragEnter={() => {\n this.setState({ isDragging: true });\n }}\n onDragLeave={() => {\n this.setState({ isDragging: false });\n }}\n onDrop={(files) => {\n this.setState({ isDragging: false });\n this.onDrop(files);\n }}\n >\n <div className=\"workspace-table\">\n <div className=\"workspace-table-row\">\n <div className={classes.primaryContainer} ref=\"primaryContainer\">\n {this.state.primaryContainer}\n </div>\n <div className=\"primary-toggler-pane\" ref=\"primaryTogglerPane\" onClick={::this.togglePrimaryContainer}></div>\n <div className={classes.defaultContainer} ref=\"defaultContainer\">\n {this.state.defaultContainer}\n </div>\n <div className=\"secondary-toggler-pane\" ref=\"secondaryTogglerPane\" onClick={::this.toggleSecondaryContainer}></div>\n <div className={classes.secondaryContainer} ref=\"secondaryContainer\">\n {this.state.secondaryContainer}\n </div>\n </div>\n </div>\n </Dropzone>\n </div>\n </div>\n );\n }\n}\n\nexport default Workspace;\n",
"var css = \"[data-component=Workspace] .dropzone-overlay{position:fixed;top:50px;bottom:0;left:0;right:0;z-index:100;background-color:rgba(255,255,255,.5);font-size:20px;padding:100px;border:4px dashed #286090;text-align:center;pointer-events:none}[data-component=Workspace] .workspace-container{position:absolute;top:50px;bottom:0;right:0;left:0}[data-component=Workspace] .workspace-table{display:table;width:100%;height:100%}[data-component=Workspace] .workspace-table-row{display:table-row}[data-component=Workspace] .main-container,[data-component=Workspace] .primary-container,[data-component=Workspace] .primary-toggler-pane,[data-component=Workspace] .secondary-container,[data-component=Workspace] .secondary-toggler-pane{display:table-cell;position:relative}[data-component=Workspace] .primary-container,[data-component=Workspace] .secondary-container{vertical-align:top;background-color:#f0f0f0;width:1%;padding:10px}[data-component=Workspace] .main-container{min-width:250px}[data-component=Workspace] .main-container.fixed{position:fixed;left:0;right:0;top:50px;bottom:0}[data-component=Workspace] .primary-toggler-pane,[data-component=Workspace] .secondary-toggler-pane{width:10px;padding-top:10px;vertical-align:top;background-color:#f0f0f0;cursor:pointer;border-left:1px solid #ddd;border-right:1px solid #ddd}[data-component=Workspace] .primary-toggler-pane:hover,[data-component=Workspace] .secondary-toggler-pane:hover{background-color:#e0e0e0}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"components/workspace/index.css\"})); module.exports = css;",
"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Workspace = require('./Workspace');\n\nvar _Workspace2 = _interopRequireDefault(_Workspace);\n\nrequire('./index.css');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Workspace2.default;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbXX0=",
"var root = window.root;\n\nconsole.assert(typeof root.app.config === 'object', 'root.app.config is not an object');\n\nvar settings = {\n version: root.app.config.version,\n webroot: root.app.config.webroot,\n cdn: root.app.config.cdn,\n name: 'CNC.js',\n log: {\n level: 'debug', // trace, debug, info, warn, error\n logger: 'console', // console\n prefix: ''\n },\n supportedLngs: [\n 'en', // default language\n 'de',\n 'es',\n 'fr',\n 'it',\n 'ja',\n 'zh-cn',\n 'zh-tw'\n ],\n i18next: {\n // Resources will be resolved in this order:\n // 1) try languageCode plus countryCode, eg. 'en-US'\n // 2) alternative look it up in languageCode only, eg. 'en'\n // 3) finally look it up in definded fallback language, default: 'dev'\n // If language is not set explicitly i18next tries to detect the user language by:\n // 1) querystring parameter (?setLng=en-US)\n // 2) cookie (i18next)\n // 3) language set in navigator\n //lng: lng,\n\n // Preload additional languages on init:\n preload: [],\n\n // To lowercase countryCode in requests, eg. to 'en-us' set option lowerCaseLng = true\n lowerCaseLng: true,\n\n // The current locale to set will be looked up in the new parameter: ?lang=en-US\n // default would be ?setLng=en-US\n detectLngQS: 'lang',\n\n // Enable cookie usage\n useCookie: true,\n\n // Change the cookie name to lookup lng\n cookieName: 'lang', // default: 'i18next'\n\n // As the fallbackLng will default to 'dev' you can turn it off by setting the option value to false. This will prevent loading the fallbacks resource file and any futher look up of missing value inside a fallback file.\n fallbackLng: 'en', //false,\n\n // Specify which locales to load:\n // If load option is set to current i18next will load the current set language (this could be a specific (en-US) or unspecific (en) resource file).\n // If set to unspecific i18next will always load the unspecific resource file (eg. en instead of en-US).\n load: 'current', // all, current, unspecific\n\n // Caching is turned off by default. You might want to turn it on for production.\n //useLocalStorage: has('production') ? true : false,\n useLocalStorage: false, // TODO: monitor the stability\n localStorageExpirationTime: 7*24*60*60*1000, // in ms, default 1 week\n\n // Debug output\n debug: false,\n\n // Path in resource store\n //resStore: resStore,\n\n // Set static route to load resources from\n // e.g. 'i18n/en-US/translation.json\n resGetPath: root.app.config.webroot + 'i18n/{{lng}}/{{ns}}.json',\n\n // Load resource synchron\n getAsync: false,\n\n // Send missing resources to server\n sendMissing: false,\n sendMissingTo: 'all', // fallback|current|all\n resPostPath: 'api/i18n/sendMissing/{{lng}}/{{ns}}',\n sendType: 'POST', // POST|GET\n postAsync: true, // true|false\n\n nsseparator: ':', // namespace separator\n keyseparator: '.', // key separator\n\n interpolationPrefix: '{{',\n interpolationSuffix: '}}',\n\n // Multiple namespace\n ns: {\n namespaces: [\n 'locale', // locale: language, timezone, ...\n 'resource' // default\n ],\n defaultNs: 'resource'\n }\n }\n};\n\nexport default settings;\n",
"// https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9\n// http://linuxcnc.org/docs/html/gcode/overview.html#cap:modal-groups\nexport const MODAL_GROUPS = [\n { // Motion Mode (Defaults to G0)\n group: 'motion',\n modes: ['G0', 'G1', 'G2', 'G3', 'G38.2', 'G38.3', 'G38.4', 'G38.5', 'G80']\n },\n { // Coordinate System Select (Defaults to G54)\n group: 'coordinate',\n modes: ['G54', 'G55', 'G56', 'G57', 'G58', 'G59']\n },\n { // Plane Select (Defaults to G17)\n group: 'plane',\n modes: ['G17', 'G18', 'G19']\n },\n { // Units Mode (Defaults to G21)\n group: 'units',\n modes: ['G20', 'G21']\n },\n { // Distance Mode (Defaults to G90)\n group: 'distance',\n modes: ['G90', 'G91']\n },\n { // Feed Rate Mode (Defaults to G94)\n group: 'feedrate',\n modes: ['G93', 'G94']\n },\n { // Program Mode (Defaults to M0)\n group: 'program',\n modes: ['M0', 'M1', 'M2', 'M30']\n },\n { // Spindle State (Defaults to M5)\n group: 'spindle',\n modes: ['M3', 'M4', 'M5']\n },\n { // Coolant State (Defaults to M9)\n group: 'coolant',\n modes: ['M7', 'M8', 'M9']\n }\n];\n",
"import React from 'react';\nimport Header from '../components/header';\n\nclass App extends React.Component {\n render() {\n return (\n <div>\n <Header />\n {this.props.children}\n </div>\n );\n }\n}\n\nexport default App;\n",
"import _ from 'lodash';\nimport async from 'async';\nimport Uri from 'jsuri';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Router, Route, IndexRoute } from 'react-router';\nimport settings from './config/settings';\nimport i18n from './lib/i18n';\nimport log from './lib/log';\nimport App from './containers/App';\nimport Workspace from './components/workspace';\nimport './styles/vendor.css';\nimport './styles/app.css';\n\nconst query_params = ((qs) => {\n qs = String(qs || '');\n if (qs[0] !== '?') {\n qs = '?' + qs;\n }\n let uri = new Uri(qs);\n let obj = _.reduce(uri.queryPairs, (obj, item) => {\n let key = item[0], value = item[1];\n obj[key] = decodeURIComponent(value);\n return obj;\n }, {});\n\n return obj;\n})(window.root.location.search) || {};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie\nconst cookie_get = (key) => {\n if ( ! key) {\n return null;\n }\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\n};\n\nconst i18nextInit = (next) => {\n let lng;\n\n // 1. query string: lang=en\n lng = query_params[settings.i18next.detectLngQS] || '';\n\n // 2. cookie\n lng = lng || (function(lng) {\n if (settings.i18next.useCookie) {\n return cookie_get(settings.i18next.cookieName);\n }\n return lng;\n }(lng));\n \n // 3. Using 'lang' attribute on the html element\n lng = lng || $('html').attr('lang');\n\n // Lowercase countryCode in requests\n lng = (lng || '').toLowerCase();\n\n if (settings.supportedLngs.indexOf(lng) >= 0) {\n settings.i18next.lng = lng;\n } else {\n settings.i18next.lng = settings.i18next.fallbackLng || settings.supportedLngs[0];\n }\n\n i18n.init(settings.i18next, (t) => {\n next();\n });\n};\n\nconst logInit = (next) => {\n const log_level = query_params['log_level'] || settings.log.level;\n const log_logger = query_params['log_logger'] || settings.log.logger;\n const log_prefix = query_params['log_prefix'] || settings.log.prefix;\n\n log.setLevel(log_level);\n log.setLogger(log_logger);\n log.setPrefix(log_prefix);\n\n let msg = [\n 'version=' + settings.version,\n 'webroot=' + settings.webroot,\n 'cdn=' + settings.cdn\n ];\n log.info(msg.join(','));\n\n next();\n};\n\nasync.series([\n i18nextInit,\n logInit\n], (err, results) => {\n\n { // Prevent browser from loading a drag-and-dropped file\n // http://stackoverflow.com/questions/6756583/prevent-browser-from-loading-a-drag-and-dropped-file\n window.addEventListener('dragover', (e) => {\n e = e || event;\n e.preventDefault();\n }, false);\n\n window.addEventListener('drop', (e) => {\n e = e || event;\n e.preventDefault();\n }, false);\n }\n\n { // Hide loading\n let loading = document.getElementById('loading');\n if (loading) {\n loading.style.display = 'none';\n }\n }\n\n ReactDOM.render(\n <Router>\n <Route path=\"/\" component={App}>\n <IndexRoute component={Workspace} />\n </Route>\n </Router>,\n document.querySelector('#container')\n );\n});\n",
"import _ from 'lodash';\nimport colornames from 'colornames';\nimport THREE from 'three';\nimport GCodeRunner from './GCodeRunner';\nimport log from './log';\n\nconst noop = () => {};\n\nconst defaultColor = new THREE.Color(colornames('darkgray'));\nconst motionColor = {\n 'G0': new THREE.Color('#77f777'),\n 'G1': new THREE.Color('#7777f7'),\n 'G2': new THREE.Color('#77ccf7'),\n 'G3': new THREE.Color('#77ccf7')\n};\n\nclass GCodePath {\n constructor(options) {\n options = options || {};\n\n log.debug('GCodePath:', options);\n\n this.options = options;\n\n this.group = new THREE.Object3D();\n this.geometry = new THREE.Geometry();\n\n // Example\n // [\n // {\n // code: 'G1 X1',\n // vertexIndex: 2\n // }\n // ]\n this.frames = []; // Example\n this.frameIndex = 0;\n }\n drawLine(modalState, v1, v2) {\n const { motion } = modalState;\n this.geometry.vertices.push(new THREE.Vector3(v1.x, v1.y, v1.z));\n this.geometry.vertices.push(new THREE.Vector3(v2.x, v2.y, v2.z));\n\n let color = motionColor[motion] || defaultColor;\n this.geometry.colors.push(color);\n this.geometry.colors.push(color);\n }\n // Parameters\n // modalState The modal state\n // v1 The start point\n // v2 The end point\n // v0 The fixed point\n drawArcCurve(modalState, v1, v2, v0) {\n const { motion, plane } = modalState;\n let isClockwise = (motion === 'G2');\n let radius = Math.sqrt(\n Math.pow((v1.x - v0.x), 2) + Math.pow((v1.y - v0.y), 2)\n );\n let startAngle = Math.atan2(v1.y - v0.y, v1.x - v0.x);\n let endAngle = Math.atan2(v2.y - v0.y, v2.x - v0.x);\n let arcCurve = new THREE.ArcCurve(\n v0.x, // aX\n v0.y, // aY\n radius, // aRadius\n startAngle, // aStartAngle\n endAngle, // aEndAngle\n !!isClockwise // isClockwise\n );\n let divisions = 30;\n let points = arcCurve.getPoints(divisions);\n let vertices = [];\n\n for (let i = 0; i < points.length; ++i) {\n let point = points[i];\n let z = ((v2.z - v1.z) / points.length) * i + v1.z;\n\n if (plane === 'G17') { // xy-plane\n vertices.push(new THREE.Vector3(point.x, point.y, z));\n } else if (plane === 'G18') { // xz-plane\n vertices.push(new THREE.Vector3(point.x, z, point.y));\n } else if (plane === 'G19') { // yz-plane\n vertices.push(new THREE.Vector3(z, point.x, point.y));\n }\n }\n\n let color = motionColor[motion] || defaultColor;\n let colors = _.fill(Array(vertices.length), color);\n\n this.geometry.vertices = this.geometry.vertices.concat(vertices);\n this.geometry.colors = this.geometry.colors.concat(colors);\n }\n render(options, callback) {\n options = options || {};\n callback = _.isFunction(callback) ? callback : noop;\n\n let runner = new GCodeRunner({\n modalState: this.options.modalState,\n drawLine: (modalState, v1, v2) => {\n this.drawLine(modalState, v1, v2);\n },\n drawArcCurve: (modalState, v1, v2, v0) => {\n this.drawArcCurve(modalState, v1, v2, v0);\n }\n });\n runner.on('data', (data) => {\n this.frames.push({\n data: data,\n vertexIndex: this.geometry.vertices.length // remember current vertex index\n });\n });\n\n runner.interpretText(options.gcode, (err, results) => {\n this.update();\n\n log.debug({\n geometry: this.geometry,\n frames: this.frames,\n frameIndex: this.frameIndex\n });\n\n callback(this.group);\n });\n }\n update() {\n while (this.group.children.length > 0) {\n let path = this.group.children[0];\n this.group.remove(path);\n path.geometry.dispose();\n }\n\n { // Main object\n let geometry = this.geometry;\n let material = new THREE.LineBasicMaterial({\n color: new THREE.Color(colornames('darkgray')),\n linewidth: 1,\n vertexColors: THREE.VertexColors,\n opacity: 0.7,\n transparent: true\n });\n this.group.add(new THREE.Line(geometry, material));\n }\n\n { // Preview with frames\n let geometry = new THREE.Geometry();\n let material = new THREE.LineBasicMaterial({\n color: new THREE.Color(colornames('crimson')),\n linewidth: 1,\n opacity: 0.7,\n transparent: true\n });\n let currentFrame = this.frames[this.frameIndex] || {};\n geometry.vertices = this.geometry.vertices.slice(0, currentFrame.vertexIndex);\n this.group.add(new THREE.Line(geometry, material));\n }\n }\n setFrameIndex(frameIndex) {\n frameIndex = Math.min(frameIndex, this.frames.length - 1);\n frameIndex = Math.max(frameIndex, 0);\n\n this.frameIndex = frameIndex;\n this.update();\n }\n}\n\nexport default GCodePath;\n",
"import _ from 'lodash';\nimport { GCodeInterpreter } from 'gcode-interpreter';\nimport log from './log';\n\nconst in2mm = (v) => v * 25.4;\nconst mm2in = (v) => v / 25.4;\n\nconst noop = () => {};\n\nconst translatePosition = (position, newPosition, relative) => {\n relative = !!relative;\n newPosition = Number(newPosition);\n if (_.isNaN(newPosition)) {\n return position;\n }\n return relative ? (position + newPosition) : newPosition;\n};\n\nclass GCodeRunner {\n position = {\n x: 0,\n y: 0,\n z: 0\n };\n\n // https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9\n // Also see \"../constants/modal-groups.js\"\n modalState = {\n motion: 'G0', // G0, G1, G2, G3, G38.2, G38.3, G38.4, G38.5, G80\n coordinate: 'G54', // G54, G55, G56, G57, G58, G59\n plane: 'G17', // G17: xy-plane, G18: xz-plane, G19: yz-plane\n units: 'G21', // G20: Inches, G21: Millimeters\n distance: 'G90', // G90: Absolute, G91: Relative\n feedrate: 'G94', // G93: Inverse Time Mode, G94: Units Per Minutes\n program: 'M0',\n spindle: 'M5',\n coolant: 'M9'\n };\n\n handlers = {\n // G0: Rapid Linear Move\n 'G0': (params) => {\n this.setModalState({ 'motion': 'G0' });\n\n let v1 = {\n x: this.position.x,\n y: this.position.y,\n z: this.position.z\n };\n let v2 = {\n x: this.translateX(params.X),\n y: this.translateY(params.Y),\n z: this.translateZ(params.Z)\n };\n const targetPosition = { x: v2.x, y: v2.y, z: v2.z };\n\n this.fn.drawLine(this.modalState, v1, v2);\n\n // Update position\n this.setPosition(targetPosition.x, targetPosition.y, targetPosition.z);\n },\n // G1: Linear Move\n // Usage\n // G1 Xnnn Ynnn Znnn Ennn Fnnn Snnn\n // Parameters\n // Xnnn The position to move to on the X axis\n // Ynnn The position to move to on the Y axis\n // Znnn The position to move to on the Z axis\n // Fnnn The feedrate per minute of the move between the starting point and ending point (if supplied)\n // Snnn Flag to check if an endstop was hit (S1 to check, S0 to ignore, S2 see note, default is S0)\n // Examples\n // G1 X12 (move to 12mm on the X axis)\n // G1 F1500 (Set the feedrate to 1500mm/minute)\n // G1 X90.6 Y13.8 E22.4 (Move to 90.6mm on the X axis and 13.8mm on the Y axis while extruding 22.4mm of material)\n //\n 'G1': (params) => {\n this.setModalState({ 'motion': 'G1' });\n\n let v1 = {\n x: this.position.x,\n y: this.position.y,\n z: this.position.z\n };\n let v2 = {\n x: this.translateX(params.X),\n y: this.translateY(params.Y),\n z: this.translateZ(params.Z)\n };\n const targetPosition = { x: v2.x, y: v2.y, z: v2.z };\n\n this.fn.drawLine(this.modalState, v1, v2);\n\n // Update position\n this.setPosition(targetPosition.x, targetPosition.y, targetPosition.z);\n },\n // G2 & G3: Controlled Arc Move\n // Usage\n // G2 Xnnn Ynnn Innn Jnnn Ennn Fnnn (Clockwise Arc)\n // G3 Xnnn Ynnn Innn Jnnn Ennn Fnnn (Counter-Clockwise Arc)\n // Parameters\n // Xnnn The position to move to on the X axis\n // Ynnn The position to move to on the Y axis\n // Innn The point in X space from the current X position to maintain a constant distance from\n // Jnnn The point in Y space from the current Y position to maintain a constant distance from\n // Fnnn The feedrate per minute of the move between the starting point and ending point (if supplied)\n // Examples\n // G2 X90.6 Y13.8 I5 J10 E22.4 (Move in a Clockwise arc from the current point to point (X=90.6,Y=13.8),\n // with a center point at (X=current_X+5, Y=current_Y+10), extruding 22.4mm of material between starting and stopping)\n // G3 X90.6 Y13.8 I5 J10 E22.4 (Move in a Counter-Clockwise arc from the current point to point (X=90.6,Y=13.8),\n // with a center point at (X=current_X+5, Y=current_Y+10), extruding 22.4mm of material between starting and stopping)\n // Referring\n // http://linuxcnc.org/docs/2.5/html/gcode/gcode.html#sec:G2-G3-Arc\n // https://github.com/grbl/grbl/issues/236\n 'G2': (params) => {\n this.setModalState({ 'motion': 'G2' });\n\n let v1 = {\n x: this.position.x,\n y: this.position.y,\n z: this.position.z\n };\n let v2 = {\n x: this.translateX(params.X),\n y: this.translateY(params.Y),\n z: this.translateZ(params.Z)\n };\n let v0 = { // fixed point\n x: this.translateI(params.I),\n y: this.translateJ(params.J),\n z: this.translateK(params.K)\n };\n const isClockwise = true;\n const targetPosition = { x: v2.x, y: v2.y, z: v2.z };\n\n if (this.isXYPlane()) { // xy-plane\n [ v1.x, v1.y, v1.z ] = [ v1.x, v1.y, v1.z ];\n [ v2.x, v2.y, v2.z ] = [ v2.x, v2.y, v2.z ];\n [ v0.x, v0.y, v0.z ] = [ v0.x, v0.y, v0.z ];\n } else if (this.isXZPlane()) { // xz-plane\n [ v1.x, v1.y, v1.z ] = [ v1.x, v1.z, v1.y ];\n [ v2.x, v2.y, v2.z ] = [ v2.x, v2.z, v2.y ];\n [ v0.x, v0.y, v0.z ] = [ v0.x, v0.z, v0.y ];\n } else if (this.isYZPlane()) { // yz-plane\n [ v1.x, v1.y, v1.z ] = [ v1.y, v1.z, v1.x ];\n [ v2.x, v2.y, v2.z ] = [ v2.y, v2.z, v2.x ];\n [ v0.x, v0.y, v0.z ] = [ v0.y, v0.z, v0.x ];\n } else {\n console.error('The plane mode is invalid', this.modalState.plane);\n return;\n }\n\n if (params.R) {\n let radius = this.translateR(params.R);\n let x = v2.x - v1.x;\n let y = v2.y - v1.y;\n let distance = Math.sqrt(x * x + y * y);\n let height = Math.sqrt(4 * radius * radius - x * x - y * y) / 2;\n\n if (isClockwise) {\n height = -height;\n }\n if (radius < 0) {\n height = -height;\n }\n\n let offsetX = x / 2 - y / distance * height;\n let offsetY = y / 2 + x / distance * height;\n\n v0.x = v1.x + offsetX;\n v0.y = v1.y + offsetY;\n }\n\n this.fn.drawArcCurve(this.modalState, v1, v2, v0);\n\n // Update position\n this.setPosition(targetPosition.x, targetPosition.y, targetPosition.z);\n },\n 'G3': (params) => {\n this.setModalState({ 'motion': 'G3' });\n\n let v1 = {\n x: this.position.x,\n y: this.position.y,\n z: this.position.z\n };\n let v2 = {\n x: this.translateX(params.X),\n y: this.translateY(params.Y),\n z: this.translateZ(params.Z)\n };\n let v0 = { // fixed point\n x: this.translateI(params.I),\n y: this.translateJ(params.J),\n z: this.translateK(params.K)\n };\n const isClockwise = false;\n const targetPosition = { x: v2.x, y: v2.y, z: v2.z };\n\n if (this.isXYPlane()) { // xy-plane\n [ v1.x, v1.y, v1.z ] = [ v1.x, v1.y, v1.z ];\n [ v2.x, v2.y, v2.z ] = [ v2.x, v2.y, v2.z ];\n [ v0.x, v0.y, v0.z ] = [ v0.x, v0.y, v0.z ];\n } else if (this.isXZPlane()) { // xz-plane\n [ v1.x, v1.y, v1.z ] = [ v1.x, v1.z, v1.y ];\n [ v2.x, v2.y, v2.z ] = [ v2.x, v2.z, v2.y ];\n [ v0.x, v0.y, v0.z ] = [ v0.x, v0.z, v0.y ];\n } else if (this.isYZPlane()) { // yz-plane\n [ v1.x, v1.y, v1.z ] = [ v1.y, v1.z, v1.x ];\n [ v2.x, v2.y, v2.z ] = [ v2.y, v2.z, v2.x ];\n [ v0.x, v0.y, v0.z ] = [ v0.y, v0.z, v0.x ];\n } else {\n console.error('The plane mode is invalid', this.modalState.plane);\n return;\n }\n\n if (params.R) {\n let radius = this.translateR(Number(params.R) || 0);\n let x = v2.x - v1.x;\n let y = v2.y - v1.y;\n let distance = Math.sqrt(x * x + y * y);\n let height = Math.sqrt(4 * radius * radius - x * x - y * y) / 2;\n\n if (isClockwise) {\n height = -height;\n }\n if (radius < 0) {\n height = -height;\n }\n\n let offsetX = x / 2 - y / distance * height;\n let offsetY = y / 2 + x / distance * height;\n\n v0.x = v1.x + offsetX;\n v0.y = v1.y + offsetY;\n }\n\n this.fn.drawArcCurve(this.modalState, v1, v2, v0);\n\n // Update position\n this.setPosition(targetPosition.x, targetPosition.y, targetPosition.z);\n },\n // G4: Dwell\n // Parameters\n // Pnnn Time to wait, in milliseconds\n // Snnn Time to wait, in seconds (Only on Marlin and Smoothie)\n // Example\n // G4 P200\n 'G4': (params) => {\n let sleep = 0;\n \n if (typeof params.S !== 'undefined') {\n sleep = Number(params.S) * 1000; // seconds\n }\n\n if (typeof params.P !== 'undefined') {\n sleep = Number(params.P); // milliseconds\n }\n },\n // G10: Coordinate System Data Tool and Work Offset Tables\n 'G10': (params) => {\n },\n // G17..19: Plane Selection\n // G17: XY (default)\n 'G17': (params) => {\n this.setModalState({ 'plane': 'G17' });\n },\n // G18: XZ\n 'G18': (params) => {\n this.setModalState({ 'plane': 'G18' });\n },\n // G19: YZ\n 'G19': (params) => {\n this.setModalState({ 'plane': 'G19' });\n },\n // G20: use inches for length units \n 'G20': (params) => {\n this.setModalState({ 'units': 'G20' });\n },\n // G21: use millimeters for length units\n 'G21': (params) => {\n this.setModalState({ 'units': 'G21' });\n },\n // G38.x Straight Probe\n // G38.2 probe toward workpiece, stop on contact, signal error if failure\n 'G38.2': (params) => {\n this.setModalState({ 'motion': 'G38.2' });\n },\n // G38.3 probe toward workpiece, stop on contact\n 'G38_3': (params) => {\n this.setModalState({ 'motion': 'G38.3' });\n },\n // G38.4 probe away from workpiece, stop on loss of contact, signal error if failure\n 'G38.4': (params) => {\n this.setModalState({ 'motion': 'G38.4' });\n },\n // G38.5 probe away from workpiece, stop on loss of contact\n 'G38.5': (params) => {\n this.setModalState({ 'motion': 'G38.5' });\n },\n // G54..59: Coordinate System Select\n 'G54': () => {\n this.setModalState({ 'coordinate': 'G54' });\n },\n 'G55': () => {\n this.setModalState({ 'coordinate': 'G55' });\n },\n 'G56': () => {\n this.setModalState({ 'coordinate': 'G56' });\n },\n 'G57': () => {\n this.setModalState({ 'coordinate': 'G57' });\n },\n 'G58': () => {\n this.setModalState({ 'coordinate': 'G58' });\n },\n 'G59': () => {\n this.setModalState({ 'coordinate': 'G59' });\n },\n // G80: Cancel Canned Cycle\n 'G80': () => {\n this.setModalState({ 'motion': 'G80' });\n },\n // G90: Set to Absolute Positioning\n // Example\n // G90\n // All coordinates from now on are absolute relative to the origin of the machine.\n 'G90': () => {\n this.setModalState({ 'distance': 'G90' });\n },\n // G91: Set to Relative Positioning\n // Example\n // G91\n // All coordinates from now on are relative to the last position.\n 'G91': () => {\n this.setModalState({ 'distance': 'G91' });\n },\n // G92: Set Position\n // Parameters\n // This command can be used without any additional parameters.\n // Xnnn new X axis position\n // Ynnn new Y axis position\n // Znnn new Z axis position\n // Example\n // G92 X10\n // Allows programming of absolute zero point, by reseting the current position to the params specified.\n // This would set the machine's X coordinate to 10. No physical motion will occur.\n // A G92 without coordinates will reset all axes to zero.\n 'G92': (params) => {\n let v2 = {\n x: this.translateX(params.X, false),\n y: this.translateY(params.Y, false),\n z: this.translateZ(params.Z, false)\n };\n\n // A G92 without coordinates will reset all axes to zero.\n if (_.isUndefined(params.X) && _.isUndefined(params.Y) && _.isUndefined(params.Z)) {\n v2.x = v2.y = v2.z = 0;\n }\n \n // Update position\n this.setPosition(v2.x, v2.y, v2.z);\n },\n // G93: start the inverse time mode\n // In inverse time feed rate mode, an F word means the move should be completed in\n // [one divided by the F number] minutes.\n // For example, if the F number is 2.0, the move should be completed in half a minute.\n 'G93': () => {\n this.setModalState({ 'feedrate': 'G93' });\n },\n // G94: start the units per minute mode\n // In units per minute feed rate mode, an F word on the line is interpreted to\n // mean the controlled point should move at a certain number of inches per minute,\n // millimeters per minute or degrees per minute, depending upon what length units\n // are being used and which axis or axes are moving.\n 'G94': () => {\n this.setModalState({ 'feedrate': 'G94' });\n }\n };\n\n // @param {object} [options]\n // @param {object} [options.modalState]\n // @param {function} [options.drawLine]\n // @param {function} [options.drawArcCurve]\n constructor(options) {\n options = options || {};\n\n log.debug('GCodeRunner:', options);\n\n this.modalState = _.extend({}, this.modalState, options.modalState);\n\n this.fn = {\n drawLine: options.drawLine || noop,\n drawArcCurve: options.drawArcCurve || noop\n };\n\n return new GCodeInterpreter({ handlers: this.handlers });\n }\n isMetricUnits() { // mm\n return this.modalState.units === 'G21';\n }\n isImperialUnits() { // inch\n return this.modalState.units === 'G20';\n }\n isAbsoluteDistance() {\n return this.modalState.distance === 'G90';\n }\n isRelativeDistance() {\n return this.modalState.distance === 'G91';\n }\n isXYPlane() {\n return this.modalState.plane === 'G17';\n }\n isXZPlane() {\n return this.modalState.plane === 'G18';\n }\n isYZPlane() {\n return this.modalState.plane === 'G19';\n }\n isInverseTimeFeedrateMode() {\n return this.modalState.feedrate === 'G93';\n }\n isUnitsPerMinuteFeedrateMode() {\n return this.modalState.feedrate === 'G94';\n }\n setPosition(x, y, z) {\n this.position.x = _.isNumber(x) ? x : this.position.x;\n this.position.y = _.isNumber(y) ? y : this.position.y;\n this.position.z = _.isNumber(z) ? z : this.position.z;\n }\n setModalState(modalState) {\n _.assign(this.modalState, modalState);\n }\n translateX(x, relative) {\n if (_.isUndefined(relative)) {\n relative = this.isRelativeDistance();\n }\n x = this.isImperialUnits() ? in2mm(x) : x;\n return translatePosition(this.position.x, x, !!relative);\n }\n translateY(y, relative) {\n if (_.isUndefined(relative)) {\n relative = this.isRelativeDistance();\n }\n y = this.isImperialUnits() ? in2mm(y) : y;\n return translatePosition(this.position.y, y, !!relative);\n }\n translateZ(z, relative) {\n if (_.isUndefined(relative)) {\n relative = this.isRelativeDistance();\n }\n z = this.isImperialUnits() ? in2mm(z) : z;\n return translatePosition(this.position.z, z, !!relative);\n }\n translateI(i) {\n return this.translateX(i, true);\n }\n translateJ(j) {\n return this.translateY(j, true);\n }\n translateK(k) {\n return this.translateZ(k, true);\n }\n translateR(r) {\n r = Number(r);\n if (_.isNaN(r)) {\n return 0;\n }\n return this.isImperialUnits() ? in2mm(r) : r;\n }\n}\n\nexport default GCodeRunner;\n",
"var browser = {\n isSafari: function() {\n return (/Safari/).test(navigator.userAgent) && (/Apple Computer/).test(navigator.vendor);\n },\n isOpera: function() {\n return (/OPR/).test(navigator.userAgent) && (/Opera/).test(navigator.vendor);\n },\n isFirefox: function() {\n return (/Firefox/).test(navigator.userAgent);\n },\n // http://stackoverflow.com/questions/10213639/differentiate-ie7-browser-and-browser-in-ie7-compatibility-mode\n // If the browser has \"Trident\" and \"MSIE 7.0\" in the user agent it is most likely a ie>7 in compat mode.\n // No \"trident\" but \"MSIE 7.0\" means most likely a real IE7. \n isIEEdge: function() {\n return (navigator.appName === 'Netscape') && (/Trident\\/\\d/).test(navigator.userAgent);\n },\n isIE: function() {\n return (browser.getIEVersion() > 0);\n },\n // http://msdn.microsoft.com/en-us/library/ie/bg182625(v=vs.110).aspx\n // http://stackoverflow.com/questions/17907445/how-to-detect-ie11\n getIEVersion: function() {\n var rv = -1;\n var ua, re;\n if (navigator.appName === 'Microsoft Internet Explorer') {\n ua = navigator.userAgent;\n re = new RegExp(/MSIE ([0-9]{1,}[\\.0-9]{0,})/);\n if (re.exec(ua) !== null) {\n rv = parseFloat( RegExp.$1 );\n }\n } else if (navigator.appName === 'Netscape') {\n ua = navigator.userAgent;\n re = new RegExp(/Trident\\/.*rv:([0-9]{1,}[\\.0-9]{0,})/);\n if (re.exec(ua) !== null) {\n rv = parseFloat( RegExp.$1 );\n }\n }\n return rv;\n }\n};\n\n// http://stackoverflow.com/questions/11018101/render-image-using-datauri-in-javascript\n// Data URIs must be smaller than 32 KiB in Internet Explorer 8\nbrowser.datauri = {\n // Alternative to Modernizr.datauri.over32kb \n over32kb: ! (browser.isIE() && browser.getIEVersion() < 9)\n};\n\nmodule.exports = browser;\n",
"import i18n from 'i18next';\nimport sha1 from 'sha1';\n\ni18n._ = function() {\n let args = Array.prototype.slice.call(arguments);\n if ((args.length === 0) || (typeof args[0] === 'undefined')) {\n i18n.t.apply(i18n, args);\n return;\n }\n\n let value = args[0];\n let options = args[1] || {};\n let key = sha1(value);\n args[0] = value;\n\n options.defaultValue = value;\n\n return i18n.t(key, options);\n};\n\nexport default i18n;\n",
"/**\n * Libraries\n */\nvar printStackTrace = require('stacktrace');\n\n/**\n * Modules\n */\nvar browser = require('./browser');\n\n// Constants\nvar TRACE = 0,\n DEBUG = 1,\n INFO = 2,\n WARN = 3,\n ERROR = 4,\n NONE = 5,\n SEPARATOR = '\\t';\n\nvar supportSafari = function() {\n var m = navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\.(\\d+)(\\.|\\+|\\s)/);\n if ( ! m) {\n return false;\n }\n return 537.38 <= parseInt(m[1], 10) + (parseInt(m[2], 10) / 100);\n};\n\nvar supportOpera = function() {\n var m = navigator.userAgent.match(/OPR\\/(\\d+)\\./);\n if ( ! m) {\n return false;\n }\n return 15 <= parseInt(m[1], 10);\n};\n\nvar supportFirefox = function() {\n return window.console.firebug || window.console.exception;\n};\n\nvar getISODateTime = function(d) {\n if (typeof d === 'undefined') {\n d = new Date();\n }\n\n function pad(number, length) {\n var str = '' + number;\n while (str.length < length) {\n str = '0' + str;\n }\n return str;\n }\n\n function getTimeZoneDesignator(d) {\n var tz_offset = d.getTimezoneOffset();\n var hour = pad(Math.abs(tz_offset / 60), 2);\n var minute = pad(Math.abs(tz_offset % 60), 2);\n tz_offset = ((tz_offset < 0) ? '+' : '-') + hour + ':' + minute;\n return tz_offset;\n }\n\n return (d.getFullYear() + '-' + pad(d.getMonth() + 1, 2) + '-' + pad(d.getDate(), 2) + 'T' +\n pad(d.getHours(), 2) + ':' + pad(d.getMinutes(), 2) + ':' + pad(d.getSeconds(), 2) +\n getTimeZoneDesignator(d));\n};\n\nvar consoleLogger = function(logger) {\n window.console.assert(typeof logger !== 'undefined', 'logger is undefined');\n window.console.assert(typeof logger.datetime === 'string', 'datetime is not a string');\n window.console.assert(typeof logger.level === 'string', 'level is not a string');\n\n var console = window.console;\n\n if ( ! console) {\n return;\n }\n\n var args = [];\n if (browser.isIE() ||\n (browser.isFirefox() && ! supportFirefox()) ||\n (browser.isOpera() && ! supportOpera()) ||\n (browser.isSafari() && ! supportSafari())) {\n args.push(logger.datetime || '');\n args.push(logger.level || '');\n } else {\n var styles = {\n datetime: 'font-weight: bold; line-height: 20px; padding: 2px 4px; color: #3B5998; background: #EDEFF4',\n level: {\n 'T': 'font-weight: bold; line-height: 20px; padding: 2px 4px; border: 1px solid; color: #4F8A10; background: #DFF2BF',\n 'D': 'font-weight: bold; line-height: 20px; padding: 2px 4px; border: 1px solid; color: #222; background: #F5F5F5',\n 'I': 'font-weight: bold; line-height: 20px; padding: 2px 4px; border: 1px solid; color: #00529B; background: #BDE5F8',\n 'W': 'font-weight: bold; line-height: 20px; padding: 2px 4px; border: 1px solid; color: #9F6000; background: #EFEFB3',\n 'E': 'font-weight: bold; line-height: 20px; padding: 2px 4px; border: 1px solid; color: #D8000C; background: #FFBABA'\n }\n };\n args.push('%c' + logger.datetime + '%c %c' + logger.level + '%c');\n args.push(styles.datetime);\n args.push('');\n args.push(styles.level[logger.level] || '');\n args.push('');\n }\n\n if (logger.prefix) {\n args.push(logger.prefix);\n }\n if (logger.args) {\n args = args.concat(logger.args);\n }\n if (logger.stackTrace) {\n args.push(logger.stackTrace[6]);\n }\n\n try {\n // http://stackoverflow.com/questions/5538972/console-log-apply-not-working-in-ie9\n //\n // console.log.apply not working in Internet Explorer 9 and earlier browser versions\n // Use console.log(message) for IE and console.log.apply(console, arguments) for Safari, Firefox, Chrome, etc.\n if ((browser.isIE() && (browser.getIEVersion() <= 9)) ||\n (browser.isFirefox() && ! supportFirefox())) {\n var message = args.join(' ');\n console.log(message);\n return;\n }\n\n if (typeof console !== 'undefined' && typeof console.log !== 'undefined' && console.log.apply) {\n console.log.apply(console, args);\n }\n }\n catch (e) {\n console.error(e);\n }\n};\n\nvar Log = function() {\n this._prefix = false;\n this._level = DEBUG;\n this._logger = consoleLogger;\n\n return this;\n};\n\nLog.prototype._log = function(level, args) {\n var stackTrace = printStackTrace({\n // stacktrace.js will try to get the source via AJAX to guess anonymous functions.\n // It is necessary to disable AJAX requests in production to avoid unwanted traffic.\n guess: false\n });\n var d = new Date();\n this._logger({\n datetime: getISODateTime(d),\n level: level,\n prefix: this.getPrefix(),\n args: args,\n stackTrace: stackTrace\n });\n};\n\nLog.prototype.setPrefix = function(prefix) {\n if (typeof prefix !== 'undefined') {\n this._prefix = prefix;\n } else {\n this._prefix = false;\n }\n};\n\nLog.prototype.getPrefix = function() {\n return (this._prefix !== false) ? this._prefix : '';\n};\n\nLog.prototype.setLogger = function(logger) {\n if (typeof logger !== 'undefined' && typeof logger === 'function') {\n this._logger = logger;\n } else if (typeof logger !== 'undefined' && typeof logger === 'string') {\n var log_loggers = {\n 'console': consoleLogger\n };\n this._logger = log_loggers[logger];\n\n if (typeof this._logger === 'undefined') {\n this._logger = function nullLogger(logger) { }; // default\n }\n }\n};\n\nLog.prototype.getLogger = function() {\n return this._logger;\n};\n\nLog.prototype.setLevel = function(level) {\n if (typeof level !== 'undefined' && typeof level === 'number') {\n this._level = level;\n } else if (typeof level !== 'undefined' && typeof level === 'string') {\n var log_levels = {\n 'trace': TRACE,\n 'debug': DEBUG,\n 'info': INFO,\n 'warn': WARN,\n 'error': ERROR\n };\n this._level = log_levels[level];\n if (typeof this._level === 'undefined') {\n this._level = NONE; // default\n }\n }\n};\n\nLog.prototype.getLevel = function() {\n return this._level;\n};\n\nLog.prototype.log = function() {\n this._log('', Array.prototype.slice.call(arguments));\n};\n\nLog.prototype.trace = function() {\n var level = this._level;\n if (level <= TRACE) {\n this._log('T', Array.prototype.slice.call(arguments));\n }\n};\n\nLog.prototype.debug = function() {\n if (this._level <= DEBUG) {\n this._log('D', Array.prototype.slice.call(arguments));\n }\n};\n\nLog.prototype.info = function() {\n if (this._level <= INFO) {\n this._log('I', Array.prototype.slice.call(arguments));\n }\n};\n\nLog.prototype.warn = function() {\n if (this._level <= WARN) {\n this._log('W', Array.prototype.slice.call(arguments));\n }\n};\n\nLog.prototype.error = function() {\n if (this._level <= ERROR) {\n this._log('E', Array.prototype.slice.call(arguments));\n }\n};\n\nvar log = new Log();\n\nmodule.exports = {\n setLevel: function() {\n log.setLevel.apply(log, Array.prototype.slice.call(arguments));\n },\n getLevel: function() {\n return log.getLevel.apply(log, Array.prototype.slice.call(arguments));\n },\n setLogger: function() {\n log.setLogger.apply(log, Array.prototype.slice.call(arguments));\n },\n getLogger: function() {\n return log.getLogger.apply(log, Array.prototype.slice.call(arguments));\n },\n setPrefix: function() {\n log.setPrefix.apply(log, Array.prototype.slice.call(arguments));\n },\n getPrefix: function() {\n return log.getPrefix.apply(log, Array.prototype.slice.call(arguments));\n },\n log: function() {\n return log.log.apply(log, Array.prototype.slice.call(arguments));\n },\n trace: function() {\n return log.trace.apply(log, Array.prototype.slice.call(arguments));\n },\n debug: function() {\n return log.debug.apply(log, Array.prototype.slice.call(arguments));\n },\n info: function() {\n return log.info.apply(log, Array.prototype.slice.call(arguments));\n },\n warn: function() {\n return log.warn.apply(log, Array.prototype.slice.call(arguments));\n },\n error: function() {\n return log.error.apply(log, Array.prototype.slice.call(arguments));\n }\n};\n",
"import _ from 'lodash';\nimport pubsub from 'pubsub-js';\nimport socket from './socket';\n\nlet port = '';\nlet listeners = {\n 'write': []\n};\n\npubsub.subscribe('port', (msg, _port) => {\n port = _port || port;\n});\n\nlet on = (msg, callback) => {\n if (!(_.includes(['data', 'write'], msg))) {\n return;\n }\n\n if (!(_.isFunction(callback))) {\n return;\n }\n\n if (msg === 'data') {\n socket.on('serialport:data', callback);\n } else if (msg === 'write') {\n let token = pubsub.subscribe('serialport:write', (msg, data) => {\n callback(data);\n });\n listeners['write'].push({\n token: token,\n callback: callback\n });\n }\n};\n\nlet off = (msg, callback) => {\n if (!(_.includes(['data', 'write'], msg))) {\n return;\n }\n\n if (msg === 'data') {\n socket.off('serialport:data', callback);\n } else if (msg === 'write') {\n listeners['write'] = _.filter(listeners['write'], (o) => {\n if (o.callback === callback) {\n pubsub.unsubscribe('serialport:write', o.token);\n }\n return o.callback !== callback;\n });\n }\n};\n\nlet write = (buffer) => {\n if (!port) {\n return;\n }\n\n pubsub.publishSync.apply(pubsub, ['serialport:write', buffer]);\n\n socket.emit.apply(socket, ['serialport:write', port, buffer]);\n};\n\nlet writeln = (buffer) => {\n if (!port) {\n return;\n }\n\n buffer = ('' + buffer).trim() + '\\n';\n\n pubsub.publishSync.apply(pubsub, ['serialport:write', buffer]);\n\n socket.emit.apply(socket, ['serialport:write', port, buffer]);\n};\n\nexport default {\n on,\n off,\n write,\n writeln\n};\n",
"import log from './log';\n\nlet socket = root.io.connect('');\n\nsocket.on('connect', () => {\n log.debug('socket.io: connected');\n});\nsocket.on('error', () => {\n log.error('socket.io: error');\n socket.destroy();\n});\nsocket.on('close', () => {\n log.debug('socket.io: closed');\n});\n\nexport default socket;\n",
"// jscs:disable\n/*eslint-disable */\n\nvar THREE = require('three');\n\n/**\n * @author qiao / https://github.com/qiao\n * @author mrdoob / http://mrdoob.com\n * @author alteredq / http://alteredqualia.com/\n * @author WestLangley / http://github.com/WestLangley\n * @author erich666 / http://erichaines.com\n */\n/*global THREE, console */\n\n( function () {\n\n\tfunction OrbitConstraint ( object ) {\n\n\t\tthis.object = object;\n\n\t\t// \"target\" sets the location of focus, where the object orbits around\n\t\t// and where it pans with respect to.\n\t\tthis.target = new THREE.Vector3();\n\n\t\t// Limits to how far you can dolly in and out ( PerspectiveCamera only )\n\t\tthis.minDistance = 0;\n\t\tthis.maxDistance = Infinity;\n\n\t\t// Limits to how far you can zoom in and out ( OrthographicCamera only )\n\t\tthis.minZoom = 0;\n\t\tthis.maxZoom = Infinity;\n\n\t\t// How far you can orbit vertically, upper and lower limits.\n\t\t// Range is 0 to Math.PI radians.\n\t\tthis.minPolarAngle = 0; // radians\n\t\tthis.maxPolarAngle = Math.PI; // radians\n\n\t\t// How far you can orbit horizontally, upper and lower limits.\n\t\t// If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ].\n\t\tthis.minAzimuthAngle = - Infinity; // radians\n\t\tthis.maxAzimuthAngle = Infinity; // radians\n\n\t\t// Set to true to enable damping (inertia)\n\t\t// If damping is enabled, you must call controls.update() in your animation loop\n\t\tthis.enableDamping = false;\n\t\tthis.dampingFactor = 0.25;\n\n\t\t////////////\n\t\t// internals\n\n\t\tvar scope = this;\n\n\t\tvar EPS = 0.000001;\n\n\t\t// Current position in spherical coordinate system.\n\t\tvar theta;\n\t\tvar phi;\n\n\t\t// Pending changes\n\t\tvar phiDelta = 0;\n\t\tvar thetaDelta = 0;\n\t\tvar scale = 1;\n\t\tvar panOffset = new THREE.Vector3();\n\t\tvar zoomChanged = false;\n\n\t\t// API\n\n\t\tthis.getPolarAngle = function () {\n\n\t\t\treturn phi;\n\n\t\t};\n\n\t\tthis.getAzimuthalAngle = function () {\n\n\t\t\treturn theta;\n\n\t\t};\n\n\t\tthis.rotateLeft = function ( angle ) {\n\n\t\t\tthetaDelta -= angle;\n\n\t\t};\n\n\t\tthis.rotateUp = function ( angle ) {\n\n\t\t\tphiDelta -= angle;\n\n\t\t};\n\n\t\t// pass in distance in world space to move left\n\t\tthis.panLeft = function() {\n\n\t\t\tvar v = new THREE.Vector3();\n\n\t\t\treturn function panLeft ( distance ) {\n\n\t\t\t\tvar te = this.object.matrix.elements;\n\n\t\t\t\t// get X column of matrix\n\t\t\t\tv.set( te[ 0 ], te[ 1 ], te[ 2 ] );\n\t\t\t\tv.multiplyScalar( - distance );\n\n\t\t\t\tpanOffset.add( v );\n\n\t\t\t};\n\n\t\t}();\n\n\t\t// pass in distance in world space to move up\n\t\tthis.panUp = function() {\n\n\t\t\tvar v = new THREE.Vector3();\n\n\t\t\treturn function panUp ( distance ) {\n\n\t\t\t\tvar te = this.object.matrix.elements;\n\n\t\t\t\t// get Y column of matrix\n\t\t\t\tv.set( te[ 4 ], te[ 5 ], te[ 6 ] );\n\t\t\t\tv.multiplyScalar( distance );\n\n\t\t\t\tpanOffset.add( v );\n\n\t\t\t};\n\n\t\t}();\n\n\t\t// pass in x,y of change desired in pixel space,\n\t\t// right and down are positive\n\t\tthis.pan = function ( deltaX, deltaY, screenWidth, screenHeight ) {\n\n\t\t\tif ( scope.object instanceof THREE.PerspectiveCamera ) {\n\n\t\t\t\t// perspective\n\t\t\t\tvar position = scope.object.position;\n\t\t\t\tvar offset = position.clone().sub( scope.target );\n\t\t\t\tvar targetDistance = offset.length();\n\n\t\t\t\t// half of the fov is center to top of screen\n\t\t\t\ttargetDistance *= Math.tan( ( scope.object.fov / 2 ) * Math.PI / 180.0 );\n\n\t\t\t\t// we actually don't use screenWidth, since perspective camera is fixed to screen height\n\t\t\t\tscope.panLeft( 2 * deltaX * targetDistance / screenHeight );\n\t\t\t\tscope.panUp( 2 * deltaY * targetDistance / screenHeight );\n\n\t\t\t} else if ( scope.object instanceof THREE.OrthographicCamera ) {\n\n\t\t\t\t// orthographic\n\t\t\t\tscope.panLeft( deltaX * ( scope.object.right - scope.object.left ) / screenWidth );\n\t\t\t\tscope.panUp( deltaY * ( scope.object.top - scope.object.bottom ) / screenHeight );\n\n\t\t\t} else {\n\n\t\t\t\t// camera neither orthographic or perspective\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.dollyIn = function ( dollyScale ) {\n\n\t\t\tif ( scope.object instanceof THREE.PerspectiveCamera ) {\n\n\t\t\t\tscale /= dollyScale;\n\n\t\t\t} else if ( scope.object instanceof THREE.OrthographicCamera ) {\n\n\t\t\t\tscope.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom * dollyScale ) );\n\t\t\t\tscope.object.updateProjectionMatrix();\n\t\t\t\tzoomChanged = true;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.dollyOut = function ( dollyScale ) {\n\n\t\t\tif ( scope.object instanceof THREE.PerspectiveCamera ) {\n\n\t\t\t\tscale *= dollyScale;\n\n\t\t\t} else if ( scope.object instanceof THREE.OrthographicCamera ) {\n\n\t\t\t\tscope.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / dollyScale ) );\n\t\t\t\tscope.object.updateProjectionMatrix();\n\t\t\t\tzoomChanged = true;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.update = function() {\n\n\t\t\tvar offset = new THREE.Vector3();\n\n\t\t\t// so camera.up is the orbit axis\n\t\t\tvar quat = new THREE.Quaternion().setFromUnitVectors( object.up, new THREE.Vector3( 0, 1, 0 ) );\n\t\t\tvar quatInverse = quat.clone().inverse();\n\n\t\t\tvar lastPosition = new THREE.Vector3();\n\t\t\tvar lastQuaternion = new THREE.Quaternion();\n\n\t\t\treturn function () {\n\n\t\t\t\tvar position = this.object.position;\n\n\t\t\t\toffset.copy( position ).sub( this.target );\n\n\t\t\t\t// rotate offset to \"y-axis-is-up\" space\n\t\t\t\toffset.applyQuaternion( quat );\n\n\t\t\t\t// angle from z-axis around y-axis\n\n\t\t\t\ttheta = Math.atan2( offset.x, offset.z );\n\n\t\t\t\t// angle from y-axis\n\n\t\t\t\tphi = Math.atan2( Math.sqrt( offset.x * offset.x + offset.z * offset.z ), offset.y );\n\n\t\t\t\ttheta += thetaDelta;\n\t\t\t\tphi += phiDelta;\n\n\t\t\t\t// restrict theta to be between desired limits\n\t\t\t\ttheta = Math.max( this.minAzimuthAngle, Math.min( this.maxAzimuthAngle, theta ) );\n\n\t\t\t\t// restrict phi to be between desired limits\n\t\t\t\tphi = Math.max( this.minPolarAngle, Math.min( this.maxPolarAngle, phi ) );\n\n\t\t\t\t// restrict phi to be betwee EPS and PI-EPS\n\t\t\t\tphi = Math.max( EPS, Math.min( Math.PI - EPS, phi ) );\n\n\t\t\t\tvar radius = offset.length() * scale;\n\n\t\t\t\t// restrict radius to be between desired limits\n\t\t\t\tradius = Math.max( this.minDistance, Math.min( this.maxDistance, radius ) );\n\n\t\t\t\t// move target to panned location\n\t\t\t\tthis.target.add( panOffset );\n\n\t\t\t\toffset.x = radius * Math.sin( phi ) * Math.sin( theta );\n\t\t\t\toffset.y = radius * Math.cos( phi );\n\t\t\t\toffset.z = radius * Math.sin( phi ) * Math.cos( theta );\n\n\t\t\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\t\t\toffset.applyQuaternion( quatInverse );\n\n\t\t\t\tposition.copy( this.target ).add( offset );\n\n\t\t\t\tthis.object.lookAt( this.target );\n\n\t\t\t\tif ( this.enableDamping === true ) {\n\n\t\t\t\t\tthetaDelta *= ( 1 - this.dampingFactor );\n\t\t\t\t\tphiDelta *= ( 1 - this.dampingFactor );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthetaDelta = 0;\n\t\t\t\t\tphiDelta = 0;\n\n\t\t\t\t}\n\n\t\t\t\tscale = 1;\n\t\t\t\tpanOffset.set( 0, 0, 0 );\n\n\t\t\t\t// update condition is:\n\t\t\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n\t\t\t\tif ( zoomChanged ||\n\t\t\t\t\t lastPosition.distanceToSquared( this.object.position ) > EPS ||\n\t\t\t\t 8 * ( 1 - lastQuaternion.dot( this.object.quaternion ) ) > EPS ) {\n\n\t\t\t\t\tlastPosition.copy( this.object.position );\n\t\t\t\t\tlastQuaternion.copy( this.object.quaternion );\n\t\t\t\t\tzoomChanged = false;\n\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t};\n\n\t\t}();\n\n\t};\n\n\n\t// This set of controls performs orbiting, dollying (zooming), and panning. It maintains\n\t// the \"up\" direction as +Y, unlike the TrackballControls. Touch on tablet and phones is\n\t// supported.\n\t//\n\t// Orbit - left mouse / touch: one finger move\n\t// Zoom - middle mouse, or mousewheel / touch: two finger spread or squish\n\t// Pan - right mouse, or arrow keys / touch: three finter swipe\n\n\tTHREE.OrbitControls = function ( object, domElement ) {\n\n\t\tvar constraint = new OrbitConstraint( object );\n\n\t\tthis.domElement = ( domElement !== undefined ) ? domElement : document;\n\n\t\t// API\n\n\t\tObject.defineProperty( this, 'constraint', {\n\n\t\t\tget: function() {\n\n\t\t\t\treturn constraint;\n\n\t\t\t}\n\n\t\t} );\n\n\t\tthis.getPolarAngle = function () {\n\n\t\t\treturn constraint.getPolarAngle();\n\n\t\t};\n\n\t\tthis.getAzimuthalAngle = function () {\n\n\t\t\treturn constraint.getAzimuthalAngle();\n\n\t\t};\n\n\t\t// Set to false to disable this control\n\t\tthis.enabled = true;\n\n\t\t// center is old, deprecated; use \"target\" instead\n\t\tthis.center = this.target;\n\n\t\t// This option actually enables dollying in and out; left as \"zoom\" for\n\t\t// backwards compatibility.\n\t\t// Set to false to disable zooming\n\t\tthis.enableZoom = true;\n\t\tthis.zoomSpeed = 1.0;\n\n\t\t// Set to false to disable rotating\n\t\tthis.enableRotate = true;\n\t\tthis.rotateSpeed = 1.0;\n\n\t\t// Set to false to disable panning\n\t\tthis.enablePan = true;\n\t\tthis.keyPanSpeed = 7.0;\t// pixels moved per arrow key push\n\n\t\t// Set to true to automatically rotate around the target\n\t\t// If auto-rotate is enabled, you must call controls.update() in your animation loop\n\t\tthis.autoRotate = false;\n\t\tthis.autoRotateSpeed = 2.0; // 30 seconds per round when fps is 60\n\n\t\t// Set to false to disable use of the keys\n\t\tthis.enableKeys = true;\n\n\t\t// The four arrow keys\n\t\tthis.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 };\n\n\t\t// Mouse buttons\n\t\tthis.mouseButtons = { ORBIT: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.RIGHT };\n\n\t\t////////////\n\t\t// internals\n\n\t\tvar scope = this;\n\n\t\tvar rotateStart = new THREE.Vector2();\n\t\tvar rotateEnd = new THREE.Vector2();\n\t\tvar rotateDelta = new THREE.Vector2();\n\n\t\tvar panStart = new THREE.Vector2();\n\t\tvar panEnd = new THREE.Vector2();\n\t\tvar panDelta = new THREE.Vector2();\n\n\t\tvar dollyStart = new THREE.Vector2();\n\t\tvar dollyEnd = new THREE.Vector2();\n\t\tvar dollyDelta = new THREE.Vector2();\n\n\t\tvar STATE = { NONE : - 1, ROTATE : 0, DOLLY : 1, PAN : 2, TOUCH_ROTATE : 3, TOUCH_DOLLY : 4, TOUCH_PAN : 5 };\n\n\t\tvar state = STATE.NONE;\n\n\t\t// for reset\n\n\t\tthis.target0 = this.target.clone();\n\t\tthis.position0 = this.object.position.clone();\n\t\tthis.zoom0 = this.object.zoom;\n\n\t\t// events\n\n\t\tvar changeEvent = { type: 'change' };\n\t\tvar startEvent = { type: 'start' };\n\t\tvar endEvent = { type: 'end' };\n\n\t\t// pass in x,y of change desired in pixel space,\n\t\t// right and down are positive\n\t\tfunction pan( deltaX, deltaY ) {\n\n\t\t\tvar element = scope.domElement === document ? scope.domElement.body : scope.domElement;\n\n\t\t\tconstraint.pan( deltaX, deltaY, element.clientWidth, element.clientHeight );\n\n\t\t}\n\n\t\tthis.update = function () {\n\n\t\t\tif ( this.autoRotate && state === STATE.NONE ) {\n\n\t\t\t\tconstraint.rotateLeft( getAutoRotationAngle() );\n\n\t\t\t}\n\n\t\t\tif ( constraint.update() === true ) {\n\n\t\t\t\tthis.dispatchEvent( changeEvent );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.reset = function () {\n\n\t\t\tstate = STATE.NONE;\n\n\t\t\tthis.target.copy( this.target0 );\n\t\t\tthis.object.position.copy( this.position0 );\n\t\t\tthis.object.zoom = this.zoom0;\n\n\t\t\tthis.object.updateProjectionMatrix();\n\t\t\tthis.dispatchEvent( changeEvent );\n\n\t\t\tthis.update();\n\n\t\t};\n\n\t\tfunction getAutoRotationAngle() {\n\n\t\t\treturn 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;\n\n\t\t}\n\n\t\tfunction getZoomScale() {\n\n\t\t\treturn Math.pow( 0.95, scope.zoomSpeed );\n\n\t\t}\n\n\t\tfunction onMouseDown( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.button === scope.mouseButtons.ORBIT ) {\n\n\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\tstate = STATE.ROTATE;\n\n\t\t\t\trotateStart.set( event.clientX, event.clientY );\n\n\t\t\t} else if ( event.button === scope.mouseButtons.ZOOM ) {\n\n\t\t\t\tif ( scope.enableZoom === false ) return;\n\n\t\t\t\tstate = STATE.DOLLY;\n\n\t\t\t\tdollyStart.set( event.clientX, event.clientY );\n\n\t\t\t} else if ( event.button === scope.mouseButtons.PAN ) {\n\n\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\tstate = STATE.PAN;\n\n\t\t\t\tpanStart.set( event.clientX, event.clientY );\n\n\t\t\t}\n\n\t\t\tif ( state !== STATE.NONE ) {\n\n\t\t\t\tdocument.addEventListener( 'mousemove', onMouseMove, false );\n\t\t\t\tdocument.addEventListener( 'mouseup', onMouseUp, false );\n\t\t\t\tscope.dispatchEvent( startEvent );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onMouseMove( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tvar element = scope.domElement === document ? scope.domElement.body : scope.domElement;\n\n\t\t\tif ( state === STATE.ROTATE ) {\n\n\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\trotateEnd.set( event.clientX, event.clientY );\n\t\t\t\trotateDelta.subVectors( rotateEnd, rotateStart );\n\n\t\t\t\t// rotating across whole screen goes 360 degrees around\n\t\t\t\tconstraint.rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed );\n\n\t\t\t\t// rotating up and down along whole screen attempts to go 360, but limited to 180\n\t\t\t\tconstraint.rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight * scope.rotateSpeed );\n\n\t\t\t\trotateStart.copy( rotateEnd );\n\n\t\t\t} else if ( state === STATE.DOLLY ) {\n\n\t\t\t\tif ( scope.enableZoom === false ) return;\n\n\t\t\t\tdollyEnd.set( event.clientX, event.clientY );\n\t\t\t\tdollyDelta.subVectors( dollyEnd, dollyStart );\n\n\t\t\t\tif ( dollyDelta.y > 0 ) {\n\n\t\t\t\t\tconstraint.dollyIn( getZoomScale() );\n\n\t\t\t\t} else if ( dollyDelta.y < 0 ) {\n\n\t\t\t\t\tconstraint.dollyOut( getZoomScale() );\n\n\t\t\t\t}\n\n\t\t\t\tdollyStart.copy( dollyEnd );\n\n\t\t\t} else if ( state === STATE.PAN ) {\n\n\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\tpanEnd.set( event.clientX, event.clientY );\n\t\t\t\tpanDelta.subVectors( panEnd, panStart );\n\n\t\t\t\tpan( panDelta.x, panDelta.y );\n\n\t\t\t\tpanStart.copy( panEnd );\n\n\t\t\t}\n\n\t\t\tif ( state !== STATE.NONE ) scope.update();\n\n\t\t}\n\n\t\tfunction onMouseUp( /* event */ ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tdocument.removeEventListener( 'mousemove', onMouseMove, false );\n\t\t\tdocument.removeEventListener( 'mouseup', onMouseUp, false );\n\t\t\tscope.dispatchEvent( endEvent );\n\t\t\tstate = STATE.NONE;\n\n\t\t}\n\n\t\tfunction onMouseWheel( event ) {\n\n\t\t\tif ( scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE ) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar delta = 0;\n\n\t\t\tif ( event.wheelDelta !== undefined ) {\n\n\t\t\t\t// WebKit / Opera / Explorer 9\n\n\t\t\t\tdelta = event.wheelDelta;\n\n\t\t\t} else if ( event.detail !== undefined ) {\n\n\t\t\t\t// Firefox\n\n\t\t\t\tdelta = - event.detail;\n\n\t\t\t}\n\n\t\t\tif ( delta > 0 ) {\n\n\t\t\t\tconstraint.dollyOut( getZoomScale() );\n\n\t\t\t} else if ( delta < 0 ) {\n\n\t\t\t\tconstraint.dollyIn( getZoomScale() );\n\n\t\t\t}\n\n\t\t\tscope.update();\n\t\t\tscope.dispatchEvent( startEvent );\n\t\t\tscope.dispatchEvent( endEvent );\n\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\n\t\t\tif ( scope.enabled === false || scope.enableKeys === false || scope.enablePan === false ) return;\n\n\t\t\tswitch ( event.keyCode ) {\n\n\t\t\t\tcase scope.keys.UP:\n\t\t\t\t\tpan( 0, scope.keyPanSpeed );\n\t\t\t\t\tscope.update();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.BOTTOM:\n\t\t\t\t\tpan( 0, - scope.keyPanSpeed );\n\t\t\t\t\tscope.update();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.LEFT:\n\t\t\t\t\tpan( scope.keyPanSpeed, 0 );\n\t\t\t\t\tscope.update();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.RIGHT:\n\t\t\t\t\tpan( - scope.keyPanSpeed, 0 );\n\t\t\t\t\tscope.update();\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction touchstart( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tswitch ( event.touches.length ) {\n\n\t\t\t\tcase 1:\t// one-fingered touch: rotate\n\n\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\tstate = STATE.TOUCH_ROTATE;\n\n\t\t\t\t\trotateStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2:\t// two-fingered touch: dolly\n\n\t\t\t\t\tif ( scope.enableZoom === false ) return;\n\n\t\t\t\t\tstate = STATE.TOUCH_DOLLY;\n\n\t\t\t\t\tvar dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;\n\t\t\t\t\tvar dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;\n\t\t\t\t\tvar distance = Math.sqrt( dx * dx + dy * dy );\n\t\t\t\t\tdollyStart.set( 0, distance );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 3: // three-fingered touch: pan\n\n\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\tstate = STATE.TOUCH_PAN;\n\n\t\t\t\t\tpanStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t}\n\n\t\t\tif ( state !== STATE.NONE ) scope.dispatchEvent( startEvent );\n\n\t\t}\n\n\t\tfunction touchmove( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar element = scope.domElement === document ? scope.domElement.body : scope.domElement;\n\n\t\t\tswitch ( event.touches.length ) {\n\n\t\t\t\tcase 1: // one-fingered touch: rotate\n\n\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\t\t\t\t\tif ( state !== STATE.TOUCH_ROTATE ) return;\n\n\t\t\t\t\trotateEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );\n\t\t\t\t\trotateDelta.subVectors( rotateEnd, rotateStart );\n\n\t\t\t\t\t// rotating across whole screen goes 360 degrees around\n\t\t\t\t\tconstraint.rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed );\n\t\t\t\t\t// rotating up and down along whole screen attempts to go 360, but limited to 180\n\t\t\t\t\tconstraint.rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight * scope.rotateSpeed );\n\n\t\t\t\t\trotateStart.copy( rotateEnd );\n\n\t\t\t\t\tscope.update();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2: // two-fingered touch: dolly\n\n\t\t\t\t\tif ( scope.enableZoom === false ) return;\n\t\t\t\t\tif ( state !== STATE.TOUCH_DOLLY ) return;\n\n\t\t\t\t\tvar dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX;\n\t\t\t\t\tvar dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY;\n\t\t\t\t\tvar distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\t\t\t\tdollyEnd.set( 0, distance );\n\t\t\t\t\tdollyDelta.subVectors( dollyEnd, dollyStart );\n\n\t\t\t\t\tif ( dollyDelta.y > 0 ) {\n\n\t\t\t\t\t\tconstraint.dollyOut( getZoomScale() );\n\n\t\t\t\t\t} else if ( dollyDelta.y < 0 ) {\n\n\t\t\t\t\t\tconstraint.dollyIn( getZoomScale() );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tdollyStart.copy( dollyEnd );\n\n\t\t\t\t\tscope.update();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 3: // three-fingered touch: pan\n\n\t\t\t\t\tif ( scope.enablePan === false ) return;\n\t\t\t\t\tif ( state !== STATE.TOUCH_PAN ) return;\n\n\t\t\t\t\tpanEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY );\n\t\t\t\t\tpanDelta.subVectors( panEnd, panStart );\n\n\t\t\t\t\tpan( panDelta.x, panDelta.y );\n\n\t\t\t\t\tpanStart.copy( panEnd );\n\n\t\t\t\t\tscope.update();\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction touchend( /* event */ ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tscope.dispatchEvent( endEvent );\n\t\t\tstate = STATE.NONE;\n\n\t\t}\n\n\t\tfunction contextmenu( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t}\n\n\t\tthis.dispose = function() {\n\n\t\t\tthis.domElement.removeEventListener( 'contextmenu', contextmenu, false );\n\t\t\tthis.domElement.removeEventListener( 'mousedown', onMouseDown, false );\n\t\t\tthis.domElement.removeEventListener( 'mousewheel', onMouseWheel, false );\n\t\t\tthis.domElement.removeEventListener( 'MozMousePixelScroll', onMouseWheel, false ); // firefox\n\n\t\t\tthis.domElement.removeEventListener( 'touchstart', touchstart, false );\n\t\t\tthis.domElement.removeEventListener( 'touchend', touchend, false );\n\t\t\tthis.domElement.removeEventListener( 'touchmove', touchmove, false );\n\n\t\t\tdocument.removeEventListener( 'mousemove', onMouseMove, false );\n\t\t\tdocument.removeEventListener( 'mouseup', onMouseUp, false );\n\n\t\t\twindow.removeEventListener( 'keydown', onKeyDown, false );\n\n\t\t}\n\n\t\tthis.domElement.addEventListener( 'contextmenu', contextmenu, false );\n\n\t\tthis.domElement.addEventListener( 'mousedown', onMouseDown, false );\n\t\tthis.domElement.addEventListener( 'mousewheel', onMouseWheel, false );\n\t\tthis.domElement.addEventListener( 'MozMousePixelScroll', onMouseWheel, false ); // firefox\n\n\t\tthis.domElement.addEventListener( 'touchstart', touchstart, false );\n\t\tthis.domElement.addEventListener( 'touchend', touchend, false );\n\t\tthis.domElement.addEventListener( 'touchmove', touchmove, false );\n\n\t\twindow.addEventListener( 'keydown', onKeyDown, false );\n\n\t\t// force an update at start\n\t\tthis.update();\n\n\t};\n\n\tTHREE.OrbitControls.prototype = Object.create( THREE.EventDispatcher.prototype );\n\tTHREE.OrbitControls.prototype.constructor = THREE.OrbitControls;\n\n\tObject.defineProperties( THREE.OrbitControls.prototype, {\n\n\t\tobject: {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.object;\n\n\t\t\t}\n\n\t\t},\n\n\t\ttarget: {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.target;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: target is now immutable. Use target.set() instead.' );\n\t\t\t\tthis.constraint.target.copy( value );\n\n\t\t\t}\n\n\t\t},\n\n\t\tminDistance : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.minDistance;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.minDistance = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tmaxDistance : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.maxDistance;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.maxDistance = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tminZoom : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.minZoom;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.minZoom = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tmaxZoom : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.maxZoom;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.maxZoom = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tminPolarAngle : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.minPolarAngle;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.minPolarAngle = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tmaxPolarAngle : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.maxPolarAngle;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.maxPolarAngle = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tminAzimuthAngle : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.minAzimuthAngle;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.minAzimuthAngle = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tmaxAzimuthAngle : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.maxAzimuthAngle;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.maxAzimuthAngle = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tenableDamping : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.enableDamping;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.enableDamping = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tdampingFactor : {\n\n\t\t\tget: function () {\n\n\t\t\t\treturn this.constraint.dampingFactor;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tthis.constraint.dampingFactor = value;\n\n\t\t\t}\n\n\t\t},\n\n\t\t// backward compatibility\n\n\t\tnoZoom: {\n\n\t\t\tget: function () {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.' );\n\t\t\t\treturn ! this.enableZoom;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead.' );\n\t\t\t\tthis.enableZoom = ! value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tnoRotate: {\n\n\t\t\tget: function () {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.' );\n\t\t\t\treturn ! this.enableRotate;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead.' );\n\t\t\t\tthis.enableRotate = ! value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tnoPan: {\n\n\t\t\tget: function () {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.' );\n\t\t\t\treturn ! this.enablePan;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead.' );\n\t\t\t\tthis.enablePan = ! value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tnoKeys: {\n\n\t\t\tget: function () {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.' );\n\t\t\t\treturn ! this.enableKeys;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead.' );\n\t\t\t\tthis.enableKeys = ! value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tstaticMoving : {\n\n\t\t\tget: function () {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.' );\n\t\t\t\treturn ! this.constraint.enableDamping;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead.' );\n\t\t\t\tthis.constraint.enableDamping = ! value;\n\n\t\t\t}\n\n\t\t},\n\n\t\tdynamicDampingFactor : {\n\n\t\t\tget: function () {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.' );\n\t\t\t\treturn this.constraint.dampingFactor;\n\n\t\t\t},\n\n\t\t\tset: function ( value ) {\n\n\t\t\t\tconsole.warn( 'THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead.' );\n\t\t\t\tthis.constraint.dampingFactor = value;\n\n\t\t\t}\n\n\t\t}\n\n\t} );\n\n}() );\n\nmodule.exports = THREE.TrackballControls;\n",
"import _ from 'lodash';\n\nlet state;\n\ntry {\n state = _.extend({}, JSON.parse(localStorage.getItem('state') || {}));\n}\ncatch(err) {\n state = {};\n}\n\nconst setState = (key, value) => {\n let result = _.set(state, key, value);\n localStorage.setItem('state', JSON.stringify(state));\n return result;\n};\n\nconst getState = (key, defaultValue) => {\n let value = _.get(state, key);\n return (typeof value !== 'undefined') ? value : defaultValue;\n};\n\nconst clearState = () => {\n localStorage.setItem('state', JSON.stringify({}));\n};\n\nexport default {\n setState: setState,\n getState: getState,\n clearState: clearState\n};\n",
"var css = \"body{min-width:960px}@media (max-width:767px){body{min-width:0}}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}audio,canvas,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{font-size:12px}label,th{font-weight:400}.dropdown-menu{font-size:12px}.navbar-nav>li>a{font-size:14px}.dropdown-menu>li>a:focus{outline:0}.dropdown-header{font-weight:700}table tbody>tr>td,table thead>tr>th{text-align:left;padding:2px 4px}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:1px}.checkbox label,.radio label{line-height:20px}row.row-grid [class*=col-]+[class*=col-]{margin-top:15px}@media (min-width:1200px){row.row-grid [class*=col-lg-]+[class*=col-lg-]{margin-top:0}}@media (min-width:992px){row.row-grid [class*=col-md-]+[class*=col-md-]{margin-top:0}}@media (min-width:768px){row.row-grid [class*=col-sm-]+[class*=col-sm-]{margin-top:0}}.input-group-xs .form-control,.input-group-xs .input-group-addon,.input-group-xs .input-group-btn .btn{height:22px;padding:1px 5px;font-size:12px;line-height:1.5}.row.no-gutter [class*=col-]{padding-right:0;padding-left:0}.wait,.wait *{cursor:wait!important}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:after,.clearfix:before{content:\\\" \\\";display:table}.clearfix:after{clear:both}.nowrap{white-space:nowrap}.noselect{-webkit-touch-callout:none;-khtml-user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.text-overflow-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}html.ie9 .gradient{-webkit-filter:none;filter:none}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}.rotating{-webkit-animation:rotating 2s linear infinite;-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotating{from{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"styles/app.css\"})); module.exports = css;",
"var css = \"@charset \\\"UTF-8\\\";/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css *//*!\\n Ionicons, v2.0.0\\n Created by Ben Sperry for the Ionic Framework, http://ionicons.com/\\n https://twitter.com/benjsperry https://twitter.com/ionicframework\\n MIT License: https://github.com/driftyco/ionicons\\n\\n Android-style icons originally built by Google’s\\n Material Design Icons: https://github.com/google/material-design-icons\\n used under CC BY http://creativecommons.org/licenses/by/4.0/\\n Modified icons to fit ionicon’s grid from original.\\n*/@font-face{font-family:Ionicons;src:url(vendor/Ionicons/fonts/ionicons.eot?v=2.0.0);src:url(vendor/Ionicons/fonts/ionicons.eot?v=2.0.0#iefix) format(\\\"embedded-opentype\\\"),url(vendor/Ionicons/fonts/ionicons.ttf?v=2.0.0) format(\\\"truetype\\\"),url(vendor/Ionicons/fonts/ionicons.woff?v=2.0.0) format(\\\"woff\\\"),url(vendor/Ionicons/fonts/ionicons.svg?v=2.0.0#Ionicons) format(\\\"svg\\\");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-circle:before,.ion-android-add:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-cloud:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done-all:before,.ion-android-done:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite-outline:before,.ion-android-favorite:before,.ion-android-film:before,.ion-android-folder-open:before,.ion-android-folder:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone-off:before,.ion-android-microphone:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-notifications:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person-add:before,.ion-android-person:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove-circle:before,.ion-android-remove:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share-alt:before,.ion-android-share:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace-outline:before,.ion-backspace:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email-unread:before,.ion-email:before,.ion-erlenmeyer-flask-bubbles:before,.ion-erlenmeyer-flask:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash-off:before,.ion-flash:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy-outline:before,.ion-happy:before,.ion-headphone:before,.ion-heart-broken:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios-alarm-outline:before,.ion-ios-alarm:before,.ion-ios-albums-outline:before,.ion-ios-albums:before,.ion-ios-americanfootball-outline:before,.ion-ios-americanfootball:before,.ion-ios-analytics-outline:before,.ion-ios-analytics:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at-outline:before,.ion-ios-at:before,.ion-ios-barcode-outline:before,.ion-ios-barcode:before,.ion-ios-baseball-outline:before,.ion-ios-baseball:before,.ion-ios-basketball-outline:before,.ion-ios-basketball:before,.ion-ios-bell-outline:before,.ion-ios-bell:before,.ion-ios-body-outline:before,.ion-ios-body:before,.ion-ios-bolt-outline:before,.ion-ios-bolt:before,.ion-ios-book-outline:before,.ion-ios-book:before,.ion-ios-bookmarks-outline:before,.ion-ios-bookmarks:before,.ion-ios-box-outline:before,.ion-ios-box:before,.ion-ios-briefcase-outline:before,.ion-ios-briefcase:before,.ion-ios-browsers-outline:before,.ion-ios-browsers:before,.ion-ios-calculator-outline:before,.ion-ios-calculator:before,.ion-ios-calendar-outline:before,.ion-ios-calendar:before,.ion-ios-camera-outline:before,.ion-ios-camera:before,.ion-ios-cart-outline:before,.ion-ios-cart:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatbubble-outline:before,.ion-ios-chatbubble:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-checkmark:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock-outline:before,.ion-ios-clock:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-close:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-outline:before,.ion-ios-cloudy:before,.ion-ios-cog-outline:before,.ion-ios-cog:before,.ion-ios-color-filter-outline:before,.ion-ios-color-filter:before,.ion-ios-color-wand-outline:before,.ion-ios-color-wand:before,.ion-ios-compose-outline:before,.ion-ios-compose:before,.ion-ios-contact-outline:before,.ion-ios-contact:before,.ion-ios-copy-outline:before,.ion-ios-copy:before,.ion-ios-crop-strong:before,.ion-ios-crop:before,.ion-ios-download-outline:before,.ion-ios-download:before,.ion-ios-drag:before,.ion-ios-email-outline:before,.ion-ios-email:before,.ion-ios-eye-outline:before,.ion-ios-eye:before,.ion-ios-fastforward-outline:before,.ion-ios-fastforward:before,.ion-ios-filing-outline:before,.ion-ios-filing:before,.ion-ios-film-outline:before,.ion-ios-film:before,.ion-ios-flag-outline:before,.ion-ios-flag:before,.ion-ios-flame-outline:before,.ion-ios-flame:before,.ion-ios-flask-outline:before,.ion-ios-flask:before,.ion-ios-flower-outline:before,.ion-ios-flower:before,.ion-ios-folder-outline:before,.ion-ios-folder:before,.ion-ios-football-outline:before,.ion-ios-football:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-b-outline:before,.ion-ios-game-controller-b:before,.ion-ios-gear-outline:before,.ion-ios-gear:before,.ion-ios-glasses-outline:before,.ion-ios-glasses:before,.ion-ios-grid-view-outline:before,.ion-ios-grid-view:before,.ion-ios-heart-outline:before,.ion-ios-heart:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-help:before,.ion-ios-home-outline:before,.ion-ios-home:before,.ion-ios-infinite-outline:before,.ion-ios-infinite:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-information:before,.ion-ios-ionic-outline:before,.ion-ios-keypad-outline:before,.ion-ios-keypad:before,.ion-ios-lightbulb-outline:before,.ion-ios-lightbulb:before,.ion-ios-list-outline:before,.ion-ios-list:before,.ion-ios-location-outline:before,.ion-ios-location:before,.ion-ios-locked-outline:before,.ion-ios-locked:before,.ion-ios-loop-strong:before,.ion-ios-loop:before,.ion-ios-medical-outline:before,.ion-ios-medical:before,.ion-ios-medkit-outline:before,.ion-ios-medkit:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-mic:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-minus:before,.ion-ios-monitor-outline:before,.ion-ios-monitor:before,.ion-ios-moon-outline:before,.ion-ios-moon:before,.ion-ios-more-outline:before,.ion-ios-more:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate-outline:before,.ion-ios-navigate:before,.ion-ios-nutrition-outline:before,.ion-ios-nutrition:before,.ion-ios-paper-outline:before,.ion-ios-paper:before,.ion-ios-paperplane-outline:before,.ion-ios-paperplane:before,.ion-ios-partlysunny-outline:before,.ion-ios-partlysunny:before,.ion-ios-pause-outline:before,.ion-ios-pause:before,.ion-ios-paw-outline:before,.ion-ios-paw:before,.ion-ios-people-outline:before,.ion-ios-people:before,.ion-ios-person-outline:before,.ion-ios-person:before,.ion-ios-personadd-outline:before,.ion-ios-personadd:before,.ion-ios-photos-outline:before,.ion-ios-photos:before,.ion-ios-pie-outline:before,.ion-ios-pie:before,.ion-ios-pint-outline:before,.ion-ios-pint:before,.ion-ios-play-outline:before,.ion-ios-play:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-plus:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetags-outline:before,.ion-ios-pricetags:before,.ion-ios-printer-outline:before,.ion-ios-printer:before,.ion-ios-pulse-strong:before,.ion-ios-pulse:before,.ion-ios-rainy-outline:before,.ion-ios-rainy:before,.ion-ios-recording-outline:before,.ion-ios-recording:before,.ion-ios-redo-outline:before,.ion-ios-redo:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-refresh:before,.ion-ios-reload:before,.ion-ios-reverse-camera-outline:before,.ion-ios-reverse-camera:before,.ion-ios-rewind-outline:before,.ion-ios-rewind:before,.ion-ios-rose-outline:before,.ion-ios-rose:before,.ion-ios-search-strong:before,.ion-ios-search:before,.ion-ios-settings-strong:before,.ion-ios-settings:before,.ion-ios-shuffle-strong:before,.ion-ios-shuffle:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipbackward:before,.ion-ios-skipforward-outline:before,.ion-ios-skipforward:before,.ion-ios-snowy:before,.ion-ios-speedometer-outline:before,.ion-ios-speedometer:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-star:before,.ion-ios-stopwatch-outline:before,.ion-ios-stopwatch:before,.ion-ios-sunny-outline:before,.ion-ios-sunny:before,.ion-ios-telephone-outline:before,.ion-ios-telephone:before,.ion-ios-tennisball-outline:before,.ion-ios-tennisball:before,.ion-ios-thunderstorm-outline:before,.ion-ios-thunderstorm:before,.ion-ios-time-outline:before,.ion-ios-time:before,.ion-ios-timer-outline:before,.ion-ios-timer:before,.ion-ios-toggle-outline:before,.ion-ios-toggle:before,.ion-ios-trash-outline:before,.ion-ios-trash:before,.ion-ios-undo-outline:before,.ion-ios-undo:before,.ion-ios-unlocked-outline:before,.ion-ios-unlocked:before,.ion-ios-upload-outline:before,.ion-ios-upload:before,.ion-ios-videocam-outline:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass-outline:before,.ion-ios-wineglass:before,.ion-ios-world-outline:before,.ion-ios-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply-all:before,.ion-reply:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad-outline:before,.ion-sad:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-angular-outline:before,.ion-social-angular:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-chrome-outline:before,.ion-social-chrome:before,.ion-social-codepen-outline:before,.ion-social-codepen:before,.ion-social-css3-outline:before,.ion-social-css3:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-euro-outline:before,.ion-social-euro:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-foursquare-outline:before,.ion-social-foursquare:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-google-outline:before,.ion-social-google:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-html5-outline:before,.ion-social-html5:before,.ion-social-instagram-outline:before,.ion-social-instagram:before,.ion-social-javascript-outline:before,.ion-social-javascript:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-python:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-sass:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-snapchat-outline:before,.ion-social-snapchat:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitch-outline:before,.ion-social-twitch:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-usd-outline:before,.ion-social-usd:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-whatsapp-outline:before,.ion-social-whatsapp:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-yen-outline:before,.ion-social-yen:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-soup-can-outline:before,.ion-soup-can:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle-filled:before,.ion-toggle:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt-outline:before,.ion-tshirt:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:\\\"\\\\f101\\\"}.ion-alert-circled:before{content:\\\"\\\\f100\\\"}.ion-android-add:before{content:\\\"\\\\f2c7\\\"}.ion-android-add-circle:before{content:\\\"\\\\f359\\\"}.ion-android-alarm-clock:before{content:\\\"\\\\f35a\\\"}.ion-android-alert:before{content:\\\"\\\\f35b\\\"}.ion-android-apps:before{content:\\\"\\\\f35c\\\"}.ion-android-archive:before{content:\\\"\\\\f2c9\\\"}.ion-android-arrow-back:before{content:\\\"\\\\f2ca\\\"}.ion-android-arrow-down:before{content:\\\"\\\\f35d\\\"}.ion-android-arrow-dropdown:before{content:\\\"\\\\f35f\\\"}.ion-android-arrow-dropdown-circle:before{content:\\\"\\\\f35e\\\"}.ion-android-arrow-dropleft:before{content:\\\"\\\\f361\\\"}.ion-android-arrow-dropleft-circle:before{content:\\\"\\\\f360\\\"}.ion-android-arrow-dropright:before{content:\\\"\\\\f363\\\"}.ion-android-arrow-dropright-circle:before{content:\\\"\\\\f362\\\"}.ion-android-arrow-dropup:before{content:\\\"\\\\f365\\\"}.ion-android-arrow-dropup-circle:before{content:\\\"\\\\f364\\\"}.ion-android-arrow-forward:before{content:\\\"\\\\f30f\\\"}.ion-android-arrow-up:before{content:\\\"\\\\f366\\\"}.ion-android-attach:before{content:\\\"\\\\f367\\\"}.ion-android-bar:before{content:\\\"\\\\f368\\\"}.ion-android-bicycle:before{content:\\\"\\\\f369\\\"}.ion-android-boat:before{content:\\\"\\\\f36a\\\"}.ion-android-bookmark:before{content:\\\"\\\\f36b\\\"}.ion-android-bulb:before{content:\\\"\\\\f36c\\\"}.ion-android-bus:before{content:\\\"\\\\f36d\\\"}.ion-android-calendar:before{content:\\\"\\\\f2d1\\\"}.ion-android-call:before{content:\\\"\\\\f2d2\\\"}.ion-android-camera:before{content:\\\"\\\\f2d3\\\"}.ion-android-cancel:before{content:\\\"\\\\f36e\\\"}.ion-android-car:before{content:\\\"\\\\f36f\\\"}.ion-android-cart:before{content:\\\"\\\\f370\\\"}.ion-android-chat:before{content:\\\"\\\\f2d4\\\"}.ion-android-checkbox:before{content:\\\"\\\\f374\\\"}.ion-android-checkbox-blank:before{content:\\\"\\\\f371\\\"}.ion-android-checkbox-outline:before{content:\\\"\\\\f373\\\"}.ion-android-checkbox-outline-blank:before{content:\\\"\\\\f372\\\"}.ion-android-checkmark-circle:before{content:\\\"\\\\f375\\\"}.ion-android-clipboard:before{content:\\\"\\\\f376\\\"}.ion-android-close:before{content:\\\"\\\\f2d7\\\"}.ion-android-cloud:before{content:\\\"\\\\f37a\\\"}.ion-android-cloud-circle:before{content:\\\"\\\\f377\\\"}.ion-android-cloud-done:before{content:\\\"\\\\f378\\\"}.ion-android-cloud-outline:before{content:\\\"\\\\f379\\\"}.ion-android-color-palette:before{content:\\\"\\\\f37b\\\"}.ion-android-compass:before{content:\\\"\\\\f37c\\\"}.ion-android-contact:before{content:\\\"\\\\f2d8\\\"}.ion-android-contacts:before{content:\\\"\\\\f2d9\\\"}.ion-android-contract:before{content:\\\"\\\\f37d\\\"}.ion-android-create:before{content:\\\"\\\\f37e\\\"}.ion-android-delete:before{content:\\\"\\\\f37f\\\"}.ion-android-desktop:before{content:\\\"\\\\f380\\\"}.ion-android-document:before{content:\\\"\\\\f381\\\"}.ion-android-done:before{content:\\\"\\\\f383\\\"}.ion-android-done-all:before{content:\\\"\\\\f382\\\"}.ion-android-download:before{content:\\\"\\\\f2dd\\\"}.ion-android-drafts:before{content:\\\"\\\\f384\\\"}.ion-android-exit:before{content:\\\"\\\\f385\\\"}.ion-android-expand:before{content:\\\"\\\\f386\\\"}.ion-android-favorite:before{content:\\\"\\\\f388\\\"}.ion-android-favorite-outline:before{content:\\\"\\\\f387\\\"}.ion-android-film:before{content:\\\"\\\\f389\\\"}.ion-android-folder:before{content:\\\"\\\\f2e0\\\"}.ion-android-folder-open:before{content:\\\"\\\\f38a\\\"}.ion-android-funnel:before{content:\\\"\\\\f38b\\\"}.ion-android-globe:before{content:\\\"\\\\f38c\\\"}.ion-android-hand:before{content:\\\"\\\\f2e3\\\"}.ion-android-hangout:before{content:\\\"\\\\f38d\\\"}.ion-android-happy:before{content:\\\"\\\\f38e\\\"}.ion-android-home:before{content:\\\"\\\\f38f\\\"}.ion-android-image:before{content:\\\"\\\\f2e4\\\"}.ion-android-laptop:before{content:\\\"\\\\f390\\\"}.ion-android-list:before{content:\\\"\\\\f391\\\"}.ion-android-locate:before{content:\\\"\\\\f2e9\\\"}.ion-android-lock:before{content:\\\"\\\\f392\\\"}.ion-android-mail:before{content:\\\"\\\\f2eb\\\"}.ion-android-map:before{content:\\\"\\\\f393\\\"}.ion-android-menu:before{content:\\\"\\\\f394\\\"}.ion-android-microphone:before{content:\\\"\\\\f2ec\\\"}.ion-android-microphone-off:before{content:\\\"\\\\f395\\\"}.ion-android-more-horizontal:before{content:\\\"\\\\f396\\\"}.ion-android-more-vertical:before{content:\\\"\\\\f397\\\"}.ion-android-navigate:before{content:\\\"\\\\f398\\\"}.ion-android-notifications:before{content:\\\"\\\\f39b\\\"}.ion-android-notifications-none:before{content:\\\"\\\\f399\\\"}.ion-android-notifications-off:before{content:\\\"\\\\f39a\\\"}.ion-android-open:before{content:\\\"\\\\f39c\\\"}.ion-android-options:before{content:\\\"\\\\f39d\\\"}.ion-android-people:before{content:\\\"\\\\f39e\\\"}.ion-android-person:before{content:\\\"\\\\f3a0\\\"}.ion-android-person-add:before{content:\\\"\\\\f39f\\\"}.ion-android-phone-landscape:before{content:\\\"\\\\f3a1\\\"}.ion-android-phone-portrait:before{content:\\\"\\\\f3a2\\\"}.ion-android-pin:before{content:\\\"\\\\f3a3\\\"}.ion-android-plane:before{content:\\\"\\\\f3a4\\\"}.ion-android-playstore:before{content:\\\"\\\\f2f0\\\"}.ion-android-print:before{content:\\\"\\\\f3a5\\\"}.ion-android-radio-button-off:before{content:\\\"\\\\f3a6\\\"}.ion-android-radio-button-on:before{content:\\\"\\\\f3a7\\\"}.ion-android-refresh:before{content:\\\"\\\\f3a8\\\"}.ion-android-remove:before{content:\\\"\\\\f2f4\\\"}.ion-android-remove-circle:before{content:\\\"\\\\f3a9\\\"}.ion-android-restaurant:before{content:\\\"\\\\f3aa\\\"}.ion-android-sad:before{content:\\\"\\\\f3ab\\\"}.ion-android-search:before{content:\\\"\\\\f2f5\\\"}.ion-android-send:before{content:\\\"\\\\f2f6\\\"}.ion-android-settings:before{content:\\\"\\\\f2f7\\\"}.ion-android-share:before{content:\\\"\\\\f2f8\\\"}.ion-android-share-alt:before{content:\\\"\\\\f3ac\\\"}.ion-android-star:before{content:\\\"\\\\f2fc\\\"}.ion-android-star-half:before{content:\\\"\\\\f3ad\\\"}.ion-android-star-outline:before{content:\\\"\\\\f3ae\\\"}.ion-android-stopwatch:before{content:\\\"\\\\f2fd\\\"}.ion-android-subway:before{content:\\\"\\\\f3af\\\"}.ion-android-sunny:before{content:\\\"\\\\f3b0\\\"}.ion-android-sync:before{content:\\\"\\\\f3b1\\\"}.ion-android-textsms:before{content:\\\"\\\\f3b2\\\"}.ion-android-time:before{content:\\\"\\\\f3b3\\\"}.ion-android-train:before{content:\\\"\\\\f3b4\\\"}.ion-android-unlock:before{content:\\\"\\\\f3b5\\\"}.ion-android-upload:before{content:\\\"\\\\f3b6\\\"}.ion-android-volume-down:before{content:\\\"\\\\f3b7\\\"}.ion-android-volume-mute:before{content:\\\"\\\\f3b8\\\"}.ion-android-volume-off:before{content:\\\"\\\\f3b9\\\"}.ion-android-volume-up:before{content:\\\"\\\\f3ba\\\"}.ion-android-walk:before{content:\\\"\\\\f3bb\\\"}.ion-android-warning:before{content:\\\"\\\\f3bc\\\"}.ion-android-watch:before{content:\\\"\\\\f3bd\\\"}.ion-android-wifi:before{content:\\\"\\\\f305\\\"}.ion-aperture:before{content:\\\"\\\\f313\\\"}.ion-archive:before{content:\\\"\\\\f102\\\"}.ion-arrow-down-a:before{content:\\\"\\\\f103\\\"}.ion-arrow-down-b:before{content:\\\"\\\\f104\\\"}.ion-arrow-down-c:before{content:\\\"\\\\f105\\\"}.ion-arrow-expand:before{content:\\\"\\\\f25e\\\"}.ion-arrow-graph-down-left:before{content:\\\"\\\\f25f\\\"}.ion-arrow-graph-down-right:before{content:\\\"\\\\f260\\\"}.ion-arrow-graph-up-left:before{content:\\\"\\\\f261\\\"}.ion-arrow-graph-up-right:before{content:\\\"\\\\f262\\\"}.ion-arrow-left-a:before{content:\\\"\\\\f106\\\"}.ion-arrow-left-b:before{content:\\\"\\\\f107\\\"}.ion-arrow-left-c:before{content:\\\"\\\\f108\\\"}.ion-arrow-move:before{content:\\\"\\\\f263\\\"}.ion-arrow-resize:before{content:\\\"\\\\f264\\\"}.ion-arrow-return-left:before{content:\\\"\\\\f265\\\"}.ion-arrow-return-right:before{content:\\\"\\\\f266\\\"}.ion-arrow-right-a:before{content:\\\"\\\\f109\\\"}.ion-arrow-right-b:before{content:\\\"\\\\f10a\\\"}.ion-arrow-right-c:before{content:\\\"\\\\f10b\\\"}.ion-arrow-shrink:before{content:\\\"\\\\f267\\\"}.ion-arrow-swap:before{content:\\\"\\\\f268\\\"}.ion-arrow-up-a:before{content:\\\"\\\\f10c\\\"}.ion-arrow-up-b:before{content:\\\"\\\\f10d\\\"}.ion-arrow-up-c:before{content:\\\"\\\\f10e\\\"}.ion-asterisk:before{content:\\\"\\\\f314\\\"}.ion-at:before{content:\\\"\\\\f10f\\\"}.ion-backspace:before{content:\\\"\\\\f3bf\\\"}.ion-backspace-outline:before{content:\\\"\\\\f3be\\\"}.ion-bag:before{content:\\\"\\\\f110\\\"}.ion-battery-charging:before{content:\\\"\\\\f111\\\"}.ion-battery-empty:before{content:\\\"\\\\f112\\\"}.ion-battery-full:before{content:\\\"\\\\f113\\\"}.ion-battery-half:before{content:\\\"\\\\f114\\\"}.ion-battery-low:before{content:\\\"\\\\f115\\\"}.ion-beaker:before{content:\\\"\\\\f269\\\"}.ion-beer:before{content:\\\"\\\\f26a\\\"}.ion-bluetooth:before{content:\\\"\\\\f116\\\"}.ion-bonfire:before{content:\\\"\\\\f315\\\"}.ion-bookmark:before{content:\\\"\\\\f26b\\\"}.ion-bowtie:before{content:\\\"\\\\f3c0\\\"}.ion-briefcase:before{content:\\\"\\\\f26c\\\"}.ion-bug:before{content:\\\"\\\\f2be\\\"}.ion-calculator:before{content:\\\"\\\\f26d\\\"}.ion-calendar:before{content:\\\"\\\\f117\\\"}.ion-camera:before{content:\\\"\\\\f118\\\"}.ion-card:before{content:\\\"\\\\f119\\\"}.ion-cash:before{content:\\\"\\\\f316\\\"}.ion-chatbox:before{content:\\\"\\\\f11b\\\"}.ion-chatbox-working:before{content:\\\"\\\\f11a\\\"}.ion-chatboxes:before{content:\\\"\\\\f11c\\\"}.ion-chatbubble:before{content:\\\"\\\\f11e\\\"}.ion-chatbubble-working:before{content:\\\"\\\\f11d\\\"}.ion-chatbubbles:before{content:\\\"\\\\f11f\\\"}.ion-checkmark:before{content:\\\"\\\\f122\\\"}.ion-checkmark-circled:before{content:\\\"\\\\f120\\\"}.ion-checkmark-round:before{content:\\\"\\\\f121\\\"}.ion-chevron-down:before{content:\\\"\\\\f123\\\"}.ion-chevron-left:before{content:\\\"\\\\f124\\\"}.ion-chevron-right:before{content:\\\"\\\\f125\\\"}.ion-chevron-up:before{content:\\\"\\\\f126\\\"}.ion-clipboard:before{content:\\\"\\\\f127\\\"}.ion-clock:before{content:\\\"\\\\f26e\\\"}.ion-close:before{content:\\\"\\\\f12a\\\"}.ion-close-circled:before{content:\\\"\\\\f128\\\"}.ion-close-round:before{content:\\\"\\\\f129\\\"}.ion-closed-captioning:before{content:\\\"\\\\f317\\\"}.ion-cloud:before{content:\\\"\\\\f12b\\\"}.ion-code:before{content:\\\"\\\\f271\\\"}.ion-code-download:before{content:\\\"\\\\f26f\\\"}.ion-code-working:before{content:\\\"\\\\f270\\\"}.ion-coffee:before{content:\\\"\\\\f272\\\"}.ion-compass:before{content:\\\"\\\\f273\\\"}.ion-compose:before{content:\\\"\\\\f12c\\\"}.ion-connection-bars:before{content:\\\"\\\\f274\\\"}.ion-contrast:before{content:\\\"\\\\f275\\\"}.ion-crop:before{content:\\\"\\\\f3c1\\\"}.ion-cube:before{content:\\\"\\\\f318\\\"}.ion-disc:before{content:\\\"\\\\f12d\\\"}.ion-document:before{content:\\\"\\\\f12f\\\"}.ion-document-text:before{content:\\\"\\\\f12e\\\"}.ion-drag:before{content:\\\"\\\\f130\\\"}.ion-earth:before{content:\\\"\\\\f276\\\"}.ion-easel:before{content:\\\"\\\\f3c2\\\"}.ion-edit:before{content:\\\"\\\\f2bf\\\"}.ion-egg:before{content:\\\"\\\\f277\\\"}.ion-eject:before{content:\\\"\\\\f131\\\"}.ion-email:before{content:\\\"\\\\f132\\\"}.ion-email-unread:before{content:\\\"\\\\f3c3\\\"}.ion-erlenmeyer-flask:before{content:\\\"\\\\f3c5\\\"}.ion-erlenmeyer-flask-bubbles:before{content:\\\"\\\\f3c4\\\"}.ion-eye:before{content:\\\"\\\\f133\\\"}.ion-eye-disabled:before{content:\\\"\\\\f306\\\"}.ion-female:before{content:\\\"\\\\f278\\\"}.ion-filing:before{content:\\\"\\\\f134\\\"}.ion-film-marker:before{content:\\\"\\\\f135\\\"}.ion-fireball:before{content:\\\"\\\\f319\\\"}.ion-flag:before{content:\\\"\\\\f279\\\"}.ion-flame:before{content:\\\"\\\\f31a\\\"}.ion-flash:before{content:\\\"\\\\f137\\\"}.ion-flash-off:before{content:\\\"\\\\f136\\\"}.ion-folder:before{content:\\\"\\\\f139\\\"}.ion-fork:before{content:\\\"\\\\f27a\\\"}.ion-fork-repo:before{content:\\\"\\\\f2c0\\\"}.ion-forward:before{content:\\\"\\\\f13a\\\"}.ion-funnel:before{content:\\\"\\\\f31b\\\"}.ion-gear-a:before{content:\\\"\\\\f13d\\\"}.ion-gear-b:before{content:\\\"\\\\f13e\\\"}.ion-grid:before{content:\\\"\\\\f13f\\\"}.ion-hammer:before{content:\\\"\\\\f27b\\\"}.ion-happy:before{content:\\\"\\\\f31c\\\"}.ion-happy-outline:before{content:\\\"\\\\f3c6\\\"}.ion-headphone:before{content:\\\"\\\\f140\\\"}.ion-heart:before{content:\\\"\\\\f141\\\"}.ion-heart-broken:before{content:\\\"\\\\f31d\\\"}.ion-help:before{content:\\\"\\\\f143\\\"}.ion-help-buoy:before{content:\\\"\\\\f27c\\\"}.ion-help-circled:before{content:\\\"\\\\f142\\\"}.ion-home:before{content:\\\"\\\\f144\\\"}.ion-icecream:before{content:\\\"\\\\f27d\\\"}.ion-image:before{content:\\\"\\\\f147\\\"}.ion-images:before{content:\\\"\\\\f148\\\"}.ion-information:before{content:\\\"\\\\f14a\\\"}.ion-information-circled:before{content:\\\"\\\\f149\\\"}.ion-ionic:before{content:\\\"\\\\f14b\\\"}.ion-ios-alarm:before{content:\\\"\\\\f3c8\\\"}.ion-ios-alarm-outline:before{content:\\\"\\\\f3c7\\\"}.ion-ios-albums:before{content:\\\"\\\\f3ca\\\"}.ion-ios-albums-outline:before{content:\\\"\\\\f3c9\\\"}.ion-ios-americanfootball:before{content:\\\"\\\\f3cc\\\"}.ion-ios-americanfootball-outline:before{content:\\\"\\\\f3cb\\\"}.ion-ios-analytics:before{content:\\\"\\\\f3ce\\\"}.ion-ios-analytics-outline:before{content:\\\"\\\\f3cd\\\"}.ion-ios-arrow-back:before{content:\\\"\\\\f3cf\\\"}.ion-ios-arrow-down:before{content:\\\"\\\\f3d0\\\"}.ion-ios-arrow-forward:before{content:\\\"\\\\f3d1\\\"}.ion-ios-arrow-left:before{content:\\\"\\\\f3d2\\\"}.ion-ios-arrow-right:before{content:\\\"\\\\f3d3\\\"}.ion-ios-arrow-thin-down:before{content:\\\"\\\\f3d4\\\"}.ion-ios-arrow-thin-left:before{content:\\\"\\\\f3d5\\\"}.ion-ios-arrow-thin-right:before{content:\\\"\\\\f3d6\\\"}.ion-ios-arrow-thin-up:before{content:\\\"\\\\f3d7\\\"}.ion-ios-arrow-up:before{content:\\\"\\\\f3d8\\\"}.ion-ios-at:before{content:\\\"\\\\f3da\\\"}.ion-ios-at-outline:before{content:\\\"\\\\f3d9\\\"}.ion-ios-barcode:before{content:\\\"\\\\f3dc\\\"}.ion-ios-barcode-outline:before{content:\\\"\\\\f3db\\\"}.ion-ios-baseball:before{content:\\\"\\\\f3de\\\"}.ion-ios-baseball-outline:before{content:\\\"\\\\f3dd\\\"}.ion-ios-basketball:before{content:\\\"\\\\f3e0\\\"}.ion-ios-basketball-outline:before{content:\\\"\\\\f3df\\\"}.ion-ios-bell:before{content:\\\"\\\\f3e2\\\"}.ion-ios-bell-outline:before{content:\\\"\\\\f3e1\\\"}.ion-ios-body:before{content:\\\"\\\\f3e4\\\"}.ion-ios-body-outline:before{content:\\\"\\\\f3e3\\\"}.ion-ios-bolt:before{content:\\\"\\\\f3e6\\\"}.ion-ios-bolt-outline:before{content:\\\"\\\\f3e5\\\"}.ion-ios-book:before{content:\\\"\\\\f3e8\\\"}.ion-ios-book-outline:before{content:\\\"\\\\f3e7\\\"}.ion-ios-bookmarks:before{content:\\\"\\\\f3ea\\\"}.ion-ios-bookmarks-outline:before{content:\\\"\\\\f3e9\\\"}.ion-ios-box:before{content:\\\"\\\\f3ec\\\"}.ion-ios-box-outline:before{content:\\\"\\\\f3eb\\\"}.ion-ios-briefcase:before{content:\\\"\\\\f3ee\\\"}.ion-ios-briefcase-outline:before{content:\\\"\\\\f3ed\\\"}.ion-ios-browsers:before{content:\\\"\\\\f3f0\\\"}.ion-ios-browsers-outline:before{content:\\\"\\\\f3ef\\\"}.ion-ios-calculator:before{content:\\\"\\\\f3f2\\\"}.ion-ios-calculator-outline:before{content:\\\"\\\\f3f1\\\"}.ion-ios-calendar:before{content:\\\"\\\\f3f4\\\"}.ion-ios-calendar-outline:before{content:\\\"\\\\f3f3\\\"}.ion-ios-camera:before{content:\\\"\\\\f3f6\\\"}.ion-ios-camera-outline:before{content:\\\"\\\\f3f5\\\"}.ion-ios-cart:before{content:\\\"\\\\f3f8\\\"}.ion-ios-cart-outline:before{content:\\\"\\\\f3f7\\\"}.ion-ios-chatboxes:before{content:\\\"\\\\f3fa\\\"}.ion-ios-chatboxes-outline:before{content:\\\"\\\\f3f9\\\"}.ion-ios-chatbubble:before{content:\\\"\\\\f3fc\\\"}.ion-ios-chatbubble-outline:before{content:\\\"\\\\f3fb\\\"}.ion-ios-checkmark:before{content:\\\"\\\\f3ff\\\"}.ion-ios-checkmark-empty:before{content:\\\"\\\\f3fd\\\"}.ion-ios-checkmark-outline:before{content:\\\"\\\\f3fe\\\"}.ion-ios-circle-filled:before{content:\\\"\\\\f400\\\"}.ion-ios-circle-outline:before{content:\\\"\\\\f401\\\"}.ion-ios-clock:before{content:\\\"\\\\f403\\\"}.ion-ios-clock-outline:before{content:\\\"\\\\f402\\\"}.ion-ios-close:before{content:\\\"\\\\f406\\\"}.ion-ios-close-empty:before{content:\\\"\\\\f404\\\"}.ion-ios-close-outline:before{content:\\\"\\\\f405\\\"}.ion-ios-cloud:before{content:\\\"\\\\f40c\\\"}.ion-ios-cloud-download:before{content:\\\"\\\\f408\\\"}.ion-ios-cloud-download-outline:before{content:\\\"\\\\f407\\\"}.ion-ios-cloud-outline:before{content:\\\"\\\\f409\\\"}.ion-ios-cloud-upload:before{content:\\\"\\\\f40b\\\"}.ion-ios-cloud-upload-outline:before{content:\\\"\\\\f40a\\\"}.ion-ios-cloudy:before{content:\\\"\\\\f410\\\"}.ion-ios-cloudy-night:before{content:\\\"\\\\f40e\\\"}.ion-ios-cloudy-night-outline:before{content:\\\"\\\\f40d\\\"}.ion-ios-cloudy-outline:before{content:\\\"\\\\f40f\\\"}.ion-ios-cog:before{content:\\\"\\\\f412\\\"}.ion-ios-cog-outline:before{content:\\\"\\\\f411\\\"}.ion-ios-color-filter:before{content:\\\"\\\\f414\\\"}.ion-ios-color-filter-outline:before{content:\\\"\\\\f413\\\"}.ion-ios-color-wand:before{content:\\\"\\\\f416\\\"}.ion-ios-color-wand-outline:before{content:\\\"\\\\f415\\\"}.ion-ios-compose:before{content:\\\"\\\\f418\\\"}.ion-ios-compose-outline:before{content:\\\"\\\\f417\\\"}.ion-ios-contact:before{content:\\\"\\\\f41a\\\"}.ion-ios-contact-outline:before{content:\\\"\\\\f419\\\"}.ion-ios-copy:before{content:\\\"\\\\f41c\\\"}.ion-ios-copy-outline:before{content:\\\"\\\\f41b\\\"}.ion-ios-crop:before{content:\\\"\\\\f41e\\\"}.ion-ios-crop-strong:before{content:\\\"\\\\f41d\\\"}.ion-ios-download:before{content:\\\"\\\\f420\\\"}.ion-ios-download-outline:before{content:\\\"\\\\f41f\\\"}.ion-ios-drag:before{content:\\\"\\\\f421\\\"}.ion-ios-email:before{content:\\\"\\\\f423\\\"}.ion-ios-email-outline:before{content:\\\"\\\\f422\\\"}.ion-ios-eye:before{content:\\\"\\\\f425\\\"}.ion-ios-eye-outline:before{content:\\\"\\\\f424\\\"}.ion-ios-fastforward:before{content:\\\"\\\\f427\\\"}.ion-ios-fastforward-outline:before{content:\\\"\\\\f426\\\"}.ion-ios-filing:before{content:\\\"\\\\f429\\\"}.ion-ios-filing-outline:before{content:\\\"\\\\f428\\\"}.ion-ios-film:before{content:\\\"\\\\f42b\\\"}.ion-ios-film-outline:before{content:\\\"\\\\f42a\\\"}.ion-ios-flag:before{content:\\\"\\\\f42d\\\"}.ion-ios-flag-outline:before{content:\\\"\\\\f42c\\\"}.ion-ios-flame:before{content:\\\"\\\\f42f\\\"}.ion-ios-flame-outline:before{content:\\\"\\\\f42e\\\"}.ion-ios-flask:before{content:\\\"\\\\f431\\\"}.ion-ios-flask-outline:before{content:\\\"\\\\f430\\\"}.ion-ios-flower:before{content:\\\"\\\\f433\\\"}.ion-ios-flower-outline:before{content:\\\"\\\\f432\\\"}.ion-ios-folder:before{content:\\\"\\\\f435\\\"}.ion-ios-folder-outline:before{content:\\\"\\\\f434\\\"}.ion-ios-football:before{content:\\\"\\\\f437\\\"}.ion-ios-football-outline:before{content:\\\"\\\\f436\\\"}.ion-ios-game-controller-a:before{content:\\\"\\\\f439\\\"}.ion-ios-game-controller-a-outline:before{content:\\\"\\\\f438\\\"}.ion-ios-game-controller-b:before{content:\\\"\\\\f43b\\\"}.ion-ios-game-controller-b-outline:before{content:\\\"\\\\f43a\\\"}.ion-ios-gear:before{content:\\\"\\\\f43d\\\"}.ion-ios-gear-outline:before{content:\\\"\\\\f43c\\\"}.ion-ios-glasses:before{content:\\\"\\\\f43f\\\"}.ion-ios-glasses-outline:before{content:\\\"\\\\f43e\\\"}.ion-ios-grid-view:before{content:\\\"\\\\f441\\\"}.ion-ios-grid-view-outline:before{content:\\\"\\\\f440\\\"}.ion-ios-heart:before{content:\\\"\\\\f443\\\"}.ion-ios-heart-outline:before{content:\\\"\\\\f442\\\"}.ion-ios-help:before{content:\\\"\\\\f446\\\"}.ion-ios-help-empty:before{content:\\\"\\\\f444\\\"}.ion-ios-help-outline:before{content:\\\"\\\\f445\\\"}.ion-ios-home:before{content:\\\"\\\\f448\\\"}.ion-ios-home-outline:before{content:\\\"\\\\f447\\\"}.ion-ios-infinite:before{content:\\\"\\\\f44a\\\"}.ion-ios-infinite-outline:before{content:\\\"\\\\f449\\\"}.ion-ios-information:before{content:\\\"\\\\f44d\\\"}.ion-ios-information-empty:before{content:\\\"\\\\f44b\\\"}.ion-ios-information-outline:before{content:\\\"\\\\f44c\\\"}.ion-ios-ionic-outline:before{content:\\\"\\\\f44e\\\"}.ion-ios-keypad:before{content:\\\"\\\\f450\\\"}.ion-ios-keypad-outline:before{content:\\\"\\\\f44f\\\"}.ion-ios-lightbulb:before{content:\\\"\\\\f452\\\"}.ion-ios-lightbulb-outline:before{content:\\\"\\\\f451\\\"}.ion-ios-list:before{content:\\\"\\\\f454\\\"}.ion-ios-list-outline:before{content:\\\"\\\\f453\\\"}.ion-ios-location:before{content:\\\"\\\\f456\\\"}.ion-ios-location-outline:before{content:\\\"\\\\f455\\\"}.ion-ios-locked:before{content:\\\"\\\\f458\\\"}.ion-ios-locked-outline:before{content:\\\"\\\\f457\\\"}.ion-ios-loop:before{content:\\\"\\\\f45a\\\"}.ion-ios-loop-strong:before{content:\\\"\\\\f459\\\"}.ion-ios-medical:before{content:\\\"\\\\f45c\\\"}.ion-ios-medical-outline:before{content:\\\"\\\\f45b\\\"}.ion-ios-medkit:before{content:\\\"\\\\f45e\\\"}.ion-ios-medkit-outline:before{content:\\\"\\\\f45d\\\"}.ion-ios-mic:before{content:\\\"\\\\f461\\\"}.ion-ios-mic-off:before{content:\\\"\\\\f45f\\\"}.ion-ios-mic-outline:before{content:\\\"\\\\f460\\\"}.ion-ios-minus:before{content:\\\"\\\\f464\\\"}.ion-ios-minus-empty:before{content:\\\"\\\\f462\\\"}.ion-ios-minus-outline:before{content:\\\"\\\\f463\\\"}.ion-ios-monitor:before{content:\\\"\\\\f466\\\"}.ion-ios-monitor-outline:before{content:\\\"\\\\f465\\\"}.ion-ios-moon:before{content:\\\"\\\\f468\\\"}.ion-ios-moon-outline:before{content:\\\"\\\\f467\\\"}.ion-ios-more:before{content:\\\"\\\\f46a\\\"}.ion-ios-more-outline:before{content:\\\"\\\\f469\\\"}.ion-ios-musical-note:before{content:\\\"\\\\f46b\\\"}.ion-ios-musical-notes:before{content:\\\"\\\\f46c\\\"}.ion-ios-navigate:before{content:\\\"\\\\f46e\\\"}.ion-ios-navigate-outline:before{content:\\\"\\\\f46d\\\"}.ion-ios-nutrition:before{content:\\\"\\\\f470\\\"}.ion-ios-nutrition-outline:before{content:\\\"\\\\f46f\\\"}.ion-ios-paper:before{content:\\\"\\\\f472\\\"}.ion-ios-paper-outline:before{content:\\\"\\\\f471\\\"}.ion-ios-paperplane:before{content:\\\"\\\\f474\\\"}.ion-ios-paperplane-outline:before{content:\\\"\\\\f473\\\"}.ion-ios-partlysunny:before{content:\\\"\\\\f476\\\"}.ion-ios-partlysunny-outline:before{content:\\\"\\\\f475\\\"}.ion-ios-pause:before{content:\\\"\\\\f478\\\"}.ion-ios-pause-outline:before{content:\\\"\\\\f477\\\"}.ion-ios-paw:before{content:\\\"\\\\f47a\\\"}.ion-ios-paw-outline:before{content:\\\"\\\\f479\\\"}.ion-ios-people:before{content:\\\"\\\\f47c\\\"}.ion-ios-people-outline:before{content:\\\"\\\\f47b\\\"}.ion-ios-person:before{content:\\\"\\\\f47e\\\"}.ion-ios-person-outline:before{content:\\\"\\\\f47d\\\"}.ion-ios-personadd:before{content:\\\"\\\\f480\\\"}.ion-ios-personadd-outline:before{content:\\\"\\\\f47f\\\"}.ion-ios-photos:before{content:\\\"\\\\f482\\\"}.ion-ios-photos-outline:before{content:\\\"\\\\f481\\\"}.ion-ios-pie:before{content:\\\"\\\\f484\\\"}.ion-ios-pie-outline:before{content:\\\"\\\\f483\\\"}.ion-ios-pint:before{content:\\\"\\\\f486\\\"}.ion-ios-pint-outline:before{content:\\\"\\\\f485\\\"}.ion-ios-play:before{content:\\\"\\\\f488\\\"}.ion-ios-play-outline:before{content:\\\"\\\\f487\\\"}.ion-ios-plus:before{content:\\\"\\\\f48b\\\"}.ion-ios-plus-empty:before{content:\\\"\\\\f489\\\"}.ion-ios-plus-outline:before{content:\\\"\\\\f48a\\\"}.ion-ios-pricetag:before{content:\\\"\\\\f48d\\\"}.ion-ios-pricetag-outline:before{content:\\\"\\\\f48c\\\"}.ion-ios-pricetags:before{content:\\\"\\\\f48f\\\"}.ion-ios-pricetags-outline:before{content:\\\"\\\\f48e\\\"}.ion-ios-printer:before{content:\\\"\\\\f491\\\"}.ion-ios-printer-outline:before{content:\\\"\\\\f490\\\"}.ion-ios-pulse:before{content:\\\"\\\\f493\\\"}.ion-ios-pulse-strong:before{content:\\\"\\\\f492\\\"}.ion-ios-rainy:before{content:\\\"\\\\f495\\\"}.ion-ios-rainy-outline:before{content:\\\"\\\\f494\\\"}.ion-ios-recording:before{content:\\\"\\\\f497\\\"}.ion-ios-recording-outline:before{content:\\\"\\\\f496\\\"}.ion-ios-redo:before{content:\\\"\\\\f499\\\"}.ion-ios-redo-outline:before{content:\\\"\\\\f498\\\"}.ion-ios-refresh:before{content:\\\"\\\\f49c\\\"}.ion-ios-refresh-empty:before{content:\\\"\\\\f49a\\\"}.ion-ios-refresh-outline:before{content:\\\"\\\\f49b\\\"}.ion-ios-reload:before{content:\\\"\\\\f49d\\\"}.ion-ios-reverse-camera:before{content:\\\"\\\\f49f\\\"}.ion-ios-reverse-camera-outline:before{content:\\\"\\\\f49e\\\"}.ion-ios-rewind:before{content:\\\"\\\\f4a1\\\"}.ion-ios-rewind-outline:before{content:\\\"\\\\f4a0\\\"}.ion-ios-rose:before{content:\\\"\\\\f4a3\\\"}.ion-ios-rose-outline:before{content:\\\"\\\\f4a2\\\"}.ion-ios-search:before{content:\\\"\\\\f4a5\\\"}.ion-ios-search-strong:before{content:\\\"\\\\f4a4\\\"}.ion-ios-settings:before{content:\\\"\\\\f4a7\\\"}.ion-ios-settings-strong:before{content:\\\"\\\\f4a6\\\"}.ion-ios-shuffle:before{content:\\\"\\\\f4a9\\\"}.ion-ios-shuffle-strong:before{content:\\\"\\\\f4a8\\\"}.ion-ios-skipbackward:before{content:\\\"\\\\f4ab\\\"}.ion-ios-skipbackward-outline:before{content:\\\"\\\\f4aa\\\"}.ion-ios-skipforward:before{content:\\\"\\\\f4ad\\\"}.ion-ios-skipforward-outline:before{content:\\\"\\\\f4ac\\\"}.ion-ios-snowy:before{content:\\\"\\\\f4ae\\\"}.ion-ios-speedometer:before{content:\\\"\\\\f4b0\\\"}.ion-ios-speedometer-outline:before{content:\\\"\\\\f4af\\\"}.ion-ios-star:before{content:\\\"\\\\f4b3\\\"}.ion-ios-star-half:before{content:\\\"\\\\f4b1\\\"}.ion-ios-star-outline:before{content:\\\"\\\\f4b2\\\"}.ion-ios-stopwatch:before{content:\\\"\\\\f4b5\\\"}.ion-ios-stopwatch-outline:before{content:\\\"\\\\f4b4\\\"}.ion-ios-sunny:before{content:\\\"\\\\f4b7\\\"}.ion-ios-sunny-outline:before{content:\\\"\\\\f4b6\\\"}.ion-ios-telephone:before{content:\\\"\\\\f4b9\\\"}.ion-ios-telephone-outline:before{content:\\\"\\\\f4b8\\\"}.ion-ios-tennisball:before{content:\\\"\\\\f4bb\\\"}.ion-ios-tennisball-outline:before{content:\\\"\\\\f4ba\\\"}.ion-ios-thunderstorm:before{content:\\\"\\\\f4bd\\\"}.ion-ios-thunderstorm-outline:before{content:\\\"\\\\f4bc\\\"}.ion-ios-time:before{content:\\\"\\\\f4bf\\\"}.ion-ios-time-outline:before{content:\\\"\\\\f4be\\\"}.ion-ios-timer:before{content:\\\"\\\\f4c1\\\"}.ion-ios-timer-outline:before{content:\\\"\\\\f4c0\\\"}.ion-ios-toggle:before{content:\\\"\\\\f4c3\\\"}.ion-ios-toggle-outline:before{content:\\\"\\\\f4c2\\\"}.ion-ios-trash:before{content:\\\"\\\\f4c5\\\"}.ion-ios-trash-outline:before{content:\\\"\\\\f4c4\\\"}.ion-ios-undo:before{content:\\\"\\\\f4c7\\\"}.ion-ios-undo-outline:before{content:\\\"\\\\f4c6\\\"}.ion-ios-unlocked:before{content:\\\"\\\\f4c9\\\"}.ion-ios-unlocked-outline:before{content:\\\"\\\\f4c8\\\"}.ion-ios-upload:before{content:\\\"\\\\f4cb\\\"}.ion-ios-upload-outline:before{content:\\\"\\\\f4ca\\\"}.ion-ios-videocam:before{content:\\\"\\\\f4cd\\\"}.ion-ios-videocam-outline:before{content:\\\"\\\\f4cc\\\"}.ion-ios-volume-high:before{content:\\\"\\\\f4ce\\\"}.ion-ios-volume-low:before{content:\\\"\\\\f4cf\\\"}.ion-ios-wineglass:before{content:\\\"\\\\f4d1\\\"}.ion-ios-wineglass-outline:before{content:\\\"\\\\f4d0\\\"}.ion-ios-world:before{content:\\\"\\\\f4d3\\\"}.ion-ios-world-outline:before{content:\\\"\\\\f4d2\\\"}.ion-ipad:before{content:\\\"\\\\f1f9\\\"}.ion-iphone:before{content:\\\"\\\\f1fa\\\"}.ion-ipod:before{content:\\\"\\\\f1fb\\\"}.ion-jet:before{content:\\\"\\\\f295\\\"}.ion-key:before{content:\\\"\\\\f296\\\"}.ion-knife:before{content:\\\"\\\\f297\\\"}.ion-laptop:before{content:\\\"\\\\f1fc\\\"}.ion-leaf:before{content:\\\"\\\\f1fd\\\"}.ion-levels:before{content:\\\"\\\\f298\\\"}.ion-lightbulb:before{content:\\\"\\\\f299\\\"}.ion-link:before{content:\\\"\\\\f1fe\\\"}.ion-load-a:before{content:\\\"\\\\f29a\\\"}.ion-load-b:before{content:\\\"\\\\f29b\\\"}.ion-load-c:before{content:\\\"\\\\f29c\\\"}.ion-load-d:before{content:\\\"\\\\f29d\\\"}.ion-location:before{content:\\\"\\\\f1ff\\\"}.ion-lock-combination:before{content:\\\"\\\\f4d4\\\"}.ion-locked:before{content:\\\"\\\\f200\\\"}.ion-log-in:before{content:\\\"\\\\f29e\\\"}.ion-log-out:before{content:\\\"\\\\f29f\\\"}.ion-loop:before{content:\\\"\\\\f201\\\"}.ion-magnet:before{content:\\\"\\\\f2a0\\\"}.ion-male:before{content:\\\"\\\\f2a1\\\"}.ion-man:before{content:\\\"\\\\f202\\\"}.ion-map:before{content:\\\"\\\\f203\\\"}.ion-medkit:before{content:\\\"\\\\f2a2\\\"}.ion-merge:before{content:\\\"\\\\f33f\\\"}.ion-mic-a:before{content:\\\"\\\\f204\\\"}.ion-mic-b:before{content:\\\"\\\\f205\\\"}.ion-mic-c:before{content:\\\"\\\\f206\\\"}.ion-minus:before{content:\\\"\\\\f209\\\"}.ion-minus-circled:before{content:\\\"\\\\f207\\\"}.ion-minus-round:before{content:\\\"\\\\f208\\\"}.ion-model-s:before{content:\\\"\\\\f2c1\\\"}.ion-monitor:before{content:\\\"\\\\f20a\\\"}.ion-more:before{content:\\\"\\\\f20b\\\"}.ion-mouse:before{content:\\\"\\\\f340\\\"}.ion-music-note:before{content:\\\"\\\\f20c\\\"}.ion-navicon:before{content:\\\"\\\\f20e\\\"}.ion-navicon-round:before{content:\\\"\\\\f20d\\\"}.ion-navigate:before{content:\\\"\\\\f2a3\\\"}.ion-network:before{content:\\\"\\\\f341\\\"}.ion-no-smoking:before{content:\\\"\\\\f2c2\\\"}.ion-nuclear:before{content:\\\"\\\\f2a4\\\"}.ion-outlet:before{content:\\\"\\\\f342\\\"}.ion-paintbrush:before{content:\\\"\\\\f4d5\\\"}.ion-paintbucket:before{content:\\\"\\\\f4d6\\\"}.ion-paper-airplane:before{content:\\\"\\\\f2c3\\\"}.ion-paperclip:before{content:\\\"\\\\f20f\\\"}.ion-pause:before{content:\\\"\\\\f210\\\"}.ion-person:before{content:\\\"\\\\f213\\\"}.ion-person-add:before{content:\\\"\\\\f211\\\"}.ion-person-stalker:before{content:\\\"\\\\f212\\\"}.ion-pie-graph:before{content:\\\"\\\\f2a5\\\"}.ion-pin:before{content:\\\"\\\\f2a6\\\"}.ion-pinpoint:before{content:\\\"\\\\f2a7\\\"}.ion-pizza:before{content:\\\"\\\\f2a8\\\"}.ion-plane:before{content:\\\"\\\\f214\\\"}.ion-planet:before{content:\\\"\\\\f343\\\"}.ion-play:before{content:\\\"\\\\f215\\\"}.ion-playstation:before{content:\\\"\\\\f30a\\\"}.ion-plus:before{content:\\\"\\\\f218\\\"}.ion-plus-circled:before{content:\\\"\\\\f216\\\"}.ion-plus-round:before{content:\\\"\\\\f217\\\"}.ion-podium:before{content:\\\"\\\\f344\\\"}.ion-pound:before{content:\\\"\\\\f219\\\"}.ion-power:before{content:\\\"\\\\f2a9\\\"}.ion-pricetag:before{content:\\\"\\\\f2aa\\\"}.ion-pricetags:before{content:\\\"\\\\f2ab\\\"}.ion-printer:before{content:\\\"\\\\f21a\\\"}.ion-pull-request:before{content:\\\"\\\\f345\\\"}.ion-qr-scanner:before{content:\\\"\\\\f346\\\"}.ion-quote:before{content:\\\"\\\\f347\\\"}.ion-radio-waves:before{content:\\\"\\\\f2ac\\\"}.ion-record:before{content:\\\"\\\\f21b\\\"}.ion-refresh:before{content:\\\"\\\\f21c\\\"}.ion-reply:before{content:\\\"\\\\f21e\\\"}.ion-reply-all:before{content:\\\"\\\\f21d\\\"}.ion-ribbon-a:before{content:\\\"\\\\f348\\\"}.ion-ribbon-b:before{content:\\\"\\\\f349\\\"}.ion-sad:before{content:\\\"\\\\f34a\\\"}.ion-sad-outline:before{content:\\\"\\\\f4d7\\\"}.ion-scissors:before{content:\\\"\\\\f34b\\\"}.ion-search:before{content:\\\"\\\\f21f\\\"}.ion-settings:before{content:\\\"\\\\f2ad\\\"}.ion-share:before{content:\\\"\\\\f220\\\"}.ion-shuffle:before{content:\\\"\\\\f221\\\"}.ion-skip-backward:before{content:\\\"\\\\f222\\\"}.ion-skip-forward:before{content:\\\"\\\\f223\\\"}.ion-social-android:before{content:\\\"\\\\f225\\\"}.ion-social-android-outline:before{content:\\\"\\\\f224\\\"}.ion-social-angular:before{content:\\\"\\\\f4d9\\\"}.ion-social-angular-outline:before{content:\\\"\\\\f4d8\\\"}.ion-social-apple:before{content:\\\"\\\\f227\\\"}.ion-social-apple-outline:before{content:\\\"\\\\f226\\\"}.ion-social-bitcoin:before{content:\\\"\\\\f2af\\\"}.ion-social-bitcoin-outline:before{content:\\\"\\\\f2ae\\\"}.ion-social-buffer:before{content:\\\"\\\\f229\\\"}.ion-social-buffer-outline:before{content:\\\"\\\\f228\\\"}.ion-social-chrome:before{content:\\\"\\\\f4db\\\"}.ion-social-chrome-outline:before{content:\\\"\\\\f4da\\\"}.ion-social-codepen:before{content:\\\"\\\\f4dd\\\"}.ion-social-codepen-outline:before{content:\\\"\\\\f4dc\\\"}.ion-social-css3:before{content:\\\"\\\\f4df\\\"}.ion-social-css3-outline:before{content:\\\"\\\\f4de\\\"}.ion-social-designernews:before{content:\\\"\\\\f22b\\\"}.ion-social-designernews-outline:before{content:\\\"\\\\f22a\\\"}.ion-social-dribbble:before{content:\\\"\\\\f22d\\\"}.ion-social-dribbble-outline:before{content:\\\"\\\\f22c\\\"}.ion-social-dropbox:before{content:\\\"\\\\f22f\\\"}.ion-social-dropbox-outline:before{content:\\\"\\\\f22e\\\"}.ion-social-euro:before{content:\\\"\\\\f4e1\\\"}.ion-social-euro-outline:before{content:\\\"\\\\f4e0\\\"}.ion-social-facebook:before{content:\\\"\\\\f231\\\"}.ion-social-facebook-outline:before{content:\\\"\\\\f230\\\"}.ion-social-foursquare:before{content:\\\"\\\\f34d\\\"}.ion-social-foursquare-outline:before{content:\\\"\\\\f34c\\\"}.ion-social-freebsd-devil:before{content:\\\"\\\\f2c4\\\"}.ion-social-github:before{content:\\\"\\\\f233\\\"}.ion-social-github-outline:before{content:\\\"\\\\f232\\\"}.ion-social-google:before{content:\\\"\\\\f34f\\\"}.ion-social-google-outline:before{content:\\\"\\\\f34e\\\"}.ion-social-googleplus:before{content:\\\"\\\\f235\\\"}.ion-social-googleplus-outline:before{content:\\\"\\\\f234\\\"}.ion-social-hackernews:before{content:\\\"\\\\f237\\\"}.ion-social-hackernews-outline:before{content:\\\"\\\\f236\\\"}.ion-social-html5:before{content:\\\"\\\\f4e3\\\"}.ion-social-html5-outline:before{content:\\\"\\\\f4e2\\\"}.ion-social-instagram:before{content:\\\"\\\\f351\\\"}.ion-social-instagram-outline:before{content:\\\"\\\\f350\\\"}.ion-social-javascript:before{content:\\\"\\\\f4e5\\\"}.ion-social-javascript-outline:before{content:\\\"\\\\f4e4\\\"}.ion-social-linkedin:before{content:\\\"\\\\f239\\\"}.ion-social-linkedin-outline:before{content:\\\"\\\\f238\\\"}.ion-social-markdown:before{content:\\\"\\\\f4e6\\\"}.ion-social-nodejs:before{content:\\\"\\\\f4e7\\\"}.ion-social-octocat:before{content:\\\"\\\\f4e8\\\"}.ion-social-pinterest:before{content:\\\"\\\\f2b1\\\"}.ion-social-pinterest-outline:before{content:\\\"\\\\f2b0\\\"}.ion-social-python:before{content:\\\"\\\\f4e9\\\"}.ion-social-reddit:before{content:\\\"\\\\f23b\\\"}.ion-social-reddit-outline:before{content:\\\"\\\\f23a\\\"}.ion-social-rss:before{content:\\\"\\\\f23d\\\"}.ion-social-rss-outline:before{content:\\\"\\\\f23c\\\"}.ion-social-sass:before{content:\\\"\\\\f4ea\\\"}.ion-social-skype:before{content:\\\"\\\\f23f\\\"}.ion-social-skype-outline:before{content:\\\"\\\\f23e\\\"}.ion-social-snapchat:before{content:\\\"\\\\f4ec\\\"}.ion-social-snapchat-outline:before{content:\\\"\\\\f4eb\\\"}.ion-social-tumblr:before{content:\\\"\\\\f241\\\"}.ion-social-tumblr-outline:before{content:\\\"\\\\f240\\\"}.ion-social-tux:before{content:\\\"\\\\f2c5\\\"}.ion-social-twitch:before{content:\\\"\\\\f4ee\\\"}.ion-social-twitch-outline:before{content:\\\"\\\\f4ed\\\"}.ion-social-twitter:before{content:\\\"\\\\f243\\\"}.ion-social-twitter-outline:before{content:\\\"\\\\f242\\\"}.ion-social-usd:before{content:\\\"\\\\f353\\\"}.ion-social-usd-outline:before{content:\\\"\\\\f352\\\"}.ion-social-vimeo:before{content:\\\"\\\\f245\\\"}.ion-social-vimeo-outline:before{content:\\\"\\\\f244\\\"}.ion-social-whatsapp:before{content:\\\"\\\\f4f0\\\"}.ion-social-whatsapp-outline:before{content:\\\"\\\\f4ef\\\"}.ion-social-windows:before{content:\\\"\\\\f247\\\"}.ion-social-windows-outline:before{content:\\\"\\\\f246\\\"}.ion-social-wordpress:before{content:\\\"\\\\f249\\\"}.ion-social-wordpress-outline:before{content:\\\"\\\\f248\\\"}.ion-social-yahoo:before{content:\\\"\\\\f24b\\\"}.ion-social-yahoo-outline:before{content:\\\"\\\\f24a\\\"}.ion-social-yen:before{content:\\\"\\\\f4f2\\\"}.ion-social-yen-outline:before{content:\\\"\\\\f4f1\\\"}.ion-social-youtube:before{content:\\\"\\\\f24d\\\"}.ion-social-youtube-outline:before{content:\\\"\\\\f24c\\\"}.ion-soup-can:before{content:\\\"\\\\f4f4\\\"}.ion-soup-can-outline:before{content:\\\"\\\\f4f3\\\"}.ion-speakerphone:before{content:\\\"\\\\f2b2\\\"}.ion-speedometer:before{content:\\\"\\\\f2b3\\\"}.ion-spoon:before{content:\\\"\\\\f2b4\\\"}.ion-star:before{content:\\\"\\\\f24e\\\"}.ion-stats-bars:before{content:\\\"\\\\f2b5\\\"}.ion-steam:before{content:\\\"\\\\f30b\\\"}.ion-stop:before{content:\\\"\\\\f24f\\\"}.ion-thermometer:before{content:\\\"\\\\f2b6\\\"}.ion-thumbsdown:before{content:\\\"\\\\f250\\\"}.ion-thumbsup:before{content:\\\"\\\\f251\\\"}.ion-toggle:before{content:\\\"\\\\f355\\\"}.ion-toggle-filled:before{content:\\\"\\\\f354\\\"}.ion-transgender:before{content:\\\"\\\\f4f5\\\"}.ion-trash-a:before{content:\\\"\\\\f252\\\"}.ion-trash-b:before{content:\\\"\\\\f253\\\"}.ion-trophy:before{content:\\\"\\\\f356\\\"}.ion-tshirt:before{content:\\\"\\\\f4f7\\\"}.ion-tshirt-outline:before{content:\\\"\\\\f4f6\\\"}.ion-umbrella:before{content:\\\"\\\\f2b7\\\"}.ion-university:before{content:\\\"\\\\f357\\\"}.ion-unlocked:before{content:\\\"\\\\f254\\\"}.ion-upload:before{content:\\\"\\\\f255\\\"}.ion-usb:before{content:\\\"\\\\f2b8\\\"}.ion-videocamera:before{content:\\\"\\\\f256\\\"}.ion-volume-high:before{content:\\\"\\\\f257\\\"}.ion-volume-low:before{content:\\\"\\\\f258\\\"}.ion-volume-medium:before{content:\\\"\\\\f259\\\"}.ion-volume-mute:before{content:\\\"\\\\f25a\\\"}.ion-wand:before{content:\\\"\\\\f358\\\"}.ion-waterdrop:before{content:\\\"\\\\f25b\\\"}.ion-wifi:before{content:\\\"\\\\f25c\\\"}.ion-wineglass:before{content:\\\"\\\\f2b9\\\"}.ion-woman:before{content:\\\"\\\\f25d\\\"}.ion-wrench:before{content:\\\"\\\\f2ba\\\"}.ion-xbox:before{content:\\\"\\\\f30c\\\"}/*!\\n * Bootstrap v3.3.6 (http://getbootstrap.com)\\n * Copyright 2011-2015 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n *//*! 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}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}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}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-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[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-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}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^=\\\"#\\\"]:after,a[href^=\\\"javascript:\\\"]: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(vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot);src:url(vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff) format('woff'),url(vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(vendor/bootstrap/dist/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,.glyphicon-btc:before,.glyphicon-xbt:before{content:\\\"\\\\e227\\\"}.glyphicon-jpy:before,.glyphicon-yen:before{content:\\\"\\\\00a5\\\"}.glyphicon-rub:before,.glyphicon-ruble: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\\\"}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}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:dotted thin;outline:-webkit-focus-ring-color auto 5px;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,.container-fluid{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}}.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,.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;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;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=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].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-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}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,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}.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:dotted thin;outline:-webkit-focus-ring-color auto 5px;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.active,.btn-default:active,.btn-default:hover,.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.active,.btn-primary:active,.btn-primary:hover,.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.active,.btn-success:active,.btn-success:hover,.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.active,.btn-info:active,.btn-info:hover,.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.active,.btn-warning:active,.btn-warning:hover,.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.active,.btn-danger:active,.btn-danger:hover,.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-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}.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}.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-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 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;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:8px -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-radius:4px 4px 0 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-nav>li>a,.navbar-default .navbar-text{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-nav>li>a,.navbar-inverse .navbar-text{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}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{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-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,.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-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,.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>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-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>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,.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-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:transparent;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:transparent;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-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-print,.visible-print-block,.visible-print-inline,.visible-print-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.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}}@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}}@media print{.visible-print-block{display:block!important}}@media print{.visible-print-inline{display:inline!important}}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}.Select{position:relative}.Select,.Select div,.Select input,.Select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.Select.is-disabled>.Select-control{background-color:#f6f6f6}.Select.is-disabled .Select-arrow-zone{cursor:default;pointer-events:none}.Select-control{background-color:#fff;border-radius:4px;border:1px solid #ccc;color:#333;cursor:default;display:table;height:36px;outline:0;overflow:hidden;position:relative;width:100%}.Select-control:hover{box-shadow:0 1px 0 rgba(0,0,0,.06)}.is-searchable.is-open>.Select-control{cursor:text}.is-open>.Select-control{border-bottom-right-radius:0;border-bottom-left-radius:0;background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.is-open>.Select-control>.Select-arrow{border-color:transparent transparent #999;border-width:0 5px 5px}.is-searchable.is-focused:not(.is-open)>.Select-control{cursor:text}.is-focused:not(.is-open)>.Select-control{border-color:#08c #0099e6 #0099e6;box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 0 5px -1px rgba(0,136,204,.5)}.Select-placeholder{bottom:0;color:#aaa;left:0;line-height:34px;padding-left:10px;padding-right:10px;position:absolute;right:0;top:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-value>.Select-control>.Select-placeholder{color:#333}.Select-value{color:#aaa;left:0;padding:8px 52px 8px 10px;position:absolute;right:-15px;top:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.has-value>.Select-control>.Select-value{color:#333}.Select-input{height:34px;padding-left:10px;padding-right:10px;vertical-align:middle}.Select-input>input{background:none;border:0;box-shadow:none;cursor:default;display:inline-block;font-family:inherit;font-size:inherit;height:34px;margin:0;outline:0;padding:0;-webkit-appearance:none}.is-focused .Select-input>input{cursor:text}.Select-control:not(.is-searchable)>.Select-input{outline:0}.Select-loading-zone{cursor:pointer;display:table-cell;position:relative;text-align:center;vertical-align:middle;width:16px}.Select-loading{-webkit-animation:Select-animation-spin 400ms infinite linear;-o-animation:Select-animation-spin 400ms infinite linear;animation:Select-animation-spin 400ms infinite linear;width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid #ccc;border-right-color:#333;display:inline-block;position:relative;vertical-align:middle}.Select-clear-zone{-webkit-animation:Select-animation-fadeIn 200ms;-o-animation:Select-animation-fadeIn 200ms;animation:Select-animation-fadeIn 200ms;color:#999;cursor:pointer;display:table-cell;position:relative;text-align:center;vertical-align:middle;width:17px}.Select-clear-zone:hover{color:#D0021B}.Select-clear{display:inline-block;font-size:18px;line-height:1}.Select--multi .Select-clear-zone{width:17px}.Select-arrow-zone{cursor:pointer;display:table-cell;position:relative;text-align:center;vertical-align:middle;width:25px;padding-right:5px}.Select-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px;display:inline-block;height:0;width:0}.Select-arrow-zone:hover>.Select-arrow,.is-open .Select-arrow{border-top-color:#666}@-webkit-keyframes Select-animation-fadeIn{from{opacity:0}to{opacity:1}}@keyframes Select-animation-fadeIn{from{opacity:0}to{opacity:1}}.Select-menu-outer{border-bottom-right-radius:4px;border-bottom-left-radius:4px;background-color:#fff;border:1px solid #ccc;border-top-color:#e6e6e6;box-shadow:0 1px 0 rgba(0,0,0,.06);box-sizing:border-box;margin-top:-1px;max-height:200px;position:absolute;top:100%;width:100%;z-index:1000;-webkit-overflow-scrolling:touch}.Select-menu{max-height:198px;overflow-y:auto}.Select-option{box-sizing:border-box;color:#666;cursor:pointer;display:block;padding:8px 10px}.Select-option:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.Select-option.is-focused{background-color:#f2f9fc;color:#333}.Select-option.is-disabled{color:#ccc;cursor:not-allowed}.Select-noresults,.Select-search-prompt,.Select-searching{box-sizing:border-box;color:#999;cursor:default;display:block;padding:8px 10px}.Select--multi .Select-input{vertical-align:middle;margin-left:10px;padding:0}.Select--multi.has-value .Select-input{margin-left:5px}.Select-item{background-color:#f2f9fc;border-radius:2px;border:1px solid #c9e6f2;color:#08c;display:inline-block;font-size:.9em;margin-left:5px;margin-top:5px;vertical-align:top}.Select-item-icon,.Select-item-label{display:inline-block;vertical-align:middle}.Select-item-label{border-bottom-right-radius:2px;border-top-right-radius:2px;cursor:default;padding:2px 5px}.Select-item-label .Select-item-label__a{color:#08c;cursor:pointer}.Select-item-icon{cursor:pointer;border-bottom-left-radius:2px;border-top-left-radius:2px;border-right:1px solid #c9e6f2;padding:1px 5px 3px}.Select-item-icon:focus,.Select-item-icon:hover{background-color:#ddeff7;color:#0077b3}.Select-item-icon:active{background-color:#c9e6f2}.Select--multi.is-disabled .Select-item{background-color:#f2f2f2;border:1px solid #d9d9d9;color:#888}.Select--multi.is-disabled .Select-item-icon{cursor:not-allowed;border-right:1px solid #d9d9d9}.Select--multi.is-disabled .Select-item-icon:active,.Select--multi.is-disabled .Select-item-icon:focus,.Select--multi.is-disabled .Select-item-icon:hover{background-color:#f2f2f2}@keyframes Select-animation-spin{to{transform:rotate(1turn)}}@-webkit-keyframes Select-animation-spin{to{-webkit-transform:rotate(1turn)}}.public_Scrollbar_main.public_Scrollbar_mainActive,.public_Scrollbar_main:hover{background-color:rgba(255,255,255,.8)}.public_Scrollbar_mainOpaque,.public_Scrollbar_mainOpaque.public_Scrollbar_mainActive,.public_Scrollbar_mainOpaque:hover{background-color:#fff}.public_Scrollbar_face:after{background-color:#c2c2c2}.public_Scrollbar_faceActive:after,.public_Scrollbar_main:hover .public_Scrollbar_face:after,.public_Scrollbar_mainActive .public_Scrollbar_face:after{background-color:#7d7d7d}.public_fixedDataTable_hasBottomBorder,.public_fixedDataTable_header,.public_fixedDataTable_main{border-color:#d3d3d3}.public_fixedDataTable_header .public_fixedDataTableCell_main{font-weight:700}.public_fixedDataTable_header,.public_fixedDataTable_header .public_fixedDataTableCell_main{background-color:#f6f7f8;background-image:-webkit-linear-gradient(#fff,#efefef);background-image:linear-gradient(#fff,#efefef)}.public_fixedDataTable_footer .public_fixedDataTableCell_main{background-color:#f6f7f8;border-color:#d3d3d3}.public_fixedDataTable_topShadow{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAF0lEQVR4AWPUkNeSBhHCjJoK2twgFisAFagCCp3pJlAAAAAASUVORK5CYII=) repeat-x}.public_fixedDataTable_bottomShadow{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAHElEQVQI12MwNjZmZdAT1+Nm0JDWEGZQk1GTBgAWkwIeAEp52AAAAABJRU5ErkJggg==) repeat-x}.public_fixedDataTable_horizontalScrollbar .public_Scrollbar_mainHorizontal{background-color:#fff}.public_fixedDataTableCell_main{background-color:#fff;border-color:#d3d3d3}.public_fixedDataTableCell_highlighted{background-color:#f4f4f4}.public_fixedDataTableCell_cellContent{padding:8px}.public_fixedDataTableCell_columnResizerKnob{background-color:#0284ff}.public_fixedDataTableColumnResizerLine_main{border-color:#0284ff}.public_fixedDataTableRow_main{background-color:#fff}.public_fixedDataTableRow_highlighted,.public_fixedDataTableRow_highlighted .public_fixedDataTableCell_main{background-color:#f6f7f8}.public_fixedDataTableRow_fixedColumnsDivider{border-color:#d3d3d3}.public_fixedDataTableRow_columnsShadow{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==) repeat-y}.ScrollbarLayout_main{box-sizing:border-box;outline:0;overflow:hidden;position:absolute;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ScrollbarLayout_mainVertical{bottom:0;right:0;top:0;-webkit-transition-property:background-color width;transition-property:background-color width;width:15px}.ScrollbarLayout_mainVertical.public_Scrollbar_mainActive,.ScrollbarLayout_mainVertical:hover{width:17px}.ScrollbarLayout_mainHorizontal{bottom:0;height:15px;left:0;-webkit-transition-property:background-color height;transition-property:background-color height}.ScrollbarLayout_mainHorizontal.public_Scrollbar_mainActive,.ScrollbarLayout_mainHorizontal:hover{height:17px}.ScrollbarLayout_face{left:0;overflow:hidden;position:absolute;z-index:1}.ScrollbarLayout_face:after{border-radius:6px;content:'';display:block;position:absolute;-webkit-transition:background-color 250ms ease;transition:background-color 250ms ease}.ScrollbarLayout_faceHorizontal{bottom:0;left:0;top:0}.ScrollbarLayout_faceHorizontal:after{bottom:4px;left:0;top:4px;width:100%}.ScrollbarLayout_faceVertical{left:0;right:0;top:0}.ScrollbarLayout_faceVertical:after{height:100%;left:4px;right:4px;top:0}.fixedDataTableCellGroupLayout_cellGroup{-webkit-backface-visibility:hidden;backface-visibility:hidden;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.fixedDataTableCellGroupLayout_cellGroup>.public_fixedDataTableCell_main{display:inline-block;vertical-align:top;white-space:normal}.fixedDataTableCellGroupLayout_cellGroupWrapper{position:absolute;top:0}.fixedDataTableCellLayout_main{border-right-style:solid;border-width:0 1px 0 0;box-sizing:border-box;display:block;overflow:hidden;position:absolute;white-space:normal}.fixedDataTableCellLayout_lastChild{border-width:0 1px 1px 0}.fixedDataTableCellLayout_alignRight{text-align:right}.fixedDataTableCellLayout_alignCenter{text-align:center}.fixedDataTableCellLayout_wrap1{display:table}.fixedDataTableCellLayout_wrap2{display:table-row}.fixedDataTableCellLayout_wrap3{display:table-cell;vertical-align:middle}.fixedDataTableCellLayout_columnResizerContainer{position:absolute;right:0;width:6px;z-index:1}.fixedDataTableCellLayout_columnResizerContainer:hover{cursor:ew-resize}.fixedDataTableCellLayout_columnResizerContainer:hover .fixedDataTableCellLayout_columnResizerKnob{visibility:visible}.fixedDataTableCellLayout_columnResizerKnob{position:absolute;right:0;visibility:hidden;width:4px}.fixedDataTableColumnResizerLineLayout_mouseArea{cursor:ew-resize;position:absolute;right:-5px;width:12px}.fixedDataTableColumnResizerLineLayout_main{border-right-style:solid;border-right-width:1px;box-sizing:border-box;position:absolute;z-index:10}.fixedDataTableColumnResizerLineLayout_hiddenElem,body[dir=rtl] .fixedDataTableColumnResizerLineLayout_main{display:none!important}.fixedDataTableLayout_main{border-style:solid;border-width:1px;box-sizing:border-box;overflow:hidden;position:relative}.fixedDataTableLayout_hasBottomBorder,.fixedDataTableLayout_header{border-bottom-style:solid;border-bottom-width:1px}.fixedDataTableLayout_footer .public_fixedDataTableCell_main{border-top-style:solid;border-top-width:1px}.fixedDataTableLayout_bottomShadow,.fixedDataTableLayout_topShadow{height:4px;left:0;position:absolute;right:0;z-index:1}.fixedDataTableLayout_bottomShadow{margin-top:-4px}.fixedDataTableLayout_rowsContainer{overflow:hidden;position:relative}.fixedDataTableLayout_horizontalScrollbar{bottom:0;position:absolute}.fixedDataTableRowLayout_main{box-sizing:border-box;overflow:hidden;position:absolute;top:0}.fixedDataTableRowLayout_body{left:0;position:absolute;top:0}.fixedDataTableRowLayout_fixedColumnsDivider{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-left-style:solid;border-left-width:1px;left:0;position:absolute;top:0;width:0}.fixedDataTableRowLayout_columnsShadow{width:4px}.fixedDataTableRowLayout_rowWrapper{position:absolute;top:0}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"styles/vendor.css\"})); module.exports = css;"
]
}