mars3d-wind 3.1.22 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,206 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+ http://mars3d.cn/
6
+
7
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
8
+
9
+ 1. Definitions.
10
+
11
+ "License" shall mean the terms and conditions for use, reproduction,
12
+ and distribution as defined by Sections 1 through 9 of this document.
13
+
14
+ "Licensor" shall mean the copyright owner or entity authorized by
15
+ the copyright owner that is granting the License.
16
+
17
+ "Legal Entity" shall mean the union of the acting entity and all
18
+ other entities that control, are controlled by, or are under common
19
+ control with that entity. For the purposes of this definition,
20
+ "control" means (i) the power, direct or indirect, to cause the
21
+ direction or management of such entity, whether by contract or
22
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
23
+ outstanding shares, or (iii) beneficial ownership of such entity.
24
+
25
+ "You" (or "Your") shall mean an individual or Legal Entity
26
+ exercising permissions granted by this License.
27
+
28
+ "Source" form shall mean the preferred form for making modifications,
29
+ including but not limited to software source code, documentation
30
+ source, and configuration files.
31
+
32
+ "Object" form shall mean any form resulting from mechanical
33
+ transformation or translation of a Source form, including but
34
+ not limited to compiled object code, generated documentation,
35
+ and conversions to other media types.
36
+
37
+ "Work" shall mean the work of authorship, whether in Source or
38
+ Object form, made available under the License, as indicated by a
39
+ copyright notice that is included in or attached to the work
40
+ (an example is provided in the Appendix below).
41
+
42
+ "Derivative Works" shall mean any work, whether in Source or Object
43
+ form, that is based on (or derived from) the Work and for which the
44
+ editorial revisions, annotations, elaborations, or other modifications
45
+ represent, as a whole, an original work of authorship. For the purposes
46
+ of this License, Derivative Works shall not include works that remain
47
+ separable from, or merely link (or bind by name) to the interfaces of,
48
+ the Work and Derivative Works thereof.
49
+
50
+ "Contribution" shall mean any work of authorship, including
51
+ the original version of the Work and any modifications or additions
52
+ to that Work or Derivative Works thereof, that is intentionally
53
+ submitted to Licensor for inclusion in the Work by the copyright owner
54
+ or by an individual or Legal Entity authorized to submit on behalf of
55
+ the copyright owner. For the purposes of this definition, "submitted"
56
+ means any form of electronic, verbal, or written communication sent
57
+ to the Licensor or its representatives, including but not limited to
58
+ communication on electronic mailing lists, source code control systems,
59
+ and issue tracking systems that are managed by, or on behalf of, the
60
+ Licensor for the purpose of discussing and improving the Work, but
61
+ excluding communication that is conspicuously marked or otherwise
62
+ designated in writing by the copyright owner as "Not a Contribution."
63
+
64
+ "Contributor" shall mean Licensor and any individual or Legal Entity
65
+ on behalf of whom a Contribution has been received by Licensor and
66
+ subsequently incorporated within the Work.
67
+
68
+ 2. Grant of Copyright License. Subject to the terms and conditions of
69
+ this License, each Contributor hereby grants to You a perpetual,
70
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
71
+ copyright license to reproduce, prepare Derivative Works of,
72
+ publicly display, publicly perform, sublicense, and distribute the
73
+ Work and such Derivative Works in Source or Object form.
74
+
75
+ 3. Grant of Patent License. Subject to the terms and conditions of
76
+ this License, each Contributor hereby grants to You a perpetual,
77
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
78
+ (except as stated in this section) patent license to make, have made,
79
+ use, offer to sell, sell, import, and otherwise transfer the Work,
80
+ where such license applies only to those patent claims licensable
81
+ by such Contributor that are necessarily infringed by their
82
+ Contribution(s) alone or by combination of their Contribution(s)
83
+ with the Work to which such Contribution(s) was submitted. If You
84
+ institute patent litigation against any entity (including a
85
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
86
+ or a Contribution incorporated within the Work constitutes direct
87
+ or contributory patent infringement, then any patent licenses
88
+ granted to You under this License for that Work shall terminate
89
+ as of the date such litigation is filed.
90
+
91
+ 4. Redistribution. You may reproduce and distribute copies of the
92
+ Work or Derivative Works thereof in any medium, with or without
93
+ modifications, and in Source or Object form, provided that You
94
+ meet the following conditions:
95
+
96
+ (a) You must give any other recipients of the Work or
97
+ Derivative Works a copy of this License; and
98
+
99
+ (b) You must cause any modified files to carry prominent notices
100
+ stating that You changed the files; and
101
+
102
+ (c) You must retain, in the Source form of any Derivative Works
103
+ that You distribute, all copyright, patent, trademark, and
104
+ attribution notices from the Source form of the Work,
105
+ excluding those notices that do not pertain to any part of
106
+ the Derivative Works; and
107
+
108
+ (d) If the Work includes a "NOTICE" text file as part of its
109
+ distribution, then any Derivative Works that You distribute must
110
+ include a readable copy of the attribution notices contained
111
+ within such NOTICE file, excluding those notices that do not
112
+ pertain to any part of the Derivative Works, in at least one
113
+ of the following places: within a NOTICE text file distributed
114
+ as part of the Derivative Works; within the Source form or
115
+ documentation, if provided along with the Derivative Works; or,
116
+ within a display generated by the Derivative Works, if and
117
+ wherever such third-party notices normally appear. The contents
118
+ of the NOTICE file are for informational purposes only and
119
+ do not modify the License. You may add Your own attribution
120
+ notices within Derivative Works that You distribute, alongside
121
+ or as an addendum to the NOTICE text from the Work, provided
122
+ that such additional attribution notices cannot be construed
123
+ as modifying the License.
124
+
125
+ You may add Your own copyright statement to Your modifications and
126
+ may provide additional or different license terms and conditions
127
+ for use, reproduction, or distribution of Your modifications, or
128
+ for any such Derivative Works as a whole, provided Your use,
129
+ reproduction, and distribution of the Work otherwise complies with
130
+ the conditions stated in this License.
131
+
132
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
133
+ any Contribution intentionally submitted for inclusion in the Work
134
+ by You to the Licensor shall be under the terms and conditions of
135
+ this License, without any additional terms or conditions.
136
+ Notwithstanding the above, nothing herein shall supersede or modify
137
+ the terms of any separate license agreement you may have executed
138
+ with Licensor regarding such Contributions.
139
+
140
+ 6. Trademarks. This License does not grant permission to use the trade
141
+ names, trademarks, service marks, or product names of the Licensor,
142
+ except as required for reasonable and customary use in describing the
143
+ origin of the Work and reproducing the content of the NOTICE file.
144
+
145
+ 7. Disclaimer of Warranty. Unless required by applicable law or
146
+ agreed to in writing, Licensor provides the Work (and each
147
+ Contributor provides its Contributions) on an "AS IS" BASIS,
148
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
149
+ implied, including, without limitation, any warranties or conditions
150
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
151
+ PARTICULAR PURPOSE. You are solely responsible for determining the
152
+ appropriateness of using or redistributing the Work and assume any
153
+ risks associated with Your exercise of permissions under this License.
154
+
155
+ 8. Limitation of Liability. In no event and under no legal theory,
156
+ whether in tort (including negligence), contract, or otherwise,
157
+ unless required by applicable law (such as deliberate and grossly
158
+ negligent acts) or agreed to in writing, shall any Contributor be
159
+ liable to You for damages, including any direct, indirect, special,
160
+ incidental, or consequential damages of any character arising as a
161
+ result of this License or out of the use or inability to use the
162
+ Work (including but not limited to damages for loss of goodwill,
163
+ work stoppage, computer failure or malfunction, or any and all
164
+ other commercial damages or losses), even if such Contributor
165
+ has been advised of the possibility of such damages.
166
+
167
+ 9. Accepting Warranty or Additional Liability. While redistributing
168
+ the Work or Derivative Works thereof, You may choose to offer,
169
+ and charge a fee for, acceptance of support, warranty, indemnity,
170
+ or other liability obligations and/or rights consistent with this
171
+ License. However, in accepting such obligations, You may act only
172
+ on Your own behalf and on Your sole responsibility, not on behalf
173
+ of any other Contributor, and only if You agree to indemnify,
174
+ defend, and hold each Contributor harmless for any liability
175
+ incurred by, or claims asserted against, such Contributor by reason
176
+ of your accepting any such warranty or additional liability.
177
+
178
+ END OF TERMS AND CONDITIONS
179
+
180
+ APPENDIX: How to apply the Apache License to your work.
181
+
182
+ To apply the Apache License to your work, attach the following
183
+ boilerplate notice, with the fields enclosed by brackets "[]"
184
+ replaced with your own identifying information. (Don't include
185
+ the brackets!) The text should be enclosed in the appropriate
186
+ comment syntax for the file format. We also recommend that a
187
+ file or class name and description of purpose be included on the
188
+ same "printed page" as the copyright notice for easier
189
+ identification within third-party archives.
190
+
191
+ Copyright [2017-2022] [Hefei Mars Technology Co., LTD., China] http://mars3d.cn/
192
+
193
+ Licensed under the Apache License, Version 2.0 (the "License");
194
+ you may not use this file except in compliance with the License.
195
+ You may obtain a copy of the License at
196
+
197
+ http://www.apache.org/licenses/LICENSE-2.0
198
+
199
+
200
+ Unless required by applicable law or agreed to in writing, software
201
+ distributed under the License is distributed on an "AS IS" BASIS,
202
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
203
+ See the License for the specific language governing permissions and
204
+ limitations under the License.
205
+
206
+
@@ -1,20 +1,11 @@
1
1
  /*!
2
2
  * Mars3D平台插件,支持气象 风向图 功能插件
3
- * 版本信息:v3.1.21
4
- * 编译日期:2022-01-08 18:23:21
3
+ * 版本信息:v3.2.2
4
+ * 编译日期:2022-02-19 13:44:47
5
5
  * 版权所有:Copyright by 火星科技 http://mars3d.cn
6
6
  */
7
7
  (function webpackUniversalModuleDefinition(window) {
8
8
 
9
- let Cesium = window.Cesium //通过index.html的head引入
10
- if (!Cesium && typeof exports === 'object') {
11
- Cesium = require('mars3d-cesium') //使用npm安装内置的Cesium
12
- require('mars3d-cesium/Build/Cesium/Widgets/widgets.css')
13
- window['Cesium'] = Cesium
14
- }
15
- if (!Cesium) {
16
- console.error('请引入Cesium库,可参考教程:http://mars3d.cn/dev/guide/basics/import.html')
17
- }
18
9
 
19
10
 
20
11
  let mars3d = window.mars3d //通过index.html的head引入
@@ -27,7 +18,7 @@
27
18
  }
28
19
 
29
20
 
30
- function a0_0x1db2(_0x1c2cf8,_0xe29f1b){var _0x1966ab=a0_0x1966();return a0_0x1db2=function(_0x1db2b4,_0x4f4463){_0x1db2b4=_0x1db2b4-0x8a;var _0x42c980=_0x1966ab[_0x1db2b4];return _0x42c980;},a0_0x1db2(_0x1c2cf8,_0xe29f1b);}function a0_0x1966(){var _0x180b07=['preRender','west','defineProperty','preExecute','_particlesNumber','resize','Color','undefined','mode','rawRenderState','dropRateBump','appendChild','userInput','PixelDatatype','unbindEvent','_mountedHook','BufferUsage','refreshTimer','createSegmentsGeometry','height','PrimitiveType','_onMouseUpEvent','PixelFormat','bindEvent','cols','_onMouseMoveEvent','arrayBufferView','autoClear','100%','Cesium','style','speedRate','68cljAzc','construct','lonRange','createFramebuffer','createWindTextures','dropRate','mouseUp','getContext','globalAlpha','depthTest','getUVByXY','removeEventListener','getPrototypeOf','postProcessingPosition','viewerParameters','lev','IDENTITY','default','particleHeight','clearFramebuffers','toStringTag','position','TextureMinificationFilter','toDegrees','attributeLocations','THREE_PI_OVER_TWO','calc_speedRate','defined','RGB','attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}','canrefresh','SceneTransforms','_speedRate','colorTable','BaseLayer','fromDegrees','PI_OVER_THREE','createElement','getU','uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898,\x2078.233,\x204375.85453);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0,\x201.0);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0);\x0a\x20\x20\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20lev);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20\x20\x20return\x20particle.y\x20<\x20-90.0\x20||\x20particle.y\x20>\x2090.0;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20texture2D(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20nextSpeed.a;\x0a\x0a\x20\x20\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20\x20\x20if\x20(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(randomParticle,\x201.0);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}','destroy','8ppVAfR','show','BoundingSphere','updateSpeed','blending','getColorTexture','exports','frameRate','outputTexture','GeometryAttribute','call','getDirection','drawingBufferHeight','3434844rluDmq','particlesTextureSize','nextParticlesPosition','maxParticles','EllipsoidalOccluder','uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}','color','windField','visibility','UNSIGNED_BYTE','Compute','latRange','prototype','ComputeCommand','bind','floor','mouse_down','_pointerEvents','commandList','Module','canvasWidth','canvasResize','randomizeParticles','destroyParticlesTextures','shaderProgram','lighter','currentParticlesSpeed','screen','layer','getV','ClearCommand','RenderState','10FPSLid','FLOAT','_tomap','clampToLatitudeRange','Texture','string','scene','Math','NEAREST','data','ShaderSource','add','uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20\x20\x20float\x20term1\x20=\x20111132.92;\x0a\x20\x20\x20\x20float\x20term2\x20=\x20559.82\x20*\x20cos(2.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term3\x20=\x201.175\x20*\x20cos(4.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term4\x20=\x200.0023\x20*\x20cos(6.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20\x20\x20float\x20term5\x20=\x20111412.84\x20*\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20term6\x20=\x2093.5\x20*\x20cos(3.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term7\x20=\x200.118\x20*\x20cos(5.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avoid\x20updatePosition(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20windVectorInLonLatLev;\x0a\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}','vdata','setPrototypeOf','_removedHook','canvasWind','random','fragmentShaderSource','VertexArray','createRenderingPrimitives','DrawCommand','lineWidth','Cartesian3','getFullscreenQuad','geometry','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','beginPath','cos','_maxAge','globalCompositeOperation','pow','vertexArray','Pass','CanvasWindLayer','_drawLines','abs','DISABLE_GL_POSITION_LOG_DEPTH','particlesNumber','mod','pixelSize','ymax','refreshParticles','getUVByPoint','cancelAnimationFrame','apply','pointerEvents','ALWAYS','top','postProcessingSpeed','animateFrame','randomBetween','key','hasOwnProperty','SCENE3D','sqrt','clearCommand','max','25905770ZkCTXy','fillRect','Draw','wheel','maxAge','source','options','clientHeight','toGridXY','TWO_PI','applyViewerParameters','redraw','fromGeometry','fadeOpacity','reverse','_onMap_preRenderEvent','createCommand','ceil','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','_setOptionsHook','value','register','LINEAR','mars3d','wind','primitiveType','dimensions','defaultValue','particlesRendering','trails','currentParticlesPosition','segmentsDepth','259157YWqeRC','segmentsColor','moveTo','off','depthMask','uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}','Appearance','PrimitiveCollection','isDestroyed','LayerUtil','DepthFunction','Sampler','pointer-events','positionWC','UNSIGNED_INT','now','left','createParticlesTextures','toRadians','nextTrails','rows','ComponentDatatype','createRenderingFramebuffers','__esModule','fillStyle','absolute','array','_calcStep','nextTrailsColor','length','strokeStyle','tlat','_map','commandType','applyUserInput','TextureMagnificationFilter','canvas','globeBoundingSphere','1792995jCiOUP','class','globe','createRenderingTextures','stroke','ShaderProgram','enumerable','east','STATIC_DRAW','tlng','udata','Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined','object','segments','removeAll','6872967Zmmvjs','_onMapWhellEvent','textures','min','934592jjInQX','nextParticlesSpeed','_createCanvas','lineTo','commandToExecute','uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20currentSpeed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}','hidden','vertexShaderSource','rgba(0,\x200,\x200,\x200.97)','sin','wgs84ToWindowCoordinates','updatePosition','nextTrailsDepth','forEach','clear','ymin','update','Cartesian2','Rectangle','setAttribute','particlesTextures','18YUTyPa','framebuffers','xmin','LUMINANCE','lng','xmax','camera','clientWidth','visible','SceneMode','OPAQUE','mouse_move','destination-in','mouseDown','writable','getRandomLatLng','createTexture','currentTrails','WindLayer','__proto__','sham','fromCache','drawingBufferWidth','WindUtil','windData','isInExtent','grid','mouseMove','uniformMap','age','container','Geometry','framebuffer','_onMouseDownEvent','RGBA','//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z;\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205],\x20width\x20=\x203,\x20height\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture2D(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}','isPointVisible','currentTrailsDepth','createRawRenderState','width','destroyObject','north','Matrix4','_bilinearInterpolation','reverseY','EventType','particles','103191YlIXxr','_calcUV','frameTime','addPrimitives','uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}','windTextures','setGeometry','getUserInput','particlesWind','attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}','symbol','drawWind','create','requestAnimationFrame','createComputingPrimitives','randomParticle','TRIANGLES','particlesComputing','lon','colorNum','lat','Framebuffer','getWind','remove','0px','context','function','constructor','fixedHeight','canvasContext','speedFactor','addEventListener','PI_OVER_TWO','GeometryAttributes','primitives','canvasHeight','particleSystem','ellipsoid','ZERO','#ffffff','keys','getExtent','setData','updateViewerParameters','_addedHook','updateDate','currentTrailsColor','push'];a0_0x1966=function(){return _0x180b07;};return a0_0x1966();}(function(_0x4eaeb5,_0xcbd4bf){var _0x3f6a7b=a0_0x1db2,_0x247344=_0x4eaeb5();while(!![]){try{var _0x39a544=-parseInt(_0x3f6a7b(0xf9))/0x1*(-parseInt(_0x3f6a7b(0x1ef))/0x2)+parseInt(_0x3f6a7b(0x176))/0x3*(-parseInt(_0x3f6a7b(0x1c6))/0x4)+parseInt(_0x3f6a7b(0x11f))/0x5*(parseInt(_0x3f6a7b(0x147))/0x6)+parseInt(_0x3f6a7b(0x1fc))/0x7+parseInt(_0x3f6a7b(0x132))/0x8+-parseInt(_0x3f6a7b(0x12e))/0x9*(-parseInt(_0x3f6a7b(0x9f))/0xa)+-parseInt(_0x3f6a7b(0xd9))/0xb;if(_0x39a544===_0xcbd4bf)break;else _0x247344['push'](_0x247344['shift']());}catch(_0x30ff17){_0x247344['push'](_0x247344['shift']());}}}(a0_0x1966,0x84c29),window['mars3dWind']=function(_0x1afd62){var _0xccea96={};function _0x451a06(_0x33675b){var _0x45ff07=a0_0x1db2;if(_0xccea96[_0x33675b])return _0xccea96[_0x33675b]['exports'];var _0x80d80a=_0xccea96[_0x33675b]={'i':_0x33675b,'l':!0x1,'exports':{}};return _0x1afd62[_0x33675b][_0x45ff07(0x1f9)](_0x80d80a[_0x45ff07(0x1f5)],_0x80d80a,_0x80d80a[_0x45ff07(0x1f5)],_0x451a06),_0x80d80a['l']=!0x0,_0x80d80a[_0x45ff07(0x1f5)];}return _0x451a06['m']=_0x1afd62,_0x451a06['c']=_0xccea96,_0x451a06['d']=function(_0xe82a40,_0x32c2eb,_0x43abe8){var _0x463add=a0_0x1db2;_0x451a06['o'](_0xe82a40,_0x32c2eb)||Object[_0x463add(0x1a8)](_0xe82a40,_0x32c2eb,{'enumerable':!0x0,'get':_0x43abe8});},_0x451a06['r']=function(_0xdf1f00){var _0x27fe47=a0_0x1db2;_0x27fe47(0x1ad)!=typeof Symbol&&Symbol[_0x27fe47(0x1da)]&&Object['defineProperty'](_0xdf1f00,Symbol[_0x27fe47(0x1da)],{'value':_0x27fe47(0x92)}),Object[_0x27fe47(0x1a8)](_0xdf1f00,_0x27fe47(0x110),{'value':!0x0});},_0x451a06['t']=function(_0x4e1321,_0x4150c6){var _0x3ea992=a0_0x1db2;if(0x1&_0x4150c6&&(_0x4e1321=_0x451a06(_0x4e1321)),0x8&_0x4150c6)return _0x4e1321;if(0x4&_0x4150c6&&_0x3ea992(0x12b)==typeof _0x4e1321&&_0x4e1321&&_0x4e1321[_0x3ea992(0x110)])return _0x4e1321;var _0x4c0191=Object[_0x3ea992(0x182)](null);if(_0x451a06['r'](_0x4c0191),Object['defineProperty'](_0x4c0191,_0x3ea992(0x1d7),{'enumerable':!0x0,'value':_0x4e1321}),0x2&_0x4150c6&&_0x3ea992(0xa4)!=typeof _0x4e1321){for(var _0x4f29a5 in _0x4e1321)_0x451a06['d'](_0x4c0191,_0x4f29a5,function(_0x332cc1){return _0x4e1321[_0x332cc1];}[_0x3ea992(0x8d)](null,_0x4f29a5));}return _0x4c0191;},_0x451a06['n']=function(_0x50bcf9){var _0x26be5c=a0_0x1db2,_0x37e732=_0x50bcf9&&_0x50bcf9[_0x26be5c(0x110)]?function(){var _0x1c1e64=_0x26be5c;return _0x50bcf9[_0x1c1e64(0x1d7)];}:function(){return _0x50bcf9;};return _0x451a06['d'](_0x37e732,'a',_0x37e732),_0x37e732;},_0x451a06['o']=function(_0x9d3d6a,_0xa6071){var _0x4a6f50=a0_0x1db2;return Object[_0x4a6f50(0x8b)][_0x4a6f50(0xd4)]['call'](_0x9d3d6a,_0xa6071);},_0x451a06['p']='',_0x451a06(_0x451a06['s']=0x14);}([function(_0x3af9c0,_0x4923e8){var _0x2bafb8=a0_0x1db2;_0x3af9c0[_0x2bafb8(0x1f5)]=window[_0x2bafb8(0x1c3)];},function(_0x26d710,_0x1bb94e){var _0x31bc44=a0_0x1db2;_0x26d710[_0x31bc44(0x1f5)]=window[_0x31bc44(0xf0)];},function(_0x44600b,_0x4bf139){var _0x33771b=a0_0x1db2;_0x44600b[_0x33771b(0x1f5)]=function(_0x225bc5,_0x4ccf41){if(!(_0x225bc5 instanceof _0x4ccf41))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');},_0x44600b[_0x33771b(0x1f5)][_0x33771b(0x1d7)]=_0x44600b[_0x33771b(0x1f5)],_0x44600b['exports'][_0x33771b(0x110)]=!0x0;},function(_0xd3182e,_0x5b845a){var _0x4cb0e6=a0_0x1db2;function _0x5c6669(_0x4868ba,_0x52649b){var _0x35505c=a0_0x1db2;for(var _0x5286b9=0x0;_0x5286b9<_0x52649b[_0x35505c(0x116)];_0x5286b9++){var _0x394660=_0x52649b[_0x5286b9];_0x394660[_0x35505c(0x125)]=_0x394660[_0x35505c(0x125)]||!0x1,_0x394660['configurable']=!0x0,_0x35505c(0xed)in _0x394660&&(_0x394660[_0x35505c(0x155)]=!0x0),Object[_0x35505c(0x1a8)](_0x4868ba,_0x394660[_0x35505c(0xd3)],_0x394660);}}_0xd3182e['exports']=function(_0x392c2f,_0x5ed61f,_0x11eb72){var _0xeb85d3=a0_0x1db2;return _0x5ed61f&&_0x5c6669(_0x392c2f[_0xeb85d3(0x8b)],_0x5ed61f),_0x11eb72&&_0x5c6669(_0x392c2f,_0x11eb72),_0x392c2f;},_0xd3182e['exports']['default']=_0xd3182e[_0x4cb0e6(0x1f5)],_0xd3182e['exports'][_0x4cb0e6(0x110)]=!0x0;},function(_0xbab51a,_0x353722){var _0x1385f8=a0_0x1db2;function _0x4ae828(_0x309848){var _0x2e5d92=a0_0x1db2;return _0xbab51a[_0x2e5d92(0x1f5)]=_0x4ae828=Object['setPrototypeOf']?Object[_0x2e5d92(0x1d2)]:function(_0x52b5b6){var _0x19d4a4=_0x2e5d92;return _0x52b5b6[_0x19d4a4(0x15a)]||Object[_0x19d4a4(0x1d2)](_0x52b5b6);},_0xbab51a[_0x2e5d92(0x1f5)]['default']=_0xbab51a[_0x2e5d92(0x1f5)],_0xbab51a[_0x2e5d92(0x1f5)][_0x2e5d92(0x110)]=!0x0,_0x4ae828(_0x309848);}_0xbab51a[_0x1385f8(0x1f5)]=_0x4ae828,_0xbab51a['exports'][_0x1385f8(0x1d7)]=_0xbab51a['exports'],_0xbab51a['exports']['__esModule']=!0x0;},function(_0xd2b971,_0x38965a,_0x42d01c){var _0x44e627=a0_0x1db2,_0x14e3ff=_0x42d01c(0x11);_0xd2b971['exports']=function(_0x103b53,_0x59e8af){var _0x1582c2=a0_0x1db2;if(_0x1582c2(0x190)!=typeof _0x59e8af&&null!==_0x59e8af)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x103b53[_0x1582c2(0x8b)]=Object[_0x1582c2(0x182)](_0x59e8af&&_0x59e8af[_0x1582c2(0x8b)],{'constructor':{'value':_0x103b53,'writable':!0x0,'configurable':!0x0}}),_0x59e8af&&_0x14e3ff(_0x103b53,_0x59e8af);},_0xd2b971[_0x44e627(0x1f5)][_0x44e627(0x1d7)]=_0xd2b971[_0x44e627(0x1f5)],_0xd2b971[_0x44e627(0x1f5)][_0x44e627(0x110)]=!0x0;},function(_0x3a41bc,_0xe9197e,_0x57d974){var _0x576532=a0_0x1db2,_0x2bcd5c=_0x57d974(0x12)[_0x576532(0x1d7)],_0x5a144f=_0x57d974(0x13);_0x3a41bc[_0x576532(0x1f5)]=function(_0x314d51,_0x59779a){var _0x4e056f=_0x576532;if(_0x59779a&&(_0x4e056f(0x12b)===_0x2bcd5c(_0x59779a)||_0x4e056f(0x190)==typeof _0x59779a))return _0x59779a;if(void 0x0!==_0x59779a)throw new TypeError(_0x4e056f(0x12a));return _0x5a144f(_0x314d51);},_0x3a41bc['exports'][_0x576532(0x1d7)]=_0x3a41bc[_0x576532(0x1f5)],_0x3a41bc[_0x576532(0x1f5)][_0x576532(0x110)]=!0x0;},function(_0x387440,_0x2b3f94){var _0x367a4c=a0_0x1db2;_0x387440[_0x367a4c(0x1f5)]=_0x367a4c(0x17f);},function(_0x2bd704,_0x5bdc92){var _0x2b248b=a0_0x1db2;_0x2bd704[_0x2b248b(0x1f5)]=_0x2b248b(0x1e3);},function(_0x1d5ffb,_0x3505cd){var _0x1fcb27=a0_0x1db2;_0x1d5ffb['exports']=_0x1fcb27(0xfe);},function(_0x4bc4dc,_0xab3c5c){var _0x113fd8=a0_0x1db2;_0x4bc4dc[_0x113fd8(0x1f5)]=_0x113fd8(0x17a);},function(_0x13c14d,_0x35d7a9){var _0x11c5b0=a0_0x1db2;_0x13c14d[_0x11c5b0(0x1f5)]=_0x11c5b0(0x201);},function(_0x39665,_0x590c98){var _0x58a17e=a0_0x1db2;_0x39665[_0x58a17e(0x1f5)]=_0x58a17e(0x16a);},function(_0x57dd5d,_0x513f08){var _0x30189d=a0_0x1db2;_0x57dd5d[_0x30189d(0x1f5)]=_0x30189d(0x137);},function(_0xdcdd1b,_0x82dd6b){var _0x1e181e=a0_0x1db2;_0xdcdd1b[_0x1e181e(0x1f5)]=_0x1e181e(0xab);},function(_0x462660,_0x3878c6){var _0x401719=a0_0x1db2;_0x462660[_0x401719(0x1f5)]=_0x401719(0x1ed);},function(_0x637923,_0x35a73c){var _0x163065=a0_0x1db2;_0x637923[_0x163065(0x1f5)]='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture2D(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}';},function(_0x40cd01,_0xed4d26){var _0x2ac776=a0_0x1db2;function _0x2d0e52(_0x3c665b,_0x38345c){var _0x5eaa7a=a0_0x1db2;return _0x40cd01[_0x5eaa7a(0x1f5)]=_0x2d0e52=Object[_0x5eaa7a(0xad)]||function(_0x2267f2,_0x2132ab){var _0x1d7750=_0x5eaa7a;return _0x2267f2[_0x1d7750(0x15a)]=_0x2132ab,_0x2267f2;},_0x40cd01[_0x5eaa7a(0x1f5)][_0x5eaa7a(0x1d7)]=_0x40cd01[_0x5eaa7a(0x1f5)],_0x40cd01[_0x5eaa7a(0x1f5)][_0x5eaa7a(0x110)]=!0x0,_0x2d0e52(_0x3c665b,_0x38345c);}_0x40cd01[_0x2ac776(0x1f5)]=_0x2d0e52,_0x40cd01[_0x2ac776(0x1f5)]['default']=_0x40cd01['exports'],_0x40cd01[_0x2ac776(0x1f5)][_0x2ac776(0x110)]=!0x0;},function(_0x5dbead,_0x5e5e86){var _0x14729f=a0_0x1db2;function _0x61a50f(_0x5aa6e1){var _0x4607c9=a0_0x1db2;return _0x4607c9(0x190)==typeof Symbol&&_0x4607c9(0x180)==typeof Symbol['iterator']?(_0x5dbead[_0x4607c9(0x1f5)]=_0x61a50f=function(_0x41a263){return typeof _0x41a263;},_0x5dbead[_0x4607c9(0x1f5)][_0x4607c9(0x1d7)]=_0x5dbead[_0x4607c9(0x1f5)],_0x5dbead['exports'][_0x4607c9(0x110)]=!0x0):(_0x5dbead['exports']=_0x61a50f=function(_0x2b3043){var _0x561c0f=_0x4607c9;return _0x2b3043&&_0x561c0f(0x190)==typeof Symbol&&_0x2b3043[_0x561c0f(0x191)]===Symbol&&_0x2b3043!==Symbol[_0x561c0f(0x8b)]?_0x561c0f(0x180):typeof _0x2b3043;},_0x5dbead[_0x4607c9(0x1f5)][_0x4607c9(0x1d7)]=_0x5dbead[_0x4607c9(0x1f5)],_0x5dbead[_0x4607c9(0x1f5)][_0x4607c9(0x110)]=!0x0),_0x61a50f(_0x5aa6e1);}_0x5dbead[_0x14729f(0x1f5)]=_0x61a50f,_0x5dbead[_0x14729f(0x1f5)][_0x14729f(0x1d7)]=_0x5dbead[_0x14729f(0x1f5)],_0x5dbead['exports']['__esModule']=!0x0;},function(_0x5053e4,_0x569e84){var _0x60941a=a0_0x1db2;_0x5053e4['exports']=function(_0xd426a4){var _0x1469fe=a0_0x1db2;if(void 0x0===_0xd426a4)throw new ReferenceError(_0x1469fe(0xeb));return _0xd426a4;},_0x5053e4['exports']['default']=_0x5053e4[_0x60941a(0x1f5)],_0x5053e4[_0x60941a(0x1f5)][_0x60941a(0x110)]=!0x0;},function(_0x48bf63,_0x101b67,_0x306f16){'use strict';var _0x3e7117=a0_0x1db2;_0x306f16['r'](_0x101b67),_0x306f16['d'](_0x101b67,_0x3e7117(0x159),function(){return _0x2f2d06;}),_0x306f16['d'](_0x101b67,_0x3e7117(0xc1),function(){return _0x341e60;}),_0x306f16['d'](_0x101b67,_0x3e7117(0x15e),function(){return _0x175578;});var _0x175578={};_0x306f16['r'](_0x175578),_0x306f16['d'](_0x175578,_0x3e7117(0x1ec),function(){return _0x1c9258;}),_0x306f16['d'](_0x175578,_0x3e7117(0x9c),function(){return _0x5449d0;}),_0x306f16['d'](_0x175578,'getSpeed',function(){return _0x2cc124;}),_0x306f16['d'](_0x175578,_0x3e7117(0x1fa),function(){return _0x3b3c65;});var _0x43c4a0=_0x306f16(0x1),_0x317762=_0x306f16(0x2),_0xe8454=_0x306f16['n'](_0x317762),_0x24298a=_0x306f16(0x3),_0x4d2ebb=_0x306f16['n'](_0x24298a),_0x24e1aa=_0x306f16(0x5),_0x43b6f7=_0x306f16['n'](_0x24e1aa),_0x4ff670=_0x306f16(0x6),_0x3214b3=_0x306f16['n'](_0x4ff670),_0x2cfcb3=_0x306f16(0x4),_0x155bb1=_0x306f16['n'](_0x2cfcb3),_0x2ab937=_0x306f16(0x0),_0x176d6b=function(){var _0xcfd6f1=_0x3e7117;function _0x2bb317(_0x4a751d){var _0x4d0a30=a0_0x1db2;_0xe8454()(this,_0x2bb317),this[_0x4d0a30(0x11a)]=_0x4a751d[_0x4d0a30(0x11a)],this[_0x4d0a30(0xb8)]=_0x4a751d[_0x4d0a30(0xb8)],this[_0x4d0a30(0x1de)]=_0x4a751d[_0x4d0a30(0x1de)],this[_0x4d0a30(0xf2)]=_0x4a751d['primitiveType'],this[_0x4d0a30(0x163)]=_0x4a751d['uniformMap'],this[_0x4d0a30(0x139)]=_0x4a751d['vertexShaderSource'],this[_0x4d0a30(0xb1)]=_0x4a751d[_0x4d0a30(0xb1)],this[_0x4d0a30(0x1af)]=_0x4a751d['rawRenderState'],this['framebuffer']=_0x4a751d[_0x4d0a30(0x167)],this[_0x4d0a30(0x1f7)]=_0x4a751d[_0x4d0a30(0x1f7)],this[_0x4d0a30(0x1c1)]=_0x2ab937['defaultValue'](_0x4a751d[_0x4d0a30(0x1c1)],!0x1),this['preExecute']=_0x4a751d[_0x4d0a30(0x1a9)],this['show']=!0x0,this['commandToExecute']=void 0x0,this[_0x4d0a30(0xd7)]=void 0x0,this[_0x4d0a30(0x1c1)]&&(this[_0x4d0a30(0xd7)]=new _0x2ab937[(_0x4d0a30(0x9d))]({'color':new _0x2ab937[(_0x4d0a30(0x1ac))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x4d0a30(0x167)],'pass':_0x2ab937[_0x4d0a30(0xc0)][_0x4d0a30(0x151)]}));}return _0x4d2ebb()(_0x2bb317,[{'key':_0xcfd6f1(0xe9),'value':function(_0x1ed8bb){var _0x3f89f8=_0xcfd6f1;switch(this['commandType']){case _0x3f89f8(0xdb):var _0x28301f=_0x2ab937['VertexArray'][_0x3f89f8(0xe5)]({'context':_0x1ed8bb,'geometry':this['geometry'],'attributeLocations':this[_0x3f89f8(0x1de)],'bufferUsage':_0x2ab937[_0x3f89f8(0x1b6)][_0x3f89f8(0x127)]}),_0x45b4e3=_0x2ab937[_0x3f89f8(0x124)]['fromCache']({'context':_0x1ed8bb,'attributeLocations':this['attributeLocations'],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this[_0x3f89f8(0xb1)]}),_0x42768a=_0x2ab937[_0x3f89f8(0x9e)][_0x3f89f8(0x15c)](this['rawRenderState']);return new _0x2ab937[(_0x3f89f8(0xb4))]({'owner':this,'vertexArray':_0x28301f,'primitiveType':this['primitiveType'],'uniformMap':this[_0x3f89f8(0x163)],'modelMatrix':_0x2ab937[_0x3f89f8(0x171)][_0x3f89f8(0x1d6)],'shaderProgram':_0x45b4e3,'framebuffer':this['framebuffer'],'renderState':_0x42768a,'pass':_0x2ab937[_0x3f89f8(0xc0)][_0x3f89f8(0x151)]});case _0x3f89f8(0x206):return new _0x2ab937[(_0x3f89f8(0x8c))]({'owner':this,'fragmentShaderSource':this['fragmentShaderSource'],'uniformMap':this[_0x3f89f8(0x163)],'outputTexture':this[_0x3f89f8(0x1f7)],'persists':!0x0});}}},{'key':_0xcfd6f1(0x17c),'value':function(_0x238745,_0x9f031d){var _0x43afc2=_0xcfd6f1;this[_0x43afc2(0xb8)]=_0x9f031d;var _0x2d82ff=_0x2ab937[_0x43afc2(0xb2)]['fromGeometry']({'context':_0x238745,'geometry':this[_0x43afc2(0xb8)],'attributeLocations':this[_0x43afc2(0x1de)],'bufferUsage':_0x2ab937[_0x43afc2(0x1b6)][_0x43afc2(0x127)]});this['commandToExecute'][_0x43afc2(0xbf)]=_0x2d82ff;}},{'key':'update','value':function(_0x4686eb){var _0x3415c3=_0xcfd6f1;this[_0x3415c3(0x1f0)]&&_0x4686eb[_0x3415c3(0x1ae)]==_0x2ab937[_0x3415c3(0x150)][_0x3415c3(0xd5)]&&(_0x2ab937[_0x3415c3(0x1e1)](this[_0x3415c3(0x136)])||(this[_0x3415c3(0x136)]=this[_0x3415c3(0xe9)](_0x4686eb[_0x3415c3(0x18f)])),_0x2ab937[_0x3415c3(0x1e1)](this[_0x3415c3(0x1a9)])&&this[_0x3415c3(0x1a9)](),_0x2ab937[_0x3415c3(0x1e1)](this[_0x3415c3(0xd7)])&&_0x4686eb[_0x3415c3(0x91)][_0x3415c3(0x1a5)](this['clearCommand']),_0x4686eb[_0x3415c3(0x91)][_0x3415c3(0x1a5)](this['commandToExecute']));}},{'key':_0xcfd6f1(0x101),'value':function(){return!0x1;}},{'key':'destroy','value':function(){var _0x2ce9f6=_0xcfd6f1;return _0x2ab937[_0x2ce9f6(0x1e1)](this[_0x2ce9f6(0x136)])&&(this[_0x2ce9f6(0x136)][_0x2ce9f6(0x97)]=this[_0x2ce9f6(0x136)]['shaderProgram']&&this[_0x2ce9f6(0x136)][_0x2ce9f6(0x97)][_0x2ce9f6(0x1ee)]()),_0x2ab937[_0x2ce9f6(0x16f)](this);}}]),_0x2bb317;}(),_0x1151f0={'getFullscreenQuad':function(){var _0x13cb72=_0x3e7117;return new _0x2ab937[(_0x13cb72(0x166))]({'attributes':new _0x2ab937[(_0x13cb72(0x197))]({'position':new _0x2ab937[(_0x13cb72(0x1f8))]({'componentDatatype':_0x2ab937['ComponentDatatype'][_0x13cb72(0xa0)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new _0x2ab937[(_0x13cb72(0x1f8))]({'componentDatatype':_0x2ab937['ComponentDatatype'][_0x13cb72(0xa0)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});},'createTexture':function(_0x4d2a29,_0xdbea66){var _0x41be95=_0x3e7117;if(_0x2ab937[_0x41be95(0x1e1)](_0xdbea66)){var _0x1d5593={};_0x1d5593[_0x41be95(0x1c0)]=_0xdbea66,_0x4d2a29[_0x41be95(0xde)]=_0x1d5593;}return new _0x2ab937[(_0x41be95(0xa3))](_0x4d2a29);},'createFramebuffer':function(_0x57a7b3,_0x4a7290,_0x582bc4){var _0xa8521e=_0x3e7117;return new _0x2ab937[(_0xa8521e(0x18b))]({'context':_0x57a7b3,'colorTextures':[_0x4a7290],'depthTexture':_0x582bc4});},'createRawRenderState':function(_0x2d4af9){var _0x2bd80f=_0x3e7117,_0x3378f6={'viewport':_0x2d4af9['viewport'],'depthTest':_0x2d4af9[_0x2bd80f(0x1cf)],'depthMask':_0x2d4af9[_0x2bd80f(0xfd)],'blending':_0x2d4af9[_0x2bd80f(0x1f3)]};return _0x2ab937[_0x2bd80f(0xff)]['getDefaultRenderState'](!0x0,!0x1,_0x3378f6);},'viewRectangleToLonLatRange':function(_0x5838be){var _0x340d15=_0x3e7117,_0x5f4929,_0x397d3f,_0x3d10b2={},_0x345479=_0x2ab937['Math'][_0x340d15(0xc6)](_0x5838be[_0x340d15(0x1a7)],_0x2ab937[_0x340d15(0xa6)]['TWO_PI']),_0x29feb6=_0x2ab937['Math']['mod'](_0x5838be[_0x340d15(0x126)],_0x2ab937['Math']['TWO_PI']),_0xaf735b=_0x5838be[_0x340d15(0x16e)];_0xaf735b>_0x2ab937[_0x340d15(0xa6)][_0x340d15(0x1df)]?(_0x5f4929=0x0,_0x397d3f=_0x2ab937[_0x340d15(0xa6)][_0x340d15(0xe2)]):_0x29feb6-_0x345479<_0xaf735b?(_0x5f4929=_0x345479,_0x397d3f=_0x345479+_0xaf735b):(_0x5f4929=_0x345479,_0x397d3f=_0x29feb6),_0x3d10b2[_0x340d15(0x188)]={'min':_0x2ab937[_0x340d15(0xa6)][_0x340d15(0x1dd)](_0x5f4929),'max':_0x2ab937['Math'][_0x340d15(0x1dd)](_0x397d3f)};var _0x3fb94f=_0x5838be['south'],_0x557991=_0x5838be[_0x340d15(0x170)],_0x59b4b0=_0x5838be[_0x340d15(0x1b9)],_0x3824b3=_0x59b4b0>_0x2ab937[_0x340d15(0xa6)]['PI']/0xc?_0x59b4b0/0x2:0x0,_0x3d01c6=_0x2ab937[_0x340d15(0xa6)][_0x340d15(0xa2)](_0x3fb94f-_0x3824b3),_0x516bfa=_0x2ab937[_0x340d15(0xa6)][_0x340d15(0xa2)](_0x557991+_0x3824b3);return _0x3d01c6<-_0x2ab937[_0x340d15(0xa6)][_0x340d15(0x1ea)]&&(_0x3d01c6=-_0x2ab937[_0x340d15(0xa6)][_0x340d15(0x196)]),_0x516bfa>_0x2ab937['Math'][_0x340d15(0x1ea)]&&(_0x516bfa=_0x2ab937['Math']['PI_OVER_TWO']),_0x3d10b2['lat']={'min':_0x2ab937['Math'][_0x340d15(0x1dd)](_0x3d01c6),'max':_0x2ab937[_0x340d15(0xa6)][_0x340d15(0x1dd)](_0x516bfa)},_0x3d10b2;}},_0x24f03b=_0x306f16(0x8),_0x217c95=_0x306f16['n'](_0x24f03b),_0x5efd59=_0x306f16(0x9),_0x4891e8=_0x306f16['n'](_0x5efd59),_0x2ad2ba=_0x306f16(0x7),_0x20a5df=_0x306f16['n'](_0x2ad2ba),_0x18973c=_0x306f16(0xa),_0x465c3a=_0x306f16['n'](_0x18973c),_0x12ecc7=_0x306f16(0xb),_0x4b6c20=_0x306f16['n'](_0x12ecc7),_0x5341cc=function(){var _0x2cd09a=_0x3e7117;function _0x172c62(_0x4524f9,_0x43bff5,_0x36e451,_0x48a287,_0x52d656){var _0x5c5c38=a0_0x1db2;_0xe8454()(this,_0x172c62),this['createRenderingTextures'](_0x4524f9,_0x43bff5),this['createRenderingFramebuffers'](_0x4524f9),this[_0x5c5c38(0xb3)](_0x4524f9,_0x36e451,_0x48a287,_0x52d656);}return _0x4d2ebb()(_0x172c62,[{'key':_0x2cd09a(0x122),'value':function(_0x4ccdfd,_0x42c61a){var _0x5a38a4=_0x2cd09a,_0x2c2205={'context':_0x4ccdfd,'width':_0x4ccdfd[_0x5a38a4(0x15d)],'height':_0x4ccdfd[_0x5a38a4(0x1fb)],'pixelFormat':_0x2ab937['PixelFormat'][_0x5a38a4(0x169)],'pixelDatatype':_0x2ab937[_0x5a38a4(0x1b3)][_0x5a38a4(0x205)]},_0x272142={'context':_0x4ccdfd,'width':_0x4ccdfd[_0x5a38a4(0x15d)],'height':_0x4ccdfd[_0x5a38a4(0x1fb)],'pixelFormat':_0x2ab937[_0x5a38a4(0x1bc)]['DEPTH_COMPONENT'],'pixelDatatype':_0x2ab937[_0x5a38a4(0x1b3)][_0x5a38a4(0x107)]},_0x40f91c={'context':_0x4ccdfd,'width':_0x42c61a[_0x5a38a4(0x1e7)][_0x5a38a4(0x189)],'height':0x1,'pixelFormat':_0x2ab937[_0x5a38a4(0x1bc)][_0x5a38a4(0x1e2)],'pixelDatatype':_0x2ab937[_0x5a38a4(0x1b3)][_0x5a38a4(0xa0)],'sampler':new _0x2ab937['Sampler']({'minificationFilter':_0x2ab937[_0x5a38a4(0x1dc)][_0x5a38a4(0xef)],'magnificationFilter':_0x2ab937[_0x5a38a4(0x11c)][_0x5a38a4(0xef)]})};this[_0x5a38a4(0x130)]={'segmentsColor':_0x1151f0[_0x5a38a4(0x157)](_0x2c2205),'segmentsDepth':_0x1151f0['createTexture'](_0x272142),'currentTrailsColor':_0x1151f0['createTexture'](_0x2c2205),'currentTrailsDepth':_0x1151f0[_0x5a38a4(0x157)](_0x272142),'nextTrailsColor':_0x1151f0[_0x5a38a4(0x157)](_0x2c2205),'nextTrailsDepth':_0x1151f0[_0x5a38a4(0x157)](_0x272142),'colorTable':_0x1151f0[_0x5a38a4(0x157)](_0x40f91c,_0x42c61a[_0x5a38a4(0x1e7)][_0x5a38a4(0x113)])};}},{'key':_0x2cd09a(0x10f),'value':function(_0x454bcf){var _0x55639e=_0x2cd09a;this[_0x55639e(0x148)]={'segments':_0x1151f0[_0x55639e(0x1c9)](_0x454bcf,this[_0x55639e(0x130)][_0x55639e(0xfa)],this['textures'][_0x55639e(0xf8)]),'currentTrails':_0x1151f0['createFramebuffer'](_0x454bcf,this[_0x55639e(0x130)][_0x55639e(0x1a4)],this[_0x55639e(0x130)][_0x55639e(0x16c)]),'nextTrails':_0x1151f0[_0x55639e(0x1c9)](_0x454bcf,this[_0x55639e(0x130)][_0x55639e(0x115)],this['textures'][_0x55639e(0x13e)])};}},{'key':_0x2cd09a(0x1b8),'value':function(_0x2563a9){var _0x17e35f=_0x2cd09a;for(var _0x5adf6f=[],_0x5ad85f=0x0;_0x5ad85f<_0x2563a9[_0x17e35f(0x1fd)];_0x5ad85f++)for(var _0x488b6d=0x0;_0x488b6d<_0x2563a9[_0x17e35f(0x1fd)];_0x488b6d++)for(var _0x487676=0x0;_0x487676<0x4;_0x487676++)_0x5adf6f[_0x17e35f(0x1a5)](_0x5ad85f/_0x2563a9[_0x17e35f(0x1fd)]),_0x5adf6f[_0x17e35f(0x1a5)](_0x488b6d/_0x2563a9[_0x17e35f(0x1fd)]);_0x5adf6f=new Float32Array(_0x5adf6f);for(var _0x14d8f4=[],_0x11de20=[-0x1,0x1],_0x31a16f=[-0x1,0x1],_0x28590b=0x0;_0x28590b<_0x2563a9[_0x17e35f(0x1ff)];_0x28590b++)for(var _0x301b8f=0x0;_0x301b8f<0x2;_0x301b8f++)for(var _0x1e5aee=0x0;_0x1e5aee<0x2;_0x1e5aee++)_0x14d8f4[_0x17e35f(0x1a5)](_0x11de20[_0x301b8f]),_0x14d8f4[_0x17e35f(0x1a5)](_0x31a16f[_0x1e5aee]),_0x14d8f4[_0x17e35f(0x1a5)](0x0);_0x14d8f4=new Float32Array(_0x14d8f4);for(var _0x22545f=0x6*_0x2563a9[_0x17e35f(0x1ff)],_0x3199fa=new Uint32Array(_0x22545f),_0x425c93=0x0,_0x172a82=0x0,_0x297d39=0x0;_0x425c93<_0x2563a9[_0x17e35f(0x1ff)];_0x425c93++)_0x3199fa[_0x172a82++]=_0x297d39+0x0,_0x3199fa[_0x172a82++]=_0x297d39+0x1,_0x3199fa[_0x172a82++]=_0x297d39+0x2,_0x3199fa[_0x172a82++]=_0x297d39+0x2,_0x3199fa[_0x172a82++]=_0x297d39+0x1,_0x3199fa[_0x172a82++]=_0x297d39+0x3,_0x297d39+=0x4;return new _0x2ab937[(_0x17e35f(0x166))]({'attributes':new _0x2ab937[(_0x17e35f(0x197))]({'st':new _0x2ab937['GeometryAttribute']({'componentDatatype':_0x2ab937[_0x17e35f(0x10e)][_0x17e35f(0xa0)],'componentsPerAttribute':0x2,'values':_0x5adf6f}),'normal':new _0x2ab937[(_0x17e35f(0x1f8))]({'componentDatatype':_0x2ab937[_0x17e35f(0x10e)][_0x17e35f(0xa0)],'componentsPerAttribute':0x3,'values':_0x14d8f4})}),'indices':_0x3199fa});}},{'key':_0x2cd09a(0xb3),'value':function(_0x378e0f,_0xe7185e,_0x2602a9,_0x248f3f){var _0x2fe471=_0x2cd09a,_0x5b63a3=this;this['primitives']={'segments':new _0x176d6b({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this['createSegmentsGeometry'](_0xe7185e),'primitiveType':_0x2ab937['PrimitiveType'][_0x2fe471(0x186)],'uniformMap':{'currentParticlesPosition':function(){var _0x166e4e=_0x2fe471;return _0x248f3f[_0x166e4e(0x146)][_0x166e4e(0xf7)];},'postProcessingPosition':function(){var _0x2b687e=_0x2fe471;return _0x248f3f['particlesTextures'][_0x2b687e(0x1d3)];},'postProcessingSpeed':function(){var _0x41b203=_0x2fe471;return _0x248f3f[_0x41b203(0x146)]['postProcessingSpeed'];},'colorTable':function(){var _0x1dfaa2=_0x2fe471;return _0x5b63a3[_0x1dfaa2(0x130)][_0x1dfaa2(0x1e7)];},'aspect':function(){var _0x4ce7dc=_0x2fe471;return _0x378e0f[_0x4ce7dc(0x15d)]/_0x378e0f[_0x4ce7dc(0x1fb)];},'pixelSize':function(){var _0x4cbf67=_0x2fe471;return _0x2602a9[_0x4cbf67(0xc7)];},'lineWidth':function(){var _0x69641=_0x2fe471;return _0xe7185e[_0x69641(0xb5)];},'particleHeight':function(){return _0xe7185e['particleHeight'];}},'vertexShaderSource':new _0x2ab937[(_0x2fe471(0xa9))]({'sources':[_0x217c95['a']]}),'fragmentShaderSource':new _0x2ab937[(_0x2fe471(0xa9))]({'sources':[_0x4891e8['a']]}),'rawRenderState':_0x1151f0[_0x2fe471(0x16d)]({'viewport':void 0x0,'depthTest':{'enabled':!0x0},'depthMask':!0x0}),'framebuffer':this['framebuffers'][_0x2fe471(0x12c)],'autoClear':!0x0}),'trails':new _0x176d6b({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':_0x1151f0[_0x2fe471(0xb7)](),'primitiveType':_0x2ab937[_0x2fe471(0x1ba)]['TRIANGLES'],'uniformMap':{'segmentsColorTexture':function(){var _0x257e45=_0x2fe471;return _0x5b63a3[_0x257e45(0x130)]['segmentsColor'];},'segmentsDepthTexture':function(){var _0x59d573=_0x2fe471;return _0x5b63a3[_0x59d573(0x130)][_0x59d573(0xf8)];},'currentTrailsColor':function(){var _0x5da6c2=_0x2fe471;return _0x5b63a3[_0x5da6c2(0x148)][_0x5da6c2(0x158)][_0x5da6c2(0x1f4)](0x0);},'trailsDepthTexture':function(){var _0xa16d6c=_0x2fe471;return _0x5b63a3[_0xa16d6c(0x148)][_0xa16d6c(0x158)]['depthTexture'];},'fadeOpacity':function(){return _0xe7185e['fadeOpacity'];}},'vertexShaderSource':new _0x2ab937[(_0x2fe471(0xa9))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[_0x20a5df['a']]}),'fragmentShaderSource':new _0x2ab937[(_0x2fe471(0xa9))]({'defines':[_0x2fe471(0xb9)],'sources':[_0x465c3a['a']]}),'rawRenderState':_0x1151f0[_0x2fe471(0x16d)]({'viewport':void 0x0,'depthTest':{'enabled':!0x0,'func':_0x2ab937[_0x2fe471(0x103)][_0x2fe471(0xce)]},'depthMask':!0x0}),'framebuffer':this[_0x2fe471(0x148)]['nextTrails'],'autoClear':!0x0,'preExecute':function(){var _0x20005b=_0x2fe471,_0x808a97;_0x808a97=_0x5b63a3[_0x20005b(0x148)]['currentTrails'],_0x5b63a3[_0x20005b(0x148)]['currentTrails']=_0x5b63a3[_0x20005b(0x148)][_0x20005b(0x10c)],_0x5b63a3[_0x20005b(0x148)]['nextTrails']=_0x808a97,_0x5b63a3[_0x20005b(0x198)]['trails'][_0x20005b(0x136)]['framebuffer']=_0x5b63a3[_0x20005b(0x148)][_0x20005b(0x10c)],_0x5b63a3['primitives']['trails']['clearCommand'][_0x20005b(0x167)]=_0x5b63a3[_0x20005b(0x148)][_0x20005b(0x10c)];}}),'screen':new _0x176d6b({'commandType':_0x2fe471(0xdb),'attributeLocations':{'position':0x0,'st':0x1},'geometry':_0x1151f0[_0x2fe471(0xb7)](),'primitiveType':_0x2ab937[_0x2fe471(0x1ba)][_0x2fe471(0x186)],'uniformMap':{'trailsColorTexture':function(){var _0x37b639=_0x2fe471;return _0x5b63a3['framebuffers']['nextTrails'][_0x37b639(0x1f4)](0x0);},'trailsDepthTexture':function(){var _0x3c3252=_0x2fe471;return _0x5b63a3[_0x3c3252(0x148)][_0x3c3252(0x10c)]['depthTexture'];}},'vertexShaderSource':new _0x2ab937[(_0x2fe471(0xa9))]({'defines':[_0x2fe471(0xc4)],'sources':[_0x20a5df['a']]}),'fragmentShaderSource':new _0x2ab937[(_0x2fe471(0xa9))]({'defines':[_0x2fe471(0xb9)],'sources':[_0x4b6c20['a']]}),'rawRenderState':_0x1151f0['createRawRenderState']({'viewport':void 0x0,'depthTest':{'enabled':!0x1},'depthMask':!0x0,'blending':{'enabled':!0x0}}),'framebuffer':void 0x0})};}}]),_0x172c62;}(),_0x177953=_0x306f16(0xc),_0x22c28f=_0x306f16['n'](_0x177953),_0x1fcdca=_0x306f16(0xd),_0x1a86df=_0x306f16['n'](_0x1fcdca),_0x3c2158=_0x306f16(0xe),_0x2ce942=_0x306f16['n'](_0x3c2158),_0x431167=_0x306f16(0xf),_0x232f6a=_0x306f16['n'](_0x431167),_0x1d694f=_0x306f16(0x10),_0x5d31b8=_0x306f16['n'](_0x1d694f),_0x51666d=function(){var _0x353351=_0x3e7117;function _0x51fcb3(_0x188161,_0x3aceca,_0x4dd7fa,_0x1b254c){var _0x117fbe=a0_0x1db2;_0xe8454()(this,_0x51fcb3),this[_0x117fbe(0xa8)]=_0x3aceca,this['createWindTextures'](_0x188161,_0x3aceca),this[_0x117fbe(0x10a)](_0x188161,_0x4dd7fa,_0x1b254c),this[_0x117fbe(0x184)](_0x3aceca,_0x4dd7fa,_0x1b254c);}return _0x4d2ebb()(_0x51fcb3,[{'key':_0x353351(0x1ca),'value':function(_0x3d1c9b,_0x189037){var _0x5de59f=_0x353351,_0x413885={'context':_0x3d1c9b,'width':_0x189037[_0x5de59f(0xf3)][_0x5de59f(0x188)],'height':_0x189037['dimensions'][_0x5de59f(0x18a)]*_0x189037[_0x5de59f(0xf3)][_0x5de59f(0x1d5)],'pixelFormat':_0x2ab937['PixelFormat'][_0x5de59f(0x14a)],'pixelDatatype':_0x2ab937[_0x5de59f(0x1b3)][_0x5de59f(0xa0)],'flipY':!0x1,'sampler':new _0x2ab937[(_0x5de59f(0x104))]({'minificationFilter':_0x2ab937[_0x5de59f(0x1dc)]['NEAREST'],'magnificationFilter':_0x2ab937[_0x5de59f(0x11c)][_0x5de59f(0xa7)]})};this[_0x5de59f(0x17b)]={'U':_0x1151f0[_0x5de59f(0x157)](_0x413885,_0x189037['U'][_0x5de59f(0x113)]),'V':_0x1151f0[_0x5de59f(0x157)](_0x413885,_0x189037['V'][_0x5de59f(0x113)])};}},{'key':_0x353351(0x10a),'value':function(_0x4e93b3,_0x319bd2,_0x4af946){var _0x18610f=_0x353351,_0x28a4fb={'context':_0x4e93b3,'width':_0x319bd2[_0x18610f(0x1fd)],'height':_0x319bd2[_0x18610f(0x1fd)],'pixelFormat':_0x2ab937[_0x18610f(0x1bc)][_0x18610f(0x169)],'pixelDatatype':_0x2ab937[_0x18610f(0x1b3)][_0x18610f(0xa0)],'flipY':!0x1,'sampler':new _0x2ab937[(_0x18610f(0x104))]({'minificationFilter':_0x2ab937[_0x18610f(0x1dc)][_0x18610f(0xa7)],'magnificationFilter':_0x2ab937[_0x18610f(0x11c)][_0x18610f(0xa7)]})},_0x55aec0=this[_0x18610f(0x95)](_0x319bd2[_0x18610f(0x1ff)],_0x4af946),_0x20a9b4=new Float32Array(0x4*_0x319bd2['maxParticles'])['fill'](0x0);this[_0x18610f(0x146)]={'particlesWind':_0x1151f0['createTexture'](_0x28a4fb),'currentParticlesPosition':_0x1151f0['createTexture'](_0x28a4fb,_0x55aec0),'nextParticlesPosition':_0x1151f0['createTexture'](_0x28a4fb,_0x55aec0),'currentParticlesSpeed':_0x1151f0[_0x18610f(0x157)](_0x28a4fb,_0x20a9b4),'nextParticlesSpeed':_0x1151f0['createTexture'](_0x28a4fb,_0x20a9b4),'postProcessingPosition':_0x1151f0[_0x18610f(0x157)](_0x28a4fb,_0x55aec0),'postProcessingSpeed':_0x1151f0['createTexture'](_0x28a4fb,_0x20a9b4)};}},{'key':_0x353351(0x95),'value':function(_0x3b46d3,_0x3f7c46){var _0x38c6dc=_0x353351;for(var _0x4b70d5=new Float32Array(0x4*_0x3b46d3),_0x2b2067=0x0;_0x2b2067<_0x3b46d3;_0x2b2067++)_0x4b70d5[0x4*_0x2b2067]=_0x2ab937[_0x38c6dc(0xa6)][_0x38c6dc(0xd2)](_0x3f7c46[_0x38c6dc(0x1c8)]['x'],_0x3f7c46['lonRange']['y']),_0x4b70d5[0x4*_0x2b2067+0x1]=_0x2ab937['Math']['randomBetween'](_0x3f7c46[_0x38c6dc(0x8a)]['x'],_0x3f7c46['latRange']['y']),_0x4b70d5[0x4*_0x2b2067+0x2]=_0x2ab937[_0x38c6dc(0xa6)]['randomBetween'](this[_0x38c6dc(0xa8)][_0x38c6dc(0x1d5)][_0x38c6dc(0x131)],this[_0x38c6dc(0xa8)][_0x38c6dc(0x1d5)]['max']),_0x4b70d5[0x4*_0x2b2067+0x3]=0x0;return _0x4b70d5;}},{'key':_0x353351(0x96),'value':function(){var _0x3d7c5b=_0x353351,_0x3bd8c3=this;Object[_0x3d7c5b(0x19e)](this[_0x3d7c5b(0x146)])['forEach'](function(_0x5e00c1){var _0x1439e5=_0x3d7c5b;_0x3bd8c3[_0x1439e5(0x146)][_0x5e00c1][_0x1439e5(0x1ee)]();});}},{'key':_0x353351(0x184),'value':function(_0x1d335c,_0x147ea7,_0x3e8785){var _0x4328d6=_0x353351,_0x556f90=new _0x2ab937['Cartesian3'](_0x1d335c['dimensions'][_0x4328d6(0x188)],_0x1d335c[_0x4328d6(0xf3)]['lat'],_0x1d335c[_0x4328d6(0xf3)]['lev']),_0x441617=new _0x2ab937[(_0x4328d6(0xb6))](_0x1d335c['lon']['min'],_0x1d335c[_0x4328d6(0x18a)][_0x4328d6(0x131)],_0x1d335c[_0x4328d6(0x1d5)][_0x4328d6(0x131)]),_0x3adc54=new _0x2ab937[(_0x4328d6(0xb6))](_0x1d335c[_0x4328d6(0x188)][_0x4328d6(0xd8)],_0x1d335c[_0x4328d6(0x18a)][_0x4328d6(0xd8)],_0x1d335c[_0x4328d6(0x1d5)][_0x4328d6(0xd8)]),_0x1606c1=new _0x2ab937[(_0x4328d6(0xb6))]((_0x3adc54['x']-_0x441617['x'])/(_0x556f90['x']-0x1),(_0x3adc54['y']-_0x441617['y'])/(_0x556f90['y']-0x1),_0x556f90['z']>0x1?(_0x3adc54['z']-_0x441617['z'])/(_0x556f90['z']-0x1):0x1),_0x30d6d=new _0x2ab937[(_0x4328d6(0x143))](_0x1d335c['U']['min'],_0x1d335c['U'][_0x4328d6(0xd8)]),_0x395099=new _0x2ab937['Cartesian2'](_0x1d335c['V']['min'],_0x1d335c['V'][_0x4328d6(0xd8)]),_0x2f4a62=this;this[_0x4328d6(0x198)]={'getWind':new _0x176d6b({'commandType':_0x4328d6(0x206),'uniformMap':{'U':function(){var _0x5ae138=_0x4328d6;return _0x2f4a62[_0x5ae138(0x17b)]['U'];},'V':function(){var _0x2863c4=_0x4328d6;return _0x2f4a62[_0x2863c4(0x17b)]['V'];},'currentParticlesPosition':function(){var _0x2ad83c=_0x4328d6;return _0x2f4a62[_0x2ad83c(0x146)]['currentParticlesPosition'];},'dimension':function(){return _0x556f90;},'minimum':function(){return _0x441617;},'maximum':function(){return _0x3adc54;},'interval':function(){return _0x1606c1;}},'fragmentShaderSource':new _0x2ab937[(_0x4328d6(0xa9))]({'sources':[_0x22c28f['a']]}),'outputTexture':this[_0x4328d6(0x146)][_0x4328d6(0x17e)],'preExecute':function(){var _0x14baa5=_0x4328d6;_0x2f4a62[_0x14baa5(0x198)][_0x14baa5(0x18c)][_0x14baa5(0x136)][_0x14baa5(0x1f7)]=_0x2f4a62[_0x14baa5(0x146)]['particlesWind'];}}),'updateSpeed':new _0x176d6b({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function(){var _0x56611a=_0x4328d6;return _0x2f4a62[_0x56611a(0x146)]['currentParticlesSpeed'];},'particlesWind':function(){var _0x36b390=_0x4328d6;return _0x2f4a62[_0x36b390(0x146)][_0x36b390(0x17e)];},'uSpeedRange':function(){return _0x30d6d;},'vSpeedRange':function(){return _0x395099;},'pixelSize':function(){return _0x3e8785['pixelSize'];},'speedFactor':function(){var _0x3e30cc=_0x4328d6;return _0x147ea7[_0x3e30cc(0x194)];}},'fragmentShaderSource':new _0x2ab937[(_0x4328d6(0xa9))]({'sources':[_0x1a86df['a']]}),'outputTexture':this[_0x4328d6(0x146)][_0x4328d6(0x133)],'preExecute':function(){var _0x4482eb=_0x4328d6,_0x2b0020;_0x2b0020=_0x2f4a62[_0x4482eb(0x146)][_0x4482eb(0x99)],_0x2f4a62[_0x4482eb(0x146)][_0x4482eb(0x99)]=_0x2f4a62['particlesTextures'][_0x4482eb(0xd0)],_0x2f4a62[_0x4482eb(0x146)][_0x4482eb(0xd0)]=_0x2b0020,_0x2f4a62[_0x4482eb(0x198)]['updateSpeed'][_0x4482eb(0x136)][_0x4482eb(0x1f7)]=_0x2f4a62[_0x4482eb(0x146)][_0x4482eb(0x133)];}}),'updatePosition':new _0x176d6b({'commandType':_0x4328d6(0x206),'uniformMap':{'currentParticlesPosition':function(){var _0x5c950c=_0x4328d6;return _0x2f4a62[_0x5c950c(0x146)][_0x5c950c(0xf7)];},'currentParticlesSpeed':function(){var _0xca6b35=_0x4328d6;return _0x2f4a62['particlesTextures'][_0xca6b35(0x99)];}},'fragmentShaderSource':new _0x2ab937[(_0x4328d6(0xa9))]({'sources':[_0x2ce942['a']]}),'outputTexture':this[_0x4328d6(0x146)][_0x4328d6(0x1fe)],'preExecute':function(){var _0x34abac=_0x4328d6,_0x392f44;_0x392f44=_0x2f4a62[_0x34abac(0x146)]['currentParticlesPosition'],_0x2f4a62[_0x34abac(0x146)][_0x34abac(0xf7)]=_0x2f4a62[_0x34abac(0x146)][_0x34abac(0x1d3)],_0x2f4a62[_0x34abac(0x146)][_0x34abac(0x1d3)]=_0x392f44,_0x2f4a62[_0x34abac(0x198)]['updatePosition']['commandToExecute'][_0x34abac(0x1f7)]=_0x2f4a62[_0x34abac(0x146)]['nextParticlesPosition'];}}),'postProcessingPosition':new _0x176d6b({'commandType':'Compute','uniformMap':{'nextParticlesPosition':function(){var _0x188cb3=_0x4328d6;return _0x2f4a62['particlesTextures'][_0x188cb3(0x1fe)];},'nextParticlesSpeed':function(){var _0x13fc4b=_0x4328d6;return _0x2f4a62['particlesTextures'][_0x13fc4b(0x133)];},'lonRange':function(){return _0x3e8785['lonRange'];},'latRange':function(){var _0x28ae26=_0x4328d6;return _0x3e8785[_0x28ae26(0x8a)];},'randomCoefficient':function(){var _0x5645cc=_0x4328d6,_0x23f200=Math[_0x5645cc(0xb0)]();return _0x23f200;},'dropRate':function(){var _0x4b5e1d=_0x4328d6;return _0x147ea7[_0x4b5e1d(0x1cb)];},'dropRateBump':function(){var _0x58b59d=_0x4328d6;return _0x147ea7[_0x58b59d(0x1b0)];}},'fragmentShaderSource':new _0x2ab937['ShaderSource']({'sources':[_0x232f6a['a']]}),'outputTexture':this[_0x4328d6(0x146)][_0x4328d6(0x1d3)],'preExecute':function(){var _0x53b440=_0x4328d6;_0x2f4a62[_0x53b440(0x198)][_0x53b440(0x1d3)]['commandToExecute'][_0x53b440(0x1f7)]=_0x2f4a62['particlesTextures'][_0x53b440(0x1d3)];}}),'postProcessingSpeed':new _0x176d6b({'commandType':_0x4328d6(0x206),'uniformMap':{'postProcessingPosition':function(){var _0x5e95ea=_0x4328d6;return _0x2f4a62[_0x5e95ea(0x146)]['postProcessingPosition'];},'nextParticlesSpeed':function(){var _0x4d15eb=_0x4328d6;return _0x2f4a62[_0x4d15eb(0x146)][_0x4d15eb(0x133)];}},'fragmentShaderSource':new _0x2ab937['ShaderSource']({'sources':[_0x5d31b8['a']]}),'outputTexture':this[_0x4328d6(0x146)][_0x4328d6(0xd0)],'preExecute':function(){var _0x5c131b=_0x4328d6;_0x2f4a62[_0x5c131b(0x198)][_0x5c131b(0xd0)][_0x5c131b(0x136)][_0x5c131b(0x1f7)]=_0x2f4a62[_0x5c131b(0x146)][_0x5c131b(0xd0)];}})};}}]),_0x51fcb3;}(),_0x6cad0b=function(){var _0x1197c4=_0x3e7117;function _0x368af6(_0x357d23,_0x530bd0,_0x4d776e,_0x22026a){var _0x205907=a0_0x1db2;_0xe8454()(this,_0x368af6),this['context']=_0x357d23,this[_0x205907(0xa8)]=_0x530bd0,this[_0x205907(0x1b2)]=_0x4d776e,this[_0x205907(0x1d4)]=_0x22026a,this[_0x205907(0x187)]=new _0x51666d(this[_0x205907(0x18f)],this['data'],this['userInput'],this[_0x205907(0x1d4)]),this[_0x205907(0xf5)]=new _0x5341cc(this[_0x205907(0x18f)],this['data'],this['userInput'],this[_0x205907(0x1d4)],this[_0x205907(0x187)]);}return _0x4d2ebb()(_0x368af6,[{'key':_0x1197c4(0x94),'value':function(_0x162523){var _0x3559aa=_0x1197c4,_0xdacaee=this;this[_0x3559aa(0x187)][_0x3559aa(0x96)](),Object[_0x3559aa(0x19e)](this[_0x3559aa(0x187)][_0x3559aa(0x17b)])[_0x3559aa(0x13f)](function(_0x59c8a4){var _0x388947=_0x3559aa;_0xdacaee[_0x388947(0x187)][_0x388947(0x17b)][_0x59c8a4][_0x388947(0x1ee)]();}),this[_0x3559aa(0xf5)][_0x3559aa(0x130)][_0x3559aa(0x1e7)][_0x3559aa(0x1ee)](),Object[_0x3559aa(0x19e)](this[_0x3559aa(0xf5)][_0x3559aa(0x148)])[_0x3559aa(0x13f)](function(_0x5b7a30){var _0x4bb307=_0x3559aa;_0xdacaee['particlesRendering'][_0x4bb307(0x148)][_0x5b7a30][_0x4bb307(0x1ee)]();}),this[_0x3559aa(0x18f)]=_0x162523,this['particlesComputing']=new _0x51666d(this[_0x3559aa(0x18f)],this[_0x3559aa(0xa8)],this[_0x3559aa(0x1b2)],this['viewerParameters']),this[_0x3559aa(0xf5)]=new _0x5341cc(this[_0x3559aa(0x18f)],this[_0x3559aa(0xa8)],this[_0x3559aa(0x1b2)],this[_0x3559aa(0x1d4)],this[_0x3559aa(0x187)]);}},{'key':_0x1197c4(0x1d9),'value':function(){var _0x267d69=_0x1197c4,_0x5a898c=this,_0x261557=new _0x2ab937['ClearCommand']({'color':new _0x2ab937[(_0x267d69(0x1ac))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':void 0x0,'pass':_0x2ab937['Pass']['OPAQUE']});Object[_0x267d69(0x19e)](this[_0x267d69(0xf5)][_0x267d69(0x148)])[_0x267d69(0x13f)](function(_0x24ac50){var _0x4e1844=_0x267d69;_0x261557[_0x4e1844(0x167)]=_0x5a898c['particlesRendering'][_0x4e1844(0x148)][_0x24ac50],_0x261557['execute'](_0x5a898c[_0x4e1844(0x18f)]);});}},{'key':_0x1197c4(0xc9),'value':function(_0x3af228){var _0x1993d5=_0x1197c4;if(this[_0x1993d5(0x1d9)](),this[_0x1993d5(0x187)][_0x1993d5(0x96)](),this[_0x1993d5(0x187)][_0x1993d5(0x10a)](this[_0x1993d5(0x18f)],this[_0x1993d5(0x1b2)],this[_0x1993d5(0x1d4)]),_0x3af228){var _0x109e54=this[_0x1993d5(0xf5)][_0x1993d5(0x1b8)](this[_0x1993d5(0x1b2)]);this['particlesRendering'][_0x1993d5(0x198)][_0x1993d5(0x12c)]['geometry']=_0x109e54;var _0x5ee885=_0x2ab937[_0x1993d5(0xb2)][_0x1993d5(0xe5)]({'context':this[_0x1993d5(0x18f)],'geometry':_0x109e54,'attributeLocations':this[_0x1993d5(0xf5)][_0x1993d5(0x198)][_0x1993d5(0x12c)][_0x1993d5(0x1de)],'bufferUsage':_0x2ab937[_0x1993d5(0x1b6)][_0x1993d5(0x127)]});this[_0x1993d5(0xf5)][_0x1993d5(0x198)][_0x1993d5(0x12c)]['commandToExecute'][_0x1993d5(0xbf)]=_0x5ee885;}}},{'key':_0x1197c4(0x11b),'value':function(_0x101177){var _0x3c3d6d=_0x1197c4,_0x2d200e=this,_0x28e1b5=!0x1;this['userInput'][_0x3c3d6d(0x1ff)]!=_0x101177[_0x3c3d6d(0x1ff)]&&(_0x28e1b5=!0x0),Object['keys'](_0x101177)[_0x3c3d6d(0x13f)](function(_0x5974f2){var _0x3605ea=_0x3c3d6d;_0x2d200e[_0x3605ea(0x1b2)][_0x5974f2]=_0x101177[_0x5974f2];}),this[_0x3c3d6d(0xc9)](_0x28e1b5);}},{'key':_0x1197c4(0xe3),'value':function(_0x36e344){var _0x471e41=_0x1197c4,_0x5efea1=this;Object['keys'](_0x36e344)[_0x471e41(0x13f)](function(_0x1ae51d){var _0x5307e8=_0x471e41;_0x5efea1[_0x5307e8(0x1d4)][_0x1ae51d]=_0x36e344[_0x1ae51d];}),this[_0x471e41(0xc9)](!0x1);}}]),_0x368af6;}();function _0x4a1a3f(_0xb153b7){var _0x3f75f8=function(){var _0x5394b9=a0_0x1db2;if(_0x5394b9(0x1ad)==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct'][_0x5394b9(0x15b)])return!0x1;if(_0x5394b9(0x190)==typeof Proxy)return!0x0;try{return Boolean[_0x5394b9(0x8b)]['valueOf'][_0x5394b9(0x1f9)](Reflect[_0x5394b9(0x1c7)](Boolean,[],function(){})),!0x0;}catch(_0x504800){return!0x1;}}();return function(){var _0x1d1720=a0_0x1db2,_0x506fc0,_0x2e7451=_0x155bb1()(_0xb153b7);if(_0x3f75f8){var _0x5893af=_0x155bb1()(this)[_0x1d1720(0x191)];_0x506fc0=Reflect['construct'](_0x2e7451,arguments,_0x5893af);}else _0x506fc0=_0x2e7451[_0x1d1720(0xcc)](this,arguments);return _0x3214b3()(this,_0x506fc0);};}var _0x160415=_0x43c4a0[_0x3e7117(0x9b)][_0x3e7117(0x1e8)],_0xbdd4ba=0x1000,_0x4edfba=0x64,_0x373335=0.996,_0x547429=0.003,_0x6e82f9=0.01,_0x25a5dc=0.5,_0x4c66f9=0x2,_0x2f2d06=function(_0x1ea43c){var _0x447db2=_0x3e7117;_0x43b6f7()(_0x170389,_0x1ea43c);var _0x3cdf01=_0x4a1a3f(_0x170389);function _0x170389(){var _0xfb7a43=a0_0x1db2,_0x1269ea,_0x1078a3=arguments['length']>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:{};return _0xe8454()(this,_0x170389),(_0x1269ea=_0x3cdf01[_0xfb7a43(0x1f9)](this,_0x1078a3))[_0xfb7a43(0x1ff)]=_0xbdd4ba,_0x1269ea[_0xfb7a43(0x1d8)]=_0x4edfba,_0x1269ea[_0xfb7a43(0xe6)]=_0x373335,_0x1269ea[_0xfb7a43(0x1cb)]=_0x547429,_0x1269ea[_0xfb7a43(0x1b0)]=_0x6e82f9,_0x1269ea[_0xfb7a43(0x194)]=_0x25a5dc,_0x1269ea[_0xfb7a43(0xb5)]=_0x4c66f9,_0x1269ea[_0xfb7a43(0xec)](_0x1078a3),_0x1269ea;}return _0x4d2ebb()(_0x170389,[{'key':_0x447db2(0x9b),'get':function(){var _0x111329=_0x447db2;return this[_0x111329(0x198)];}},{'key':_0x447db2(0xec),'value':function(_0x512360){if(_0x512360){for(var _0x3ce430 in _0x512360)this[_0x3ce430]=_0x512360[_0x3ce430];}}},{'key':_0x447db2(0x1b5),'value':function(){}},{'key':_0x447db2(0x1a2),'value':function(){var _0x5618dc=_0x447db2;this['scene']=this[_0x5618dc(0x119)][_0x5618dc(0xa5)],this[_0x5618dc(0x14d)]=this[_0x5618dc(0x119)]['camera'],this['primitives']=new _0x2ab937[(_0x5618dc(0x100))](),this[_0x5618dc(0x119)][_0x5618dc(0xa5)][_0x5618dc(0x198)]['add'](this[_0x5618dc(0x198)]),this['viewerParameters']={'lonRange':new _0x2ab937[(_0x5618dc(0x143))](),'latRange':new _0x2ab937[(_0x5618dc(0x143))](),'pixelSize':0x0},this[_0x5618dc(0x11e)]=new _0x2ab937[(_0x5618dc(0x1f1))](_0x2ab937[_0x5618dc(0xb6)][_0x5618dc(0x19c)],6314355.63),this[_0x5618dc(0x1a1)](),window[_0x5618dc(0x195)]('resize',this[_0x5618dc(0x1ab)][_0x5618dc(0x8d)](this),!0x1),this[_0x5618dc(0x8f)]=!0x1,this[_0x5618dc(0x152)]=!0x1,this[_0x5618dc(0x119)]['on'](_0x43c4a0[_0x5618dc(0x174)][_0x5618dc(0xdc)],this[_0x5618dc(0x12f)],this),this['_map']['on'](_0x43c4a0[_0x5618dc(0x174)]['mouseDown'],this[_0x5618dc(0x168)],this),this[_0x5618dc(0x119)]['on'](_0x43c4a0[_0x5618dc(0x174)][_0x5618dc(0x1cc)],this[_0x5618dc(0x1bb)],this),this[_0x5618dc(0x119)]['on'](_0x43c4a0[_0x5618dc(0x174)][_0x5618dc(0x162)],this[_0x5618dc(0x1bf)],this);}},{'key':_0x447db2(0xae),'value':function(){var _0x57e3a4=_0x447db2;window[_0x57e3a4(0x1d1)](_0x57e3a4(0x1ab),this[_0x57e3a4(0x1ab)]),this[_0x57e3a4(0x119)]['off'](_0x43c4a0[_0x57e3a4(0x174)]['preRender'],this['_onMap_preRenderEvent'],this),this[_0x57e3a4(0x119)][_0x57e3a4(0xfc)](_0x43c4a0['EventType'][_0x57e3a4(0xdc)],this[_0x57e3a4(0x12f)],this),this['_map'][_0x57e3a4(0xfc)](_0x43c4a0[_0x57e3a4(0x174)][_0x57e3a4(0x154)],this[_0x57e3a4(0x168)],this),this['_map'][_0x57e3a4(0xfc)](_0x43c4a0[_0x57e3a4(0x174)][_0x57e3a4(0x1cc)],this[_0x57e3a4(0x1bb)],this),this[_0x57e3a4(0x119)][_0x57e3a4(0xfc)](_0x43c4a0['EventType'][_0x57e3a4(0x162)],this[_0x57e3a4(0x1bf)],this),this[_0x57e3a4(0x198)][_0x57e3a4(0x12d)](),this[_0x57e3a4(0x119)][_0x57e3a4(0xa5)][_0x57e3a4(0x198)][_0x57e3a4(0x18d)](this[_0x57e3a4(0x198)]);}},{'key':_0x447db2(0x1ab),'value':function(){var _0x17756f=_0x447db2;this['show']&&this[_0x17756f(0x19a)]&&(this[_0x17756f(0x198)]['show']=!0x1,this[_0x17756f(0x198)][_0x17756f(0x12d)](),this[_0x17756f(0x119)]['once'](_0x43c4a0[_0x17756f(0x174)][_0x17756f(0x1a6)],this['_onMap_preRenderEvent'],this));}},{'key':_0x447db2(0xe8),'value':function(_0x2bf767){var _0x30b0ba=_0x447db2;this['particleSystem'][_0x30b0ba(0x94)](this[_0x30b0ba(0xa5)][_0x30b0ba(0x18f)]),this['addPrimitives'](),this[_0x30b0ba(0x198)][_0x30b0ba(0x1f0)]=!0x0;}},{'key':_0x447db2(0x12f),'value':function(_0x1f7f8e){var _0x34e31b=_0x447db2,_0x2f4507=this;clearTimeout(this[_0x34e31b(0x1b7)]),this[_0x34e31b(0x1f0)]&&this['particleSystem']&&(this[_0x34e31b(0x198)][_0x34e31b(0x1f0)]=!0x1,this[_0x34e31b(0x1b7)]=setTimeout(function(){var _0x543440=_0x34e31b;_0x2f4507[_0x543440(0x1f0)]&&_0x2f4507[_0x543440(0xe4)]();},0xc8));}},{'key':'_onMouseDownEvent','value':function(_0x315ae9){var _0x4e121e=_0x447db2;this[_0x4e121e(0x8f)]=!0x0;}},{'key':_0x447db2(0x1bf),'value':function(_0x2afba7){var _0x410789=_0x447db2;this[_0x410789(0x1f0)]&&this['particleSystem']&&this[_0x410789(0x8f)]&&(this[_0x410789(0x198)][_0x410789(0x1f0)]=!0x1,this[_0x410789(0x152)]=!0x0);}},{'key':_0x447db2(0x1bb),'value':function(_0x1d564c){var _0x41d6c1=_0x447db2;this[_0x41d6c1(0x1f0)]&&this[_0x41d6c1(0x19a)]&&(this['mouse_down']&&this[_0x41d6c1(0x152)]&&this[_0x41d6c1(0xe4)](),this['primitives']['show']=!0x0,this[_0x41d6c1(0x8f)]=!0x1,this[_0x41d6c1(0x152)]=!0x1);}},{'key':_0x447db2(0xe4),'value':function(){var _0x4ba8d0=_0x447db2;this[_0x4ba8d0(0x119)]&&this[_0x4ba8d0(0x1f0)]&&(this[_0x4ba8d0(0x1a1)](),this[_0x4ba8d0(0x19a)][_0x4ba8d0(0xe3)](this[_0x4ba8d0(0x1d4)]),this[_0x4ba8d0(0x198)][_0x4ba8d0(0x1f0)]=!0x0);}},{'key':_0x447db2(0x1a0),'value':function(_0x583e6a){var _0x5b465c=_0x447db2;this[_0x5b465c(0x19a)]=new _0x6cad0b(this[_0x5b465c(0xa5)][_0x5b465c(0x18f)],_0x583e6a,this[_0x5b465c(0x17d)](),this[_0x5b465c(0x1d4)]),this[_0x5b465c(0x179)]();}},{'key':'setOptions','value':function(_0x2febe3){var _0x78a9ef=_0x447db2;if(_0x2febe3){for(var _0x1ab412 in _0x2febe3)this[_0x1ab412]=_0x2febe3[_0x1ab412];}return this[_0x78a9ef(0x19a)]&&this[_0x78a9ef(0x19a)][_0x78a9ef(0x11b)](this[_0x78a9ef(0x17d)]()),this;}},{'key':_0x447db2(0x17d),'value':function(){var _0x4b20ba=_0x447db2,_0x43bf80=Math[_0x4b20ba(0xea)](Math[_0x4b20ba(0xd6)](this[_0x4b20ba(0x1ff)]));return this[_0x4b20ba(0x1ff)]=_0x43bf80*_0x43bf80,{'particlesTextureSize':_0x43bf80,'maxParticles':this['maxParticles'],'particleHeight':this[_0x4b20ba(0x1d8)],'fadeOpacity':this['fadeOpacity'],'dropRate':this[_0x4b20ba(0x1cb)],'dropRateBump':this[_0x4b20ba(0x1b0)],'speedFactor':this['speedFactor'],'lineWidth':this[_0x4b20ba(0xb5)],'globeLayer':this['globeLayer'],'WMS_URL':this['WMS_URL']};}},{'key':_0x447db2(0x179),'value':function(){var _0x5e2a66=_0x447db2;this['primitives'][_0x5e2a66(0xaa)](this['particleSystem'][_0x5e2a66(0x187)]['primitives'][_0x5e2a66(0x18c)]),this[_0x5e2a66(0x198)][_0x5e2a66(0xaa)](this['particleSystem'][_0x5e2a66(0x187)][_0x5e2a66(0x198)][_0x5e2a66(0x1f2)]),this['primitives'][_0x5e2a66(0xaa)](this[_0x5e2a66(0x19a)][_0x5e2a66(0x187)][_0x5e2a66(0x198)][_0x5e2a66(0x13d)]),this[_0x5e2a66(0x198)][_0x5e2a66(0xaa)](this['particleSystem'][_0x5e2a66(0x187)][_0x5e2a66(0x198)][_0x5e2a66(0x1d3)]),this[_0x5e2a66(0x198)][_0x5e2a66(0xaa)](this[_0x5e2a66(0x19a)][_0x5e2a66(0x187)][_0x5e2a66(0x198)]['postProcessingSpeed']),this['primitives']['add'](this[_0x5e2a66(0x19a)][_0x5e2a66(0xf5)][_0x5e2a66(0x198)]['segments']),this[_0x5e2a66(0x198)][_0x5e2a66(0xaa)](this[_0x5e2a66(0x19a)]['particlesRendering']['primitives'][_0x5e2a66(0xf6)]),this[_0x5e2a66(0x198)]['add'](this['particleSystem'][_0x5e2a66(0xf5)]['primitives'][_0x5e2a66(0x9a)]);}},{'key':'updateViewerParameters','value':function(){var _0x3a2a12=_0x447db2,_0x3eaf3f=this[_0x3a2a12(0x14d)]['computeViewRectangle'](this[_0x3a2a12(0xa5)][_0x3a2a12(0x121)][_0x3a2a12(0x19b)]);if(!_0x3eaf3f){var _0x53704b=this[_0x3a2a12(0x119)][_0x3a2a12(0x19f)]();_0x3eaf3f=_0x2ab937[_0x3a2a12(0x144)][_0x3a2a12(0x1e9)](_0x53704b['xmin'],_0x53704b['ymin'],_0x53704b['xmax'],_0x53704b[_0x3a2a12(0xc8)]);}var _0x270c6c=_0x1151f0['viewRectangleToLonLatRange'](_0x3eaf3f);this['viewerParameters']['lonRange']['x']=_0x270c6c[_0x3a2a12(0x188)][_0x3a2a12(0x131)],this[_0x3a2a12(0x1d4)][_0x3a2a12(0x1c8)]['y']=_0x270c6c['lon'][_0x3a2a12(0xd8)],this[_0x3a2a12(0x1d4)][_0x3a2a12(0x8a)]['x']=_0x270c6c['lat']['min'],this['viewerParameters'][_0x3a2a12(0x8a)]['y']=_0x270c6c[_0x3a2a12(0x18a)][_0x3a2a12(0xd8)];var _0x4c287c=this[_0x3a2a12(0x14d)]['getPixelSize'](this['globeBoundingSphere'],this['scene']['drawingBufferWidth'],this[_0x3a2a12(0xa5)][_0x3a2a12(0x1fb)]);_0x4c287c>0x0&&(this[_0x3a2a12(0x1d4)][_0x3a2a12(0xc7)]=_0x4c287c);}}]),_0x170389;}(_0x160415);_0x43c4a0[_0x3e7117(0x102)][_0x3e7117(0xee)](_0x3e7117(0xf1),_0x2f2d06),_0x43c4a0[_0x3e7117(0x9b)]['WindLayer']=_0x2f2d06;var _0x870a79=function _0x937ebd(){var _0x226d1b=_0x3e7117;_0xe8454()(this,_0x937ebd),this[_0x226d1b(0x14b)]=null,this[_0x226d1b(0x18a)]=null,this[_0x226d1b(0x128)]=null,this['tlat']=null,this[_0x226d1b(0x164)]=null;},_0x65b60c=function(){var _0x5ce31e=_0x3e7117;function _0x131c6a(_0x2c0fe0,_0x473393){var _0x3c231f=a0_0x1db2;_0xe8454()(this,_0x131c6a),this[_0x3c231f(0x10d)]=_0x2c0fe0[_0x3c231f(0x10d)],this[_0x3c231f(0x1be)]=_0x2c0fe0[_0x3c231f(0x1be)],this[_0x3c231f(0x149)]=_0x2c0fe0[_0x3c231f(0x149)],this[_0x3c231f(0x14c)]=_0x2c0fe0[_0x3c231f(0x14c)],this[_0x3c231f(0x141)]=_0x2c0fe0[_0x3c231f(0x141)],this[_0x3c231f(0xc8)]=_0x2c0fe0[_0x3c231f(0xc8)],this[_0x3c231f(0x161)]=[];var _0x4006ad=_0x2c0fe0[_0x3c231f(0x129)],_0x5d85a6=_0x2c0fe0[_0x3c231f(0xac)],_0x566567=!0x1;_0x4006ad[_0x3c231f(0x116)]===this[_0x3c231f(0x10d)]&&_0x4006ad[0x0][_0x3c231f(0x116)]===this[_0x3c231f(0x1be)]&&(_0x566567=!0x0);for(var _0x4021c9=0x0,_0x143caf=null,_0x49b5fb=null,_0x35957c=0x0;_0x35957c<this[_0x3c231f(0x10d)];_0x35957c++){_0x143caf=[];for(var _0x2bb8b3=0x0;_0x2bb8b3<this[_0x3c231f(0x1be)];_0x2bb8b3++,_0x4021c9++)_0x49b5fb=_0x566567?this[_0x3c231f(0x177)](_0x4006ad[_0x35957c][_0x2bb8b3],_0x5d85a6[_0x35957c][_0x2bb8b3]):this[_0x3c231f(0x177)](_0x4006ad[_0x4021c9],_0x5d85a6[_0x4021c9]),_0x143caf[_0x3c231f(0x1a5)](_0x49b5fb);this[_0x3c231f(0x161)][_0x3c231f(0x1a5)](_0x143caf);}_0x473393&&this[_0x3c231f(0x161)][_0x3c231f(0xe7)]();}return _0x4d2ebb()(_0x131c6a,[{'key':_0x5ce31e(0xe1),'value':function(_0x4d89e7,_0x589bc2){var _0x5aa79e=_0x5ce31e;return{'x':(_0x4d89e7-this[_0x5aa79e(0x149)])/(this['xmax']-this[_0x5aa79e(0x149)])*(this[_0x5aa79e(0x1be)]-0x1),'y':(this['ymax']-_0x589bc2)/(this[_0x5aa79e(0xc8)]-this['ymin'])*(this[_0x5aa79e(0x10d)]-0x1)};}},{'key':_0x5ce31e(0x1d0),'value':function(_0x9efa12,_0xb3076){var _0x5bd375=_0x5ce31e;if(_0x9efa12<0x0||_0x9efa12>=this['cols']||_0xb3076>=this[_0x5bd375(0x10d)])return[0x0,0x0,0x0];var _0x2e4da7,_0x3003d8,_0x1263d1=Math[_0x5bd375(0x8e)](_0x9efa12),_0xfaf366=Math[_0x5bd375(0x8e)](_0xb3076);if(_0x1263d1===_0x9efa12&&_0xfaf366===_0xb3076)return this['grid'][_0xb3076][_0x9efa12];_0x2e4da7=_0x1263d1+0x1,_0x3003d8=_0xfaf366+0x1;var _0x4aeaf5=this[_0x5bd375(0x1d0)](_0x1263d1,_0xfaf366),_0x522995=this[_0x5bd375(0x1d0)](_0x2e4da7,_0xfaf366),_0x489296=this[_0x5bd375(0x1d0)](_0x1263d1,_0x3003d8),_0x2b3c12=this[_0x5bd375(0x1d0)](_0x2e4da7,_0x3003d8),_0x4e6d91=null;try{_0x4e6d91=this[_0x5bd375(0x172)](_0x9efa12-_0x1263d1,_0xb3076-_0xfaf366,_0x4aeaf5,_0x522995,_0x489296,_0x2b3c12);}catch(_0xc4570e){console['log'](_0x9efa12,_0xb3076);}return _0x4e6d91;}},{'key':_0x5ce31e(0x172),'value':function(_0x338404,_0x1d892f,_0x532542,_0xe3ca1b,_0x8a1e77,_0x7073cc){var _0x145f3d=0x1-_0x338404,_0x5dffce=0x1-_0x1d892f,_0x1fa1f2=_0x145f3d*_0x5dffce,_0x5ab518=_0x338404*_0x5dffce,_0x560140=_0x145f3d*_0x1d892f,_0xe4b858=_0x338404*_0x1d892f,_0x1da832=_0x532542[0x0]*_0x1fa1f2+_0xe3ca1b[0x0]*_0x5ab518+_0x8a1e77[0x0]*_0x560140+_0x7073cc[0x0]*_0xe4b858,_0x4e5bcb=_0x532542[0x1]*_0x1fa1f2+_0xe3ca1b[0x1]*_0x5ab518+_0x8a1e77[0x1]*_0x560140+_0x7073cc[0x1]*_0xe4b858;return this['_calcUV'](_0x1da832,_0x4e5bcb);}},{'key':_0x5ce31e(0x177),'value':function(_0x117bab,_0x4a919d){var _0x379c46=_0x5ce31e;return[+_0x117bab,+_0x4a919d,Math[_0x379c46(0xd6)](_0x117bab*_0x117bab+_0x4a919d*_0x4a919d)];}},{'key':_0x5ce31e(0xca),'value':function(_0x162952,_0x1714f2){var _0x4c082e=_0x5ce31e;if(!this['isInExtent'](_0x162952,_0x1714f2))return null;var _0x2d0ccc=this[_0x4c082e(0xe1)](_0x162952,_0x1714f2);return this['getUVByXY'](_0x2d0ccc['x'],_0x2d0ccc['y']);}},{'key':_0x5ce31e(0x160),'value':function(_0x4a941d,_0x23af93){var _0x208635=_0x5ce31e;return _0x4a941d>=this[_0x208635(0x149)]&&_0x4a941d<=this['xmax']&&_0x23af93>=this[_0x208635(0x141)]&&_0x23af93<=this[_0x208635(0xc8)];}},{'key':_0x5ce31e(0x156),'value':function(){var _0x5e305c=_0x5ce31e,_0x524cd9=_0x20e9e2(this['xmin'],this[_0x5e305c(0x14c)]);return{'lat':_0x20e9e2(this[_0x5e305c(0x141)],this[_0x5e305c(0xc8)]),'lng':_0x524cd9};}}]),_0x131c6a;}();function _0x20e9e2(_0x1d0514,_0x182757){var _0x5365f2=_0x3e7117;return _0x1d0514+Math[_0x5365f2(0xb0)]()*(_0x182757-_0x1d0514);}function _0x56323c(_0x2596a8){var _0x1885c1=function(){var _0x571e2c=a0_0x1db2;if(_0x571e2c(0x1ad)==typeof Reflect||!Reflect[_0x571e2c(0x1c7)])return!0x1;if(Reflect[_0x571e2c(0x1c7)][_0x571e2c(0x15b)])return!0x1;if(_0x571e2c(0x190)==typeof Proxy)return!0x0;try{return Boolean['prototype']['valueOf']['call'](Reflect[_0x571e2c(0x1c7)](Boolean,[],function(){})),!0x0;}catch(_0x5aa2d5){return!0x1;}}();return function(){var _0x1f66f0=a0_0x1db2,_0x3174bf,_0x22a048=_0x155bb1()(_0x2596a8);if(_0x1885c1){var _0x58ab76=_0x155bb1()(this)[_0x1f66f0(0x191)];_0x3174bf=Reflect['construct'](_0x22a048,arguments,_0x58ab76);}else _0x3174bf=_0x22a048['apply'](this,arguments);return _0x3214b3()(this,_0x3174bf);};}var _0x341e60=function(_0x8da016){var _0x25b4b5=_0x3e7117;_0x43b6f7()(_0x131790,_0x8da016);var _0x3a18d1=_0x56323c(_0x131790);function _0x131790(){var _0x4199ac=a0_0x1db2,_0x1d8395,_0x277594=arguments[_0x4199ac(0x116)]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:{};return _0xe8454()(this,_0x131790),(_0x1d8395=_0x3a18d1[_0x4199ac(0x1f9)](this,_0x277594))['_setOptionsHook'](_0x277594),_0x1d8395[_0x4199ac(0x11d)]=null,_0x1d8395;}return _0x4d2ebb()(_0x131790,[{'key':_0x25b4b5(0xec),'value':function(_0x126475){var _0x1a5435=_0x25b4b5;this[_0x1a5435(0x1e0)]=[0x0,0x0],this[_0x1a5435(0x175)]=[],this[_0x1a5435(0x1c5)]=_0x126475[_0x1a5435(0x1c5)]||0x32,this[_0x1a5435(0x1aa)]=_0x126475[_0x1a5435(0xc5)]||0x4e20,this[_0x1a5435(0xbc)]=_0x126475[_0x1a5435(0xdd)]||0x78,this[_0x1a5435(0x178)]=0x3e8/(_0x126475[_0x1a5435(0x1f6)]||0xa),this[_0x1a5435(0x90)]=_0x2ab937[_0x1a5435(0xf4)](this[_0x1a5435(0xdf)][_0x1a5435(0xcd)],!0x1),this[_0x1a5435(0x202)]=_0x126475[_0x1a5435(0x202)]||_0x1a5435(0x19d),this[_0x1a5435(0xb5)]=_0x126475['lineWidth']||0x1,this['fixedHeight']=_0x2ab937['defaultValue'](_0x126475['fixedHeight'],0x0),this[_0x1a5435(0x173)]=_0x2ab937[_0x1a5435(0xf4)](_0x126475[_0x1a5435(0x173)],!0x1);}},{'key':'layer','get':function(){var _0x193ee2=_0x25b4b5;return this[_0x193ee2(0x11d)];}},{'key':_0x25b4b5(0x93),'get':function(){var _0x2116c9=_0x25b4b5;return this[_0x2116c9(0x119)][_0x2116c9(0xa5)]['canvas']['clientWidth'];}},{'key':_0x25b4b5(0x199),'get':function(){var _0x15ba8b=_0x25b4b5;return this[_0x15ba8b(0x119)][_0x15ba8b(0xa5)][_0x15ba8b(0x11d)]['clientHeight'];}},{'key':_0x25b4b5(0xcd),'get':function(){var _0x3f501d=_0x25b4b5;return this[_0x3f501d(0x90)];},'set':function(_0x29ead3){var _0x3be31c=_0x25b4b5;this[_0x3be31c(0x90)]=_0x29ead3,this['canvas']&&(this['canvas'][_0x3be31c(0x1c4)][_0x3be31c(0x105)]=_0x29ead3?'all':'none');}},{'key':_0x25b4b5(0x1c5),'get':function(){var _0x2977e6=_0x25b4b5;return this[_0x2977e6(0x1e6)];},'set':function(_0x548fd1){var _0x26492e=_0x25b4b5;this[_0x26492e(0x1e6)]=0x64*(0x64-(_0x548fd1>0x63?0x63:_0x548fd1)),this['_calcStep']();}},{'key':_0x25b4b5(0xc5),'get':function(){var _0x481257=_0x25b4b5;return this[_0x481257(0x1aa)];},'set':function(_0x3ff963){var _0x259293=_0x25b4b5,_0x943450=this;this['_particlesNumber']=_0x3ff963,clearTimeout(this[_0x259293(0x1e4)]),this[_0x259293(0x1e4)]=setTimeout(function(){_0x943450['redraw']();},0x1f4);}},{'key':_0x25b4b5(0xdd),'get':function(){return this['_maxAge'];},'set':function(_0x1f36c3){var _0x467306=_0x25b4b5,_0x1a5805=this;this[_0x467306(0xbc)]=_0x1f36c3,clearTimeout(this[_0x467306(0x1e4)]),this[_0x467306(0x1e4)]=setTimeout(function(){_0x1a5805['redraw']();},0x1f4);}},{'key':_0x25b4b5(0xa8),'get':function(){var _0x227604=_0x25b4b5;return this[_0x227604(0x15f)];},'set':function(_0x14a15b){var _0x6df03f=_0x25b4b5;this[_0x6df03f(0x1a3)](_0x14a15b);}},{'key':'_showHook','value':function(_0x2820e8){var _0x13c7de=_0x25b4b5;_0x2820e8?this[_0x13c7de(0x1a2)]():(this[_0x13c7de(0x15f)]&&(this[_0x13c7de(0xdf)]['data']=this[_0x13c7de(0x15f)]),this[_0x13c7de(0xae)]());}},{'key':_0x25b4b5(0x1b5),'value':function(){}},{'key':_0x25b4b5(0x1a2),'value':function(){var _0x59a8cf=_0x25b4b5;this[_0x59a8cf(0x11d)]=this[_0x59a8cf(0x134)](),this[_0x59a8cf(0x193)]=this['canvas'][_0x59a8cf(0x1cd)]('2d'),this[_0x59a8cf(0x1bd)](),this[_0x59a8cf(0xdf)][_0x59a8cf(0xa8)]&&this['updateDate'](this[_0x59a8cf(0xdf)]['data']);}},{'key':_0x25b4b5(0xae),'value':function(){var _0x772013=_0x25b4b5;this['clear'](),this[_0x772013(0x1b4)](),this[_0x772013(0x11d)]&&(this['_map'][_0x772013(0x165)]['removeChild'](this[_0x772013(0x11d)]),delete this[_0x772013(0x11d)]);}},{'key':'_createCanvas','value':function(){var _0x477903=_0x25b4b5,_0x36fe35=document[_0x477903(0x1eb)](_0x477903(0x11d));_0x36fe35[_0x477903(0x1c4)][_0x477903(0x1db)]=_0x477903(0x112),_0x36fe35[_0x477903(0x1c4)][_0x477903(0xcf)]=_0x477903(0x18e),_0x36fe35['style'][_0x477903(0x109)]='0px',_0x36fe35[_0x477903(0x1c4)][_0x477903(0x16e)]=_0x477903(0x1c2),_0x36fe35['style'][_0x477903(0x1b9)]=_0x477903(0x1c2),_0x36fe35[_0x477903(0x1c4)]['pointerEvents']=this[_0x477903(0x90)]?'auto':'none',_0x36fe35['style']['zIndex']=0xa,_0x36fe35[_0x477903(0x145)]('id','canvasWindy'),_0x36fe35['setAttribute'](_0x477903(0x120),'canvasWindy'),this[_0x477903(0x119)][_0x477903(0x165)][_0x477903(0x1b1)](_0x36fe35);var _0x19dcef=this[_0x477903(0x119)][_0x477903(0xa5)];return _0x36fe35[_0x477903(0x16e)]=_0x19dcef[_0x477903(0x11d)][_0x477903(0x14e)],_0x36fe35[_0x477903(0x1b9)]=_0x19dcef['canvas'][_0x477903(0xe0)],_0x36fe35;}},{'key':_0x25b4b5(0x1ab),'value':function(){var _0x1644ca=_0x25b4b5;this[_0x1644ca(0x11d)]&&(this['canvas'][_0x1644ca(0x16e)]=this[_0x1644ca(0x93)],this[_0x1644ca(0x11d)][_0x1644ca(0x1b9)]=this[_0x1644ca(0x199)]);}},{'key':_0x25b4b5(0x1bd),'value':function(){var _0x4f7937=_0x25b4b5,_0x383b95=this,_0xe94c3f=Date[_0x4f7937(0x108)]();!function _0x133ce9(){var _0x2b4587=_0x4f7937;_0x383b95[_0x2b4587(0xd1)]=window[_0x2b4587(0x183)](_0x133ce9);var _0x2b88df=Date[_0x2b4587(0x108)](),_0x3f5c33=_0x2b88df-_0xe94c3f;_0x3f5c33>_0x383b95[_0x2b4587(0x178)]&&(_0xe94c3f=_0x2b88df-_0x3f5c33%_0x383b95[_0x2b4587(0x178)],_0x383b95['update']());}(),window[_0x4f7937(0x195)]('resize',this[_0x4f7937(0x1ab)]['bind'](this),!0x1),this[_0x4f7937(0x8f)]=!0x1,this['mouse_move']=!0x1,this[_0x4f7937(0x119)]['on'](_0x43c4a0['EventType'][_0x4f7937(0xdc)],this['_onMapWhellEvent'],this),this[_0x4f7937(0x119)]['on'](_0x43c4a0[_0x4f7937(0x174)][_0x4f7937(0x154)],this[_0x4f7937(0x168)],this),this[_0x4f7937(0x119)]['on'](_0x43c4a0[_0x4f7937(0x174)][_0x4f7937(0x1cc)],this['_onMouseUpEvent'],this),this[_0x4f7937(0x119)]['on'](_0x43c4a0[_0x4f7937(0x174)][_0x4f7937(0x162)],this[_0x4f7937(0x1bf)],this);}},{'key':'unbindEvent','value':function(){var _0x11c1d1=_0x25b4b5;window[_0x11c1d1(0xcb)](this[_0x11c1d1(0xd1)]),delete this[_0x11c1d1(0xd1)],window['removeEventListener'](_0x11c1d1(0x1ab),this[_0x11c1d1(0x1ab)]),this['_map']['off'](_0x43c4a0['EventType']['wheel'],this[_0x11c1d1(0x12f)],this),this['_map'][_0x11c1d1(0xfc)](_0x43c4a0[_0x11c1d1(0x174)][_0x11c1d1(0x154)],this[_0x11c1d1(0x168)],this),this[_0x11c1d1(0x119)][_0x11c1d1(0xfc)](_0x43c4a0[_0x11c1d1(0x174)][_0x11c1d1(0x1cc)],this[_0x11c1d1(0x1bb)],this),this[_0x11c1d1(0x119)][_0x11c1d1(0xfc)](_0x43c4a0[_0x11c1d1(0x174)][_0x11c1d1(0x162)],this[_0x11c1d1(0x1bf)],this);}},{'key':'_onMapWhellEvent','value':function(_0x4cdc1f){var _0x4e8336=_0x25b4b5,_0x104808=this;clearTimeout(this[_0x4e8336(0x1b7)]),this[_0x4e8336(0x1f0)]&&this['canvas']&&(this['canvas'][_0x4e8336(0x1c4)][_0x4e8336(0x204)]=_0x4e8336(0x138),this[_0x4e8336(0x1b7)]=setTimeout(function(){var _0x1fe185=_0x4e8336;_0x104808[_0x1fe185(0x1f0)]&&(_0x104808[_0x1fe185(0xe4)](),_0x104808[_0x1fe185(0x11d)][_0x1fe185(0x1c4)][_0x1fe185(0x204)]=_0x1fe185(0x14f));},0xc8));}},{'key':'_onMouseDownEvent','value':function(_0x357c29){var _0x4e9656=_0x25b4b5;this[_0x4e9656(0x8f)]=!0x0;}},{'key':_0x25b4b5(0x1bf),'value':function(_0x4af040){var _0x4cb15e=_0x25b4b5;this[_0x4cb15e(0x1f0)]&&this[_0x4cb15e(0x11d)]&&this[_0x4cb15e(0x8f)]&&(this[_0x4cb15e(0x11d)][_0x4cb15e(0x1c4)][_0x4cb15e(0x204)]=_0x4cb15e(0x138),this['mouse_move']=!0x0);}},{'key':'_onMouseUpEvent','value':function(_0x30233d){var _0x3ad4e9=_0x25b4b5;this[_0x3ad4e9(0x1f0)]&&this[_0x3ad4e9(0x11d)]&&(this[_0x3ad4e9(0x8f)]&&this[_0x3ad4e9(0x152)]&&this[_0x3ad4e9(0xe4)](),this[_0x3ad4e9(0x11d)][_0x3ad4e9(0x1c4)]['visibility']=_0x3ad4e9(0x14f),this[_0x3ad4e9(0x8f)]=!0x1,this[_0x3ad4e9(0x152)]=!0x1);}},{'key':_0x25b4b5(0xe4),'value':function(){var _0xd49963=_0x25b4b5;this['show']&&this[_0xd49963(0x203)]&&(this[_0xd49963(0x175)]=[],this[_0xd49963(0x181)]());}},{'key':_0x25b4b5(0x1a3),'value':function(_0x3d5fef){var _0x20b3a8=_0x25b4b5;this[_0x20b3a8(0x140)](),this[_0x20b3a8(0x15f)]=_0x3d5fef,this[_0x20b3a8(0x203)]=new _0x65b60c(this[_0x20b3a8(0x15f)],this[_0x20b3a8(0x173)]),this[_0x20b3a8(0x181)]();}},{'key':_0x25b4b5(0x181),'value':function(){var _0x3eaf7a=_0x25b4b5;this[_0x3eaf7a(0x114)]();for(var _0xa65d59=0x0;_0xa65d59<this[_0x3eaf7a(0xc5)];_0xa65d59++){var _0x516b0e=this[_0x3eaf7a(0x185)](new _0x870a79());this[_0x3eaf7a(0x175)]['push'](_0x516b0e);}this[_0x3eaf7a(0x193)][_0x3eaf7a(0x111)]=_0x3eaf7a(0x13a),this[_0x3eaf7a(0x193)]['globalAlpha']=0.6,this[_0x3eaf7a(0x142)]();}},{'key':_0x25b4b5(0x114),'value':function(){var _0x3dc0cf=_0x25b4b5;this['windField']&&(this[_0x3dc0cf(0x1e0)]=[(this[_0x3dc0cf(0x203)][_0x3dc0cf(0x14c)]-this[_0x3dc0cf(0x203)][_0x3dc0cf(0x149)])/this[_0x3dc0cf(0x1c5)],(this[_0x3dc0cf(0x203)]['ymax']-this['windField'][_0x3dc0cf(0x141)])/this['speedRate']]);}},{'key':_0x25b4b5(0x142),'value':function(){var _0x3ef66a=_0x25b4b5,_0x35ba4f=this;if(this[_0x3ef66a(0x1f0)]&&!(this[_0x3ef66a(0x175)][_0x3ef66a(0x116)]<=0x0)){var _0x88a4e7=null,_0x81cb92=null,_0x54a18c=null;this['particles']['forEach'](function(_0x40a36a){var _0x4ef8a0=_0x3ef66a;if(_0x40a36a['age']<=0x0&&_0x35ba4f[_0x4ef8a0(0x185)](_0x40a36a),_0x40a36a['age']>0x0){var _0x12275f=_0x40a36a['tlng'],_0x581f74=_0x40a36a[_0x4ef8a0(0x118)];(_0x54a18c=_0x35ba4f[_0x4ef8a0(0x203)][_0x4ef8a0(0xca)](_0x12275f,_0x581f74))?(_0x88a4e7=_0x12275f+_0x35ba4f[_0x4ef8a0(0x1e0)][0x0]*_0x54a18c[0x0],_0x81cb92=_0x581f74+_0x35ba4f['calc_speedRate'][0x1]*_0x54a18c[0x1],_0x40a36a[_0x4ef8a0(0x14b)]=_0x12275f,_0x40a36a[_0x4ef8a0(0x18a)]=_0x581f74,_0x40a36a[_0x4ef8a0(0x128)]=_0x88a4e7,_0x40a36a[_0x4ef8a0(0x118)]=_0x81cb92,_0x40a36a[_0x4ef8a0(0x164)]--):_0x40a36a[_0x4ef8a0(0x164)]=0x0;}}),this[_0x3ef66a(0xc2)]();}}},{'key':_0x25b4b5(0xa1),'value':function(_0x754316,_0x5dafa9,_0x58e75b){var _0x160832=_0x25b4b5,_0x23555f=_0x2ab937[_0x160832(0xb6)][_0x160832(0x1e9)](_0x754316,_0x5dafa9,this[_0x160832(0x192)]),_0x5a4262=this[_0x160832(0x119)]['scene'];if(_0x5a4262[_0x160832(0x1ae)]===_0x2ab937[_0x160832(0x150)]['SCENE3D']&&!new _0x2ab937[(_0x160832(0x200))](_0x5a4262[_0x160832(0x121)]['ellipsoid'],_0x5a4262['camera'][_0x160832(0x106)])[_0x160832(0x16b)](_0x23555f))return _0x58e75b[_0x160832(0x164)]=0x0,null;var _0x4a14a0=_0x2ab937[_0x160832(0x1e5)][_0x160832(0x13c)](this[_0x160832(0x119)][_0x160832(0xa5)],_0x23555f);return _0x4a14a0?[_0x4a14a0['x'],_0x4a14a0['y']]:null;}},{'key':_0x25b4b5(0xc2),'value':function(){var _0x559e24=_0x25b4b5,_0x3bac2e=this,_0x37b2e1=this['particles'];this[_0x559e24(0x193)][_0x559e24(0xb5)]=_0x3bac2e['lineWidth'],this['canvasContext'][_0x559e24(0xbd)]=_0x559e24(0x153),this[_0x559e24(0x193)][_0x559e24(0xda)](0x0,0x0,this[_0x559e24(0x93)],this['canvasHeight']),this[_0x559e24(0x193)][_0x559e24(0xbd)]=_0x559e24(0x98),this[_0x559e24(0x193)][_0x559e24(0x1ce)]=0.9,this[_0x559e24(0x193)][_0x559e24(0xba)](),this[_0x559e24(0x193)][_0x559e24(0x117)]=this[_0x559e24(0x202)];var _0x4c6238=this[_0x559e24(0x119)][_0x559e24(0xa5)]['mode']!==_0x2ab937[_0x559e24(0x150)]['SCENE3D'];_0x37b2e1[_0x559e24(0x13f)](function(_0x729d83){var _0x5e6f18=_0x559e24,_0x26e635=_0x3bac2e[_0x5e6f18(0xa1)](_0x729d83[_0x5e6f18(0x14b)],_0x729d83[_0x5e6f18(0x18a)],_0x729d83),_0x30f6ad=_0x3bac2e[_0x5e6f18(0xa1)](_0x729d83[_0x5e6f18(0x128)],_0x729d83[_0x5e6f18(0x118)],_0x729d83);if(null!=_0x26e635&&null!=_0x30f6ad){var _0x367e39=Math[_0x5e6f18(0xc3)](_0x26e635[0x0]-_0x30f6ad[0x0]);_0x4c6238&&_0x367e39>=_0x3bac2e['canvasWidth']||(_0x3bac2e[_0x5e6f18(0x193)][_0x5e6f18(0xfb)](_0x26e635[0x0],_0x26e635[0x1]),_0x3bac2e['canvasContext'][_0x5e6f18(0x135)](_0x30f6ad[0x0],_0x30f6ad[0x1]));}}),this['canvasContext'][_0x559e24(0x123)]();}},{'key':_0x25b4b5(0x185),'value':function(_0x4166c8){var _0x36341c=_0x25b4b5;for(var _0x3d8f13,_0x113c39,_0x1cecda=0x0;_0x1cecda<0x1e&&(_0x3d8f13=this[_0x36341c(0x203)][_0x36341c(0x156)](),!((_0x113c39=this[_0x36341c(0x203)][_0x36341c(0xca)](_0x3d8f13[_0x36341c(0x14b)],_0x3d8f13['lat']))&&_0x113c39[0x2]>0x0));_0x1cecda++);if(!_0x113c39)return _0x4166c8;var _0x884625=_0x3d8f13[_0x36341c(0x14b)]+this['calc_speedRate'][0x0]*_0x113c39[0x0],_0x330e9c=_0x3d8f13[_0x36341c(0x18a)]+this[_0x36341c(0x1e0)][0x1]*_0x113c39[0x1];return _0x4166c8[_0x36341c(0x14b)]=_0x3d8f13[_0x36341c(0x14b)],_0x4166c8['lat']=_0x3d8f13['lat'],_0x4166c8[_0x36341c(0x128)]=_0x884625,_0x4166c8[_0x36341c(0x118)]=_0x330e9c,_0x4166c8[_0x36341c(0x164)]=Math['round'](Math[_0x36341c(0xb0)]()*this['maxAge']),_0x4166c8;}},{'key':_0x25b4b5(0x140),'value':function(){var _0x1eff77=_0x25b4b5;this[_0x1eff77(0x175)]=[],delete this['windField'],delete this[_0x1eff77(0x15f)];}}]),_0x131790;}(_0x43c4a0[_0x3e7117(0x9b)]['BaseLayer']);function _0x1c9258(_0x242ab0,_0x5d0882){var _0x5690d9=_0x3e7117;return _0x242ab0*Math[_0x5690d9(0xbb)](_0x2ab937[_0x5690d9(0xa6)][_0x5690d9(0x10b)](_0x5d0882));}function _0x5449d0(_0x203096,_0x5bda7e){var _0x43dc6c=_0x3e7117;return _0x203096*Math[_0x43dc6c(0x13b)](_0x2ab937[_0x43dc6c(0xa6)][_0x43dc6c(0x10b)](_0x5bda7e));}function _0x2cc124(_0x3acdb7,_0x366405){var _0x4b7266=_0x3e7117;return Math['sqrt'](Math[_0x4b7266(0xbe)](_0x3acdb7,0x2)+Math[_0x4b7266(0xbe)](_0x366405,0x2));}function _0x3b3c65(_0x426801,_0x469d02){var _0x2ffd02=_0x3e7117,_0x2b38fa=_0x2ab937[_0x2ffd02(0xa6)][_0x2ffd02(0x1dd)](Math['atan2'](_0x469d02,_0x426801));return _0x2b38fa+=_0x2b38fa<0x0?0x168:0x0;}_0x43c4a0[_0x3e7117(0x102)][_0x3e7117(0xee)](_0x3e7117(0xaf),_0x341e60),_0x43c4a0[_0x3e7117(0x9b)][_0x3e7117(0xc1)]=_0x341e60,_0x43c4a0[_0x3e7117(0x15e)]=_0x175578;}]));
21
+ function a0_0x3604(_0x27babc,_0x516915){var _0x1e30c0=a0_0x1e30();return a0_0x3604=function(_0x360421,_0x3e960b){_0x360421=_0x360421-0x1df;var _0x233d2e=_0x1e30c0[_0x360421];return _0x233d2e;},a0_0x3604(_0x27babc,_0x516915);}(function(_0x25f568,_0x4285fe){var _0x5e17ac=a0_0x3604,_0x37cf8c=_0x25f568();while(!![]){try{var _0x3b2d40=parseInt(_0x5e17ac(0x30b))/0x1+-parseInt(_0x5e17ac(0x272))/0x2+-parseInt(_0x5e17ac(0x30e))/0x3*(-parseInt(_0x5e17ac(0x2b2))/0x4)+parseInt(_0x5e17ac(0x2e9))/0x5*(-parseInt(_0x5e17ac(0x241))/0x6)+parseInt(_0x5e17ac(0x21f))/0x7*(-parseInt(_0x5e17ac(0x329))/0x8)+parseInt(_0x5e17ac(0x263))/0x9*(parseInt(_0x5e17ac(0x24f))/0xa)+-parseInt(_0x5e17ac(0x323))/0xb*(-parseInt(_0x5e17ac(0x363))/0xc);if(_0x3b2d40===_0x4285fe)break;else _0x37cf8c['push'](_0x37cf8c['shift']());}catch(_0x513689){_0x37cf8c['push'](_0x37cf8c['shift']());}}}(a0_0x1e30,0xf322b),window['mars3dWind']=function(_0xe25917){var _0x109f13={};function _0x546b01(_0x124820){var _0x2965c4=a0_0x3604;if(_0x109f13[_0x124820])return _0x109f13[_0x124820][_0x2965c4(0x1e9)];var _0x27b5f6=_0x109f13[_0x124820]={'i':_0x124820,'l':!0x1,'exports':{}};return _0xe25917[_0x124820][_0x2965c4(0x240)](_0x27b5f6[_0x2965c4(0x1e9)],_0x27b5f6,_0x27b5f6[_0x2965c4(0x1e9)],_0x546b01),_0x27b5f6['l']=!0x0,_0x27b5f6[_0x2965c4(0x1e9)];}return _0x546b01['m']=_0xe25917,_0x546b01['c']=_0x109f13,_0x546b01['d']=function(_0x3bab9e,_0x167587,_0x59340b){_0x546b01['o'](_0x3bab9e,_0x167587)||Object['defineProperty'](_0x3bab9e,_0x167587,{'enumerable':!0x0,'get':_0x59340b});},_0x546b01['r']=function(_0x57ca8f){var _0x5b03fc=a0_0x3604;_0x5b03fc(0x325)!=typeof Symbol&&Symbol[_0x5b03fc(0x340)]&&Object[_0x5b03fc(0x358)](_0x57ca8f,Symbol[_0x5b03fc(0x340)],{'value':'Module'}),Object[_0x5b03fc(0x358)](_0x57ca8f,_0x5b03fc(0x2c1),{'value':!0x0});},_0x546b01['t']=function(_0xeb27e9,_0xadada){var _0x265edd=a0_0x3604;if(0x1&_0xadada&&(_0xeb27e9=_0x546b01(_0xeb27e9)),0x8&_0xadada)return _0xeb27e9;if(0x4&_0xadada&&'object'==typeof _0xeb27e9&&_0xeb27e9&&_0xeb27e9['__esModule'])return _0xeb27e9;var _0x1c503e=Object['create'](null);if(_0x546b01['r'](_0x1c503e),Object[_0x265edd(0x358)](_0x1c503e,_0x265edd(0x2fe),{'enumerable':!0x0,'value':_0xeb27e9}),0x2&_0xadada&&_0x265edd(0x309)!=typeof _0xeb27e9){for(var _0x3d4024 in _0xeb27e9)_0x546b01['d'](_0x1c503e,_0x3d4024,function(_0x3673a5){return _0xeb27e9[_0x3673a5];}[_0x265edd(0x292)](null,_0x3d4024));}return _0x1c503e;},_0x546b01['n']=function(_0x1751e9){var _0x4ae984=_0x1751e9&&_0x1751e9['__esModule']?function(){return _0x1751e9['default'];}:function(){return _0x1751e9;};return _0x546b01['d'](_0x4ae984,'a',_0x4ae984),_0x4ae984;},_0x546b01['o']=function(_0x6f8f78,_0x1257f0){var _0x190f5a=a0_0x3604;return Object['prototype'][_0x190f5a(0x27f)]['call'](_0x6f8f78,_0x1257f0);},_0x546b01['p']='',_0x546b01(_0x546b01['s']=0x1a);}([function(_0xc17f16,_0x21302c){var _0x15d3a0=a0_0x3604;_0xc17f16['exports']=window[_0x15d3a0(0x2bb)];},function(_0x24dd15,_0x9cdc07){var _0x4ce78f=a0_0x3604;_0x24dd15[_0x4ce78f(0x1e9)]=function(_0x2dec5f,_0x28c021){var _0xee474e=_0x4ce78f;if(!(_0x2dec5f instanceof _0x28c021))throw new TypeError(_0xee474e(0x204));},_0x24dd15[_0x4ce78f(0x1e9)][_0x4ce78f(0x2c1)]=!0x0,_0x24dd15['exports']['default']=_0x24dd15[_0x4ce78f(0x1e9)];},function(_0x56e488,_0x5e7629){var _0x267f2d=a0_0x3604;function _0x22291b(_0x533649,_0x3068e7){var _0x15b0f7=a0_0x3604;for(var _0x530003=0x0;_0x530003<_0x3068e7[_0x15b0f7(0x2a4)];_0x530003++){var _0x5965c5=_0x3068e7[_0x530003];_0x5965c5[_0x15b0f7(0x221)]=_0x5965c5[_0x15b0f7(0x221)]||!0x1,_0x5965c5[_0x15b0f7(0x212)]=!0x0,'value'in _0x5965c5&&(_0x5965c5[_0x15b0f7(0x21c)]=!0x0),Object[_0x15b0f7(0x358)](_0x533649,_0x5965c5[_0x15b0f7(0x31a)],_0x5965c5);}}_0x56e488['exports']=function(_0x42b851,_0x1fc35a,_0x613c27){var _0x1897cc=a0_0x3604;return _0x1fc35a&&_0x22291b(_0x42b851[_0x1897cc(0x30a)],_0x1fc35a),_0x613c27&&_0x22291b(_0x42b851,_0x613c27),Object['defineProperty'](_0x42b851,_0x1897cc(0x30a),{'writable':!0x1}),_0x42b851;},_0x56e488[_0x267f2d(0x1e9)][_0x267f2d(0x2c1)]=!0x0,_0x56e488[_0x267f2d(0x1e9)]['default']=_0x56e488[_0x267f2d(0x1e9)];},function(_0x41f72c,_0x108432){var _0xca8488=a0_0x3604;function _0x3a219c(_0x20115d){var _0x5910db=a0_0x3604;return _0x41f72c[_0x5910db(0x1e9)]=_0x3a219c=Object[_0x5910db(0x202)]?Object[_0x5910db(0x2a2)]:function(_0x155e04){var _0x2eceba=_0x5910db;return _0x155e04['__proto__']||Object[_0x2eceba(0x2a2)](_0x155e04);},_0x41f72c[_0x5910db(0x1e9)]['__esModule']=!0x0,_0x41f72c[_0x5910db(0x1e9)][_0x5910db(0x2fe)]=_0x41f72c[_0x5910db(0x1e9)],_0x3a219c(_0x20115d);}_0x41f72c[_0xca8488(0x1e9)]=_0x3a219c,_0x41f72c[_0xca8488(0x1e9)]['__esModule']=!0x0,_0x41f72c[_0xca8488(0x1e9)][_0xca8488(0x2fe)]=_0x41f72c['exports'];},function(_0x32c6f4,_0x2ce714,_0x5b9e47){var _0x4fda43=a0_0x3604,_0x1e7d38=_0x5b9e47(0x16),_0x3ca35e=_0x5b9e47(0x17),_0x137f37=_0x5b9e47(0x18),_0x24bf9b=_0x5b9e47(0x19);_0x32c6f4['exports']=function(_0x396a39){return _0x1e7d38(_0x396a39)||_0x3ca35e(_0x396a39)||_0x137f37(_0x396a39)||_0x24bf9b();},_0x32c6f4[_0x4fda43(0x1e9)]['__esModule']=!0x0,_0x32c6f4[_0x4fda43(0x1e9)][_0x4fda43(0x2fe)]=_0x32c6f4['exports'];},function(_0x3e7e13,_0x24733a){var _0x370325=a0_0x3604;_0x3e7e13[_0x370325(0x1e9)]=function(_0x460a1a,_0x4d9ff7,_0xbb1bb){var _0x46cda2=_0x370325;return _0x4d9ff7 in _0x460a1a?Object[_0x46cda2(0x358)](_0x460a1a,_0x4d9ff7,{'value':_0xbb1bb,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}):_0x460a1a[_0x4d9ff7]=_0xbb1bb,_0x460a1a;},_0x3e7e13[_0x370325(0x1e9)]['__esModule']=!0x0,_0x3e7e13['exports']['default']=_0x3e7e13[_0x370325(0x1e9)];},function(_0x1c5bef,_0x3147ab,_0x77e768){var _0x151c94=a0_0x3604,_0x401be1=_0x77e768(0x13);_0x1c5bef[_0x151c94(0x1e9)]=function(_0x398a34,_0x501a3c){var _0x1a157b=_0x151c94;if(_0x1a157b(0x1ec)!=typeof _0x501a3c&&null!==_0x501a3c)throw new TypeError(_0x1a157b(0x236));Object[_0x1a157b(0x358)](_0x398a34,_0x1a157b(0x30a),{'value':Object[_0x1a157b(0x267)](_0x501a3c&&_0x501a3c[_0x1a157b(0x30a)],{'constructor':{'value':_0x398a34,'writable':!0x0,'configurable':!0x0}}),'writable':!0x1}),_0x501a3c&&_0x401be1(_0x398a34,_0x501a3c);},_0x1c5bef['exports'][_0x151c94(0x2c1)]=!0x0,_0x1c5bef[_0x151c94(0x1e9)]['default']=_0x1c5bef[_0x151c94(0x1e9)];},function(_0x6ca35a,_0x3f661b,_0x2f9ed6){var _0x41da4f=a0_0x3604,_0x237a24=_0x2f9ed6(0x14)[_0x41da4f(0x2fe)],_0x19345f=_0x2f9ed6(0x15);_0x6ca35a[_0x41da4f(0x1e9)]=function(_0x76f01a,_0x276caa){var _0x26a30a=_0x41da4f;if(_0x276caa&&('object'===_0x237a24(_0x276caa)||_0x26a30a(0x1ec)==typeof _0x276caa))return _0x276caa;if(void 0x0!==_0x276caa)throw new TypeError(_0x26a30a(0x220));return _0x19345f(_0x76f01a);},_0x6ca35a[_0x41da4f(0x1e9)][_0x41da4f(0x2c1)]=!0x0,_0x6ca35a[_0x41da4f(0x1e9)][_0x41da4f(0x2fe)]=_0x6ca35a[_0x41da4f(0x1e9)];},function(_0x31de65,_0x2cc9ec){var _0x428aaa=a0_0x3604;_0x31de65[_0x428aaa(0x1e9)]='attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}';},function(_0x4aaf5c,_0x39e6e0){var _0x2a79f2=a0_0x3604;_0x4aaf5c['exports']=function(_0x1d6585,_0x479a99){var _0x24df2c=a0_0x3604;(null==_0x479a99||_0x479a99>_0x1d6585[_0x24df2c(0x2a4)])&&(_0x479a99=_0x1d6585[_0x24df2c(0x2a4)]);for(var _0x5d7489=0x0,_0x2385ce=new Array(_0x479a99);_0x5d7489<_0x479a99;_0x5d7489++)_0x2385ce[_0x5d7489]=_0x1d6585[_0x5d7489];return _0x2385ce;},_0x4aaf5c[_0x2a79f2(0x1e9)][_0x2a79f2(0x2c1)]=!0x0,_0x4aaf5c[_0x2a79f2(0x1e9)][_0x2a79f2(0x2fe)]=_0x4aaf5c[_0x2a79f2(0x1e9)];},function(_0x4fa719,_0x5c4660){var _0x338a69=a0_0x3604;_0x4fa719[_0x338a69(0x1e9)]=_0x338a69(0x29d);},function(_0x37588c,_0x2bbf41){var _0x2c8a6e=a0_0x3604;_0x37588c[_0x2c8a6e(0x1e9)]=_0x2c8a6e(0x22b);},function(_0x312bca,_0x179843){var _0x3ab57c=a0_0x3604;_0x312bca[_0x3ab57c(0x1e9)]=_0x3ab57c(0x2b8);},function(_0x1fb1d8,_0x37e2eb){var _0x552b4b=a0_0x3604;_0x1fb1d8[_0x552b4b(0x1e9)]=_0x552b4b(0x224);},function(_0x55b27c,_0x368a3f){var _0x4a0541=a0_0x3604;_0x55b27c[_0x4a0541(0x1e9)]=_0x4a0541(0x338);},function(_0x583e07,_0x358518){var _0xb34a50=a0_0x3604;_0x583e07[_0xb34a50(0x1e9)]='uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20currentSpeed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}';},function(_0x40078b,_0x592bdf){_0x40078b['exports']='uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20\x20\x20float\x20term1\x20=\x20111132.92;\x0a\x20\x20\x20\x20float\x20term2\x20=\x20559.82\x20*\x20cos(2.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term3\x20=\x201.175\x20*\x20cos(4.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term4\x20=\x200.0023\x20*\x20cos(6.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20\x20\x20float\x20term5\x20=\x20111412.84\x20*\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20term6\x20=\x2093.5\x20*\x20cos(3.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term7\x20=\x200.118\x20*\x20cos(5.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avoid\x20updatePosition(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20windVectorInLonLatLev;\x0a\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}';},function(_0x351207,_0x34ea11){var _0x5b794c=a0_0x3604;_0x351207[_0x5b794c(0x1e9)]=_0x5b794c(0x30c);},function(_0x5cd7bb,_0x3745c6){var _0x141a7b=a0_0x3604;_0x5cd7bb[_0x141a7b(0x1e9)]=_0x141a7b(0x242);},function(_0xda8997,_0x7f2d0){var _0x5707a6=a0_0x3604;function _0x2cbee7(_0x2d868a,_0x15e603){var _0x1e012b=a0_0x3604;return _0xda8997['exports']=_0x2cbee7=Object[_0x1e012b(0x202)]||function(_0x296a44,_0x4d41b3){var _0x357ac4=_0x1e012b;return _0x296a44[_0x357ac4(0x249)]=_0x4d41b3,_0x296a44;},_0xda8997[_0x1e012b(0x1e9)][_0x1e012b(0x2c1)]=!0x0,_0xda8997[_0x1e012b(0x1e9)][_0x1e012b(0x2fe)]=_0xda8997[_0x1e012b(0x1e9)],_0x2cbee7(_0x2d868a,_0x15e603);}_0xda8997['exports']=_0x2cbee7,_0xda8997['exports'][_0x5707a6(0x2c1)]=!0x0,_0xda8997[_0x5707a6(0x1e9)]['default']=_0xda8997[_0x5707a6(0x1e9)];},function(_0x72c0d8,_0x57e484){var _0x1f4814=a0_0x3604;function _0x1a7097(_0x17c9f5){var _0x17d9a5=a0_0x3604;return _0x72c0d8['exports']=_0x1a7097=_0x17d9a5(0x1ec)==typeof Symbol&&'symbol'==typeof Symbol[_0x17d9a5(0x344)]?function(_0x1093c6){return typeof _0x1093c6;}:function(_0x3c5cf3){var _0x3f7934=_0x17d9a5;return _0x3c5cf3&&'function'==typeof Symbol&&_0x3c5cf3['constructor']===Symbol&&_0x3c5cf3!==Symbol[_0x3f7934(0x30a)]?_0x3f7934(0x32f):typeof _0x3c5cf3;},_0x72c0d8[_0x17d9a5(0x1e9)]['__esModule']=!0x0,_0x72c0d8[_0x17d9a5(0x1e9)][_0x17d9a5(0x2fe)]=_0x72c0d8[_0x17d9a5(0x1e9)],_0x1a7097(_0x17c9f5);}_0x72c0d8[_0x1f4814(0x1e9)]=_0x1a7097,_0x72c0d8['exports'][_0x1f4814(0x2c1)]=!0x0,_0x72c0d8[_0x1f4814(0x1e9)][_0x1f4814(0x2fe)]=_0x72c0d8[_0x1f4814(0x1e9)];},function(_0x18accc,_0x5a0760){var _0x4fd729=a0_0x3604;_0x18accc[_0x4fd729(0x1e9)]=function(_0x1c4f18){var _0x18ccdb=_0x4fd729;if(void 0x0===_0x1c4f18)throw new ReferenceError(_0x18ccdb(0x247));return _0x1c4f18;},_0x18accc['exports'][_0x4fd729(0x2c1)]=!0x0,_0x18accc[_0x4fd729(0x1e9)]['default']=_0x18accc[_0x4fd729(0x1e9)];},function(_0x29e85e,_0x530252,_0x363579){var _0x1e53ba=a0_0x3604,_0x59285e=_0x363579(0x9);_0x29e85e[_0x1e53ba(0x1e9)]=function(_0x5070ff){if(Array['isArray'](_0x5070ff))return _0x59285e(_0x5070ff);},_0x29e85e[_0x1e53ba(0x1e9)][_0x1e53ba(0x2c1)]=!0x0,_0x29e85e[_0x1e53ba(0x1e9)]['default']=_0x29e85e[_0x1e53ba(0x1e9)];},function(_0x25ce5,_0x52cc58){var _0xa9163e=a0_0x3604;_0x25ce5[_0xa9163e(0x1e9)]=function(_0x432c0c){var _0x158b05=_0xa9163e;if('undefined'!=typeof Symbol&&null!=_0x432c0c[Symbol['iterator']]||null!=_0x432c0c[_0x158b05(0x222)])return Array[_0x158b05(0x1fe)](_0x432c0c);},_0x25ce5[_0xa9163e(0x1e9)][_0xa9163e(0x2c1)]=!0x0,_0x25ce5[_0xa9163e(0x1e9)][_0xa9163e(0x2fe)]=_0x25ce5[_0xa9163e(0x1e9)];},function(_0x1292a5,_0x4effe3,_0x32ba69){var _0x1eff9e=a0_0x3604,_0xbfb1ab=_0x32ba69(0x9);_0x1292a5['exports']=function(_0x2f50ae,_0x18063){var _0x560dcb=a0_0x3604;if(_0x2f50ae){if('string'==typeof _0x2f50ae)return _0xbfb1ab(_0x2f50ae,_0x18063);var _0x43c31a=Object[_0x560dcb(0x30a)][_0x560dcb(0x245)][_0x560dcb(0x240)](_0x2f50ae)[_0x560dcb(0x33f)](0x8,-0x1);return _0x560dcb(0x307)===_0x43c31a&&_0x2f50ae[_0x560dcb(0x1e0)]&&(_0x43c31a=_0x2f50ae[_0x560dcb(0x1e0)][_0x560dcb(0x269)]),_0x560dcb(0x2ab)===_0x43c31a||'Set'===_0x43c31a?Array[_0x560dcb(0x1fe)](_0x2f50ae):'Arguments'===_0x43c31a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x560dcb(0x265)](_0x43c31a)?_0xbfb1ab(_0x2f50ae,_0x18063):void 0x0;}},_0x1292a5[_0x1eff9e(0x1e9)][_0x1eff9e(0x2c1)]=!0x0,_0x1292a5[_0x1eff9e(0x1e9)]['default']=_0x1292a5[_0x1eff9e(0x1e9)];},function(_0x35e9a6,_0x4f4b02){var _0x50cb95=a0_0x3604;_0x35e9a6[_0x50cb95(0x1e9)]=function(){var _0x2559a3=_0x50cb95;throw new TypeError(_0x2559a3(0x209));},_0x35e9a6[_0x50cb95(0x1e9)]['__esModule']=!0x0,_0x35e9a6[_0x50cb95(0x1e9)][_0x50cb95(0x2fe)]=_0x35e9a6[_0x50cb95(0x1e9)];},function(_0x507167,_0x1d8b92,_0x419905){'use strict';var _0x1ad61d=a0_0x3604;_0x419905['r'](_0x1d8b92),_0x419905['d'](_0x1d8b92,_0x1ad61d(0x334),function(){return _0x18adfe;}),_0x419905['d'](_0x1d8b92,_0x1ad61d(0x203),function(){return _0x13f2d9;}),_0x419905['d'](_0x1d8b92,_0x1ad61d(0x1df),function(){return _0x52787e;});var _0x52787e={};_0x419905['r'](_0x52787e),_0x419905['d'](_0x52787e,_0x1ad61d(0x331),function(){return _0x1b555c;}),_0x419905['d'](_0x52787e,'getV',function(){return _0x1dd602;}),_0x419905['d'](_0x52787e,'getSpeed',function(){return _0x51ccab;}),_0x419905['d'](_0x52787e,_0x1ad61d(0x27a),function(){return _0x5c9010;});var _0x53dab5=_0x419905(0x0),_0x354b94=_0x419905(0x5),_0x5e924e=_0x419905['n'](_0x354b94),_0x5a7616=_0x419905(0x1),_0xa20c6a=_0x419905['n'](_0x5a7616),_0x1a80b5=_0x419905(0x2),_0x407531=_0x419905['n'](_0x1a80b5),_0x20be94=_0x419905(0x6),_0x598885=_0x419905['n'](_0x20be94),_0x197f6b=_0x419905(0x7),_0x2c9e32=_0x419905['n'](_0x197f6b),_0x373865=_0x419905(0x3),_0x56bc89=_0x419905['n'](_0x373865),_0x2dd7dd=_0x419905(0x4),_0x52b1e2=_0x419905['n'](_0x2dd7dd),_0x5c16b3=_0x53dab5[_0x1ad61d(0x308)],_0x1462e5=(function(){var _0x17f25c=_0x1ad61d;function _0x62696d(_0x3e4d11){var _0x21ee45=a0_0x3604;_0xa20c6a()(this,_0x62696d),this[_0x21ee45(0x28d)]=_0x3e4d11[_0x21ee45(0x28d)],this[_0x21ee45(0x260)]=_0x3e4d11[_0x21ee45(0x260)],this[_0x21ee45(0x2b3)]=_0x3e4d11[_0x21ee45(0x2b3)],this[_0x21ee45(0x239)]=_0x3e4d11[_0x21ee45(0x239)],this[_0x21ee45(0x28a)]=_0x3e4d11[_0x21ee45(0x28a)],this[_0x21ee45(0x34f)]=_0x3e4d11['vertexShaderSource'],this['fragmentShaderSource']=_0x3e4d11[_0x21ee45(0x2d0)],this[_0x21ee45(0x2c0)]=_0x3e4d11['rawRenderState'],this[_0x21ee45(0x35a)]=_0x3e4d11[_0x21ee45(0x35a)],this[_0x21ee45(0x2bd)]=_0x3e4d11['outputTexture'],this[_0x21ee45(0x349)]=_0x5c16b3['defaultValue'](_0x3e4d11[_0x21ee45(0x349)],!0x1),this[_0x21ee45(0x2e0)]=_0x3e4d11['preExecute'],this['show']=!0x0,this[_0x21ee45(0x318)]=void 0x0,this[_0x21ee45(0x304)]=void 0x0,this[_0x21ee45(0x349)]&&(this[_0x21ee45(0x304)]=new _0x5c16b3['ClearCommand']({'color':new _0x5c16b3[(_0x21ee45(0x1f8))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x21ee45(0x35a)],'pass':_0x5c16b3[_0x21ee45(0x1e4)][_0x21ee45(0x264)]}));}return _0x407531()(_0x62696d,[{'key':_0x17f25c(0x31b),'value':function(_0x441ff2){var _0x142887=_0x17f25c;switch(this[_0x142887(0x28d)]){case _0x142887(0x24c):var _0x1d73e2=_0x5c16b3[_0x142887(0x25f)][_0x142887(0x302)]({'context':_0x441ff2,'geometry':this['geometry'],'attributeLocations':this[_0x142887(0x2b3)],'bufferUsage':_0x5c16b3[_0x142887(0x2a8)]['STATIC_DRAW']}),_0x2d9ebe=_0x5c16b3['ShaderProgram']['fromCache']({'context':_0x441ff2,'attributeLocations':this[_0x142887(0x2b3)],'vertexShaderSource':this[_0x142887(0x34f)],'fragmentShaderSource':this['fragmentShaderSource']}),_0x1216af=_0x5c16b3[_0x142887(0x2b1)][_0x142887(0x34a)](this[_0x142887(0x2c0)]);return new _0x5c16b3['DrawCommand']({'owner':this,'vertexArray':_0x1d73e2,'primitiveType':this['primitiveType'],'uniformMap':this[_0x142887(0x28a)],'modelMatrix':_0x5c16b3[_0x142887(0x248)][_0x142887(0x20a)],'shaderProgram':_0x2d9ebe,'framebuffer':this[_0x142887(0x35a)],'renderState':_0x1216af,'pass':_0x5c16b3[_0x142887(0x1e4)][_0x142887(0x264)]});case _0x142887(0x1e5):return new _0x5c16b3[(_0x142887(0x235))]({'owner':this,'fragmentShaderSource':this[_0x142887(0x2d0)],'uniformMap':this['uniformMap'],'outputTexture':this[_0x142887(0x2bd)],'persists':!0x0});default:return;}}},{'key':_0x17f25c(0x2e1),'value':function(_0x13295c,_0x5ef345){var _0x1f4ddc=_0x17f25c;this['geometry']=_0x5ef345;var _0x2e98a9=_0x5c16b3[_0x1f4ddc(0x25f)]['fromGeometry']({'context':_0x13295c,'geometry':this[_0x1f4ddc(0x260)],'attributeLocations':this[_0x1f4ddc(0x2b3)],'bufferUsage':_0x5c16b3[_0x1f4ddc(0x2a8)]['STATIC_DRAW']});this['commandToExecute']['vertexArray']=_0x2e98a9;}},{'key':_0x17f25c(0x1e1),'value':function(_0x36ea42){var _0x29eeef=_0x17f25c;this['show']&&_0x36ea42['mode']==_0x5c16b3[_0x29eeef(0x289)][_0x29eeef(0x297)]&&(_0x5c16b3[_0x29eeef(0x22c)](this[_0x29eeef(0x318)])||(this[_0x29eeef(0x318)]=this['createCommand'](_0x36ea42['context'])),_0x5c16b3[_0x29eeef(0x22c)](this[_0x29eeef(0x2e0)])&&this[_0x29eeef(0x2e0)](),_0x5c16b3[_0x29eeef(0x22c)](this[_0x29eeef(0x304)])&&_0x36ea42[_0x29eeef(0x2f3)]['push'](this[_0x29eeef(0x304)]),_0x36ea42[_0x29eeef(0x2f3)][_0x29eeef(0x208)](this[_0x29eeef(0x318)]));}},{'key':_0x17f25c(0x2be),'value':function(){return!0x1;}},{'key':_0x17f25c(0x2c7),'value':function(){var _0x19e01a=_0x17f25c;return _0x5c16b3[_0x19e01a(0x22c)](this[_0x19e01a(0x318)])&&(this[_0x19e01a(0x318)]['shaderProgram']=this[_0x19e01a(0x318)][_0x19e01a(0x2c9)]&&this['commandToExecute'][_0x19e01a(0x2c9)]['destroy']()),_0x5c16b3[_0x19e01a(0x211)](this);}}]),_0x62696d;}()),_0x86fff8=_0x53dab5['Cesium'],_0x2b0296={'getFullscreenQuad':function(){var _0x96bca3=_0x1ad61d;return new _0x86fff8['Geometry']({'attributes':new _0x86fff8['GeometryAttributes']({'position':new _0x86fff8[(_0x96bca3(0x33d))]({'componentDatatype':_0x86fff8['ComponentDatatype']['FLOAT'],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new _0x86fff8['GeometryAttribute']({'componentDatatype':_0x86fff8[_0x96bca3(0x1e3)][_0x96bca3(0x229)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});},'createTexture':function(_0x5d3b53,_0x23ef46){var _0x2cd3fa=_0x1ad61d;if(_0x86fff8[_0x2cd3fa(0x22c)](_0x23ef46)){var _0x561255={};_0x561255[_0x2cd3fa(0x336)]=_0x23ef46,_0x5d3b53['source']=_0x561255;}return new _0x86fff8[(_0x2cd3fa(0x310))](_0x5d3b53);},'createFramebuffer':function(_0x35c0b1,_0x3dddbc,_0x180721){return new _0x86fff8['Framebuffer']({'context':_0x35c0b1,'colorTextures':[_0x3dddbc],'depthTexture':_0x180721});},'createRawRenderState':function(_0x1e05c5){var _0x1c9972=_0x1ad61d,_0x55271e={'viewport':_0x1e05c5[_0x1c9972(0x343)],'depthTest':_0x1e05c5['depthTest'],'depthMask':_0x1e05c5[_0x1c9972(0x213)],'blending':_0x1e05c5[_0x1c9972(0x2de)]};return _0x86fff8[_0x1c9972(0x206)][_0x1c9972(0x2cd)](!0x0,!0x1,_0x55271e);},'viewRectangleToLonLatRange':function(_0x211b17){var _0x4351e3=_0x1ad61d,_0x5b1112,_0x2be9b3,_0xdb8c05={},_0x182168=_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x32a)](_0x211b17[_0x4351e3(0x1fd)],_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x324)]),_0x3396e5=_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x32a)](_0x211b17['east'],_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x324)]),_0x1e673b=_0x211b17[_0x4351e3(0x23d)];_0x1e673b>_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x28f)]?(_0x5b1112=0x0,_0x2be9b3=_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x324)]):_0x3396e5-_0x182168<_0x1e673b?(_0x5b1112=_0x182168,_0x2be9b3=_0x182168+_0x1e673b):(_0x5b1112=_0x182168,_0x2be9b3=_0x3396e5),_0xdb8c05[_0x4351e3(0x2ee)]={'min':_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x295)](_0x5b1112),'max':_0x86fff8[_0x4351e3(0x364)]['toDegrees'](_0x2be9b3)};var _0x413cdd=_0x211b17['south'],_0x372b87=_0x211b17[_0x4351e3(0x31d)],_0x5ed304=_0x211b17[_0x4351e3(0x205)],_0x41a838=_0x5ed304>_0x86fff8[_0x4351e3(0x364)]['PI']/0xc?_0x5ed304/0x2:0x0,_0x51699b=_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x1ff)](_0x413cdd-_0x41a838),_0x4c4edf=_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x1ff)](_0x372b87+_0x41a838);return _0x51699b<-_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x2b4)]&&(_0x51699b=-_0x86fff8['Math'][_0x4351e3(0x24d)]),_0x4c4edf>_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x2b4)]&&(_0x4c4edf=_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x24d)]),_0xdb8c05['lat']={'min':_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x295)](_0x51699b),'max':_0x86fff8[_0x4351e3(0x364)][_0x4351e3(0x295)](_0x4c4edf)},_0xdb8c05;}},_0x3c9b24=_0x419905(0xa),_0x140984=_0x419905['n'](_0x3c9b24),_0x5e9ea2=_0x419905(0xb),_0x257e17=_0x419905['n'](_0x5e9ea2),_0x3b4c9f=_0x419905(0x8),_0x2f3a7c=_0x419905['n'](_0x3b4c9f),_0xed8139=_0x419905(0xc),_0x3d6f3b=_0x419905['n'](_0xed8139),_0x102668=_0x419905(0xd),_0x233761=_0x419905['n'](_0x102668),_0x4210c8=_0x53dab5[_0x1ad61d(0x308)],_0x4a9d8a=(function(){var _0xa8017f=_0x1ad61d;function _0x28451d(_0x26bb5b,_0x2497fa,_0x5aeceb,_0x1e366c,_0x400857){var _0x1403e5=a0_0x3604;_0xa20c6a()(this,_0x28451d),this[_0x1403e5(0x238)](_0x26bb5b,_0x2497fa,_0x5aeceb[_0x1403e5(0x218)]),this[_0x1403e5(0x2c3)](_0x26bb5b),this[_0x1403e5(0x30d)](_0x26bb5b,_0x5aeceb,_0x1e366c,_0x400857);}return _0x407531()(_0x28451d,[{'key':'createRenderingTextures','value':function(_0x1eab42,_0x267c8c,_0x3e0602){var _0x4a1a42=a0_0x3604;for(var _0x401196={'context':_0x1eab42,'width':_0x1eab42[_0x4a1a42(0x21e)],'height':_0x1eab42[_0x4a1a42(0x2b6)],'pixelFormat':_0x4210c8[_0x4a1a42(0x276)][_0x4a1a42(0x286)],'pixelDatatype':_0x4210c8['PixelDatatype'][_0x4a1a42(0x2db)]},_0x5dbdaf={'context':_0x1eab42,'width':_0x1eab42[_0x4a1a42(0x21e)],'height':_0x1eab42[_0x4a1a42(0x2b6)],'pixelFormat':_0x4210c8['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':_0x4210c8[_0x4a1a42(0x314)][_0x4a1a42(0x361)]},_0xb06ea=_0x3e0602[_0x4a1a42(0x2a4)],_0x56a831=new Float32Array(0x3*_0xb06ea),_0x57c253=0x0;_0x57c253<_0xb06ea;_0x57c253++){var _0x586f6b=_0x4210c8[_0x4a1a42(0x1f8)]['fromCssColorString'](_0x3e0602[_0x57c253]);_0x56a831[0x3*_0x57c253]=_0x586f6b[_0x4a1a42(0x359)],_0x56a831[0x3*_0x57c253+0x1]=_0x586f6b['green'],_0x56a831[0x3*_0x57c253+0x2]=_0x586f6b['blue'];}var _0x149e14={'context':_0x1eab42,'width':_0xb06ea,'height':0x1,'pixelFormat':_0x4210c8[_0x4a1a42(0x276)][_0x4a1a42(0x26e)],'pixelDatatype':_0x4210c8[_0x4a1a42(0x314)]['FLOAT'],'sampler':new _0x4210c8[(_0x4a1a42(0x354))]({'minificationFilter':_0x4210c8['TextureMinificationFilter'][_0x4a1a42(0x284)],'magnificationFilter':_0x4210c8[_0x4a1a42(0x33c)][_0x4a1a42(0x284)]})};this[_0x4a1a42(0x2fd)]={'segmentsColor':_0x2b0296[_0x4a1a42(0x341)](_0x401196),'segmentsDepth':_0x2b0296[_0x4a1a42(0x341)](_0x5dbdaf),'currentTrailsColor':_0x2b0296[_0x4a1a42(0x341)](_0x401196),'currentTrailsDepth':_0x2b0296['createTexture'](_0x5dbdaf),'nextTrailsColor':_0x2b0296[_0x4a1a42(0x341)](_0x401196),'nextTrailsDepth':_0x2b0296['createTexture'](_0x5dbdaf),'colorTable':_0x2b0296[_0x4a1a42(0x341)](_0x149e14,_0x56a831)};}},{'key':'createRenderingFramebuffers','value':function(_0x306329){var _0x3aa9dc=a0_0x3604;this[_0x3aa9dc(0x2d7)]={'segments':_0x2b0296[_0x3aa9dc(0x270)](_0x306329,this[_0x3aa9dc(0x2fd)]['segmentsColor'],this[_0x3aa9dc(0x2fd)]['segmentsDepth']),'currentTrails':_0x2b0296['createFramebuffer'](_0x306329,this[_0x3aa9dc(0x2fd)][_0x3aa9dc(0x2b7)],this[_0x3aa9dc(0x2fd)][_0x3aa9dc(0x201)]),'nextTrails':_0x2b0296[_0x3aa9dc(0x270)](_0x306329,this[_0x3aa9dc(0x2fd)][_0x3aa9dc(0x2af)],this[_0x3aa9dc(0x2fd)][_0x3aa9dc(0x2f7)])};}},{'key':_0xa8017f(0x22e),'value':function(_0x236b15){var _0x43ef01=_0xa8017f;for(var _0x29fcd9=[],_0x1a627d=0x0;_0x1a627d<_0x236b15['particlesTextureSize'];_0x1a627d++)for(var _0x32a3ea=0x0;_0x32a3ea<_0x236b15[_0x43ef01(0x2f8)];_0x32a3ea++)for(var _0x5d8247=0x0;_0x5d8247<0x4;_0x5d8247++)_0x29fcd9['push'](_0x1a627d/_0x236b15[_0x43ef01(0x2f8)]),_0x29fcd9[_0x43ef01(0x208)](_0x32a3ea/_0x236b15['particlesTextureSize']);_0x29fcd9=new Float32Array(_0x29fcd9);for(var _0x14df9b=[],_0x3985a8=[-0x1,0x1],_0x32edcc=[-0x1,0x1],_0x25cec8=0x0;_0x25cec8<_0x236b15['maxParticles'];_0x25cec8++)for(var _0x2486ae=0x0;_0x2486ae<0x2;_0x2486ae++)for(var _0x3e5ff0=0x0;_0x3e5ff0<0x2;_0x3e5ff0++)_0x14df9b[_0x43ef01(0x208)](_0x3985a8[_0x2486ae]),_0x14df9b[_0x43ef01(0x208)](_0x32edcc[_0x3e5ff0]),_0x14df9b['push'](0x0);_0x14df9b=new Float32Array(_0x14df9b);for(var _0x540c48=0x6*_0x236b15['maxParticles'],_0x22ba1c=new Uint32Array(_0x540c48),_0x46bbc=0x0,_0x12d2cf=0x0,_0x8aa12b=0x0;_0x46bbc<_0x236b15[_0x43ef01(0x21a)];_0x46bbc++)_0x22ba1c[_0x12d2cf++]=_0x8aa12b+0x0,_0x22ba1c[_0x12d2cf++]=_0x8aa12b+0x1,_0x22ba1c[_0x12d2cf++]=_0x8aa12b+0x2,_0x22ba1c[_0x12d2cf++]=_0x8aa12b+0x2,_0x22ba1c[_0x12d2cf++]=_0x8aa12b+0x1,_0x22ba1c[_0x12d2cf++]=_0x8aa12b+0x3,_0x8aa12b+=0x4;return new _0x4210c8[(_0x43ef01(0x200))]({'attributes':new _0x4210c8[(_0x43ef01(0x26d))]({'st':new _0x4210c8['GeometryAttribute']({'componentDatatype':_0x4210c8[_0x43ef01(0x1e3)]['FLOAT'],'componentsPerAttribute':0x2,'values':_0x29fcd9}),'normal':new _0x4210c8[(_0x43ef01(0x33d))]({'componentDatatype':_0x4210c8[_0x43ef01(0x1e3)]['FLOAT'],'componentsPerAttribute':0x3,'values':_0x14df9b})}),'indices':_0x22ba1c});}},{'key':_0xa8017f(0x30d),'value':function(_0x3fe385,_0x571c10,_0x481190,_0x5e38d5){var _0x274e0c=_0xa8017f,_0x47ccc4=this;this[_0x274e0c(0x226)]={'segments':new _0x1462e5({'commandType':'Draw','attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x274e0c(0x22e)](_0x571c10),'primitiveType':_0x4210c8[_0x274e0c(0x2ec)][_0x274e0c(0x27b)],'uniformMap':{'currentParticlesPosition':function(){var _0x282a5e=_0x274e0c;return _0x5e38d5[_0x282a5e(0x327)][_0x282a5e(0x2ae)];},'postProcessingPosition':function(){var _0x2e3e72=_0x274e0c;return _0x5e38d5['particlesTextures'][_0x2e3e72(0x2cc)];},'postProcessingSpeed':function(){var _0x3179c0=_0x274e0c;return _0x5e38d5[_0x3179c0(0x327)][_0x3179c0(0x2dd)];},'colorTable':function(){var _0x1813e5=_0x274e0c;return _0x47ccc4[_0x1813e5(0x2fd)][_0x1813e5(0x1f1)];},'aspect':function(){var _0x52680e=_0x274e0c;return _0x3fe385['drawingBufferWidth']/_0x3fe385[_0x52680e(0x2b6)];},'pixelSize':function(){var _0x37c0c6=_0x274e0c;return _0x481190[_0x37c0c6(0x345)];},'lineWidth':function(){var _0x470d55=_0x274e0c;return _0x571c10[_0x470d55(0x1ea)];},'particleHeight':function(){var _0x164baf=_0x274e0c;return _0x571c10[_0x164baf(0x2c6)];}},'vertexShaderSource':new _0x4210c8['ShaderSource']({'sources':[_0x140984['a']]}),'fragmentShaderSource':new _0x4210c8['ShaderSource']({'sources':[_0x257e17['a']]}),'rawRenderState':_0x2b0296[_0x274e0c(0x2ac)]({'viewport':void 0x0,'depthTest':{'enabled':!0x0},'depthMask':!0x0}),'framebuffer':this[_0x274e0c(0x2d7)][_0x274e0c(0x273)],'autoClear':!0x0}),'trails':new _0x1462e5({'commandType':_0x274e0c(0x24c),'attributeLocations':{'position':0x0,'st':0x1},'geometry':_0x2b0296[_0x274e0c(0x244)](),'primitiveType':_0x4210c8['PrimitiveType'][_0x274e0c(0x27b)],'uniformMap':{'segmentsColorTexture':function(){var _0x2525e7=_0x274e0c;return _0x47ccc4[_0x2525e7(0x2fd)][_0x2525e7(0x2c8)];},'segmentsDepthTexture':function(){var _0x14ef06=_0x274e0c;return _0x47ccc4[_0x14ef06(0x2fd)][_0x14ef06(0x31c)];},'currentTrailsColor':function(){var _0x3e3889=_0x274e0c;return _0x47ccc4[_0x3e3889(0x2d7)]['currentTrails'][_0x3e3889(0x2a1)](0x0);},'trailsDepthTexture':function(){var _0x1d614d=_0x274e0c;return _0x47ccc4['framebuffers'][_0x1d614d(0x234)]['depthTexture'];},'fadeOpacity':function(){var _0x1404ee=_0x274e0c;return _0x571c10[_0x1404ee(0x2ca)];}},'vertexShaderSource':new _0x4210c8[(_0x274e0c(0x20b))]({'defines':[_0x274e0c(0x2dc)],'sources':[_0x2f3a7c['a']]}),'fragmentShaderSource':new _0x4210c8[(_0x274e0c(0x20b))]({'defines':[_0x274e0c(0x223)],'sources':[_0x3d6f3b['a']]}),'rawRenderState':_0x2b0296[_0x274e0c(0x2ac)]({'viewport':void 0x0,'depthTest':{'enabled':!0x0,'func':_0x4210c8[_0x274e0c(0x2cf)]['ALWAYS']},'depthMask':!0x0}),'framebuffer':this['framebuffers'][_0x274e0c(0x2a7)],'autoClear':!0x0,'preExecute':function(){var _0x310de2=_0x274e0c,_0x5b2790;_0x5b2790=_0x47ccc4[_0x310de2(0x2d7)]['currentTrails'],_0x47ccc4[_0x310de2(0x2d7)][_0x310de2(0x234)]=_0x47ccc4[_0x310de2(0x2d7)][_0x310de2(0x2a7)],_0x47ccc4[_0x310de2(0x2d7)][_0x310de2(0x2a7)]=_0x5b2790,_0x47ccc4[_0x310de2(0x226)][_0x310de2(0x214)][_0x310de2(0x318)][_0x310de2(0x35a)]=_0x47ccc4['framebuffers'][_0x310de2(0x2a7)],_0x47ccc4['primitives'][_0x310de2(0x214)][_0x310de2(0x304)][_0x310de2(0x35a)]=_0x47ccc4[_0x310de2(0x2d7)][_0x310de2(0x2a7)];}}),'screen':new _0x1462e5({'commandType':_0x274e0c(0x24c),'attributeLocations':{'position':0x0,'st':0x1},'geometry':_0x2b0296[_0x274e0c(0x244)](),'primitiveType':_0x4210c8[_0x274e0c(0x2ec)]['TRIANGLES'],'uniformMap':{'trailsColorTexture':function(){var _0x57c3c9=_0x274e0c;return _0x47ccc4[_0x57c3c9(0x2d7)][_0x57c3c9(0x2a7)][_0x57c3c9(0x2a1)](0x0);},'trailsDepthTexture':function(){var _0x8340c3=_0x274e0c;return _0x47ccc4[_0x8340c3(0x2d7)][_0x8340c3(0x2a7)]['depthTexture'];}},'vertexShaderSource':new _0x4210c8[(_0x274e0c(0x20b))]({'defines':[_0x274e0c(0x2dc)],'sources':[_0x2f3a7c['a']]}),'fragmentShaderSource':new _0x4210c8[(_0x274e0c(0x20b))]({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[_0x233761['a']]}),'rawRenderState':_0x2b0296['createRawRenderState']({'viewport':void 0x0,'depthTest':{'enabled':!0x1},'depthMask':!0x0,'blending':{'enabled':!0x0}}),'framebuffer':void 0x0})};}}]),_0x28451d;}()),_0x3c5922=_0x419905(0xe),_0x6fe6e0=_0x419905['n'](_0x3c5922),_0x3614ec=_0x419905(0xf),_0x183918=_0x419905['n'](_0x3614ec),_0x1ace55=_0x419905(0x10),_0x3001be=_0x419905['n'](_0x1ace55),_0x49a1e1=_0x419905(0x11),_0xe8114b=_0x419905['n'](_0x49a1e1),_0x4d4bf6=_0x419905(0x12),_0x1f31d5=_0x419905['n'](_0x4d4bf6),_0x47d9e3=_0x53dab5[_0x1ad61d(0x308)],_0x32cebf=(function(){var _0x4a06c9=_0x1ad61d;function _0x33b7c8(_0x28bf3a,_0x3e1cc5,_0x5c3407,_0x4f0bee){var _0x257cb9=a0_0x3604;_0xa20c6a()(this,_0x33b7c8),this[_0x257cb9(0x285)]=_0x3e1cc5,this[_0x257cb9(0x2f0)](_0x28bf3a,_0x3e1cc5),this[_0x257cb9(0x255)](_0x28bf3a,_0x5c3407,_0x4f0bee),this[_0x257cb9(0x29a)](_0x3e1cc5,_0x5c3407,_0x4f0bee);}return _0x407531()(_0x33b7c8,[{'key':'createWindTextures','value':function(_0x2581b8,_0x130fdf){var _0x11cd6f=a0_0x3604,_0x41ea6b={'context':_0x2581b8,'width':_0x130fdf[_0x11cd6f(0x262)]['lon'],'height':_0x130fdf['dimensions'][_0x11cd6f(0x2e3)]*(_0x130fdf['dimensions']['lev']||0x1),'pixelFormat':_0x47d9e3[_0x11cd6f(0x276)]['LUMINANCE'],'pixelDatatype':_0x47d9e3['PixelDatatype'][_0x11cd6f(0x229)],'flipY':!0x1,'sampler':new _0x47d9e3[(_0x11cd6f(0x354))]({'minificationFilter':_0x47d9e3[_0x11cd6f(0x2aa)][_0x11cd6f(0x25e)],'magnificationFilter':_0x47d9e3['TextureMagnificationFilter'][_0x11cd6f(0x25e)]})};this[_0x11cd6f(0x299)]={'U':_0x2b0296[_0x11cd6f(0x341)](_0x41ea6b,_0x130fdf['U'][_0x11cd6f(0x320)]),'V':_0x2b0296[_0x11cd6f(0x341)](_0x41ea6b,_0x130fdf['V'][_0x11cd6f(0x320)])};}},{'key':'createParticlesTextures','value':function(_0x1a476c,_0x573c32,_0x32e97c){var _0x16dfd7=a0_0x3604,_0x12509b={'context':_0x1a476c,'width':_0x573c32[_0x16dfd7(0x2f8)],'height':_0x573c32[_0x16dfd7(0x2f8)],'pixelFormat':_0x47d9e3[_0x16dfd7(0x276)][_0x16dfd7(0x286)],'pixelDatatype':_0x47d9e3[_0x16dfd7(0x314)][_0x16dfd7(0x229)],'flipY':!0x1,'sampler':new _0x47d9e3['Sampler']({'minificationFilter':_0x47d9e3[_0x16dfd7(0x2aa)]['NEAREST'],'magnificationFilter':_0x47d9e3[_0x16dfd7(0x33c)]['NEAREST']})},_0x3fd71c=this[_0x16dfd7(0x2bf)](_0x573c32[_0x16dfd7(0x21a)],_0x32e97c),_0x172981=new Float32Array(0x4*_0x573c32[_0x16dfd7(0x21a)])[_0x16dfd7(0x21b)](0x0);this['particlesTextures']={'particlesWind':_0x2b0296[_0x16dfd7(0x341)](_0x12509b),'currentParticlesPosition':_0x2b0296[_0x16dfd7(0x341)](_0x12509b,_0x3fd71c),'nextParticlesPosition':_0x2b0296[_0x16dfd7(0x341)](_0x12509b,_0x3fd71c),'currentParticlesSpeed':_0x2b0296[_0x16dfd7(0x341)](_0x12509b,_0x172981),'nextParticlesSpeed':_0x2b0296[_0x16dfd7(0x341)](_0x12509b,_0x172981),'postProcessingPosition':_0x2b0296[_0x16dfd7(0x341)](_0x12509b,_0x3fd71c),'postProcessingSpeed':_0x2b0296['createTexture'](_0x12509b,_0x172981)};}},{'key':'randomizeParticles','value':function(_0x135971,_0x5567a4){var _0x1ea0c1=a0_0x3604;for(var _0x415081=new Float32Array(0x4*_0x135971),_0x60961c=0x0;_0x60961c<_0x135971;_0x60961c++)_0x415081[0x4*_0x60961c]=_0x47d9e3[_0x1ea0c1(0x364)]['randomBetween'](_0x5567a4[_0x1ea0c1(0x339)]['x'],_0x5567a4[_0x1ea0c1(0x339)]['y']),_0x415081[0x4*_0x60961c+0x1]=_0x47d9e3[_0x1ea0c1(0x364)][_0x1ea0c1(0x26c)](_0x5567a4[_0x1ea0c1(0x1f3)]['x'],_0x5567a4[_0x1ea0c1(0x1f3)]['y']),_0x415081[0x4*_0x60961c+0x2]=_0x47d9e3[_0x1ea0c1(0x364)][_0x1ea0c1(0x26c)](this['data'][_0x1ea0c1(0x33a)][_0x1ea0c1(0x254)],this[_0x1ea0c1(0x285)][_0x1ea0c1(0x33a)]['max']),_0x415081[0x4*_0x60961c+0x3]=0x0;return _0x415081;}},{'key':'destroyParticlesTextures','value':function(){var _0x42366b=a0_0x3604,_0x54cc5b=this;Object[_0x42366b(0x271)](this['particlesTextures'])[_0x42366b(0x319)](function(_0x581c85){var _0x5211d2=_0x42366b;_0x54cc5b['particlesTextures'][_0x581c85][_0x5211d2(0x2c7)]();});}},{'key':_0x4a06c9(0x29a),'value':function(_0x1580f1,_0x14cc03,_0x25b137){var _0x525e3=_0x4a06c9,_0x32b978=new _0x47d9e3[(_0x525e3(0x22f))](_0x1580f1[_0x525e3(0x262)]['lon'],_0x1580f1['dimensions']['lat'],_0x1580f1[_0x525e3(0x262)][_0x525e3(0x33a)]),_0x3859b4=new _0x47d9e3[(_0x525e3(0x22f))](_0x1580f1[_0x525e3(0x2ee)][_0x525e3(0x254)],_0x1580f1[_0x525e3(0x2e3)][_0x525e3(0x254)],_0x1580f1[_0x525e3(0x33a)][_0x525e3(0x254)]),_0x4fe3d6=new _0x47d9e3[(_0x525e3(0x22f))](_0x1580f1[_0x525e3(0x2ee)][_0x525e3(0x27c)],_0x1580f1[_0x525e3(0x2e3)]['max'],_0x1580f1[_0x525e3(0x33a)][_0x525e3(0x27c)]),_0x557e2d=new _0x47d9e3[(_0x525e3(0x22f))]((_0x4fe3d6['x']-_0x3859b4['x'])/(_0x32b978['x']-0x1),(_0x4fe3d6['y']-_0x3859b4['y'])/(_0x32b978['y']-0x1),_0x32b978['z']>0x1?(_0x4fe3d6['z']-_0x3859b4['z'])/(_0x32b978['z']-0x1):0x1),_0x3cb5fc=new _0x47d9e3[(_0x525e3(0x20e))](_0x1580f1['U'][_0x525e3(0x254)],_0x1580f1['U']['max']),_0x139b7c=new _0x47d9e3[(_0x525e3(0x20e))](_0x1580f1['V']['min'],_0x1580f1['V'][_0x525e3(0x27c)]),_0x43da6e=this;this['primitives']={'getWind':new _0x1462e5({'commandType':_0x525e3(0x1e5),'uniformMap':{'U':function(){var _0x3efc33=_0x525e3;return _0x43da6e[_0x3efc33(0x299)]['U'];},'V':function(){var _0x2d6946=_0x525e3;return _0x43da6e[_0x2d6946(0x299)]['V'];},'currentParticlesPosition':function(){var _0x48aacd=_0x525e3;return _0x43da6e['particlesTextures'][_0x48aacd(0x2ae)];},'dimension':function(){return _0x32b978;},'minimum':function(){return _0x3859b4;},'maximum':function(){return _0x4fe3d6;},'interval':function(){return _0x557e2d;}},'fragmentShaderSource':new _0x47d9e3[(_0x525e3(0x20b))]({'sources':[_0x6fe6e0['a']]}),'outputTexture':this[_0x525e3(0x327)][_0x525e3(0x26f)],'preExecute':function(){var _0x57fbc4=_0x525e3;_0x43da6e[_0x57fbc4(0x226)][_0x57fbc4(0x2ea)][_0x57fbc4(0x318)][_0x57fbc4(0x2bd)]=_0x43da6e[_0x57fbc4(0x327)][_0x57fbc4(0x26f)];}}),'updateSpeed':new _0x1462e5({'commandType':'Compute','uniformMap':{'currentParticlesSpeed':function(){var _0x5916f9=_0x525e3;return _0x43da6e[_0x5916f9(0x327)][_0x5916f9(0x337)];},'particlesWind':function(){var _0x482eb0=_0x525e3;return _0x43da6e[_0x482eb0(0x327)][_0x482eb0(0x26f)];},'uSpeedRange':function(){return _0x3cb5fc;},'vSpeedRange':function(){return _0x139b7c;},'pixelSize':function(){var _0x1b64c5=_0x525e3;return _0x25b137[_0x1b64c5(0x345)];},'speedFactor':function(){var _0x1de83c=_0x525e3;return _0x14cc03[_0x1de83c(0x2f1)];}},'fragmentShaderSource':new _0x47d9e3[(_0x525e3(0x20b))]({'sources':[_0x183918['a']]}),'outputTexture':this[_0x525e3(0x327)][_0x525e3(0x21d)],'preExecute':function(){var _0x148c00=_0x525e3,_0x22e31d;_0x22e31d=_0x43da6e[_0x148c00(0x327)][_0x148c00(0x337)],_0x43da6e['particlesTextures'][_0x148c00(0x337)]=_0x43da6e[_0x148c00(0x327)][_0x148c00(0x2dd)],_0x43da6e[_0x148c00(0x327)]['postProcessingSpeed']=_0x22e31d,_0x43da6e[_0x148c00(0x226)][_0x148c00(0x2ba)][_0x148c00(0x318)][_0x148c00(0x2bd)]=_0x43da6e[_0x148c00(0x327)][_0x148c00(0x21d)];}}),'updatePosition':new _0x1462e5({'commandType':_0x525e3(0x1e5),'uniformMap':{'currentParticlesPosition':function(){var _0x537ae3=_0x525e3;return _0x43da6e['particlesTextures'][_0x537ae3(0x2ae)];},'currentParticlesSpeed':function(){var _0x2b8b80=_0x525e3;return _0x43da6e['particlesTextures'][_0x2b8b80(0x337)];}},'fragmentShaderSource':new _0x47d9e3[(_0x525e3(0x20b))]({'sources':[_0x3001be['a']]}),'outputTexture':this[_0x525e3(0x327)][_0x525e3(0x278)],'preExecute':function(){var _0x134b5c=_0x525e3,_0x461cc4;_0x461cc4=_0x43da6e[_0x134b5c(0x327)]['currentParticlesPosition'],_0x43da6e[_0x134b5c(0x327)][_0x134b5c(0x2ae)]=_0x43da6e[_0x134b5c(0x327)][_0x134b5c(0x2cc)],_0x43da6e[_0x134b5c(0x327)][_0x134b5c(0x2cc)]=_0x461cc4,_0x43da6e[_0x134b5c(0x226)][_0x134b5c(0x300)][_0x134b5c(0x318)]['outputTexture']=_0x43da6e['particlesTextures'][_0x134b5c(0x278)];}}),'postProcessingPosition':new _0x1462e5({'commandType':_0x525e3(0x1e5),'uniformMap':{'nextParticlesPosition':function(){var _0x3ac6f9=_0x525e3;return _0x43da6e[_0x3ac6f9(0x327)]['nextParticlesPosition'];},'nextParticlesSpeed':function(){return _0x43da6e['particlesTextures']['nextParticlesSpeed'];},'lonRange':function(){var _0x21c606=_0x525e3;return _0x25b137[_0x21c606(0x339)];},'latRange':function(){return _0x25b137['latRange'];},'randomCoefficient':function(){var _0x1c0d0d=_0x525e3,_0x127dfa=Math[_0x1c0d0d(0x365)]();return _0x127dfa;},'dropRate':function(){var _0x3df539=_0x525e3;return _0x14cc03[_0x3df539(0x210)];},'dropRateBump':function(){var _0xd45ca0=_0x525e3;return _0x14cc03[_0xd45ca0(0x347)];}},'fragmentShaderSource':new _0x47d9e3[(_0x525e3(0x20b))]({'sources':[_0xe8114b['a']]}),'outputTexture':this[_0x525e3(0x327)][_0x525e3(0x2cc)],'preExecute':function(){var _0x1cc758=_0x525e3;_0x43da6e[_0x1cc758(0x226)][_0x1cc758(0x2cc)][_0x1cc758(0x318)][_0x1cc758(0x2bd)]=_0x43da6e[_0x1cc758(0x327)]['postProcessingPosition'];}}),'postProcessingSpeed':new _0x1462e5({'commandType':'Compute','uniformMap':{'postProcessingPosition':function(){var _0x363da1=_0x525e3;return _0x43da6e[_0x363da1(0x327)][_0x363da1(0x2cc)];},'nextParticlesSpeed':function(){var _0x2be6b3=_0x525e3;return _0x43da6e[_0x2be6b3(0x327)][_0x2be6b3(0x21d)];}},'fragmentShaderSource':new _0x47d9e3[(_0x525e3(0x20b))]({'sources':[_0x1f31d5['a']]}),'outputTexture':this['particlesTextures'][_0x525e3(0x2dd)],'preExecute':function(){var _0x102c7e=_0x525e3;_0x43da6e[_0x102c7e(0x226)][_0x102c7e(0x2dd)][_0x102c7e(0x318)][_0x102c7e(0x2bd)]=_0x43da6e[_0x102c7e(0x327)][_0x102c7e(0x2dd)];}})};}}]),_0x33b7c8;}());function _0x552d23(_0x53dc07,_0xc8e682){var _0xde4a19=_0x1ad61d,_0xdc8450=Object['keys'](_0x53dc07);if(Object[_0xde4a19(0x332)]){var _0x473014=Object['getOwnPropertySymbols'](_0x53dc07);_0xc8e682&&(_0x473014=_0x473014[_0xde4a19(0x357)](function(_0x5a52df){var _0x1a93a5=_0xde4a19;return Object[_0x1a93a5(0x23f)](_0x53dc07,_0x5a52df)[_0x1a93a5(0x221)];})),_0xdc8450['push'][_0xde4a19(0x22a)](_0xdc8450,_0x473014);}return _0xdc8450;}var _0x247817=_0x53dab5[_0x1ad61d(0x308)],_0x365e92=(function(){var _0x5125cb=_0x1ad61d;function _0x3a872e(_0x511852,_0x1e630e,_0x3ddbf8,_0x2a872c){var _0x1545fa=a0_0x3604,_0x373445,_0x501ce1,_0x2ee512,_0x5b4ee7,_0x551052,_0x552fbd;(_0xa20c6a()(this,_0x3a872e),this['context']=_0x511852,(_0x1e630e=function(_0x15a495){var _0x34f003=a0_0x3604;for(var _0x66a21=0x1;_0x66a21<arguments['length'];_0x66a21++){var _0x40bfd9=null!=arguments[_0x66a21]?arguments[_0x66a21]:{};_0x66a21%0x2?_0x552d23(Object(_0x40bfd9),!0x0)[_0x34f003(0x319)](function(_0x3fb2cb){_0x5e924e()(_0x15a495,_0x3fb2cb,_0x40bfd9[_0x3fb2cb]);}):Object[_0x34f003(0x281)]?Object[_0x34f003(0x315)](_0x15a495,Object['getOwnPropertyDescriptors'](_0x40bfd9)):_0x552d23(Object(_0x40bfd9))[_0x34f003(0x319)](function(_0x5c92c8){var _0xd527f=_0x34f003;Object[_0xd527f(0x358)](_0x15a495,_0x5c92c8,Object[_0xd527f(0x23f)](_0x40bfd9,_0x5c92c8));});}return _0x15a495;}({},_0x1e630e))['udata']&&_0x1e630e[_0x1545fa(0x351)])&&(_0x1e630e[_0x1545fa(0x262)]={},_0x1e630e['dimensions']['lon']=_0x1e630e['cols'],_0x1e630e[_0x1545fa(0x262)]['lat']=_0x1e630e[_0x1545fa(0x2f5)],_0x1e630e[_0x1545fa(0x262)]['lev']=_0x1e630e[_0x1545fa(0x33a)]||0x1,_0x1e630e[_0x1545fa(0x2ee)]={},_0x1e630e[_0x1545fa(0x2ee)][_0x1545fa(0x254)]=_0x1e630e['xmin'],_0x1e630e[_0x1545fa(0x2ee)][_0x1545fa(0x27c)]=_0x1e630e[_0x1545fa(0x28b)],_0x1e630e[_0x1545fa(0x2e3)]={},_0x1e630e['lat'][_0x1545fa(0x254)]=_0x1e630e[_0x1545fa(0x257)],_0x1e630e[_0x1545fa(0x2e3)][_0x1545fa(0x27c)]=_0x1e630e['ymax'],_0x1e630e[_0x1545fa(0x33a)]={},_0x1e630e['lev'][_0x1545fa(0x254)]=null!==(_0x373445=_0x1e630e[_0x1545fa(0x27d)])&&void 0x0!==_0x373445?_0x373445:0x1,_0x1e630e[_0x1545fa(0x33a)][_0x1545fa(0x27c)]=null!==(_0x501ce1=_0x1e630e[_0x1545fa(0x2b9)])&&void 0x0!==_0x501ce1?_0x501ce1:0x1,_0x1e630e['U']={},_0x1e630e['U'][_0x1545fa(0x320)]=new Float32Array(_0x1e630e[_0x1545fa(0x24a)]),_0x1e630e['U']['min']=null!==(_0x2ee512=_0x1e630e[_0x1545fa(0x227)])&&void 0x0!==_0x2ee512?_0x2ee512:Math['min'][_0x1545fa(0x22a)](Math,_0x52b1e2()(_0x1e630e['udata'])),_0x1e630e['U']['max']=null!==(_0x5b4ee7=_0x1e630e[_0x1545fa(0x2ce)])&&void 0x0!==_0x5b4ee7?_0x5b4ee7:Math['max']['apply'](Math,_0x52b1e2()(_0x1e630e[_0x1545fa(0x24a)])),_0x1e630e['V']={},_0x1e630e['V'][_0x1545fa(0x320)]=new Float32Array(_0x1e630e[_0x1545fa(0x351)]),_0x1e630e['V']['min']=null!==(_0x551052=_0x1e630e[_0x1545fa(0x1f9)])&&void 0x0!==_0x551052?_0x551052:Math['min']['apply'](Math,_0x52b1e2()(_0x1e630e['vdata'])),_0x1e630e['V'][_0x1545fa(0x27c)]=null!==(_0x552fbd=_0x1e630e[_0x1545fa(0x355)])&&void 0x0!==_0x552fbd?_0x552fbd:Math[_0x1545fa(0x27c)]['apply'](Math,_0x52b1e2()(_0x1e630e[_0x1545fa(0x351)]))),(this['data']=_0x1e630e,this[_0x1545fa(0x303)]=_0x3ddbf8,this['viewerParameters']=_0x2a872c,this[_0x1545fa(0x25d)]=new _0x32cebf(this[_0x1545fa(0x23c)],this[_0x1545fa(0x285)],this['options'],this['viewerParameters']),this[_0x1545fa(0x2f2)]=new _0x4a9d8a(this[_0x1545fa(0x23c)],this['data'],this[_0x1545fa(0x303)],this[_0x1545fa(0x2e4)],this[_0x1545fa(0x25d)]));}return _0x407531()(_0x3a872e,[{'key':_0x5125cb(0x1f7),'value':function(_0x260023){var _0x5d808a=_0x5125cb,_0x1c7c73=this;this[_0x5d808a(0x25d)]['destroyParticlesTextures'](),Object[_0x5d808a(0x271)](this[_0x5d808a(0x25d)][_0x5d808a(0x299)])[_0x5d808a(0x319)](function(_0x1f3ef4){var _0x325579=_0x5d808a;_0x1c7c73[_0x325579(0x25d)][_0x325579(0x299)][_0x1f3ef4][_0x325579(0x2c7)]();}),this[_0x5d808a(0x2f2)][_0x5d808a(0x2fd)][_0x5d808a(0x1f1)][_0x5d808a(0x2c7)](),Object[_0x5d808a(0x271)](this[_0x5d808a(0x2f2)][_0x5d808a(0x2d7)])['forEach'](function(_0x1ccabc){var _0x4eb46b=_0x5d808a;_0x1c7c73[_0x4eb46b(0x2f2)]['framebuffers'][_0x1ccabc][_0x4eb46b(0x2c7)]();}),this[_0x5d808a(0x23c)]=_0x260023,this[_0x5d808a(0x25d)]=new _0x32cebf(this[_0x5d808a(0x23c)],this[_0x5d808a(0x285)],this[_0x5d808a(0x303)],this[_0x5d808a(0x2e4)]),this[_0x5d808a(0x2f2)]=new _0x4a9d8a(this[_0x5d808a(0x23c)],this['data'],this[_0x5d808a(0x303)],this[_0x5d808a(0x2e4)],this['particlesComputing']);}},{'key':_0x5125cb(0x22d),'value':function(){var _0x1b0829=_0x5125cb,_0x54d988=this,_0x2191f1=new _0x247817[(_0x1b0829(0x2ed))]({'color':new _0x247817[(_0x1b0829(0x1f8))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':void 0x0,'pass':_0x247817[_0x1b0829(0x1e4)][_0x1b0829(0x264)]});Object[_0x1b0829(0x271)](this['particlesRendering'][_0x1b0829(0x2d7)])[_0x1b0829(0x319)](function(_0x4fe4d0){var _0x23fe99=_0x1b0829;_0x2191f1[_0x23fe99(0x35a)]=_0x54d988[_0x23fe99(0x2f2)][_0x23fe99(0x2d7)][_0x4fe4d0],_0x2191f1[_0x23fe99(0x32d)](_0x54d988['context']);});}},{'key':_0x5125cb(0x259),'value':function(_0x38f8bb){var _0x397cd0=_0x5125cb;if(this[_0x397cd0(0x22d)](),this['particlesComputing']['destroyParticlesTextures'](),this[_0x397cd0(0x25d)][_0x397cd0(0x255)](this[_0x397cd0(0x23c)],this[_0x397cd0(0x303)],this[_0x397cd0(0x2e4)]),_0x38f8bb){var _0x3c687b=this['particlesRendering'][_0x397cd0(0x22e)](this[_0x397cd0(0x303)]);this[_0x397cd0(0x2f2)][_0x397cd0(0x226)][_0x397cd0(0x273)][_0x397cd0(0x260)]=_0x3c687b;var _0x362698=_0x247817['VertexArray'][_0x397cd0(0x302)]({'context':this['context'],'geometry':_0x3c687b,'attributeLocations':this['particlesRendering'][_0x397cd0(0x226)][_0x397cd0(0x273)][_0x397cd0(0x2b3)],'bufferUsage':_0x247817[_0x397cd0(0x2a8)]['STATIC_DRAW']});this[_0x397cd0(0x2f2)]['primitives']['segments'][_0x397cd0(0x318)]['vertexArray']=_0x362698;}}},{'key':_0x5125cb(0x2f9),'value':function(_0x3d3de2){var _0xccf0bf=_0x5125cb,_0x4806b3=this,_0x244da3=!0x1;this[_0xccf0bf(0x303)][_0xccf0bf(0x21a)]!=_0x3d3de2[_0xccf0bf(0x21a)]&&(_0x244da3=!0x0),Object[_0xccf0bf(0x271)](_0x3d3de2)[_0xccf0bf(0x319)](function(_0x55324a){var _0x20a2c7=_0xccf0bf;_0x4806b3[_0x20a2c7(0x303)][_0x55324a]=_0x3d3de2[_0x55324a];}),this[_0xccf0bf(0x259)](_0x244da3);}},{'key':_0x5125cb(0x216),'value':function(_0x1272ea){var _0x36afda=_0x5125cb,_0x25e8ab=this;Object[_0x36afda(0x271)](_0x1272ea)['forEach'](function(_0x42f131){_0x25e8ab['viewerParameters'][_0x42f131]=_0x1272ea[_0x42f131];}),this['refreshParticles'](!0x1);}},{'key':_0x5125cb(0x2c7),'value':function(){var _0x5a64c2=_0x5125cb,_0x32ae11=this;for(var _0x19fefa in(clearTimeout(this[_0x5a64c2(0x1f6)]),this[_0x5a64c2(0x25d)][_0x5a64c2(0x1e2)](),Object[_0x5a64c2(0x271)](this['particlesComputing'][_0x5a64c2(0x299)])[_0x5a64c2(0x319)](function(_0x355d46){var _0x5027f9=_0x5a64c2;_0x32ae11[_0x5027f9(0x25d)][_0x5027f9(0x299)][_0x355d46][_0x5027f9(0x2c7)]();}),this[_0x5a64c2(0x2f2)][_0x5a64c2(0x2fd)][_0x5a64c2(0x1f1)][_0x5a64c2(0x2c7)](),Object['keys'](this[_0x5a64c2(0x2f2)]['framebuffers'])['forEach'](function(_0x5e2ae3){var _0x31d96d=_0x5a64c2;_0x32ae11[_0x31d96d(0x2f2)][_0x31d96d(0x2d7)][_0x5e2ae3][_0x31d96d(0x2c7)]();}),this))delete this[_0x19fefa];}}]),_0x3a872e;}());function _0x3421e0(_0x2f798e,_0x2c353d){var _0x3a5d2b=_0x1ad61d,_0x1f84b1=Object['keys'](_0x2f798e);if(Object[_0x3a5d2b(0x332)]){var _0x1ac410=Object[_0x3a5d2b(0x332)](_0x2f798e);_0x2c353d&&(_0x1ac410=_0x1ac410[_0x3a5d2b(0x357)](function(_0x1eeebe){var _0x148e1d=_0x3a5d2b;return Object[_0x148e1d(0x23f)](_0x2f798e,_0x1eeebe)[_0x148e1d(0x221)];})),_0x1f84b1[_0x3a5d2b(0x208)][_0x3a5d2b(0x22a)](_0x1f84b1,_0x1ac410);}return _0x1f84b1;}function _0x5edd2e(_0x185c98){var _0x4c6730=_0x1ad61d;for(var _0x392e0f=0x1;_0x392e0f<arguments[_0x4c6730(0x2a4)];_0x392e0f++){var _0x835f9f=null!=arguments[_0x392e0f]?arguments[_0x392e0f]:{};_0x392e0f%0x2?_0x3421e0(Object(_0x835f9f),!0x0)[_0x4c6730(0x319)](function(_0x125f94){_0x5e924e()(_0x185c98,_0x125f94,_0x835f9f[_0x125f94]);}):Object['getOwnPropertyDescriptors']?Object[_0x4c6730(0x315)](_0x185c98,Object[_0x4c6730(0x281)](_0x835f9f)):_0x3421e0(Object(_0x835f9f))[_0x4c6730(0x319)](function(_0xbd8209){var _0x14f64f=_0x4c6730;Object['defineProperty'](_0x185c98,_0xbd8209,Object[_0x14f64f(0x23f)](_0x835f9f,_0xbd8209));});}return _0x185c98;}function _0x275d10(_0x4b672b){var _0x4d6f9b=(function(){var _0x522086=a0_0x3604;if(_0x522086(0x325)==typeof Reflect||!Reflect[_0x522086(0x2fb)])return!0x1;if(Reflect['construct'][_0x522086(0x268)])return!0x1;if(_0x522086(0x1ec)==typeof Proxy)return!0x0;try{return Boolean[_0x522086(0x30a)][_0x522086(0x277)][_0x522086(0x240)](Reflect[_0x522086(0x2fb)](Boolean,[],function(){})),!0x0;}catch(_0x119a92){return!0x1;}}());return function(){var _0x5e7c39=a0_0x3604,_0x36f9ed,_0x8e05c0=_0x56bc89()(_0x4b672b);if(_0x4d6f9b){var _0x46d4cb=_0x56bc89()(this)[_0x5e7c39(0x1e0)];_0x36f9ed=Reflect[_0x5e7c39(0x2fb)](_0x8e05c0,arguments,_0x46d4cb);}else _0x36f9ed=_0x8e05c0[_0x5e7c39(0x22a)](this,arguments);return _0x2c9e32()(this,_0x36f9ed);};}var _0x2635cd=_0x53dab5[_0x1ad61d(0x308)],_0x3c5e5e=_0x53dab5['layer'][_0x1ad61d(0x296)],_0x3f3882={'particlesNumber':0x1000,'fixedHeight':0x0,'fadeOpacity':0.996,'dropRate':0.003,'dropRateBump':0.01,'speedFactor':0.5,'lineWidth':0x2,'colors':[_0x1ad61d(0x2d1)]},_0x18adfe=function(_0x8fc02d){var _0x5ddaa1=_0x1ad61d;_0x598885()(_0xec47c2,_0x8fc02d);var _0x16cfe3=_0x275d10(_0xec47c2);function _0xec47c2(){var _0x5f1865=a0_0x3604,_0x554997,_0x585bf0=arguments[_0x5f1865(0x2a4)]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:{};return _0xa20c6a()(this,_0xec47c2),_0x585bf0=_0x5edd2e(_0x5edd2e({},_0x3f3882),_0x585bf0),(_0x554997=_0x16cfe3[_0x5f1865(0x240)](this,_0x585bf0))[_0x5f1865(0x23b)](_0x585bf0),_0x554997;}return _0x407531()(_0xec47c2,[{'key':_0x5ddaa1(0x312),'get':function(){var _0x56bff0=_0x5ddaa1;return this[_0x56bff0(0x226)];}},{'key':_0x5ddaa1(0x285),'get':function(){var _0x3f7bb8=_0x5ddaa1;return this[_0x3f7bb8(0x346)];},'set':function(_0x1a8e5f){var _0x5dbb45=_0x5ddaa1;this[_0x5dbb45(0x2df)](_0x1a8e5f);}},{'key':_0x5ddaa1(0x218),'get':function(){var _0x1e8a9c=_0x5ddaa1;return this['options'][_0x1e8a9c(0x218)];},'set':function(_0x301045){var _0x3ef865=_0x5ddaa1;this[_0x3ef865(0x303)][_0x3ef865(0x218)]=_0x301045,this[_0x3ef865(0x20d)]&&this[_0x3ef865(0x20d)][_0x3ef865(0x2f9)]({'colors':_0x301045}),this[_0x3ef865(0x360)]();}},{'key':'_mountedHook','value':function(){}},{'key':_0x5ddaa1(0x29e),'value':function(){var _0x49f592=_0x5ddaa1;this['scene']=this[_0x49f592(0x298)][_0x49f592(0x26b)],this['camera']=this[_0x49f592(0x298)][_0x49f592(0x275)],this[_0x49f592(0x226)]=new _0x2635cd[(_0x49f592(0x317))](),this[_0x49f592(0x298)][_0x49f592(0x26b)]['primitives'][_0x49f592(0x28c)](this[_0x49f592(0x226)]),this[_0x49f592(0x2e4)]={'lonRange':new _0x2635cd[(_0x49f592(0x20e))](),'latRange':new _0x2635cd[(_0x49f592(0x20e))](),'pixelSize':0x0},this[_0x49f592(0x321)]=new _0x2635cd['BoundingSphere'](_0x2635cd[_0x49f592(0x22f)]['ZERO'],6314355.63),this[_0x49f592(0x348)](),window[_0x49f592(0x250)]('resize',this[_0x49f592(0x360)]['bind'](this),!0x1),this[_0x49f592(0x2d2)]=!0x1,this[_0x49f592(0x2d9)]=!0x1,this['_map']['on'](_0x53dab5['EventType']['wheel'],this['_onMapWhellEvent'],this),this[_0x49f592(0x298)]['on'](_0x53dab5[_0x49f592(0x243)]['mouseDown'],this[_0x49f592(0x328)],this),this[_0x49f592(0x298)]['on'](_0x53dab5[_0x49f592(0x243)]['mouseUp'],this[_0x49f592(0x29b)],this),this[_0x49f592(0x298)]['on'](_0x53dab5['EventType']['mouseMove'],this[_0x49f592(0x29c)],this),this['_data']&&this[_0x49f592(0x2df)](this['_data']);}},{'key':_0x5ddaa1(0x306),'value':function(){var _0x3ae02b=_0x5ddaa1;window[_0x3ae02b(0x1e8)]('resize',this[_0x3ae02b(0x360)]),this[_0x3ae02b(0x298)][_0x3ae02b(0x35b)](_0x53dab5[_0x3ae02b(0x243)][_0x3ae02b(0x1ee)],this[_0x3ae02b(0x256)],this),this['_map'][_0x3ae02b(0x35b)](_0x53dab5[_0x3ae02b(0x243)][_0x3ae02b(0x2a0)],this['_onMapWhellEvent'],this),this[_0x3ae02b(0x298)][_0x3ae02b(0x35b)](_0x53dab5[_0x3ae02b(0x243)][_0x3ae02b(0x2a9)],this['_onMouseDownEvent'],this),this[_0x3ae02b(0x298)][_0x3ae02b(0x35b)](_0x53dab5[_0x3ae02b(0x243)][_0x3ae02b(0x2cb)],this['_onMouseUpEvent'],this),this['_map'][_0x3ae02b(0x35b)](_0x53dab5[_0x3ae02b(0x243)][_0x3ae02b(0x2e7)],this[_0x3ae02b(0x29c)],this),this[_0x3ae02b(0x226)][_0x3ae02b(0x233)](),this[_0x3ae02b(0x298)][_0x3ae02b(0x26b)][_0x3ae02b(0x226)][_0x3ae02b(0x28e)](this[_0x3ae02b(0x226)]);}},{'key':'resize','value':function(){var _0x330d4e=_0x5ddaa1;this[_0x330d4e(0x27e)]&&this[_0x330d4e(0x20d)]&&(this[_0x330d4e(0x226)]['show']=!0x1,this[_0x330d4e(0x226)]['removeAll'](),this['_map'][_0x330d4e(0x1ef)](_0x53dab5[_0x330d4e(0x243)][_0x330d4e(0x1ee)],this['_onMap_preRenderEvent'],this));}},{'key':_0x5ddaa1(0x256),'value':function(_0x39f9e5){var _0x4b1084=_0x5ddaa1;this['particleSystem'][_0x4b1084(0x1f7)](this[_0x4b1084(0x26b)]['context']),this[_0x4b1084(0x31e)](),this[_0x4b1084(0x226)][_0x4b1084(0x27e)]=!0x0;}},{'key':_0x5ddaa1(0x2fc),'value':function(_0x4c073b){var _0x222487=_0x5ddaa1,_0x20e036=this;clearTimeout(this['refreshTimer']),this[_0x222487(0x27e)]&&this['particleSystem']&&(this[_0x222487(0x226)][_0x222487(0x27e)]=!0x1,this[_0x222487(0x261)]=setTimeout(function(){var _0x3591d3=_0x222487;_0x20e036[_0x3591d3(0x27e)]&&_0x20e036['redraw']();},0xc8));}},{'key':_0x5ddaa1(0x328),'value':function(_0x2806bd){var _0x56544e=_0x5ddaa1;this[_0x56544e(0x2d2)]=!0x0;}},{'key':_0x5ddaa1(0x29c),'value':function(_0xacd7d4){var _0x58693e=_0x5ddaa1;this[_0x58693e(0x27e)]&&this['particleSystem']&&this[_0x58693e(0x2d2)]&&(this[_0x58693e(0x226)][_0x58693e(0x27e)]=!0x1,this[_0x58693e(0x2d9)]=!0x0);}},{'key':_0x5ddaa1(0x29b),'value':function(_0x2c0f56){var _0x55c22b=_0x5ddaa1;this[_0x55c22b(0x27e)]&&this[_0x55c22b(0x20d)]&&(this[_0x55c22b(0x2d2)]&&this[_0x55c22b(0x2d9)]&&this[_0x55c22b(0x30f)](),this['primitives'][_0x55c22b(0x27e)]=!0x0,this[_0x55c22b(0x2d2)]=!0x1,this[_0x55c22b(0x2d9)]=!0x1);}},{'key':'redraw','value':function(){var _0x5c7720=_0x5ddaa1;this[_0x5c7720(0x298)]&&this[_0x5c7720(0x27e)]&&(this[_0x5c7720(0x348)](),this[_0x5c7720(0x20d)][_0x5c7720(0x216)](this[_0x5c7720(0x2e4)]),this[_0x5c7720(0x226)][_0x5c7720(0x27e)]=!0x0);}},{'key':'setData','value':function(_0x115ffa){var _0x509f7d=_0x5ddaa1;this[_0x509f7d(0x346)]=_0x115ffa,this['particleSystem']&&this['particleSystem']['destroy'](),this[_0x509f7d(0x20d)]=new _0x365e92(this[_0x509f7d(0x26b)][_0x509f7d(0x23c)],_0x115ffa,this['getOptions'](),this[_0x509f7d(0x2e4)]),this['addPrimitives']();}},{'key':_0x5ddaa1(0x23b),'value':function(_0x3d3d3e){var _0x253894=_0x5ddaa1;if(_0x3d3d3e){for(var _0x5afe79 in _0x3d3d3e)this[_0x5afe79]=_0x3d3d3e[_0x5afe79];}this[_0x253894(0x20d)]&&this[_0x253894(0x20d)]['setOptions'](this['getOptions']());}},{'key':_0x5ddaa1(0x219),'value':function(){var _0x2e8919=_0x5ddaa1,_0x46833b=Math['ceil'](Math['sqrt'](this[_0x2e8919(0x2bc)]));return this[_0x2e8919(0x2bc)]=_0x46833b*_0x46833b,{'particlesTextureSize':_0x46833b,'maxParticles':this[_0x2e8919(0x2bc)],'particleHeight':this[_0x2e8919(0x34b)],'fadeOpacity':this[_0x2e8919(0x2ca)],'dropRate':this[_0x2e8919(0x210)],'dropRateBump':this[_0x2e8919(0x347)],'speedFactor':this[_0x2e8919(0x2f1)],'lineWidth':this[_0x2e8919(0x1ea)],'globeLayer':this[_0x2e8919(0x2d6)],'WMS_URL':this[_0x2e8919(0x1f0)],'colors':this['colors']};}},{'key':_0x5ddaa1(0x31e),'value':function(){var _0x321a34=_0x5ddaa1;this[_0x321a34(0x226)]['add'](this[_0x321a34(0x20d)][_0x321a34(0x25d)][_0x321a34(0x226)]['getWind']),this['primitives'][_0x321a34(0x28c)](this[_0x321a34(0x20d)][_0x321a34(0x25d)]['primitives'][_0x321a34(0x2ba)]),this[_0x321a34(0x226)][_0x321a34(0x28c)](this[_0x321a34(0x20d)][_0x321a34(0x25d)]['primitives']['updatePosition']),this[_0x321a34(0x226)][_0x321a34(0x28c)](this[_0x321a34(0x20d)][_0x321a34(0x25d)]['primitives'][_0x321a34(0x2cc)]),this['primitives'][_0x321a34(0x28c)](this[_0x321a34(0x20d)][_0x321a34(0x25d)][_0x321a34(0x226)][_0x321a34(0x2dd)]),this[_0x321a34(0x226)][_0x321a34(0x28c)](this[_0x321a34(0x20d)][_0x321a34(0x2f2)][_0x321a34(0x226)][_0x321a34(0x273)]),this[_0x321a34(0x226)][_0x321a34(0x28c)](this[_0x321a34(0x20d)][_0x321a34(0x2f2)][_0x321a34(0x226)]['trails']),this[_0x321a34(0x226)][_0x321a34(0x28c)](this[_0x321a34(0x20d)][_0x321a34(0x2f2)][_0x321a34(0x226)][_0x321a34(0x1ed)]);}},{'key':_0x5ddaa1(0x348),'value':function(){var _0x2f17ce=_0x5ddaa1,_0x40de8c=this['camera'][_0x2f17ce(0x25c)](this[_0x2f17ce(0x26b)]['globe']['ellipsoid']);if(!_0x40de8c){var _0x1baaa7=this[_0x2f17ce(0x298)][_0x2f17ce(0x24e)]();_0x40de8c=_0x2635cd['Rectangle'][_0x2f17ce(0x2e6)](_0x1baaa7[_0x2f17ce(0x1e6)],_0x1baaa7['ymin'],_0x1baaa7[_0x2f17ce(0x28b)],_0x1baaa7[_0x2f17ce(0x230)]);}var _0x528b75=_0x2b0296['viewRectangleToLonLatRange'](_0x40de8c);this[_0x2f17ce(0x2e4)]['lonRange']['x']=_0x528b75[_0x2f17ce(0x2ee)]['min'],this[_0x2f17ce(0x2e4)][_0x2f17ce(0x339)]['y']=_0x528b75[_0x2f17ce(0x2ee)][_0x2f17ce(0x27c)],this['viewerParameters'][_0x2f17ce(0x1f3)]['x']=_0x528b75[_0x2f17ce(0x2e3)][_0x2f17ce(0x254)],this[_0x2f17ce(0x2e4)][_0x2f17ce(0x1f3)]['y']=_0x528b75[_0x2f17ce(0x2e3)][_0x2f17ce(0x27c)];var _0x5b8482=this[_0x2f17ce(0x275)][_0x2f17ce(0x34c)](this['globeBoundingSphere'],this['scene'][_0x2f17ce(0x21e)],this[_0x2f17ce(0x26b)][_0x2f17ce(0x2b6)]);_0x5b8482>0x0&&(this['viewerParameters'][_0x2f17ce(0x345)]=_0x5b8482);}}]),_0xec47c2;}(_0x3c5e5e);_0x53dab5['LayerUtil'][_0x1ad61d(0x2ff)]('wind',_0x18adfe),_0x53dab5['layer'][_0x1ad61d(0x334)]=_0x18adfe;var _0x592485=_0x407531()(function _0x365cae(){var _0x3f3c75=_0x1ad61d;_0xa20c6a()(this,_0x365cae),this[_0x3f3c75(0x237)]=null,this[_0x3f3c75(0x2e3)]=null,this[_0x3f3c75(0x2f4)]=null,this[_0x3f3c75(0x2da)]=null,this[_0x3f3c75(0x34d)]=null;}),_0x5d9541=(function(){var _0x456492=_0x1ad61d;function _0x383df5(_0x260881,_0x445b39){var _0xa366a9=a0_0x3604;_0xa20c6a()(this,_0x383df5),this[_0xa366a9(0x2f5)]=_0x260881[_0xa366a9(0x2f5)],this[_0xa366a9(0x2fa)]=_0x260881[_0xa366a9(0x2fa)],this['xmin']=_0x260881[_0xa366a9(0x1e6)],this[_0xa366a9(0x28b)]=_0x260881[_0xa366a9(0x28b)],this[_0xa366a9(0x257)]=_0x260881['ymin'],this[_0xa366a9(0x230)]=_0x260881['ymax'],this[_0xa366a9(0x2e8)]=[];var _0x5e0faf=_0x260881[_0xa366a9(0x24a)],_0x7708fa=_0x260881['vdata'],_0x2ea740=!0x1;_0x5e0faf['length']===this[_0xa366a9(0x2f5)]&&_0x5e0faf[0x0]['length']===this['cols']&&(_0x2ea740=!0x0);for(var _0x52aaca=0x0,_0x4c68b1=null,_0xa53be9=null,_0x38bf39=0x0;_0x38bf39<this[_0xa366a9(0x2f5)];_0x38bf39++){_0x4c68b1=[];for(var _0x42ada5=0x0;_0x42ada5<this[_0xa366a9(0x2fa)];_0x42ada5++,_0x52aaca++)_0xa53be9=_0x2ea740?this['_calcUV'](_0x5e0faf[_0x38bf39][_0x42ada5],_0x7708fa[_0x38bf39][_0x42ada5]):this[_0xa366a9(0x283)](_0x5e0faf[_0x52aaca],_0x7708fa[_0x52aaca]),_0x4c68b1[_0xa366a9(0x208)](_0xa53be9);this[_0xa366a9(0x2e8)][_0xa366a9(0x208)](_0x4c68b1);}_0x445b39&&this[_0xa366a9(0x2e8)][_0xa366a9(0x313)]();}return _0x407531()(_0x383df5,[{'key':'toGridXY','value':function(_0x5d58c0,_0x2bcc4d){var _0xa741b9=a0_0x3604;return{'x':(_0x5d58c0-this[_0xa741b9(0x1e6)])/(this[_0xa741b9(0x28b)]-this['xmin'])*(this[_0xa741b9(0x2fa)]-0x1),'y':(this[_0xa741b9(0x230)]-_0x2bcc4d)/(this[_0xa741b9(0x230)]-this[_0xa741b9(0x257)])*(this[_0xa741b9(0x2f5)]-0x1)};}},{'key':_0x456492(0x1fa),'value':function(_0xba0f4d,_0x58044f){var _0x4f3f88=_0x456492;if(_0xba0f4d<0x0||_0xba0f4d>=this[_0x4f3f88(0x2fa)]||_0x58044f>=this[_0x4f3f88(0x2f5)])return[0x0,0x0,0x0];var _0x51a1da,_0x246fb9,_0x2db5b3=Math[_0x4f3f88(0x356)](_0xba0f4d),_0x419040=Math[_0x4f3f88(0x356)](_0x58044f);if(_0x2db5b3===_0xba0f4d&&_0x419040===_0x58044f)return this['grid'][_0x58044f][_0xba0f4d];_0x51a1da=_0x2db5b3+0x1,_0x246fb9=_0x419040+0x1;var _0x380701=this[_0x4f3f88(0x1fa)](_0x2db5b3,_0x419040),_0x5cff72=this[_0x4f3f88(0x1fa)](_0x51a1da,_0x419040),_0xce453b=this[_0x4f3f88(0x1fa)](_0x2db5b3,_0x246fb9),_0x5908b3=this['getUVByXY'](_0x51a1da,_0x246fb9),_0x4b2927=null;try{_0x4b2927=this['_bilinearInterpolation'](_0xba0f4d-_0x2db5b3,_0x58044f-_0x419040,_0x380701,_0x5cff72,_0xce453b,_0x5908b3);}catch(_0x3e5b0c){console[_0x4f3f88(0x1eb)](_0xba0f4d,_0x58044f);}return _0x4b2927;}},{'key':_0x456492(0x35c),'value':function(_0x5a648e,_0x2ed75c,_0x4a0e95,_0x20f667,_0x31bf95,_0x8980ee){var _0x2c7f14=_0x456492,_0x2d723b=0x1-_0x5a648e,_0x317834=0x1-_0x2ed75c,_0x766632=_0x2d723b*_0x317834,_0x40a2a3=_0x5a648e*_0x317834,_0x59c326=_0x2d723b*_0x2ed75c,_0x38e088=_0x5a648e*_0x2ed75c,_0x41bce8=_0x4a0e95[0x0]*_0x766632+_0x20f667[0x0]*_0x40a2a3+_0x31bf95[0x0]*_0x59c326+_0x8980ee[0x0]*_0x38e088,_0x1a9c3d=_0x4a0e95[0x1]*_0x766632+_0x20f667[0x1]*_0x40a2a3+_0x31bf95[0x1]*_0x59c326+_0x8980ee[0x1]*_0x38e088;return this[_0x2c7f14(0x283)](_0x41bce8,_0x1a9c3d);}},{'key':_0x456492(0x283),'value':function(_0x5b3bfc,_0x32d26a){return[+_0x5b3bfc,+_0x32d26a,Math['sqrt'](_0x5b3bfc*_0x5b3bfc+_0x32d26a*_0x32d26a)];}},{'key':_0x456492(0x35d),'value':function(_0x34e32d,_0x12b267){var _0x38a2f7=_0x456492;if(!this[_0x38a2f7(0x31f)](_0x34e32d,_0x12b267))return null;var _0x419e9e=this['toGridXY'](_0x34e32d,_0x12b267);return this[_0x38a2f7(0x1fa)](_0x419e9e['x'],_0x419e9e['y']);}},{'key':'isInExtent','value':function(_0x43df1e,_0x35f9d0){var _0x2e795c=_0x456492;return _0x43df1e>=this[_0x2e795c(0x1e6)]&&_0x43df1e<=this[_0x2e795c(0x28b)]&&_0x35f9d0>=this[_0x2e795c(0x257)]&&_0x35f9d0<=this['ymax'];}},{'key':'getRandomLatLng','value':function(){var _0x390567=_0x456492,_0x106b81=_0x127bd9(this['xmin'],this[_0x390567(0x28b)]);return{'lat':_0x127bd9(this[_0x390567(0x257)],this[_0x390567(0x230)]),'lng':_0x106b81};}}]),_0x383df5;}());function _0x127bd9(_0x52f54b,_0x55e52c){var _0x29914c=_0x1ad61d;return _0x52f54b+Math[_0x29914c(0x365)]()*(_0x55e52c-_0x52f54b);}function _0x56d415(_0x2c73d1){var _0x3dd2c1=(function(){var _0x3683ca=a0_0x3604;if(_0x3683ca(0x325)==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x3683ca(0x2fb)]['sham'])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Boolean[_0x3683ca(0x30a)]['valueOf'][_0x3683ca(0x240)](Reflect[_0x3683ca(0x2fb)](Boolean,[],function(){})),!0x0;}catch(_0x2fd3dc){return!0x1;}}());return function(){var _0x350f0a=a0_0x3604,_0x1b855a,_0x1c6290=_0x56bc89()(_0x2c73d1);if(_0x3dd2c1){var _0x1d6b50=_0x56bc89()(this)[_0x350f0a(0x1e0)];_0x1b855a=Reflect[_0x350f0a(0x2fb)](_0x1c6290,arguments,_0x1d6b50);}else _0x1b855a=_0x1c6290[_0x350f0a(0x22a)](this,arguments);return _0x2c9e32()(this,_0x1b855a);};}var _0x14430c=_0x53dab5[_0x1ad61d(0x308)],_0x13f2d9=function(_0x14af61){var _0x31376c=_0x1ad61d;_0x598885()(_0x1f0d93,_0x14af61);var _0x2d6aa8=_0x56d415(_0x1f0d93);function _0x1f0d93(){var _0x5dc0ba=a0_0x3604,_0x219418,_0x5efc72=arguments[_0x5dc0ba(0x2a4)]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:{};return _0xa20c6a()(this,_0x1f0d93),(_0x219418=_0x2d6aa8[_0x5dc0ba(0x240)](this,_0x5efc72))['_setOptionsHook'](_0x5efc72),_0x219418[_0x5dc0ba(0x342)]=null,_0x219418;}return _0x407531()(_0x1f0d93,[{'key':_0x31376c(0x23b),'value':function(_0x85f021){var _0x5713fb=_0x31376c;this[_0x5713fb(0x2c2)]=[0x0,0x0],this[_0x5713fb(0x1f4)]=[],this[_0x5713fb(0x23e)]=_0x85f021['speedRate']||0x32,this[_0x5713fb(0x2a6)]=_0x85f021[_0x5713fb(0x2bc)]||0x1000,this[_0x5713fb(0x1f5)]=_0x85f021[_0x5713fb(0x2ef)]||0x78,this['frameTime']=0x3e8/(_0x85f021[_0x5713fb(0x266)]||0xa),this[_0x5713fb(0x2a5)]=_0x14430c[_0x5713fb(0x288)](this[_0x5713fb(0x303)][_0x5713fb(0x311)],!0x1),this['color']=_0x85f021[_0x5713fb(0x32e)]||_0x5713fb(0x291),this['lineWidth']=_0x85f021[_0x5713fb(0x1ea)]||0x1,this[_0x5713fb(0x34b)]=_0x14430c[_0x5713fb(0x288)](_0x85f021[_0x5713fb(0x34b)],0x0),this['reverseY']=_0x14430c[_0x5713fb(0x288)](_0x85f021['reverseY'],!0x1);}},{'key':_0x31376c(0x312),'get':function(){var _0x4fdb10=_0x31376c;return this[_0x4fdb10(0x342)];}},{'key':_0x31376c(0x35e),'get':function(){var _0x15b417=_0x31376c;return this[_0x15b417(0x298)][_0x15b417(0x26b)]['canvas'][_0x15b417(0x25b)];}},{'key':'canvasHeight','get':function(){var _0x11d921=_0x31376c;return this[_0x11d921(0x298)]['scene'][_0x11d921(0x342)][_0x11d921(0x2b5)];}},{'key':_0x31376c(0x311),'get':function(){var _0x3cd092=_0x31376c;return this[_0x3cd092(0x2a5)];},'set':function(_0x223727){var _0x1d8242=_0x31376c;this[_0x1d8242(0x2a5)]=_0x223727,this[_0x1d8242(0x342)]&&(this[_0x1d8242(0x342)][_0x1d8242(0x225)]['pointer-events']=_0x223727?'all':'none');}},{'key':_0x31376c(0x23e),'get':function(){return this['_speedRate'];},'set':function(_0x5bb06e){var _0x3652a8=_0x31376c;this[_0x3652a8(0x279)]=0x64*(0x64-(_0x5bb06e>0x63?0x63:_0x5bb06e)),this[_0x3652a8(0x1fc)]();}},{'key':_0x31376c(0x2bc),'get':function(){var _0x478a4e=_0x31376c;return this[_0x478a4e(0x2a6)];},'set':function(_0x410c77){var _0x2d0395=_0x31376c,_0x2c1596=this;this['_particlesNumber']=_0x410c77,clearTimeout(this[_0x2d0395(0x282)]),this[_0x2d0395(0x282)]=setTimeout(function(){var _0x20268e=_0x2d0395;_0x2c1596[_0x20268e(0x30f)]();},0x1f4);}},{'key':_0x31376c(0x2ef),'get':function(){var _0x43684a=_0x31376c;return this[_0x43684a(0x1f5)];},'set':function(_0x5c22a5){var _0x4a78b3=_0x31376c,_0x51f976=this;this[_0x4a78b3(0x1f5)]=_0x5c22a5,clearTimeout(this[_0x4a78b3(0x282)]),this['_canrefresh']=setTimeout(function(){var _0x5dbf12=_0x4a78b3;_0x51f976[_0x5dbf12(0x30f)]();},0x1f4);}},{'key':_0x31376c(0x285),'get':function(){var _0x8cd4a1=_0x31376c;return this[_0x8cd4a1(0x207)];},'set':function(_0x28a99a){var _0x123f65=_0x31376c;this[_0x123f65(0x2df)](_0x28a99a);}},{'key':_0x31376c(0x305),'value':function(_0x41b9de){var _0x3abf8d=_0x31376c;_0x41b9de?this['_addedHook']():(this[_0x3abf8d(0x207)]&&(this[_0x3abf8d(0x303)][_0x3abf8d(0x285)]=this[_0x3abf8d(0x207)]),this[_0x3abf8d(0x306)]());}},{'key':_0x31376c(0x258),'value':function(){}},{'key':_0x31376c(0x29e),'value':function(){var _0x53651b=_0x31376c;this['canvas']=this[_0x53651b(0x246)](),this[_0x53651b(0x217)]=this[_0x53651b(0x342)][_0x53651b(0x34e)]('2d'),this[_0x53651b(0x353)](),this['options'][_0x53651b(0x285)]&&this['setData'](this[_0x53651b(0x303)][_0x53651b(0x285)]);}},{'key':'_removedHook','value':function(){var _0x377760=_0x31376c;this['clear'](),this[_0x377760(0x316)](),this[_0x377760(0x342)]&&(this['_map']['container'][_0x377760(0x280)](this[_0x377760(0x342)]),delete this[_0x377760(0x342)]);}},{'key':'_createCanvas','value':function(){var _0x581b8d=_0x31376c,_0x56b363=window[_0x581b8d(0x25a)]['createElement'](_0x581b8d(0x342));_0x56b363['style']['position']=_0x581b8d(0x23a),_0x56b363[_0x581b8d(0x225)]['top']='0px',_0x56b363['style'][_0x581b8d(0x35f)]='0px',_0x56b363['style'][_0x581b8d(0x23d)]=_0x581b8d(0x2c5),_0x56b363[_0x581b8d(0x225)][_0x581b8d(0x205)]=_0x581b8d(0x2c5),_0x56b363[_0x581b8d(0x225)][_0x581b8d(0x311)]=this[_0x581b8d(0x2a5)]?_0x581b8d(0x290):_0x581b8d(0x1f2),_0x56b363[_0x581b8d(0x225)][_0x581b8d(0x252)]=0xa,_0x56b363[_0x581b8d(0x26a)]('id',_0x581b8d(0x24b)),_0x56b363[_0x581b8d(0x26a)]('class',_0x581b8d(0x24b)),this[_0x581b8d(0x298)]['container']['appendChild'](_0x56b363);var _0x2ec4a3=this[_0x581b8d(0x298)][_0x581b8d(0x26b)];return _0x56b363[_0x581b8d(0x23d)]=_0x2ec4a3[_0x581b8d(0x342)][_0x581b8d(0x25b)],_0x56b363['height']=_0x2ec4a3['canvas'][_0x581b8d(0x2b5)],_0x56b363;}},{'key':_0x31376c(0x360),'value':function(){var _0x53b828=_0x31376c;this[_0x53b828(0x342)]&&(this[_0x53b828(0x342)][_0x53b828(0x23d)]=this[_0x53b828(0x35e)],this[_0x53b828(0x342)][_0x53b828(0x205)]=this[_0x53b828(0x301)]);}},{'key':_0x31376c(0x353),'value':function(){var _0x313546=_0x31376c,_0x31dae6=this,_0x1dc787=Date[_0x313546(0x322)]();!function _0x4bafd8(){var _0x1fe2a4=_0x313546;_0x31dae6[_0x1fe2a4(0x2b0)]=window[_0x1fe2a4(0x2c4)](_0x4bafd8);var _0x54cbfb=Date['now'](),_0xedff48=_0x54cbfb-_0x1dc787;_0xedff48>_0x31dae6['frameTime']&&(_0x1dc787=_0x54cbfb-_0xedff48%_0x31dae6['frameTime'],_0x31dae6[_0x1fe2a4(0x1e1)]());}(),window[_0x313546(0x250)](_0x313546(0x360),this['resize']['bind'](this),!0x1),this[_0x313546(0x2d2)]=!0x1,this[_0x313546(0x2d9)]=!0x1,this[_0x313546(0x298)]['on'](_0x53dab5[_0x313546(0x243)][_0x313546(0x2a0)],this[_0x313546(0x2fc)],this),this[_0x313546(0x298)]['on'](_0x53dab5[_0x313546(0x243)][_0x313546(0x2a9)],this[_0x313546(0x328)],this),this[_0x313546(0x298)]['on'](_0x53dab5[_0x313546(0x243)]['mouseUp'],this['_onMouseUpEvent'],this),this['_map']['on'](_0x53dab5[_0x313546(0x243)][_0x313546(0x2e7)],this[_0x313546(0x29c)],this);}},{'key':_0x31376c(0x316),'value':function(){var _0x2fd43a=_0x31376c;window[_0x2fd43a(0x366)](this[_0x2fd43a(0x2b0)]),delete this[_0x2fd43a(0x2b0)],window[_0x2fd43a(0x1e8)](_0x2fd43a(0x360),this[_0x2fd43a(0x360)]),this[_0x2fd43a(0x298)]['off'](_0x53dab5[_0x2fd43a(0x243)]['wheel'],this[_0x2fd43a(0x2fc)],this),this[_0x2fd43a(0x298)][_0x2fd43a(0x35b)](_0x53dab5['EventType']['mouseDown'],this[_0x2fd43a(0x328)],this),this[_0x2fd43a(0x298)][_0x2fd43a(0x35b)](_0x53dab5[_0x2fd43a(0x243)][_0x2fd43a(0x2cb)],this[_0x2fd43a(0x29b)],this),this['_map'][_0x2fd43a(0x35b)](_0x53dab5[_0x2fd43a(0x243)][_0x2fd43a(0x2e7)],this['_onMouseMoveEvent'],this);}},{'key':'_onMapWhellEvent','value':function(_0x502b8a){var _0x170f1d=_0x31376c,_0x1cc799=this;clearTimeout(this['refreshTimer']),this[_0x170f1d(0x27e)]&&this[_0x170f1d(0x342)]&&(this[_0x170f1d(0x342)][_0x170f1d(0x225)][_0x170f1d(0x330)]='hidden',this[_0x170f1d(0x261)]=setTimeout(function(){var _0x27f8a6=_0x170f1d;_0x1cc799[_0x27f8a6(0x27e)]&&(_0x1cc799[_0x27f8a6(0x30f)](),_0x1cc799[_0x27f8a6(0x342)][_0x27f8a6(0x225)][_0x27f8a6(0x330)]=_0x27f8a6(0x2eb));},0xc8));}},{'key':_0x31376c(0x328),'value':function(_0x445a4a){this['mouse_down']=!0x0;}},{'key':'_onMouseMoveEvent','value':function(_0x5456a4){var _0x1cb587=_0x31376c;this['show']&&this[_0x1cb587(0x342)]&&this['mouse_down']&&(this[_0x1cb587(0x342)][_0x1cb587(0x225)][_0x1cb587(0x330)]=_0x1cb587(0x32b),this[_0x1cb587(0x2d9)]=!0x0);}},{'key':_0x31376c(0x29b),'value':function(_0x483121){var _0x5a9a90=_0x31376c;this[_0x5a9a90(0x27e)]&&this[_0x5a9a90(0x342)]&&(this[_0x5a9a90(0x2d2)]&&this[_0x5a9a90(0x2d9)]&&this[_0x5a9a90(0x30f)](),this[_0x5a9a90(0x342)][_0x5a9a90(0x225)]['visibility']=_0x5a9a90(0x2eb),this[_0x5a9a90(0x2d2)]=!0x1,this[_0x5a9a90(0x2d9)]=!0x1);}},{'key':_0x31376c(0x30f),'value':function(){var _0x5a0187=_0x31376c;this[_0x5a0187(0x27e)]&&this[_0x5a0187(0x33b)]&&(this['particles']=[],this[_0x5a0187(0x20f)]());}},{'key':_0x31376c(0x2df),'value':function(_0x192a78){var _0x262553=_0x31376c;this[_0x262553(0x2e5)](),this[_0x262553(0x207)]=_0x192a78,this[_0x262553(0x33b)]=new _0x5d9541(this['windData'],this[_0x262553(0x2d8)]),this[_0x262553(0x20f)]();}},{'key':_0x31376c(0x20f),'value':function(){var _0x2e826a=_0x31376c;this[_0x2e826a(0x1fc)]();for(var _0x1f8ae7=0x0;_0x1f8ae7<this['particlesNumber'];_0x1f8ae7++){var _0x124c19=this[_0x2e826a(0x215)](new _0x592485());this['particles'][_0x2e826a(0x208)](_0x124c19);}this['canvasContext']['fillStyle']=_0x2e826a(0x228),this[_0x2e826a(0x217)]['globalAlpha']=0.6,this[_0x2e826a(0x1e1)]();}},{'key':'_calcStep','value':function(){var _0xb0e42e=_0x31376c;this['windField']&&(this['calc_speedRate']=[(this[_0xb0e42e(0x33b)][_0xb0e42e(0x28b)]-this[_0xb0e42e(0x33b)][_0xb0e42e(0x1e6)])/this[_0xb0e42e(0x23e)],(this[_0xb0e42e(0x33b)]['ymax']-this[_0xb0e42e(0x33b)][_0xb0e42e(0x257)])/this['speedRate']]);}},{'key':_0x31376c(0x1e1),'value':function(){var _0x2034db=_0x31376c,_0x42d109=this;if(this[_0x2034db(0x27e)]&&!(this[_0x2034db(0x1f4)]['length']<=0x0)){var _0x2195cc=null,_0x5041b4=null,_0x2f1bdc=null;this[_0x2034db(0x1f4)]['forEach'](function(_0x3c744e){var _0x1066c7=_0x2034db;if(_0x3c744e[_0x1066c7(0x34d)]<=0x0&&_0x42d109[_0x1066c7(0x215)](_0x3c744e),_0x3c744e[_0x1066c7(0x34d)]>0x0){var _0x4d2294=_0x3c744e[_0x1066c7(0x2f4)],_0xd05be3=_0x3c744e[_0x1066c7(0x2da)];(_0x2f1bdc=_0x42d109[_0x1066c7(0x33b)][_0x1066c7(0x35d)](_0x4d2294,_0xd05be3))?(_0x2195cc=_0x4d2294+_0x42d109[_0x1066c7(0x2c2)][0x0]*_0x2f1bdc[0x0],_0x5041b4=_0xd05be3+_0x42d109['calc_speedRate'][0x1]*_0x2f1bdc[0x1],_0x3c744e['lng']=_0x4d2294,_0x3c744e[_0x1066c7(0x2e3)]=_0xd05be3,_0x3c744e[_0x1066c7(0x2f4)]=_0x2195cc,_0x3c744e[_0x1066c7(0x2da)]=_0x5041b4,_0x3c744e[_0x1066c7(0x34d)]--):_0x3c744e[_0x1066c7(0x34d)]=0x0;}}),this[_0x2034db(0x1fb)]();}}},{'key':_0x31376c(0x350),'value':function(_0x56c5b8,_0x432d72,_0x598fc9){var _0x2862a6=_0x31376c,_0x53735b=_0x14430c[_0x2862a6(0x22f)]['fromDegrees'](_0x56c5b8,_0x432d72,this[_0x2862a6(0x34b)]),_0x3281d1=this[_0x2862a6(0x298)]['scene'];if(_0x3281d1[_0x2862a6(0x333)]===_0x14430c['SceneMode'][_0x2862a6(0x297)]&&!new _0x14430c[(_0x2862a6(0x32c))](_0x3281d1[_0x2862a6(0x274)][_0x2862a6(0x231)],_0x3281d1['camera'][_0x2862a6(0x20c)])['isPointVisible'](_0x53735b))return _0x598fc9['age']=0x0,null;var _0xd087e=_0x14430c[_0x2862a6(0x2ad)][_0x2862a6(0x253)](this[_0x2862a6(0x298)][_0x2862a6(0x26b)],_0x53735b);return _0xd087e?[_0xd087e['x'],_0xd087e['y']]:null;}},{'key':'_drawLines','value':function(){var _0x11ad6c=_0x31376c,_0x41bef0=this,_0x19a2ab=this[_0x11ad6c(0x1f4)];this[_0x11ad6c(0x217)][_0x11ad6c(0x1ea)]=_0x41bef0[_0x11ad6c(0x1ea)],this[_0x11ad6c(0x217)][_0x11ad6c(0x2d4)]=_0x11ad6c(0x251),this['canvasContext'][_0x11ad6c(0x2e2)](0x0,0x0,this[_0x11ad6c(0x35e)],this[_0x11ad6c(0x301)]),this[_0x11ad6c(0x217)][_0x11ad6c(0x2d4)]=_0x11ad6c(0x29f),this[_0x11ad6c(0x217)][_0x11ad6c(0x2f6)]=0.9,this[_0x11ad6c(0x217)]['beginPath'](),this[_0x11ad6c(0x217)][_0x11ad6c(0x293)]=this[_0x11ad6c(0x32e)];var _0x4484bd=this[_0x11ad6c(0x298)]['scene']['mode']!==_0x14430c[_0x11ad6c(0x289)][_0x11ad6c(0x297)];_0x19a2ab['forEach'](function(_0x1822c2){var _0x2be5d1=_0x11ad6c,_0x3cf91b=_0x41bef0[_0x2be5d1(0x350)](_0x1822c2[_0x2be5d1(0x237)],_0x1822c2[_0x2be5d1(0x2e3)],_0x1822c2),_0xe0d478=_0x41bef0[_0x2be5d1(0x350)](_0x1822c2[_0x2be5d1(0x2f4)],_0x1822c2[_0x2be5d1(0x2da)],_0x1822c2);if(null!=_0x3cf91b&&null!=_0xe0d478){var _0x8b1156=Math[_0x2be5d1(0x2a3)](_0x3cf91b[0x0]-_0xe0d478[0x0]);_0x4484bd&&_0x8b1156>=_0x41bef0[_0x2be5d1(0x35e)]||(_0x41bef0[_0x2be5d1(0x217)][_0x2be5d1(0x2d5)](_0x3cf91b[0x0],_0x3cf91b[0x1]),_0x41bef0['canvasContext'][_0x2be5d1(0x232)](_0xe0d478[0x0],_0xe0d478[0x1]));}}),this[_0x11ad6c(0x217)][_0x11ad6c(0x1e7)]();}},{'key':_0x31376c(0x215),'value':function(_0x5b4b54){var _0x2aa7bd=_0x31376c;for(var _0x38575c,_0x2fb9f5,_0x3b312c=0x0;_0x3b312c<0x1e&&(_0x38575c=this[_0x2aa7bd(0x33b)]['getRandomLatLng'](),!((_0x2fb9f5=this[_0x2aa7bd(0x33b)][_0x2aa7bd(0x35d)](_0x38575c[_0x2aa7bd(0x237)],_0x38575c['lat']))&&_0x2fb9f5[0x2]>0x0));_0x3b312c++);if(!_0x2fb9f5)return _0x5b4b54;var _0x13fa58=_0x38575c['lng']+this['calc_speedRate'][0x0]*_0x2fb9f5[0x0],_0x5ec2ba=_0x38575c[_0x2aa7bd(0x2e3)]+this[_0x2aa7bd(0x2c2)][0x1]*_0x2fb9f5[0x1];return _0x5b4b54[_0x2aa7bd(0x237)]=_0x38575c['lng'],_0x5b4b54[_0x2aa7bd(0x2e3)]=_0x38575c[_0x2aa7bd(0x2e3)],_0x5b4b54['tlng']=_0x13fa58,_0x5b4b54['tlat']=_0x5ec2ba,_0x5b4b54[_0x2aa7bd(0x34d)]=Math[_0x2aa7bd(0x2d3)](Math[_0x2aa7bd(0x365)]()*this[_0x2aa7bd(0x2ef)]),_0x5b4b54;}},{'key':_0x31376c(0x2e5),'value':function(){var _0x4cd0d7=_0x31376c;this[_0x4cd0d7(0x1f4)]=[],delete this[_0x4cd0d7(0x33b)],delete this[_0x4cd0d7(0x207)];}}]),_0x1f0d93;}(_0x53dab5[_0x1ad61d(0x312)]['BaseLayer']);_0x53dab5[_0x1ad61d(0x33e)][_0x1ad61d(0x2ff)]('canvasWind',_0x13f2d9),_0x53dab5[_0x1ad61d(0x312)][_0x1ad61d(0x203)]=_0x13f2d9;var _0x2ae431=_0x53dab5['Cesium'];function _0x1b555c(_0x2976f7,_0x4c2bdd){var _0x20fdaf=_0x1ad61d;return _0x2976f7*Math[_0x20fdaf(0x352)](_0x2ae431[_0x20fdaf(0x364)][_0x20fdaf(0x335)](_0x4c2bdd));}function _0x1dd602(_0x1c6ab2,_0x2c209b){var _0x5155cb=_0x1ad61d;return _0x1c6ab2*Math[_0x5155cb(0x362)](_0x2ae431['Math'][_0x5155cb(0x335)](_0x2c209b));}function _0x51ccab(_0x52ac63,_0x5a71fa){var _0x2df403=_0x1ad61d;return Math[_0x2df403(0x294)](Math[_0x2df403(0x287)](_0x52ac63,0x2)+Math['pow'](_0x5a71fa,0x2));}function _0x5c9010(_0x4db810,_0x57c026){var _0x1d85ba=_0x1ad61d,_0x2190a8=_0x2ae431['Math']['toDegrees'](Math[_0x1d85ba(0x326)](_0x57c026,_0x4db810));return _0x2190a8+=_0x2190a8<0x0?0x168:0x0;}_0x53dab5['WindUtil']=_0x52787e;}]));function a0_0x1e30(){var _0x3aa7ef=['once','WMS_URL','colorTable','none','latRange','particles','_maxAge','canrefresh','canvasResize','Color','vmin','getUVByXY','_drawLines','_calcStep','west','from','clampToLatitudeRange','Geometry','currentTrailsDepth','setPrototypeOf','CanvasWindLayer','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','height','Appearance','windData','push','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','IDENTITY','ShaderSource','positionWC','particleSystem','Cartesian2','drawWind','dropRate','destroyObject','configurable','depthMask','trails','randomParticle','applyViewerParameters','canvasContext','colors','getOptions','maxParticles','fill','writable','nextParticlesSpeed','drawingBufferWidth','7mSwEZd','Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined','enumerable','@@iterator','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}','style','primitives','umin','rgba(0,\x200,\x200,\x200.97)','FLOAT','apply','uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}','defined','clearFramebuffers','createSegmentsGeometry','Cartesian3','ymax','ellipsoid','lineTo','removeAll','currentTrails','ComputeCommand','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','lng','createRenderingTextures','primitiveType','absolute','_setOptionsHook','context','width','speedRate','getOwnPropertyDescriptor','call','66pNPWTN','uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture2D(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}','EventType','getFullscreenQuad','toString','_createCanvas','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','Matrix4','__proto__','udata','canvasWindy','Draw','PI_OVER_TWO','getExtent','17790PmALhm','addEventListener','destination-in','zIndex','wgs84ToWindowCoordinates','min','createParticlesTextures','_onMap_preRenderEvent','ymin','_mountedHook','refreshParticles','document','clientWidth','computeViewRectangle','particlesComputing','NEAREST','VertexArray','geometry','refreshTimer','dimensions','2619lyErdA','OPAQUE','test','frameRate','create','sham','name','setAttribute','scene','randomBetween','GeometryAttributes','RGB','particlesWind','createFramebuffer','keys','3106444jaEQaW','segments','globe','camera','PixelFormat','valueOf','nextParticlesPosition','_speedRate','getDirection','TRIANGLES','max','levmin','show','hasOwnProperty','removeChild','getOwnPropertyDescriptors','_canrefresh','_calcUV','LINEAR','data','RGBA','pow','defaultValue','SceneMode','uniformMap','xmax','add','commandType','remove','THREE_PI_OVER_TWO','auto','#ffffff','bind','strokeStyle','sqrt','toDegrees','BaseLayer','SCENE3D','_map','windTextures','createComputingPrimitives','_onMouseUpEvent','_onMouseMoveEvent','attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}','_addedHook','lighter','wheel','getColorTexture','getPrototypeOf','abs','length','_pointerEvents','_particlesNumber','nextTrails','BufferUsage','mouseDown','TextureMinificationFilter','Map','createRawRenderState','SceneTransforms','currentParticlesPosition','nextTrailsColor','animateFrame','RenderState','4xNTnEZ','attributeLocations','PI_OVER_THREE','clientHeight','drawingBufferHeight','currentTrailsColor','uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}','levmax','updateSpeed','mars3d','particlesNumber','outputTexture','isDestroyed','randomizeParticles','rawRenderState','__esModule','calc_speedRate','createRenderingFramebuffers','requestAnimationFrame','100%','particleHeight','destroy','segmentsColor','shaderProgram','fadeOpacity','mouseUp','postProcessingPosition','getDefaultRenderState','umax','DepthFunction','fragmentShaderSource','rgb(206,255,255)','mouse_down','round','globalCompositeOperation','moveTo','globeLayer','framebuffers','reverseY','mouse_move','tlat','UNSIGNED_BYTE','DISABLE_GL_POSITION_LOG_DEPTH','postProcessingSpeed','blending','setData','preExecute','setGeometry','fillRect','lat','viewerParameters','clear','fromDegrees','mouseMove','grid','551695hxyVRu','getWind','visible','PrimitiveType','ClearCommand','lon','maxAge','createWindTextures','speedFactor','particlesRendering','commandList','tlng','rows','globalAlpha','nextTrailsDepth','particlesTextureSize','setOptions','cols','construct','_onMapWhellEvent','textures','default','register','updatePosition','canvasHeight','fromGeometry','options','clearCommand','_showHook','_removedHook','Object','Cesium','string','prototype','1597708yhmnQX','uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898,\x2078.233,\x204375.85453);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0,\x201.0);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0);\x0a\x20\x20\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20lev);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20\x20\x20return\x20particle.y\x20<\x20-90.0\x20||\x20particle.y\x20>\x2090.0;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20texture2D(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20nextSpeed.a;\x0a\x0a\x20\x20\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20\x20\x20if\x20(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(randomParticle,\x201.0);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}','createRenderingPrimitives','1125108ASmOQe','redraw','Texture','pointerEvents','layer','reverse','PixelDatatype','defineProperties','unbindEvent','PrimitiveCollection','commandToExecute','forEach','key','createCommand','segmentsDepth','north','addPrimitives','isInExtent','array','globeBoundingSphere','now','2471821KRnHOp','TWO_PI','undefined','atan2','particlesTextures','_onMouseDownEvent','606920UKnktN','mod','hidden','EllipsoidalOccluder','execute','color','symbol','visibility','getU','getOwnPropertySymbols','mode','WindLayer','toRadians','arrayBufferView','currentParticlesSpeed','//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z;\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205],\x20width\x20=\x203,\x20height\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture2D(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}','lonRange','lev','windField','TextureMagnificationFilter','GeometryAttribute','LayerUtil','slice','toStringTag','createTexture','canvas','viewport','iterator','pixelSize','_data','dropRateBump','updateViewerParameters','autoClear','fromCache','fixedHeight','getPixelSize','age','getContext','vertexShaderSource','_tomap','vdata','cos','bindEvent','Sampler','vmax','floor','filter','defineProperty','red','framebuffer','off','_bilinearInterpolation','getUVByPoint','canvasWidth','left','resize','UNSIGNED_INT','sin','72mrKmDt','Math','random','cancelAnimationFrame','WindUtil','constructor','update','destroyParticlesTextures','ComponentDatatype','Pass','Compute','xmin','stroke','removeEventListener','exports','lineWidth','log','function','screen','preRender'];a0_0x1e30=function(){return _0x3aa7ef;};return a0_0x1e30();}
31
22
 
32
23
  })(window);
33
24
 
package/package.json CHANGED
@@ -1,18 +1,39 @@
1
1
  {
2
2
  "name": "mars3d-wind",
3
- "version": "3.1.22",
3
+ "version": "3.2.2",
4
4
  "description": "Mars3D平台插件,支持气象 风向图 功能插件",
5
5
  "main": "dist/mars3d-wind.js",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
- "dependencies": {
10
- "mars3d": "^3.1.22",
11
- "mars3d-cesium": "^1.89.0"
9
+ "dependencies": {},
10
+ "devDependencies": {
11
+ "mars3d": "^3.2.2",
12
+ "@babel/core": "^7.14.3",
13
+ "@babel/eslint-parser": "^7.14.3",
14
+ "@babel/plugin-proposal-class-properties": "^7.14.3",
15
+ "@babel/plugin-transform-runtime": "^7.14.3",
16
+ "@babel/preset-env": "^7.14.3",
17
+ "babel-eslint": "^10.1.0",
18
+ "babel-loader": "^8.2.2",
19
+ "eslint": "^7.26.0",
20
+ "eslint-config-prettier": "^7.2.0",
21
+ "eslint-plugin-import": "^2.22.1",
22
+ "eslint-plugin-node": "^11.1.0",
23
+ "eslint-plugin-prettier": "^3.3.1",
24
+ "eslint-plugin-promise": "^4.3.1",
25
+ "prettier": "^2.2.1",
26
+ "webpack": "^4.46.0",
27
+ "webpack-cli": "^3.3.12",
28
+ "webpack-glsl-loader": "^1.0.1",
29
+ "javascript-obfuscator": "^2.15.5",
30
+ "webpack-obfuscator": "^2.6.0"
12
31
  },
13
- "devDependencies": {},
14
32
  "scripts": {
15
- "test": "echo \"Error: no test specified\" && exit 1",
33
+ "build": "webpack --env.prod --env.min --progress --profile --colors --config ./scripts/webpack.config.js && webpack --env.prod --progress --profile --colors --config ./scripts/webpack.config.js --devtool source-map",
34
+ "build-src": "webpack --env.prod --progress --profile --colors --config ./scripts/webpack.config.js --devtool source-map",
35
+ "build-min": "webpack --env.prod --env.min --progress --profile --colors --config ./scripts/webpack.config.js",
36
+ "build-npm": "webpack --env.prod --env.min --progress --profile --colors --config ./scripts/webpack.npm.js && node scripts/npm/buildNpm.js",
16
37
  "push": "npm publish"
17
38
  },
18
39
  "repository": {
@@ -27,11 +48,13 @@
27
48
  "marsgis",
28
49
  "mars3d",
29
50
  "cesium",
51
+ "webgl",
52
+ "gis",
30
53
  "3dgis",
31
54
  "webgis",
32
55
  "wind"
33
56
  ],
34
- "license": "Apache-2.0",
35
57
  "author": "火星科技",
58
+ "license": "Apache-2.0",
36
59
  "homepage": "http://mars3d.cn"
37
60
  }