three-nebula 10.0.2 → 11.0.0
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/.claude/rules/no-coauthor.md +4 -0
- package/CHANGELOG.md +23 -0
- package/build/cjs/behaviour/Alpha.js +2 -2
- package/build/cjs/behaviour/Attraction.js +2 -2
- package/build/cjs/behaviour/Behaviour.js +1 -1
- package/build/cjs/behaviour/Collision.js +2 -2
- package/build/cjs/behaviour/Color.js +2 -2
- package/build/cjs/behaviour/CrossZone.js +8 -4
- package/build/cjs/behaviour/Force.js +2 -2
- package/build/cjs/behaviour/Gravity.js +2 -2
- package/build/cjs/behaviour/RandomDrift.js +2 -2
- package/build/cjs/behaviour/Repulsion.js +2 -2
- package/build/cjs/behaviour/Rotate.js +5 -5
- package/build/cjs/behaviour/Scale.js +2 -2
- package/build/cjs/behaviour/Spring.js +2 -2
- package/build/cjs/constants/index.js +1 -1
- package/build/cjs/core/Particle.js +1 -1
- package/build/cjs/core/Pool.js +1 -1
- package/build/cjs/core/System.js +8 -4
- package/build/cjs/core/constants.js +2 -2
- package/build/cjs/core/fromJSON.js +6 -2
- package/build/cjs/core/fromJSONAsync.js +8 -4
- package/build/cjs/core/three/Euler.js +1 -1
- package/build/cjs/core/three/Math.js +1 -1
- package/build/cjs/core/three/Matrix4.js +1 -1
- package/build/cjs/core/three/Quaternion.js +1 -1
- package/build/cjs/core/three/Vector3.js +1 -1
- package/build/cjs/debug/Debug.js +1 -1
- package/build/cjs/debug/log.js +1 -1
- package/build/cjs/ease/index.js +1 -1
- package/build/cjs/emitter/Emitter.js +17 -6
- package/build/cjs/emitter/FollowEmitter.js +2 -2
- package/build/cjs/events/EventDispatcher.js +3 -3
- package/build/cjs/initializer/Body.js +2 -2
- package/build/cjs/initializer/BodySprite.js +3 -3
- package/build/cjs/initializer/Initializer.js +1 -1
- package/build/cjs/initializer/InitializerUtil.js +1 -1
- package/build/cjs/initializer/Life.js +2 -2
- package/build/cjs/initializer/Mass.js +2 -2
- package/build/cjs/initializer/Position.js +8 -4
- package/build/cjs/initializer/Radius.js +2 -2
- package/build/cjs/initializer/Rate.js +2 -2
- package/build/cjs/initializer/Rotation.js +95 -0
- package/build/cjs/initializer/Texture.js +3 -3
- package/build/cjs/initializer/Velocity/PolarVelocity.js +2 -2
- package/build/cjs/initializer/Velocity/RadialVelocity.js +2 -2
- package/build/cjs/initializer/Velocity/VectorVelocity.js +2 -2
- package/build/cjs/initializer/Velocity/Velocity.js +2 -2
- package/build/cjs/initializer/constants.js +1 -1
- package/build/cjs/initializer/index.js +9 -1
- package/build/cjs/initializer/types.js +4 -2
- package/build/cjs/math/ArraySpan.js +2 -2
- package/build/cjs/math/Box.js +1 -1
- package/build/cjs/math/ColorSpan.js +2 -2
- package/build/cjs/math/MathUtils.js +1 -1
- package/build/cjs/math/Polar3D.js +1 -1
- package/build/cjs/math/Span.js +1 -1
- package/build/cjs/math/Vector3D.js +1 -1
- package/build/cjs/math/constants.js +1 -1
- package/build/cjs/math/index.js +5 -1
- package/build/cjs/math/integration.js +1 -1
- package/build/cjs/renderer/BaseRenderer.js +1 -1
- package/build/cjs/renderer/CustomRenderer.js +1 -1
- package/build/cjs/renderer/GPURenderer/Desktop/index.js +25 -4
- package/build/cjs/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +2 -2
- package/build/cjs/renderer/GPURenderer/Desktop/shaders/vertexShader.js +2 -2
- package/build/cjs/renderer/GPURenderer/Mobile/index.js +25 -4
- package/build/cjs/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +2 -2
- package/build/cjs/renderer/GPURenderer/Mobile/shaders/vertexShader.js +2 -2
- package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/constants.js +9 -4
- package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/index.js +1 -1
- package/build/cjs/renderer/GPURenderer/common/TextureAtlas/index.js +1 -1
- package/build/cjs/renderer/GPURenderer/common/stores/Target.js +3 -1
- package/build/cjs/renderer/GPURenderer/common/stores/UniqueList.js +1 -1
- package/build/cjs/renderer/GPURenderer/index.js +2 -2
- package/build/cjs/renderer/MeshRenderer.js +9 -9
- package/build/cjs/renderer/SpriteRenderer.js +7 -2
- package/build/cjs/utils/index.js +1 -1
- package/build/cjs/utils/uid.js +3 -5
- package/build/cjs/zone/BoxZone.js +2 -2
- package/build/cjs/zone/LineZone.js +2 -2
- package/build/cjs/zone/MeshZone.js +2 -2
- package/build/cjs/zone/PointZone.js +6 -4
- package/build/cjs/zone/ScreenZone.js +2 -2
- package/build/cjs/zone/SphereZone.js +6 -4
- package/build/cjs/zone/Zone.js +1 -1
- package/build/esm/behaviour/Alpha.js +1 -1
- package/build/esm/behaviour/Attraction.js +1 -1
- package/build/esm/behaviour/Behaviour.js +1 -1
- package/build/esm/behaviour/Collision.js +1 -1
- package/build/esm/behaviour/Color.js +1 -1
- package/build/esm/behaviour/CrossZone.js +1 -1
- package/build/esm/behaviour/Force.js +1 -1
- package/build/esm/behaviour/Gravity.js +1 -1
- package/build/esm/behaviour/RandomDrift.js +1 -1
- package/build/esm/behaviour/Repulsion.js +1 -1
- package/build/esm/behaviour/Rotate.js +4 -4
- package/build/esm/behaviour/Scale.js +1 -1
- package/build/esm/behaviour/Spring.js +1 -1
- package/build/esm/constants/index.js +1 -1
- package/build/esm/core/Particle.js +1 -1
- package/build/esm/core/Pool.js +1 -1
- package/build/esm/core/System.js +2 -2
- package/build/esm/core/constants.js +3 -3
- package/build/esm/core/fromJSON.js +1 -1
- package/build/esm/core/fromJSONAsync.js +2 -2
- package/build/esm/core/three/Euler.js +1 -1
- package/build/esm/core/three/Math.js +1 -1
- package/build/esm/core/three/Matrix4.js +1 -1
- package/build/esm/core/three/Quaternion.js +1 -1
- package/build/esm/core/three/Vector3.js +1 -1
- package/build/esm/debug/Debug.js +1 -1
- package/build/esm/debug/log.js +1 -1
- package/build/esm/ease/index.js +1 -1
- package/build/esm/emitter/Emitter.js +11 -4
- package/build/esm/emitter/FollowEmitter.js +1 -1
- package/build/esm/events/EventDispatcher.js +3 -3
- package/build/esm/initializer/Body.js +1 -1
- package/build/esm/initializer/BodySprite.js +2 -2
- package/build/esm/initializer/Initializer.js +1 -1
- package/build/esm/initializer/InitializerUtil.js +1 -1
- package/build/esm/initializer/Life.js +1 -1
- package/build/esm/initializer/Mass.js +1 -1
- package/build/esm/initializer/Position.js +3 -2
- package/build/esm/initializer/Radius.js +1 -1
- package/build/esm/initializer/Rate.js +1 -1
- package/build/esm/initializer/Rotation.js +54 -0
- package/build/esm/initializer/Texture.js +2 -2
- package/build/esm/initializer/Velocity/PolarVelocity.js +1 -1
- package/build/esm/initializer/Velocity/RadialVelocity.js +1 -1
- package/build/esm/initializer/Velocity/VectorVelocity.js +1 -1
- package/build/esm/initializer/Velocity/Velocity.js +1 -1
- package/build/esm/initializer/constants.js +1 -1
- package/build/esm/initializer/index.js +2 -1
- package/build/esm/initializer/types.js +2 -1
- package/build/esm/math/ArraySpan.js +1 -1
- package/build/esm/math/Box.js +1 -1
- package/build/esm/math/ColorSpan.js +1 -1
- package/build/esm/math/MathUtils.js +1 -1
- package/build/esm/math/Polar3D.js +1 -1
- package/build/esm/math/Span.js +1 -1
- package/build/esm/math/constants.js +1 -1
- package/build/esm/math/integration.js +1 -1
- package/build/esm/renderer/BaseRenderer.js +1 -1
- package/build/esm/renderer/GPURenderer/Desktop/index.js +29 -3
- package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +8 -1
- package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +4 -1
- package/build/esm/renderer/GPURenderer/Mobile/index.js +29 -3
- package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +8 -1
- package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +4 -1
- package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +6 -3
- package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +1 -1
- package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +1 -1
- package/build/esm/renderer/GPURenderer/common/stores/Target.js +3 -1
- package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +1 -1
- package/build/esm/renderer/GPURenderer/index.js +1 -1
- package/build/esm/renderer/MeshRenderer.js +7 -8
- package/build/esm/renderer/SpriteRenderer.js +5 -1
- package/build/esm/utils/index.js +1 -1
- package/build/esm/utils/uid.js +2 -2
- package/build/esm/zone/BoxZone.js +1 -1
- package/build/esm/zone/LineZone.js +1 -1
- package/build/esm/zone/MeshZone.js +1 -1
- package/build/esm/zone/PointZone.js +5 -3
- package/build/esm/zone/ScreenZone.js +1 -1
- package/build/esm/zone/SphereZone.js +5 -3
- package/build/esm/zone/Zone.js +1 -1
- package/build/three-nebula.js +1 -1
- package/build/three-nebula.js.map +1 -1
- package/package.json +31 -31
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
|
|
3
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
4
|
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
6
|
|
|
@@ -141,6 +141,7 @@ export default class MobileGPURenderer extends BaseRenderer {
|
|
|
141
141
|
updateTarget(particle) {
|
|
142
142
|
const {
|
|
143
143
|
position,
|
|
144
|
+
rotation,
|
|
144
145
|
scale,
|
|
145
146
|
radius,
|
|
146
147
|
color,
|
|
@@ -154,6 +155,7 @@ export default class MobileGPURenderer extends BaseRenderer {
|
|
|
154
155
|
b
|
|
155
156
|
} = color;
|
|
156
157
|
particle.target.position.copy(position);
|
|
158
|
+
particle.target.rotation.copy(rotation);
|
|
157
159
|
particle.target.size = scale * radius;
|
|
158
160
|
particle.target.color.setRGB(r, g, b);
|
|
159
161
|
particle.target.alpha = alpha;
|
|
@@ -178,7 +180,7 @@ export default class MobileGPURenderer extends BaseRenderer {
|
|
|
178
180
|
|
|
179
181
|
|
|
180
182
|
mapParticleTargetPropsToPoint(particle) {
|
|
181
|
-
this.updatePointPosition(particle).updatePointSize(particle).updatePointColor(particle).updatePointAlpha(particle).updatePointTextureIndex(particle);
|
|
183
|
+
this.updatePointPosition(particle).updatePointSize(particle).updatePointRotation(particle).updatePointColor(particle).updatePointAlpha(particle).updatePointTextureIndex(particle);
|
|
182
184
|
return this;
|
|
183
185
|
}
|
|
184
186
|
/**
|
|
@@ -231,6 +233,30 @@ export default class MobileGPURenderer extends BaseRenderer {
|
|
|
231
233
|
buffer.array[target.index * stride + offset + 0] = target.size;
|
|
232
234
|
return this;
|
|
233
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Updates the point's rotation.
|
|
238
|
+
*
|
|
239
|
+
* @param {Particle} particle - The particle containing the target rotation.
|
|
240
|
+
* @return {GPURenderer}
|
|
241
|
+
*/
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
updatePointRotation(particle) {
|
|
245
|
+
const attribute = 'rotation';
|
|
246
|
+
const {
|
|
247
|
+
geometry,
|
|
248
|
+
stride,
|
|
249
|
+
buffer
|
|
250
|
+
} = this;
|
|
251
|
+
const {
|
|
252
|
+
target
|
|
253
|
+
} = particle;
|
|
254
|
+
const {
|
|
255
|
+
offset
|
|
256
|
+
} = geometry.attributes[attribute];
|
|
257
|
+
buffer.array[target.index * stride + offset + 0] = target.rotation.z;
|
|
258
|
+
return this;
|
|
259
|
+
}
|
|
234
260
|
/**
|
|
235
261
|
* Updates the point's color attribute according with the particle's target color.
|
|
236
262
|
*
|
|
@@ -346,4 +372,4 @@ export default class MobileGPURenderer extends BaseRenderer {
|
|
|
346
372
|
}
|
|
347
373
|
|
|
348
374
|
}
|
|
349
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvaW5kZXguanMiXSwibmFtZXMiOlsiUGFydGljbGVCdWZmZXIiLCJUYXJnZXQiLCJUZXh0dXJlQXRsYXMiLCJVbmlxdWVMaXN0IiwiZnJhZ21lbnRTaGFkZXIiLCJ2ZXJ0ZXhTaGFkZXIiLCJCYXNlUmVuZGVyZXIiLCJERUZBVUxUX1JFTkRFUkVSX09QVElPTlMiLCJQb29sIiwiUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFIiwiVEhSRUUiLCJNb2JpbGVHUFVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwidGhyZWUiLCJvcHRpb25zIiwicHJvcHMiLCJjYW1lcmEiLCJtYXhQYXJ0aWNsZXMiLCJiYXNlQ29sb3IiLCJibGVuZGluZyIsImRlcHRoVGVzdCIsImRlcHRoV3JpdGUiLCJ0cmFuc3BhcmVudCIsInNob3VsZERlYnVnVGV4dHVyZUF0bGFzIiwicGFydGljbGVCdWZmZXIiLCJtYXRlcmlhbCIsIlNoYWRlck1hdGVyaWFsIiwidW5pZm9ybXMiLCJ2YWx1ZSIsIkNvbG9yIiwidVRleHR1cmUiLCJGRmF0bGFzSW5kZXgiLCJhdGxhc0RpbSIsIlZlY3RvcjIiLCJ0YXJnZXRQb29sIiwidW5pcXVlTGlzdCIsImJ1ZmZlciIsInN0cmlkZSIsImdlb21ldHJ5IiwicG9pbnRzIiwiUG9pbnRzIiwiZnJ1c3R1bUN1bGxlZCIsImFkZCIsIm9uU3lzdGVtVXBkYXRlIiwic3lzdGVtIiwibmVlZHNVcGRhdGUiLCJ0ZXh0dXJlQXRsYXMiLCJ1cGRhdGUiLCJzZXQiLCJhdGxhc1RleHR1cmUiLCJpbWFnZSIsIndpZHRoIiwiaGVpZ2h0Iiwib25QYXJ0aWNsZUNyZWF0ZWQiLCJwYXJ0aWNsZSIsInRhcmdldCIsImdldCIsImlkIiwidXBkYXRlVGFyZ2V0IiwibWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiLCJyZXNldCIsInBvc2l0aW9uIiwic2NhbGUiLCJyYWRpdXMiLCJjb2xvciIsImFscGhhIiwiYm9keSIsInIiLCJnIiwiYiIsImNvcHkiLCJzaXplIiwic2V0UkdCIiwiaW5kZXgiLCJmaW5kIiwiU3ByaXRlIiwibWFwIiwidGV4dHVyZSIsInRleHR1cmVJbmRleCIsImdldFRleHR1cmVJRCIsInVwZGF0ZVBvaW50UG9zaXRpb24iLCJ1cGRhdGVQb2ludFNpemUiLCJ1cGRhdGVQb2ludENvbG9yIiwidXBkYXRlUG9pbnRBbHBoYSIsInVwZGF0ZVBvaW50VGV4dHVyZUluZGV4IiwiYXR0cmlidXRlIiwib2Zmc2V0IiwiYXR0cmlidXRlcyIsImFycmF5IiwieCIsInkiLCJ6IiwidGkiLCJ0YSIsImlkYSIsImluZGV4RGF0YSIsIm54IiwibnkiLCJweCIsInB5IiwiZGVidWciLCJ1bmRlZmluZWQiLCJhZGRUZXh0dXJlIiwiZGVzdHJveSIsInJlbW92ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsY0FBVCxFQUF5QkMsTUFBekIsRUFBaUNDLFlBQWpDLEVBQStDQyxVQUEvQyxRQUFpRSxXQUFqRTtBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLFlBQXpCLFFBQTZDLFdBQTdDO0FBRUEsT0FBT0MsWUFBUCxNQUF5QixvQkFBekI7QUFDQSxTQUFTQyx3QkFBVCxRQUF5QyxxQkFBekM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsYUFBekM7QUFFQSxJQUFJQyxLQUFKO0FBRUE7Ozs7Ozs7QUFNQSxlQUFlLE1BQU1DLGlCQUFOLFNBQWdDTCxZQUFoQyxDQUE2QztBQUMxRE0sRUFBQUEsV0FBVyxDQUFDQyxTQUFELEVBQVlDLEtBQVosRUFBbUJDLE9BQU8sR0FBR1Isd0JBQTdCLEVBQXVEO0FBQ2hFLFVBQU1FLHdCQUFOO0FBRUFDLElBQUFBLEtBQUssR0FBRyxLQUFLSSxLQUFMLEdBQWFBLEtBQXJCOztBQUNBLFVBQU1FLEtBQUssbUNBQVFULHdCQUFS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QUlBLFlBQVksQ0FBQzJELE9BQWIsRUFBaEI7QUFDRDs7QUFsUnlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFydGljbGVCdWZmZXIsIFRhcmdldCwgVGV4dHVyZUF0bGFzLCBVbmlxdWVMaXN0IH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IGZyYWdtZW50U2hhZGVyLCB2ZXJ0ZXhTaGFkZXIgfSBmcm9tICcuL3NoYWRlcnMnO1xuXG5pbXBvcnQgQmFzZVJlbmRlcmVyIGZyb20gJy4uLy4uL0Jhc2VSZW5kZXJlcic7XG5pbXBvcnQgeyBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMgfSBmcm9tICcuLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCB7IFBvb2wgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IFJFTkRFUkVSX1RZUEVfR1BVX01PQklMRSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxubGV0IFRIUkVFO1xuXG4vKipcbiAqIEdQVVJlbmRlcmVyIGZvciBtb2JpbGUgZGV2aWNlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGZsb2F0aW5nIHBvaW50IHRleHR1cmVzLlxuICpcbiAqIEBhdXRob3IgdGhyYXggPG1hbnRocmF4QGdtYWlsLmNvbT5cbiAqIEBhdXRob3Igcm9oYW4tZGVzaHBhbmRlIDxyb2hhbkBjcmVhdGl2ZWxpZmVmb3JtLmNvbT5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9iaWxlR1BVUmVuZGVyZXIgZXh0ZW5kcyBCYXNlUmVuZGVyZXIge1xuICBjb25zdHJ1Y3Rvcihjb250YWluZXIsIHRocmVlLCBvcHRpb25zID0gREVGQVVMVF9SRU5ERVJFUl9PUFRJT05TKSB7XG4gICAgc3VwZXIoUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFKTtcblxuICAgIFRIUkVFID0gdGhpcy50aHJlZSA9IHRocmVlO1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5ERUZBVUxUX1JFTkRFUkVSX09QVElPTlMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCB7XG4gICAgICBjYW1lcmEsXG4gICAgICBtYXhQYXJ0aWNsZXMsXG4gICAgICBiYXNlQ29sb3IsXG4gICAgICBibGVuZGluZyxcbiAgICAgIGRlcHRoVGVzdCxcbiAgICAgIGRlcHRoV3JpdGUsXG4gICAgICB0cmFuc3BhcmVudCxcbiAgICAgIHNob3VsZERlYnVnVGV4dHVyZUF0bGFzLFxuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBwYXJ0aWNsZUJ1ZmZlciA9IG5ldyBQYXJ0aWNsZUJ1ZmZlcihtYXhQYXJ0aWNsZXMsIFRIUkVFKTtcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XG4gICAgICB1bmlmb3Jtczoge1xuICAgICAgICBiYXNlQ29sb3I6IHsgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcihiYXNlQ29sb3IpIH0sXG4gICAgICAgIHVUZXh0dXJlOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgIEZGYXRsYXNJbmRleDogeyB2YWx1ZTogbnVsbCB9LFxuICAgICAgICBhdGxhc0RpbTogeyB2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjIoKSB9LFxuICAgICAgfSxcbiAgICAgIHZlcnRleFNoYWRlcjogdmVydGV4U2hhZGVyKCksXG4gICAgICBmcmFnbWVudFNoYWRlcjogZnJhZ21lbnRTaGFkZXIoKSxcbiAgICAgIGJsZW5kaW5nOiBUSFJFRVtibGVuZGluZ10sXG4gICAgICBkZXB0aFRlc3QsXG4gICAgICBkZXB0aFdyaXRlLFxuICAgICAgdHJhbnNwYXJlbnQsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNhbWVyYSA9IGNhbWVyYTtcbiAgICB0aGlzLnRhcmdldFBvb2wgPSBuZXcgUG9vbCgpO1xuICAgIHRoaXMudW5pcXVlTGlzdCA9IG5ldyBVbmlxdWVMaXN0KG1heFBhcnRpY2xlcyk7XG4gICAgdGhpcy5wYXJ0aWNsZUJ1ZmZlciA9IHBhcnRpY2xlQnVmZmVyO1xuICAgIHRoaXMuYnVmZmVyID0gcGFydGljbGVCdWZmZXIuYnVmZmVyO1xuICAgIHRoaXMuc3RyaWRlID0gcGFydGljbGVCdWZmZXIuc3RyaWRlO1xuICAgIHRoaXMuZ2VvbWV0cnkgPSBwYXJ0aWNsZUJ1ZmZlci5nZW9tZXRyeTtcbiAgICB0aGlzLm1hdGVyaWFsID0gbWF0ZXJpYWw7XG4gICAgdGhpcy5wb2ludHMgPSBuZXcgVEhSRUUuUG9pbnRzKHRoaXMuZ2VvbWV0cnksIHRoaXMubWF0ZXJpYWwpO1xuICAgIHRoaXMucG9pbnRzLmZydXN0dW1DdWxsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNob3VsZERlYnVnVGV4dHVyZUF0bGFzID0gc2hvdWxkRGVidWdUZXh0dXJlQXRsYXM7XG5cbiAgICBjb250YWluZXIuYWRkKHRoaXMucG9pbnRzKTtcbiAgfVxuXG4gIG9uU3lzdGVtVXBkYXRlKHN5c3RlbSkge1xuICAgIHN1cGVyLm9uU3lzdGVtVXBkYXRlKHN5c3RlbSk7XG5cbiAgICB0aGlzLmJ1ZmZlci5uZWVkc1VwZGF0ZSA9IHRydWU7XG5cbiAgICBjb25zdCB7IHRleHR1cmVBdGxhcyB9ID0gdGhpcztcblxuICAgIGlmICh0ZXh0dXJlQXRsYXMpIHtcbiAgICAgIHRleHR1cmVBdGxhcy51cGRhdGUoKTtcbiAgICAgIHRoaXMubWF0ZXJpYWwudW5pZm9ybXMuYXRsYXNEaW0udmFsdWUuc2V0KFxuICAgICAgICB0ZXh0dXJlQXRsYXMuYXRsYXNUZXh0dXJlLmltYWdlLndpZHRoLFxuICAgICAgICB0ZXh0dXJlQXRsYXMuYXRsYXNUZXh0dXJlLmltYWdlLmhlaWdodFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUG9vbHMgdGhlIHBhcnRpY2xlIHRhcmdldCBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAgICogVXBkYXRlcyB0aGUgdGFyZ2V0IGFuZCBtYXBzIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gdGhlIHBvaW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfVxuICAgKi9cbiAgb25QYXJ0aWNsZUNyZWF0ZWQocGFydGljbGUpIHtcbiAgICBpZiAoIXBhcnRpY2xlLnRhcmdldCkge1xuICAgICAgcGFydGljbGUudGFyZ2V0ID0gdGhpcy50YXJnZXRQb29sLmdldChUYXJnZXQsIFRIUkVFKTtcbiAgICAgIHRoaXMudW5pcXVlTGlzdC5hZGQocGFydGljbGUuaWQpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlVGFyZ2V0KHBhcnRpY2xlKS5tYXBQYXJ0aWNsZVRhcmdldFByb3BzVG9Qb2ludChwYXJ0aWNsZSk7XG4gIH1cblxuICAvKipcbiAgICogTWFwcyBwYXJ0aWNsZSBwcm9wZXJ0aWVzIHRvIHRoZSBwb2ludCBpZiB0aGUgcGFydGljbGUgaGFzIGEgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfVxuICAgKi9cbiAgb25QYXJ0aWNsZVVwZGF0ZShwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVUYXJnZXQocGFydGljbGUpLm1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYW5kIGNsZWFycyB0aGUgcGFydGljbGUgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfVxuICAgKi9cbiAgb25QYXJ0aWNsZURlYWQocGFydGljbGUpIHtcbiAgICBpZiAoIXBhcnRpY2xlLnRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBhcnRpY2xlLnRhcmdldC5yZXNldCgpO1xuICAgIHRoaXMubWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpO1xuXG4gICAgcGFydGljbGUudGFyZ2V0ID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIGFsbCBtdXRhYmxlIHByb3BlcnRpZXMgZnJvbSB0aGUgcGFydGljbGUgdG8gdGhlIHRhcmdldC5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX1cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVUYXJnZXQocGFydGljbGUpIHtcbiAgICBjb25zdCB7IHBvc2l0aW9uLCBzY2FsZSwgcmFkaXVzLCBjb2xvciwgYWxwaGEsIGJvZHksIGlkIH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IHIsIGcsIGIgfSA9IGNvbG9yO1xuXG4gICAgcGFydGljbGUudGFyZ2V0LnBvc2l0aW9uLmNvcHkocG9zaXRpb24pO1xuICAgIHBhcnRpY2xlLnRhcmdldC5zaXplID0gc2NhbGUgKiByYWRpdXM7XG4gICAgcGFydGljbGUudGFyZ2V0LmNvbG9yLnNldFJHQihyLCBnLCBiKTtcbiAgICBwYXJ0aWNsZS50YXJnZXQuYWxwaGEgPSBhbHBoYTtcbiAgICBwYXJ0aWNsZS50YXJnZXQuaW5kZXggPSB0aGlzLnVuaXF1ZUxpc3QuZmluZChpZCk7XG5cbiAgICBpZiAoYm9keSAmJiBib2R5IGluc3RhbmNlb2YgVEhSRUUuU3ByaXRlKSB7XG4gICAgICBjb25zdCB7IG1hcCB9ID0gYm9keS5tYXRlcmlhbDtcblxuICAgICAgcGFydGljbGUudGFyZ2V0LnRleHR1cmUgPSBtYXA7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQudGV4dHVyZUluZGV4ID0gdGhpcy5nZXRUZXh0dXJlSUQoXG4gICAgICAgIG1hcCxcbiAgICAgICAgdGhpcy5zaG91bGREZWJ1Z1RleHR1cmVBdGxhc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRyeSBwb2ludCBmb3IgbWFwcGluZyBwYXJ0aWNsZSBwcm9wZXJ0aWVzIHRvIGJ1ZmZlciBnZW9tZXRyeSBwb2ludHMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIGNvbnRhaW5pbmcgdGhlIHByb3BlcnRpZXMgdG8gbWFwXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgbWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpIHtcbiAgICB0aGlzLnVwZGF0ZVBvaW50UG9zaXRpb24ocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRTaXplKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50Q29sb3IocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRBbHBoYShwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludFRleHR1cmVJbmRleChwYXJ0aWNsZSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCdzIHBvc2l0aW9uIGFjY29yZGluZyB0byB0aGUgcGFydGljbGUncyB0YXJnZXQgcG9zaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIGNvbnRhaW5pbmcgdGhlIHRhcmdldCBwb3NpdGlvbi5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3Bvc2l0aW9uJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5wb3NpdGlvbi54O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5wb3NpdGlvbi55O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5wb3NpdGlvbi56O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyBzaXplIHJlbGF0aXZlIHRvIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBzY2FsZSBhbmQgcmFkaXVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgc2NhbGUuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRTaXplKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3NpemUnO1xuICAgIGNvbnN0IHsgZ2VvbWV0cnksIHN0cmlkZSwgYnVmZmVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuXG4gICAgYnVmZmVyLmFycmF5W3RhcmdldC5pbmRleCAqIHN0cmlkZSArIG9mZnNldCArIDBdID0gdGFyZ2V0LnNpemU7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCdzIGNvbG9yIGF0dHJpYnV0ZSBhY2NvcmRpbmcgd2l0aCB0aGUgcGFydGljbGUncyB0YXJnZXQgY29sb3IuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIGNvbnRhaW5pbmcgdGhlIHRhcmdldCBjb2xvciBhbmQgYWxwaGEuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRDb2xvcihwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdjb2xvcic7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG5cbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMF0gPSB0YXJnZXQuY29sb3IucjtcbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMV0gPSB0YXJnZXQuY29sb3IuZztcbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMl0gPSB0YXJnZXQuY29sb3IuYjtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvaW50IGFscGhhIGF0dHJpYnV0ZSB3aXRoIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBhbHBoYS5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IGFscGhhLlxuICAgKiBAcmV0dXJuIHtHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVBvaW50QWxwaGEocGFydGljbGUpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSAnYWxwaGEnO1xuICAgIGNvbnN0IHsgZ2VvbWV0cnksIHN0cmlkZSwgYnVmZmVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuXG4gICAgYnVmZmVyLmFycmF5W3RhcmdldC5pbmRleCAqIHN0cmlkZSArIG9mZnNldCArIDBdID0gdGFyZ2V0LmFscGhhO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQgdGV4dHVyZSBhdHRyaWJ1dGUgd2l0aCB0aGUgcGFydGljbGUncyB0YXJnZXQgdGV4dHVyZS5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IHRleHR1cmUuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRUZXh0dXJlSW5kZXgocGFydGljbGUpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSAndGV4SUQnO1xuICAgIGNvbnN0IHsgZ2VvbWV0cnksIHN0cmlkZSwgYnVmZmVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuICAgIGNvbnN0IGlkID0gdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMDtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGlmIChmYWxzZSkge1xuICAgICAgYnVmZmVyLmFycmF5W2lkXSA9IHRhcmdldC50ZXh0dXJlSW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB0aSA9IHRhcmdldC50ZXh0dXJlSW5kZXggKiA0O1xuICAgICAgY29uc3QgdGEgPSB0aGlzLnRleHR1cmVBdGxhcztcbiAgICAgIGNvbnN0IGlkYSA9IHRhLmluZGV4RGF0YTtcbiAgICAgIGNvbnN0IG54ID0gaWRhW3RpKytdO1xuICAgICAgY29uc3QgbnkgPSBpZGFbdGkrK107XG4gICAgICBjb25zdCBweCA9IGlkYVt0aSsrXTtcbiAgICAgIGNvbnN0IHB5ID0gaWRhW3RpKytdO1xuXG4gICAgICBidWZmZXIuYXJyYXlbaWRdID0gKChueCAqIHRhLmF0bGFzVGV4dHVyZS5pbWFnZS53aWR0aCkgfCAwKSArIHB4O1xuICAgICAgYnVmZmVyLmFycmF5W2lkICsgMV0gPSAoKG55ICogdGEuYXRsYXNUZXh0dXJlLmltYWdlLmhlaWdodCkgfCAwKSArIHB5O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0VGV4dHVyZUlEKHRleHR1cmUsIGRlYnVnKSB7XG4gICAgaWYgKHRleHR1cmUudGV4dHVyZUluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghdGhpcy50ZXh0dXJlQXRsYXMpIHtcbiAgICAgICAgdGhpcy50ZXh0dXJlQXRsYXMgPSBuZXcgVGV4dHVyZUF0bGFzKHRoaXMsIGRlYnVnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy50ZXh0dXJlQXRsYXMuYWRkVGV4dHVyZSh0ZXh0dXJlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dHVyZS50ZXh0dXJlSW5kZXg7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIGNvbnN0IHsgY29udGFpbmVyLCBwb2ludHMsIHRleHR1cmVBdGxhcywgdW5pcXVlTGlzdCB9ID0gdGhpcztcblxuICAgIGNvbnRhaW5lci5yZW1vdmUocG9pbnRzKTtcbiAgICB1bmlxdWVMaXN0LmRlc3Ryb3koKTtcbiAgICB0ZXh0dXJlQXRsYXMgJiYgdGV4dHVyZUF0bGFzLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
|
|
375
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvaW5kZXguanMiXSwibmFtZXMiOlsiUGFydGljbGVCdWZmZXIiLCJUYXJnZXQiLCJUZXh0dXJlQXRsYXMiLCJVbmlxdWVMaXN0IiwiZnJhZ21lbnRTaGFkZXIiLCJ2ZXJ0ZXhTaGFkZXIiLCJCYXNlUmVuZGVyZXIiLCJERUZBVUxUX1JFTkRFUkVSX09QVElPTlMiLCJQb29sIiwiUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFIiwiVEhSRUUiLCJNb2JpbGVHUFVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwidGhyZWUiLCJvcHRpb25zIiwicHJvcHMiLCJjYW1lcmEiLCJtYXhQYXJ0aWNsZXMiLCJiYXNlQ29sb3IiLCJibGVuZGluZyIsImRlcHRoVGVzdCIsImRlcHRoV3JpdGUiLCJ0cmFuc3BhcmVudCIsInNob3VsZERlYnVnVGV4dHVyZUF0bGFzIiwicGFydGljbGVCdWZmZXIiLCJtYXRlcmlhbCIsIlNoYWRlck1hdGVyaWFsIiwidW5pZm9ybXMiLCJ2YWx1ZSIsIkNvbG9yIiwidVRleHR1cmUiLCJGRmF0bGFzSW5kZXgiLCJhdGxhc0RpbSIsIlZlY3RvcjIiLCJ0YXJnZXRQb29sIiwidW5pcXVlTGlzdCIsImJ1ZmZlciIsInN0cmlkZSIsImdlb21ldHJ5IiwicG9pbnRzIiwiUG9pbnRzIiwiZnJ1c3R1bUN1bGxlZCIsImFkZCIsIm9uU3lzdGVtVXBkYXRlIiwic3lzdGVtIiwibmVlZHNVcGRhdGUiLCJ0ZXh0dXJlQXRsYXMiLCJ1cGRhdGUiLCJzZXQiLCJhdGxhc1RleHR1cmUiLCJpbWFnZSIsIndpZHRoIiwiaGVpZ2h0Iiwib25QYXJ0aWNsZUNyZWF0ZWQiLCJwYXJ0aWNsZSIsInRhcmdldCIsImdldCIsImlkIiwidXBkYXRlVGFyZ2V0IiwibWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiLCJyZXNldCIsInBvc2l0aW9uIiwicm90YXRpb24iLCJzY2FsZSIsInJhZGl1cyIsImNvbG9yIiwiYWxwaGEiLCJib2R5IiwiciIsImciLCJiIiwiY29weSIsInNpemUiLCJzZXRSR0IiLCJpbmRleCIsImZpbmQiLCJTcHJpdGUiLCJtYXAiLCJ0ZXh0dXJlIiwidGV4dHVyZUluZGV4IiwiZ2V0VGV4dHVyZUlEIiwidXBkYXRlUG9pbnRQb3NpdGlvbiIsInVwZGF0ZVBvaW50U2l6ZSIsInVwZGF0ZVBvaW50Um90YXRpb24iLCJ1cGRhdGVQb2ludENvbG9yIiwidXBkYXRlUG9pbnRBbHBoYSIsInVwZGF0ZVBvaW50VGV4dHVyZUluZGV4IiwiYXR0cmlidXRlIiwib2Zmc2V0IiwiYXR0cmlidXRlcyIsImFycmF5IiwieCIsInkiLCJ6IiwidGkiLCJ0YSIsImlkYSIsImluZGV4RGF0YSIsIm54IiwibnkiLCJweCIsInB5IiwiZGVidWciLCJ1bmRlZmluZWQiLCJhZGRUZXh0dXJlIiwiZGVzdHJveSIsInJlbW92ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsY0FBVCxFQUF5QkMsTUFBekIsRUFBaUNDLFlBQWpDLEVBQStDQyxVQUEvQyxRQUFpRSxXQUFqRTtBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLFlBQXpCLFFBQTZDLFdBQTdDO0FBRUEsT0FBT0MsWUFBUCxNQUF5QixvQkFBekI7QUFDQSxTQUFTQyx3QkFBVCxRQUF5QyxxQkFBekM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsYUFBekM7QUFFQSxJQUFJQyxLQUFKO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsaUJBQU4sU0FBZ0NMLFlBQWhDLENBQTZDO0FBQzFETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUUsd0JBQU47QUFFQUMsSUFBQUEsS0FBSyxHQUFH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IFVuaXF1ZUxpc3QgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgZnJhZ21lbnRTaGFkZXIsIHZlcnRleFNoYWRlciB9IGZyb20gJy4vc2hhZGVycyc7XG5cbmltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi4vLi4vQmFzZVJlbmRlcmVyJztcbmltcG9ydCB7IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUyB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5sZXQgVEhSRUU7XG5cbi8qKlxuICogR1BVUmVuZGVyZXIgZm9yIG1vYmlsZSBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgZmxvYXRpbmcgcG9pbnQgdGV4dHVyZXMuXG4gKlxuICogQGF1dGhvciB0aHJheCA8bWFudGhyYXhAZ21haWwuY29tPlxuICogQGF1dGhvciByb2hhbi1kZXNocGFuZGUgPHJvaGFuQGNyZWF0aXZlbGlmZWZvcm0uY29tPlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2JpbGVHUFVSZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lciwgdGhyZWUsIG9wdGlvbnMgPSBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMpIHtcbiAgICBzdXBlcihSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUpO1xuXG4gICAgVEhSRUUgPSB0aGlzLnRocmVlID0gdGhyZWU7XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLkRFRkFVTFRfUkVOREVSRVJfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuICAgIGNvbnN0IHtcbiAgICAgIGNhbWVyYSxcbiAgICAgIG1heFBhcnRpY2xlcyxcbiAgICAgIGJhc2VDb2xvcixcbiAgICAgIGJsZW5kaW5nLFxuICAgICAgZGVwdGhUZXN0LFxuICAgICAgZGVwdGhXcml0ZSxcbiAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgc2hvdWxkRGVidWdUZXh0dXJlQXRsYXMsXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBhcnRpY2xlQnVmZmVyID0gbmV3IFBhcnRpY2xlQnVmZmVyKG1heFBhcnRpY2xlcywgVEhSRUUpO1xuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcbiAgICAgIHVuaWZvcm1zOiB7XG4gICAgICAgIGJhc2VDb2xvcjogeyB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGJhc2VDb2xvcikgfSxcbiAgICAgICAgdVRleHR1cmU6IHsgdmFsdWU6IG51bGwgfSxcbiAgICAgICAgRkZhdGxhc0luZGV4OiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgIGF0bGFzRGltOiB7IHZhbHVlOiBuZXcgVEhSRUUuVmVjdG9yMigpIH0sXG4gICAgICB9LFxuICAgICAgdmVydGV4U2hhZGVyOiB2ZXJ0ZXhTaGFkZXIoKSxcbiAgICAgIGZyYWdtZW50U2hhZGVyOiBmcmFnbWVudFNoYWRlcigpLFxuICAgICAgYmxlbmRpbmc6IFRIUkVFW2JsZW5kaW5nXSxcbiAgICAgIGRlcHRoVGVzdCxcbiAgICAgIGRlcHRoV3JpdGUsXG4gICAgICB0cmFuc3BhcmVudCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2FtZXJhID0gY2FtZXJhO1xuICAgIHRoaXMudGFyZ2V0UG9vbCA9IG5ldyBQb29sKCk7XG4gICAgdGhpcy51bmlxdWVMaXN0ID0gbmV3IFVuaXF1ZUxpc3QobWF4UGFydGljbGVzKTtcbiAgICB0aGlzLnBhcnRpY2xlQnVmZmVyID0gcGFydGljbGVCdWZmZXI7XG4gICAgdGhpcy5idWZmZXIgPSBwYXJ0aWNsZUJ1ZmZlci5idWZmZXI7XG4gICAgdGhpcy5zdHJpZGUgPSBwYXJ0aWNsZUJ1ZmZlci5zdHJpZGU7XG4gICAgdGhpcy5nZW9tZXRyeSA9IHBhcnRpY2xlQnVmZmVyLmdlb21ldHJ5O1xuICAgIHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICB0aGlzLnBvaW50cyA9IG5ldyBUSFJFRS5Qb2ludHModGhpcy5nZW9tZXRyeSwgdGhpcy5tYXRlcmlhbCk7XG4gICAgdGhpcy5wb2ludHMuZnJ1c3R1bUN1bGxlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvdWxkRGVidWdUZXh0dXJlQXRsYXMgPSBzaG91bGREZWJ1Z1RleHR1cmVBdGxhcztcblxuICAgIGNvbnRhaW5lci5hZGQodGhpcy5wb2ludHMpO1xuICB9XG5cbiAgb25TeXN0ZW1VcGRhdGUoc3lzdGVtKSB7XG4gICAgc3VwZXIub25TeXN0ZW1VcGRhdGUoc3lzdGVtKTtcblxuICAgIHRoaXMuYnVmZmVyLm5lZWRzVXBkYXRlID0gdHJ1ZTtcblxuICAgIGNvbnN0IHsgdGV4dHVyZUF0bGFzIH0gPSB0aGlzO1xuXG4gICAgaWYgKHRleHR1cmVBdGxhcykge1xuICAgICAgdGV4dHVyZUF0bGFzLnVwZGF0ZSgpO1xuICAgICAgdGhpcy5tYXRlcmlhbC51bmlmb3Jtcy5hdGxhc0RpbS52YWx1ZS5zZXQoXG4gICAgICAgIHRleHR1cmVBdGxhcy5hdGxhc1RleHR1cmUuaW1hZ2Uud2lkdGgsXG4gICAgICAgIHRleHR1cmVBdGxhcy5hdGxhc1RleHR1cmUuaW1hZ2UuaGVpZ2h0XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQb29scyB0aGUgcGFydGljbGUgdGFyZ2V0IGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgKiBVcGRhdGVzIHRoZSB0YXJnZXQgYW5kIG1hcHMgcGFydGljbGUgcHJvcGVydGllcyB0byB0aGUgcG9pbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQgPSB0aGlzLnRhcmdldFBvb2wuZ2V0KFRhcmdldCwgVEhSRUUpO1xuICAgICAgdGhpcy51bmlxdWVMaXN0LmFkZChwYXJ0aWNsZS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVUYXJnZXQocGFydGljbGUpLm1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gdGhlIHBvaW50IGlmIHRoZSBwYXJ0aWNsZSBoYXMgYSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7XG4gICAgaWYgKCFwYXJ0aWNsZS50YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVRhcmdldChwYXJ0aWNsZSkubWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyBhbmQgY2xlYXJzIHRoZSBwYXJ0aWNsZSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlRGVhZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFydGljbGUudGFyZ2V0LnJlc2V0KCk7XG4gICAgdGhpcy5tYXBQYXJ0aWNsZVRhcmdldFByb3BzVG9Qb2ludChwYXJ0aWNsZSk7XG5cbiAgICBwYXJ0aWNsZS50YXJnZXQgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYWxsIG11dGFibGUgcHJvcGVydGllcyBmcm9tIHRoZSBwYXJ0aWNsZSB0byB0aGUgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfVxuICAgKiBAcmV0dXJuIHtHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVRhcmdldChwYXJ0aWNsZSkge1xuICAgIGNvbnN0IHsgcG9zaXRpb24sIHJvdGF0aW9uLCBzY2FsZSwgcmFkaXVzLCBjb2xvciwgYWxwaGEsIGJvZHksIGlkIH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IHIsIGcsIGIgfSA9IGNvbG9yO1xuXG4gICAgcGFydGljbGUudGFyZ2V0LnBvc2l0aW9uLmNvcHkocG9zaXRpb24pO1xuICAgIHBhcnRpY2xlLnRhcmdldC5yb3RhdGlvbi5jb3B5KHJvdGF0aW9uKTtcbiAgICBwYXJ0aWNsZS50YXJnZXQuc2l6ZSA9IHNjYWxlICogcmFkaXVzO1xuICAgIHBhcnRpY2xlLnRhcmdldC5jb2xvci5zZXRSR0IociwgZywgYik7XG4gICAgcGFydGljbGUudGFyZ2V0LmFscGhhID0gYWxwaGE7XG4gICAgcGFydGljbGUudGFyZ2V0LmluZGV4ID0gdGhpcy51bmlxdWVMaXN0LmZpbmQoaWQpO1xuXG4gICAgaWYgKGJvZHkgJiYgYm9keSBpbnN0YW5jZW9mIFRIUkVFLlNwcml0ZSkge1xuICAgICAgY29uc3QgeyBtYXAgfSA9IGJvZHkubWF0ZXJpYWw7XG5cbiAgICAgIHBhcnRpY2xlLnRhcmdldC50ZXh0dXJlID0gbWFwO1xuICAgICAgcGFydGljbGUudGFyZ2V0LnRleHR1cmVJbmRleCA9IHRoaXMuZ2V0VGV4dHVyZUlEKFxuICAgICAgICBtYXAsXG4gICAgICAgIHRoaXMuc2hvdWxkRGVidWdUZXh0dXJlQXRsYXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRW50cnkgcG9pbnQgZm9yIG1hcHBpbmcgcGFydGljbGUgcHJvcGVydGllcyB0byBidWZmZXIgZ2VvbWV0cnkgcG9pbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIHRvIG1hcFxuICAgKiBAcmV0dXJuIHtHUFVSZW5kZXJlcn1cbiAgICovXG4gIG1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKSB7XG4gICAgdGhpcy51cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50U2l6ZShwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludFJvdGF0aW9uKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50Q29sb3IocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRBbHBoYShwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludFRleHR1cmVJbmRleChwYXJ0aWNsZSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCdzIHBvc2l0aW9uIGFjY29yZGluZyB0byB0aGUgcGFydGljbGUncyB0YXJnZXQgcG9zaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIGNvbnRhaW5pbmcgdGhlIHRhcmdldCBwb3NpdGlvbi5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3Bvc2l0aW9uJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5wb3NpdGlvbi54O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5wb3NpdGlvbi55O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5wb3NpdGlvbi56O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyBzaXplIHJlbGF0aXZlIHRvIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBzY2FsZSBhbmQgcmFkaXVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgc2NhbGUuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRTaXplKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3NpemUnO1xuICAgIGNvbnN0IHsgZ2VvbWV0cnksIHN0cmlkZSwgYnVmZmVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuXG4gICAgYnVmZmVyLmFycmF5W3RhcmdldC5pbmRleCAqIHN0cmlkZSArIG9mZnNldCArIDBdID0gdGFyZ2V0LnNpemU7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCdzIHJvdGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgcm90YXRpb24uXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRSb3RhdGlvbihwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdyb3RhdGlvbic7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG5cbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMF0gPSB0YXJnZXQucm90YXRpb24uejtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvaW50J3MgY29sb3IgYXR0cmlidXRlIGFjY29yZGluZyB3aXRoIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBjb2xvci5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IGNvbG9yIGFuZCBhbHBoYS5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludENvbG9yKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ2NvbG9yJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5jb2xvci5yO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5jb2xvci5nO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5jb2xvci5iO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQgYWxwaGEgYXR0cmlidXRlIHdpdGggdGhlIHBhcnRpY2xlJ3MgdGFyZ2V0IGFscGhhLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgYWxwaGEuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRBbHBoYShwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdhbHBoYSc7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG5cbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMF0gPSB0YXJnZXQuYWxwaGE7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCB0ZXh0dXJlIGF0dHJpYnV0ZSB3aXRoIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCB0ZXh0dXJlLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgdGV4dHVyZS5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFRleHR1cmVJbmRleChwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICd0ZXhJRCc7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gICAgY29uc3QgaWQgPSB0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICBidWZmZXIuYXJyYXlbaWRdID0gdGFyZ2V0LnRleHR1cmVJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRpID0gdGFyZ2V0LnRleHR1cmVJbmRleCAqIDQ7XG4gICAgICBjb25zdCB0YSA9IHRoaXMudGV4dHVyZUF0bGFzO1xuICAgICAgY29uc3QgaWRhID0gdGEuaW5kZXhEYXRhO1xuICAgICAgY29uc3QgbnggPSBpZGFbdGkrK107XG4gICAgICBjb25zdCBueSA9IGlkYVt0aSsrXTtcbiAgICAgIGNvbnN0IHB4ID0gaWRhW3RpKytdO1xuICAgICAgY29uc3QgcHkgPSBpZGFbdGkrK107XG5cbiAgICAgIGJ1ZmZlci5hcnJheVtpZF0gPSAoKG54ICogdGEuYXRsYXNUZXh0dXJlLmltYWdlLndpZHRoKSB8IDApICsgcHg7XG4gICAgICBidWZmZXIuYXJyYXlbaWQgKyAxXSA9ICgobnkgKiB0YS5hdGxhc1RleHR1cmUuaW1hZ2UuaGVpZ2h0KSB8IDApICsgcHk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRUZXh0dXJlSUQodGV4dHVyZSwgZGVidWcpIHtcbiAgICBpZiAodGV4dHVyZS50ZXh0dXJlSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCF0aGlzLnRleHR1cmVBdGxhcykge1xuICAgICAgICB0aGlzLnRleHR1cmVBdGxhcyA9IG5ldyBUZXh0dXJlQXRsYXModGhpcywgZGVidWcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRleHR1cmVBdGxhcy5hZGRUZXh0dXJlKHRleHR1cmUpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXh0dXJlLnRleHR1cmVJbmRleDtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIHBvaW50cywgdGV4dHVyZUF0bGFzLCB1bmlxdWVMaXN0IH0gPSB0aGlzO1xuXG4gICAgY29udGFpbmVyLnJlbW92ZShwb2ludHMpO1xuICAgIHVuaXF1ZUxpc3QuZGVzdHJveSgpO1xuICAgIHRleHR1cmVBdGxhcyAmJiB0ZXh0dXJlQXRsYXMuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -3,6 +3,7 @@ export const fragmentShader = () => {
|
|
|
3
3
|
uniform vec3 baseColor;
|
|
4
4
|
uniform sampler2D uTexture;
|
|
5
5
|
|
|
6
|
+
varying float vRotation;
|
|
6
7
|
varying vec3 targetColor;
|
|
7
8
|
varying float targetAlpha;
|
|
8
9
|
varying vec4 tileRect;
|
|
@@ -13,8 +14,14 @@ export const fragmentShader = () => {
|
|
|
13
14
|
vec2 uv = gl_PointCoord;
|
|
14
15
|
uv = mix(tileRect.xy, tileRect.zw, gl_PointCoord);
|
|
15
16
|
|
|
17
|
+
float mid = 0.5;
|
|
18
|
+
uv = vec2(
|
|
19
|
+
cos(vRotation) * (uv.x - mid) - sin(vRotation) * (uv.y - mid) + mid,
|
|
20
|
+
cos(vRotation) * (uv.y - mid) + sin(vRotation) * (uv.x - mid) + mid
|
|
21
|
+
);
|
|
22
|
+
|
|
16
23
|
gl_FragColor = gl_FragColor * texture2D(uTexture, uv);
|
|
17
24
|
}
|
|
18
25
|
`;
|
|
19
26
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvc2hhZGVycy9mcmFnbWVudFNoYWRlci5qcyJdLCJuYW1lcyI6WyJmcmFnbWVudFNoYWRlciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxjQUFjLEdBQUcsTUFBTTtBQUNsQyxTQUFRO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQXZCRTtBQXdCRCxDQXpCTSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmcmFnbWVudFNoYWRlciA9ICgpID0+IHtcbiAgcmV0dXJuIGBcbiAgICB1bmlmb3JtIHZlYzMgYmFzZUNvbG9yO1xuICAgIHVuaWZvcm0gc2FtcGxlcjJEIHVUZXh0dXJlO1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChiYXNlQ29sb3IgKiB0YXJnZXRDb2xvciwgdGFyZ2V0QWxwaGEpO1xuXG4gICAgICB2ZWMyIHV2ID0gZ2xfUG9pbnRDb29yZDtcbiAgICAgIHV2ID0gbWl4KHRpbGVSZWN0Lnh5LCB0aWxlUmVjdC56dywgZ2xfUG9pbnRDb29yZCk7XG5cbiAgICAgIGZsb2F0IG1pZCA9IDAuNTtcbiAgICAgIHV2ID0gdmVjMihcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueCAtIG1pZCkgLSBzaW4odlJvdGF0aW9uKSAqICh1di55IC0gbWlkKSArIG1pZCxcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueSAtIG1pZCkgKyBzaW4odlJvdGF0aW9uKSAqICh1di54IC0gbWlkKSArIG1pZFxuICAgICAgKTtcbiAgICAgIFxuICAgICAgZ2xfRnJhZ0NvbG9yID0gZ2xfRnJhZ0NvbG9yICogdGV4dHVyZTJEKHVUZXh0dXJlLCB1dik7XG4gICAgfVxuYDtcbn07XG4iXX0=
|
|
@@ -8,7 +8,9 @@ export const vertexShader = () => {
|
|
|
8
8
|
attribute vec3 color;
|
|
9
9
|
attribute float alpha;
|
|
10
10
|
attribute vec2 texID;
|
|
11
|
+
attribute float rotation;
|
|
11
12
|
|
|
13
|
+
varying float vRotation;
|
|
12
14
|
varying vec3 targetColor;
|
|
13
15
|
varying float targetAlpha;
|
|
14
16
|
varying vec4 tileRect;
|
|
@@ -17,6 +19,7 @@ export const vertexShader = () => {
|
|
|
17
19
|
vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);
|
|
18
20
|
targetColor = color;
|
|
19
21
|
targetAlpha = alpha;
|
|
22
|
+
vRotation = rotation;
|
|
20
23
|
|
|
21
24
|
vec2 tmin = floor(texID) / atlasDim;
|
|
22
25
|
vec2 tmax = fract(texID);
|
|
@@ -27,4 +30,4 @@ export const vertexShader = () => {
|
|
|
27
30
|
}
|
|
28
31
|
`;
|
|
29
32
|
};
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvc2hhZGVycy92ZXJ0ZXhTaGFkZXIuanMiXSwibmFtZXMiOlsiU0laRV9BVFRFTlVBVElPTl9GQUNUT1IiLCJ2ZXJ0ZXhTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHVCQUFULFFBQXdDLGdDQUF4QztBQUVBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLE1BQU07QUFDaEMsU0FBUTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQ0QsdUJBQXdCO0FBQ3hEO0FBQ0E7QUFDQSxDQTVCRTtBQTZCRCxDQTlCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNJWkVfQVRURU5VQVRJT05fRkFDVE9SIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NoYWRlcnMvY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHZlcnRleFNoYWRlciA9ICgpID0+IHtcbiAgcmV0dXJuIGBcbiAgICB1bmlmb3JtIHNhbXBsZXIyRCB1VGV4dHVyZTtcbiAgICB1bmlmb3JtIHZlYzIgYXRsYXNEaW07XG5cbiAgICBhdHRyaWJ1dGUgZmxvYXQgc2l6ZTtcbiAgICBhdHRyaWJ1dGUgdmVjMyBjb2xvcjtcbiAgICBhdHRyaWJ1dGUgZmxvYXQgYWxwaGE7XG4gICAgYXR0cmlidXRlIHZlYzIgdGV4SUQ7XG4gICAgYXR0cmlidXRlIGZsb2F0IHJvdGF0aW9uO1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgdmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICAgIHRhcmdldENvbG9yID0gY29sb3I7XG4gICAgICB0YXJnZXRBbHBoYSA9IGFscGhhO1xuICAgICAgdlJvdGF0aW9uID0gcm90YXRpb247XG5cbiAgICAgIHZlYzIgdG1pbiA9IGZsb29yKHRleElEKSAvIGF0bGFzRGltO1xuICAgICAgdmVjMiB0bWF4ID0gZnJhY3QodGV4SUQpO1xuICAgICAgdGlsZVJlY3QgPSB2ZWM0KHRtaW4sdG1heCk7XG5cbiAgICAgIGdsX1BvaW50U2l6ZSA9ICgoc2l6ZSAqICR7U0laRV9BVFRFTlVBVElPTl9GQUNUT1J9KSAvIC1tdlBvc2l0aW9uLnopO1xuICAgICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcbiAgICB9XG5gO1xufTtcbiJdfQ==
|
|
@@ -5,23 +5,26 @@ export const RGBA_SIZE = ['r', 'g', 'b', 'a'].length;
|
|
|
5
5
|
export const FLOAT_BYTE_SIZE = 4; // Byte sizes
|
|
6
6
|
|
|
7
7
|
export const POSITION_BYTE_SIZE = VECTOR_3_SIZE * FLOAT_BYTE_SIZE;
|
|
8
|
+
export const ROTATION_BYTE_SIZE = FLOAT_BYTE_SIZE;
|
|
8
9
|
export const SIZE_BYTE_SIZE = FLOAT_BYTE_SIZE;
|
|
9
10
|
export const RGBA_BYTE_SIZE = RGBA_SIZE * FLOAT_BYTE_SIZE;
|
|
10
|
-
export const ALL_BYTE_SIZES = [POSITION_BYTE_SIZE, SIZE_BYTE_SIZE, RGBA_BYTE_SIZE];
|
|
11
|
+
export const ALL_BYTE_SIZES = [POSITION_BYTE_SIZE, ROTATION_BYTE_SIZE, SIZE_BYTE_SIZE, RGBA_BYTE_SIZE];
|
|
11
12
|
export const PARTICLE_BYTE_SIZE = ALL_BYTE_SIZES.reduce((cur, acc) => cur + acc); // Attributes
|
|
12
13
|
|
|
13
14
|
export const POSITION_ATTRIBUTE_BUFFER_SIZE = VECTOR_3_SIZE;
|
|
15
|
+
export const ROTATION_ATTRIBUTE_BUFFER_SIZE = 1;
|
|
14
16
|
export const SIZE_ATTRIBUTE_BUFFER_SIZE = 1;
|
|
15
17
|
export const RGBA_ATTRIBUTE_BUFFER_SIZE = RGBA_SIZE;
|
|
16
18
|
export const ALPHA_ATTRIBUTE_BUFFER_SIZE = 1;
|
|
17
19
|
export const TEXID_ATTRIBUTE_BUFFER_SIZE = 2;
|
|
18
20
|
export const ATTRIBUTE_TO_SIZE_MAP = {
|
|
19
21
|
position: POSITION_ATTRIBUTE_BUFFER_SIZE,
|
|
22
|
+
rotation: ROTATION_ATTRIBUTE_BUFFER_SIZE,
|
|
20
23
|
size: SIZE_ATTRIBUTE_BUFFER_SIZE,
|
|
21
24
|
// THREE.Color does not contain alpha, so we will have separate attributes for these
|
|
22
25
|
color: RGBA_ATTRIBUTE_BUFFER_SIZE,
|
|
23
26
|
alpha: ALPHA_ATTRIBUTE_BUFFER_SIZE,
|
|
24
27
|
texID: TEXID_ATTRIBUTE_BUFFER_SIZE
|
|
25
28
|
};
|
|
26
|
-
export const PARTICLE_STRIDE = [POSITION_ATTRIBUTE_BUFFER_SIZE, SIZE_ATTRIBUTE_BUFFER_SIZE, RGBA_ATTRIBUTE_BUFFER_SIZE, ALPHA_ATTRIBUTE_BUFFER_SIZE, TEXID_ATTRIBUTE_BUFFER_SIZE].reduce((cur, acc) => cur + acc);
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
29
|
+
export const PARTICLE_STRIDE = [POSITION_ATTRIBUTE_BUFFER_SIZE, ROTATION_ATTRIBUTE_BUFFER_SIZE, SIZE_ATTRIBUTE_BUFFER_SIZE, RGBA_ATTRIBUTE_BUFFER_SIZE, ALPHA_ATTRIBUTE_BUFFER_SIZE, TEXID_ATTRIBUTE_BUFFER_SIZE].reduce((cur, acc) => cur + acc);
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vUGFydGljbGVCdWZmZXIvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYX1BBUlRJQ0xFUyIsIlZFQ1RPUl8zX1NJWkUiLCJsZW5ndGgiLCJSR0JBX1NJWkUiLCJGTE9BVF9CWVRFX1NJWkUiLCJQT1NJVElPTl9CWVRFX1NJWkUiLCJST1RBVElPTl9CWVRFX1NJWkUiLCJTSVpFX0JZVEVfU0laRSIsIlJHQkFfQllURV9TSVpFIiwiQUxMX0JZVEVfU0laRVMiLCJQQVJUSUNMRV9CWVRFX1NJWkUiLCJyZWR1Y2UiLCJjdXIiLCJhY2MiLCJQT1NJVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUiLCJST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUiLCJTSVpFX0FUVFJJQlVURV9CVUZGRVJfU0laRSIsIlJHQkFfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiVEVYSURfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiQVRUUklCVVRFX1RPX1NJWkVfTUFQIiwicG9zaXRpb24iLCJyb3RhdGlvbiIsInNpemUiLCJjb2xvciIsImFscGhhIiwidGV4SUQiLCJQQVJUSUNMRV9TVFJJREUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBTyxNQUFNQSxxQkFBcUIsR0FBRyxLQUE5QjtBQUNQLE9BQU8sTUFBTUMsYUFBYSxHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCQyxNQUF0QztBQUNQLE9BQU8sTUFBTUMsU0FBUyxHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCRCxNQUF2QztBQUNQLE9BQU8sTUFBTUUsZUFBZSxHQUFHLENBQXhCLEMsQ0FFUDs7QUFDQSxPQUFPLE1BQU1DLGtCQUFrQixHQUFHSixhQUFhLEdBQUdHLGVBQTNDO0FBQ1AsT0FBTyxNQUFNRSxrQkFBa0IsR0FBR0YsZUFBM0I7QUFDUCxPQUFPLE1BQU1HLGNBQWMsR0FBR0gsZUFBdkI7QUFDUCxPQUFPLE1BQU1JLGNBQWMsR0FBR0wsU0FBUyxHQUFHQyxlQUFuQztBQUNQLE9BQU8sTUFBTUssY0FBYyxHQUFHLENBQzVCSixrQkFENEIsRUFFNUJDLGtCQUY0QixFQUc1QkMsY0FINEIsRUFJNUJDLGNBSjRCLENBQXZCO0FBTVAsT0FBTyxNQUFNRSxrQkFBa0IsR0FBR0QsY0FBYyxDQUFDRSxNQUFmLENBQ2hDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjRCxHQUFHLEdBQUdDLEdBRFksQ0FBM0IsQyxDQUlQOztBQUNBLE9BQU8sTUFBTUMsOEJBQThCLEdBQUdiLGFBQXZDO0FBQ1AsT0FBTyxNQUFNYyw4QkFBOEIsR0FBRyxDQUF2QztBQUNQLE9BQU8sTUFBTUMsMEJBQTBCLEdBQUcsQ0FBbkM7QUFDUCxPQUFPLE1BQU1DLDBCQUEwQixHQUFHZCxTQUFuQztBQUNQLE9BQU8sTUFBTWUsMkJBQTJCLEdBQUcsQ0FBcEM7QUFDUCxPQUFPLE1BQU1DLDJCQUEyQixHQUFHLENBQXBDO0FBRVAsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRztBQUNuQ0MsRUFBQUEsUUFBUSxFQUFFUCw4QkFEeUI7QUFFbkNRLEVBQUFBLFFBQVEsRUFBRVAsOEJBRnlCO0FBR25DUSxFQUFBQSxJQUFJLEVBQUVQLDBCQUg2QjtBQUluQztBQUNBUSxFQUFBQSxLQUFLLEVBQUVQLDBCQUw0QjtBQU1uQ1EsRUFBQUEsS0FBSyxFQUFFUCwyQkFONEI7QUFPbkNRLEVBQUFBLEtBQUssRUFBRVA7QUFQNEIsQ0FBOUI7QUFVUCxPQUFPLE1BQU1RLGVBQWUsR0FBRyxDQUM3QmIsOEJBRDZCLEVBRTdCQyw4QkFGNkIsRUFHN0JDLDBCQUg2QixFQUk3QkMsMEJBSjZCLEVBSzdCQywyQkFMNkIsRUFNN0JDLDJCQU42QixFQU83QlIsTUFQNkIsQ0FPdEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWNELEdBQUcsR0FBR0MsR0FQRSxDQUF4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFByaW1pdGl2ZXNcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9QQVJUSUNMRVMgPSAxMDAwMDtcbmV4cG9ydCBjb25zdCBWRUNUT1JfM19TSVpFID0gWyd4JywgJ3knLCAneiddLmxlbmd0aDtcbmV4cG9ydCBjb25zdCBSR0JBX1NJWkUgPSBbJ3InLCAnZycsICdiJywgJ2EnXS5sZW5ndGg7XG5leHBvcnQgY29uc3QgRkxPQVRfQllURV9TSVpFID0gNDtcblxuLy8gQnl0ZSBzaXplc1xuZXhwb3J0IGNvbnN0IFBPU0lUSU9OX0JZVEVfU0laRSA9IFZFQ1RPUl8zX1NJWkUgKiBGTE9BVF9CWVRFX1NJWkU7XG5leHBvcnQgY29uc3QgUk9UQVRJT05fQllURV9TSVpFID0gRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IFNJWkVfQllURV9TSVpFID0gRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IFJHQkFfQllURV9TSVpFID0gUkdCQV9TSVpFICogRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IEFMTF9CWVRFX1NJWkVTID0gW1xuICBQT1NJVElPTl9CWVRFX1NJWkUsXG4gIFJPVEFUSU9OX0JZVEVfU0laRSxcbiAgU0laRV9CWVRFX1NJWkUsXG4gIFJHQkFfQllURV9TSVpFLFxuXTtcbmV4cG9ydCBjb25zdCBQQVJUSUNMRV9CWVRFX1NJWkUgPSBBTExfQllURV9TSVpFUy5yZWR1Y2UoXG4gIChjdXIsIGFjYykgPT4gY3VyICsgYWNjXG4pO1xuXG4vLyBBdHRyaWJ1dGVzXG5leHBvcnQgY29uc3QgUE9TSVRJT05fQVRUUklCVVRFX0JVRkZFUl9TSVpFID0gVkVDVE9SXzNfU0laRTtcbmV4cG9ydCBjb25zdCBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUgPSAxO1xuZXhwb3J0IGNvbnN0IFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFID0gMTtcbmV4cG9ydCBjb25zdCBSR0JBX0FUVFJJQlVURV9CVUZGRVJfU0laRSA9IFJHQkFfU0laRTtcbmV4cG9ydCBjb25zdCBBTFBIQV9BVFRSSUJVVEVfQlVGRkVSX1NJWkUgPSAxO1xuZXhwb3J0IGNvbnN0IFRFWElEX0FUVFJJQlVURV9CVUZGRVJfU0laRSA9IDI7XG5cbmV4cG9ydCBjb25zdCBBVFRSSUJVVEVfVE9fU0laRV9NQVAgPSB7XG4gIHBvc2l0aW9uOiBQT1NJVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIHJvdGF0aW9uOiBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIHNpemU6IFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICAvLyBUSFJFRS5Db2xvciBkb2VzIG5vdCBjb250YWluIGFscGhhLCBzbyB3ZSB3aWxsIGhhdmUgc2VwYXJhdGUgYXR0cmlidXRlcyBmb3IgdGhlc2VcbiAgY29sb3I6IFJHQkFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBhbHBoYTogQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICB0ZXhJRDogVEVYSURfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxufTtcblxuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX1NUUklERSA9IFtcbiAgUE9TSVRJT05fQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBSR0JBX0FUVFJJQlVURV9CVUZGRVJfU0laRSxcbiAgQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBURVhJRF9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG5dLnJlZHVjZSgoY3VyLCBhY2MpID0+IGN1ciArIGFjYyk7XG4iXX0=
|
|
@@ -67,4 +67,4 @@ export default class ParticleBuffer {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vUGFydGljbGVCdWZmZXIvaW5kZXguanMiXSwibmFtZXMiOlsiQVRUUklCVVRFX1RPX1NJWkVfTUFQIiwiREVGQVVMVF9NQVhfUEFSVElDTEVTIiwiUEFSVElDTEVfQllURV9TSVpFIiwiVEhSRUUiLCJQYXJ0aWNsZUJ1ZmZlciIsImNvbnN0cnVjdG9yIiwibWF4UGFydGljbGVzIiwidGhyZWUiLCJjcmVhdGVJbnRlcmxlYXZlZEJ1ZmZlciIsImNyZWF0ZUJ1ZmZlckdlb21ldHJ5IiwiYXJyYXlCdWZmZXIiLCJBcnJheUJ1ZmZlciIsImludGVybGVhdmVkQnVmZmVyIiwiSW50ZXJsZWF2ZWRCdWZmZXIiLCJGbG9hdDMyQXJyYXkiLCJnZW9tZXRyeSIsIkJ1ZmZlckdlb21ldHJ5IiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsIm9mZnNldCIsImF0dHJpYnV0ZSIsInNpemUiLCJzZXRBdHRyaWJ1dGUiLCJJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSIsImJ1ZmZlciIsInN0cmlkZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEscUJBREYsRUFFRUMscUJBRkYsRUFHRUMsa0JBSEYsUUFJTyxhQUpQO0FBTUEsSUFBSUMsS0FBSjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxjQUFOLENBQXFCO0FBQ2xDQyxFQUFBQSxXQUFXLENBQUNDLFlBQVksR0FBR0wscUJBQWhCLEVBQXVDTSxLQUF2QyxFQUE4QztBQUN2REosSUFBQUEsS0FBSyxHQUFHSSxLQUFSO0FBQ0EsU0FBS0QsWUFBTCxHQUFvQkEsWUFBcEI7QUFFQSxTQUFLRSx1QkFBTCxHQUErQkMsb0JBQS9CO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUQsRUFBQUEsdUJBQXVCLEdBQUc7QUFDeEIsVUFBTUUsV0FBVyxHQUFHLElBQUlDLFdBQUosQ0FBZ0IsS0FBS0wsWUFBTCxHQUFvQkosa0JBQXBDLENBQXBCO0FBRUEsU0FBS1UsaUJBQUwsR0FBeUIsSUFBSVQsS0FBSyxDQUFDVSxpQkFBVixDQUN2QixJQUFJQyxZQUFKLENBQWlCSixXQUFqQixDQUR1QixFQUV2QlIsa0JBRnVCLENBQXpCLENBSHdCLENBT3hCOztBQUVBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VPLEVBQUFBLG9CQUFvQixHQUFHO0FBQ3JCLFNBQUtNLFFBQUwsR0FBZ0IsSUFBSVosS0FBSyxDQUFDYSxjQUFWLEVBQWhCO0FBRUEsVUFBTTtBQUFFSixNQUFBQSxpQkFBRjtBQUFxQkcsTUFBQUE7QUFBckIsUUFBa0MsSUFBeEM7QUFFQUUsSUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVlsQixxQkFBWixFQUFtQ21CLE1BQW5DLENBQTBDLENBQUNDLE1BQUQsRUFBU0MsU0FBVCxLQUF1QjtBQUMvRCxZQUFNQyxJQUFJLEdBQUd0QixxQkFBcUIsQ0FBQ3FCLFNBQUQsQ0FBbEM7QUFFQU4sTUFBQUEsUUFBUSxDQUFDUSxZQUFULENBQ0VGLFNBREYsRUFFRSxJQUFJbEIsS0FBSyxDQUFDcUIsMEJBQVYsQ0FBcUNaLGlCQUFyQyxFQUF3RFUsSUFBeEQsRUFBOERGLE1BQTlELENBRkY7QUFLQSxhQUFRQSxNQUFNLElBQUlFLElBQWxCO0FBQ0QsS0FURCxFQVNHLENBVEg7QUFXQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNZLE1BQU5HLE1BQU0sR0FBRztBQUNYLFdBQU8sS0FBS2IsaUJBQVo7QUFDRDs7QUFFUyxNQUFOYyxNQUFNLEdBQUc7QUFDWCxXQUFPeEIsa0JBQVA7QUFDRDs7QUEvRGlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVRUUklCVVRFX1RPX1NJWkVfTUFQLFxuICBERUZBVUxUX01BWF9QQVJUSUNMRVMsXG4gIFBBUlRJQ0xFX0JZVEVfU0laRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5sZXQgVEhSRUU7XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcHJvdmlkZXMgcGVyZm9ybWFudCBidWZmZXJzIGZvciBtYXBwaW5nIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gZ2VvbWV0cnkgdmVydGljZXMuXG4gKlxuICogQGF1dGhvciB0aHJheCA8bWFudGhyYXhAZ21haWwuY29tPlxuICogQGF1dGhvciByb2hhbi1kZXNocGFuZGUgPHJvaGFuQGNyZWF0aXZlbGlmZWZvcm0uY29tPlxuICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2V4YW1wbGVzLz9xPWJ1ZmZlI3dlYmdsX2J1ZmZlcmdlb21ldHJ5X3BvaW50c19pbnRlcmxlYXZlZFxuICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2V4YW1wbGVzLz9xPXBvaW50cyN3ZWJnbF9jdXN0b21fYXR0cmlidXRlc19wb2ludHNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFydGljbGVCdWZmZXIge1xuICBjb25zdHJ1Y3RvcihtYXhQYXJ0aWNsZXMgPSBERUZBVUxUX01BWF9QQVJUSUNMRVMsIHRocmVlKSB7XG4gICAgVEhSRUUgPSB0aHJlZTtcbiAgICB0aGlzLm1heFBhcnRpY2xlcyA9IG1heFBhcnRpY2xlcztcblxuICAgIHRoaXMuY3JlYXRlSW50ZXJsZWF2ZWRCdWZmZXIoKS5jcmVhdGVCdWZmZXJHZW9tZXRyeSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGludGVybGVhdmVkIGJ1ZmZlciB0aGF0IHdpbGwgYmUgdXNlZCB0byB3cml0ZSBkYXRhIHRvIHRoZSBHUFUuXG4gICAqXG4gICAqIEByZXR1cm4ge1BhcnRpY2xlQnVmZmVyfVxuICAgKi9cbiAgY3JlYXRlSW50ZXJsZWF2ZWRCdWZmZXIoKSB7XG4gICAgY29uc3QgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIodGhpcy5tYXhQYXJ0aWNsZXMgKiBQQVJUSUNMRV9CWVRFX1NJWkUpO1xuXG4gICAgdGhpcy5pbnRlcmxlYXZlZEJ1ZmZlciA9IG5ldyBUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcihcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoYXJyYXlCdWZmZXIpLFxuICAgICAgUEFSVElDTEVfQllURV9TSVpFXG4gICAgKTtcbiAgICAvLyB0aGlzLmludGVybGVhdmVkQnVmZmVyLnVzYWdlID0gVEhSRUUuRHluYW1pY0RyYXdVc2FnZTtcbiAgICBcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBnZW9tZXRyeSdzIGJ1ZmZlciBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBOT1RFIEVhY2ggYXR0cmlidXRlIG5lZWRzIHRvIGJlIHNldCBhdCB0aGUgcmlnaHQgaW5kZXggaW4gdGhlIGJ1ZmZlciByaWdodCBhZnRlciB0aGUgcHJldmlvdXNcbiAgICogYXR0cmlidXRlIHRoYXQgb2NjdXBpZXMgYSBzZXQgYW1vdW50IG9mIHNpemUgaW4gdGhlIGJ1ZmZlci5cbiAgICpcbiAgICogQHJldHVybiB7UGFydGljbGVCdWZmZXJHZW9tZXRyeX1cbiAgICovXG4gIGNyZWF0ZUJ1ZmZlckdlb21ldHJ5KCkge1xuICAgIHRoaXMuZ2VvbWV0cnkgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcblxuICAgIGNvbnN0IHsgaW50ZXJsZWF2ZWRCdWZmZXIsIGdlb21ldHJ5IH0gPSB0aGlzO1xuXG4gICAgT2JqZWN0LmtleXMoQVRUUklCVVRFX1RPX1NJWkVfTUFQKS5yZWR1Y2UoKG9mZnNldCwgYXR0cmlidXRlKSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gQVRUUklCVVRFX1RPX1NJWkVfTUFQW2F0dHJpYnV0ZV07XG5cbiAgICAgIGdlb21ldHJ5LnNldEF0dHJpYnV0ZShcbiAgICAgICAgYXR0cmlidXRlLFxuICAgICAgICBuZXcgVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUoaW50ZXJsZWF2ZWRCdWZmZXIsIHNpemUsIG9mZnNldClcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiAob2Zmc2V0ICs9IHNpemUpO1xuICAgIH0sIDApO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcHVibGljbHkgYWNjZXNzaWJsZSBpbnRlcmxlYXZlZCBidWZmZXIuXG4gICAqXG4gICAqIEByZXR1cm4ge1RIUkVFLkludGVybGVhdmVkQnVmZmVyfSBidWZmZXJzIC0gVGhlIGludGVybGVhdmVkIGJ1ZmZlclxuICAgKi9cbiAgZ2V0IGJ1ZmZlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmxlYXZlZEJ1ZmZlcjtcbiAgfVxuXG4gIGdldCBzdHJpZGUoKSB7XG4gICAgcmV0dXJuIFBBUlRJQ0xFX0JZVEVfU0laRTtcbiAgfVxufVxuIl19
|
|
@@ -203,4 +203,4 @@ export default class TextureAtlas {
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
}
|
|
206
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vVGV4dHVyZUF0bGFzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AiLCJSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUiLCJEQVRBX1RFWFRVUkVfU0laRSIsIl9fREVWX18iLCJwb3RwYWNrIiwiVGV4dHVyZUF0bGFzIiwiY29uc3RydWN0b3IiLCJyZW5kZXJlciIsInNob3VsZERlYnVnIiwidGhyZWUiLCJUSFJFRSIsInR5cGUiLCJyZW5kZXJlclR5cGUiLCJkYXRhIiwiRmxvYXQzMkFycmF5IiwiY3R4IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZ2V0Q29udGV4dCIsImNhbnZhcyIsImluZGV4RGF0YSIsImVudHJpZXMiLCJhdGxhc0luZGV4IiwiRGF0YVRleHR1cmUiLCJSR0JBRm9ybWF0IiwiRmxvYXRUeXBlIiwid2lkdGgiLCJoZWlnaHQiLCJkZWJ1ZyIsImF0bGFzVGV4dHVyZSIsIkNhbnZhc1RleHR1cmUiLCJmbGlwWSIsIm1hdGVyaWFsIiwidW5pZm9ybXMiLCJ1VGV4dHVyZSIsInZhbHVlIiwidW5pZm9ybXNOZWVkVXBkYXRlIiwibG9nIiwiYXJncyIsImNvbnNvbGUiLCJoYWxmbWF4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJmb250IiwiZmlsbFRleHQiLCJzdHlsZSIsInBvc2l0aW9uIiwibGVmdCIsInRvcCIsInpJbmRleCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImFkZFRleHR1cmUiLCJ0ZXh0dXJlIiwidXVpZCIsInRleHR1cmVJbmRleCIsImxlbmd0aCIsInB1c2giLCJuZWVkc1VwZGF0ZSIsInVwZGF0ZSIsImkiLCJpbWFnZSIsImUiLCJ3IiwiaCIsInN0YXRzIiwiaWkiLCJ4IiwieSIsImRyYXdJbWFnZSIsImRlc3Ryb3kiLCJkaXNwb3NlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSx5QkFERixFQUVFQyx3QkFGRixRQUdPLGdCQUhQO0FBS0EsU0FBU0MsaUJBQVQsUUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxPQUFULFFBQXdCLHVCQUF4QjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsU0FBcEI7QUFFQTs7Ozs7QUFJQSxlQUFlLE1BQU1DLFlBQU4sQ0FBbUI7QUFDaENDLEVBQUFBLFdBQVcsQ0FBQ0MsUUFBRCxFQUFXQyxXQUFYLEVBQXdCO0FBQ2pDLFVBQU07QUFBRUMsTUFBQUEsS0FBSyxFQUFFQyxLQUFUO0FBQWdCQyxNQUFBQSxJQUFJLEVBQUVDO0FBQXRCLFFBQXVDTCxRQUE3QztBQUNBLFVBQU1NLElBQUksR0FBRyxJQUFJQyxZQUFKLENBQWlCWixpQkFBaUIsR0FBRyxDQUFyQyxDQUFiO0FBQ0EsVUFBTWEsR0FBRyxHQUFJLEtBQUtBLEdBQUwsR0FBV0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLFFBQXZCLEVBQWlDQyxVQUFqQyxDQUE0QyxJQUE1QyxDQUF4QjtBQUNBLFVBQU07QUFBRUMsTUFBQUE7QUFBRixRQUFhSixHQUFuQjtBQUVBLFNBQUtQLFdBQUwsR0FBbUJBLFdBQW5CO0FBQ0EsU0FBS0ksWUFBTCxHQUFvQkEsWUFBcEI7QUFDQSxTQUFLUSxTQUFMLEdBQWlCUCxJQUFqQjtBQUNBLFNBQUtNLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtFLE9BQUwsR0FBZSxFQUFmOztBQUVBLFFBQUlULFlBQVksS0FBS1oseUJBQXJCLEVBQWdEO0FBQzlDLFdBQUtzQixVQUFMLEdBQWtCLElBQUlaLEtBQUssQ0FBQ2EsV0FBVixDQUNoQlYsSUFEZ0IsRUFFaEJYLGlCQUZnQixFQUdoQixDQUhnQixFQUloQlEsS0FBSyxDQUFDYyxVQUpVLEVBS2hCZCxLQUFLLENBQUNlLFNBTFUsQ0FBbEI7QUFPRDs7QUFFRE4sSUFBQUEsTUFBTSxDQUFDTyxLQUFQLEdBQWVQLE1BQU0sQ0FBQ1EsTUFBUCxHQUFnQnpCLGlCQUEvQjs7QUFFQSxRQUFJTSxXQUFKLEVBQWlCO0FBQ2YsV0FBS29CLEtBQUwsQ0FBV1QsTUFBWCxFQUFtQkosR0FBbkI7QUFDRDs7QUFFRCxTQUFLYyxZQUFMLEdBQW9CLElBQUluQixLQUFLLENBQUNvQixhQUFWLENBQXdCWCxNQUF4QixDQUFwQjtBQUNBLFNBQUtVLFlBQUwsQ0FBa0JFLEtBQWxCLEdBQTBCLEtBQTFCO0FBRUF4QixJQUFBQSxRQUFRLENBQUN5QixRQUFULENBQWtCQyxRQUFsQixDQUEyQkMsUUFBM0IsQ0FBb0NDLEtBQXBDLEdBQTRDLEtBQUtOLFlBQWpEOztBQUVBLFFBQUlqQixZQUFZLEtBQUtaLHlCQUFyQixFQUFnRDtBQUM5Q08sTUFBQUEsUUFBUSxDQUFDeUIsUUFBVCxDQUFrQkMsUUFBbEIsQ0FBMkJYLFVBQTNCLENBQXNDYSxLQUF0QyxHQUE4QyxLQUFLYixVQUFuRDtBQUNEOztBQUVEZixJQUFBQSxRQUFRLENBQUN5QixRQUFULENBQWtCSSxrQkFBbEIsR0FBdUMsSUFBdkM7QUFDRDtBQUVEOzs7Ozs7QUFJQUMsRUFBQUEsR0FBRyxDQUFDLEdBQUdDLElBQUosRUFBVTtBQUNYLFFBQUksQ0FBQ25DLE9BQUwsRUFBYztBQUNaO0FBQ0Q7O0FBRURvQyxJQUFBQSxPQUFPLENBQUNGLEdBQVIsQ0FBWSxHQUFHQyxJQUFmO0FBQ0Q7QUFFRDs7Ozs7O0FBSUFWLEVBQUFBLEtBQUssR0FBRztBQUNOLFVBQU07QUFBRVQsTUFBQUEsTUFBRjtBQUFVSixNQUFBQTtBQUFWLFFBQWtCLElBQXhCO0FBQ0EsVUFBTXlCLE9BQU8sR0FBR3JCLE1BQU0sQ0FBQ08sS0FBdkI7QUFFQVgsSUFBQUEsR0FBRyxDQUFDMEIsU0FBSixHQUFnQixRQUFoQjtBQUNBMUIsSUFBQUEsR0FBRyxDQUFDMkIsUUFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUJGLE9BQW5CLEVBQTRCQSxPQUE1QjtBQUNBekIsSUFBQUEsR0FBRyxDQUFDMEIsU0FBSixHQUFnQixPQUFoQjtBQUNBMUIsSUFBQUEsR0FBRyxDQUFDMkIsUUFBSixDQUFhLENBQWIsRUFBZ0JGLE9BQWhCLEVBQXlCQSxPQUF6QixFQUFrQ0EsT0FBbEM7QUFDQXpCLElBQUFBLEdBQUcsQ0FBQzBCLFNBQUosR0FBZ0IsTUFBaEI7QUFDQTFCLElBQUFBLEdBQUcsQ0FBQzJCLFFBQUosQ0FBYUYsT0FBYixFQUFzQixDQUF0QixFQUF5QkEsT0FBekIsRUFBa0NBLE9BQWxDO0FBQ0F6QixJQUFBQSxHQUFHLENBQUMwQixTQUFKLEdBQWdCLFFBQWhCO0FBQ0ExQixJQUFBQSxHQUFHLENBQUMyQixRQUFKLENBQWFGLE9BQWIsRUFBc0JBLE9BQXRCLEVBQStCQSxPQUEvQixFQUF3Q0EsT0FBeEM7QUFDQXpCLElBQUFBLEdBQUcsQ0FBQzBCLFNBQUosR0FBZ0IsUUFBaEI7QUFDQTFCLElBQUFBLEdBQUcsQ0FBQzRCLElBQUosR0FBV3hCLE1BQU0sQ0FBQ08sS0FBUCxHQUFlLFlBQTFCO0FBQ0FYLElBQUFBLEdBQUcsQ0FBQzZCLFFBQUosQ0FBYSxTQUFiLEVBQXdCLEdBQXhCLEVBQTZCLEdBQTdCO0FBQ0E3QixJQUFBQSxHQUFHLENBQUMwQixTQUFKLEdBQWdCLE1BQWhCO0FBQ0ExQixJQUFBQSxHQUFHLENBQUM2QixRQUFKLENBQWEsWUFBYixFQUEyQixHQUEzQixFQUFnQyxJQUFoQztBQUVBekIsSUFBQUEsTUFBTSxDQUFDMEIsS0FBUCxDQUFhQyxRQUFiLEdBQXdCLFVBQXhCO0FBQ0EzQixJQUFBQSxNQUFNLENBQUMwQixLQUFQLENBQWFuQixLQUFiLEdBQXFCUCxNQUFNLENBQUMwQixLQUFQLENBQWFsQixNQUFiLEdBQXNCLE9BQTNDO0FBQ0FSLElBQUFBLE1BQU0sQ0FBQzBCLEtBQVAsQ0FBYUUsSUFBYixHQUFvQjVCLE1BQU0sQ0FBQzBCLEtBQVAsQ0FBYUcsR0FBYixHQUFtQixLQUF2QztBQUNBN0IsSUFBQUEsTUFBTSxDQUFDMEIsS0FBUCxDQUFhSSxNQUFiLEdBQXNCLEdBQXRCO0FBRUFqQyxJQUFBQSxRQUFRLENBQUNrQyxJQUFULENBQWNDLFdBQWQsQ0FBMEJoQyxNQUExQjtBQUNEO0FBRUQ7Ozs7OztBQUlBaUMsRUFBQUEsVUFBVSxDQUFDQyxPQUFELEVBQVU7QUFDbEIsU0FBS2hCLEdBQUwsQ0FBUywwQkFBVCxFQUFxQ2dCLE9BQU8sQ0FBQ0MsSUFBN0M7QUFFQUQsSUFBQUEsT0FBTyxDQUFDRSxZQUFSLEdBQXVCLEtBQUtsQyxPQUFMLENBQWFtQyxNQUFwQztBQUNBLFNBQUtuQyxPQUFMLENBQWFvQyxJQUFiLENBQWtCO0FBQUVKLE1BQUFBLE9BQU8sRUFBRUE7QUFBWCxLQUFsQjtBQUNBLFNBQUtLLFdBQUwsR0FBbUIsSUFBbkI7QUFDRDtBQUVEOzs7Ozs7QUFJQUMsRUFBQUEsTUFBTSxHQUFHO0FBQ1AsUUFBSSxDQUFDLEtBQUtELFdBQVYsRUFBdUI7QUFDckI7QUFDRDs7QUFFRCxVQUFNO0FBQ0pyQyxNQUFBQSxPQURJO0FBRUpGLE1BQUFBLE1BRkk7QUFHSkMsTUFBQUEsU0FISTtBQUlKTCxNQUFBQSxHQUpJO0FBS0pPLE1BQUFBLFVBTEk7QUFNSk8sTUFBQUEsWUFOSTtBQU9KakIsTUFBQUE7QUFQSSxRQVFGLElBUko7O0FBVUEsU0FBSyxJQUFJZ0QsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR3ZDLE9BQU8sQ0FBQ21DLE1BQTVCLEVBQW9DSSxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDLFVBQUksQ0FBQ3ZDLE9BQU8sQ0FBQ3VDLENBQUQsQ0FBUCxDQUFXUCxPQUFYLENBQW1CUSxLQUF4QixFQUErQjtBQUM3QjtBQUNEO0FBQ0Y7O0FBRUQsU0FBS0gsV0FBTCxHQUFtQixLQUFuQjs7QUFFQSxTQUFLLElBQUlFLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUd2QyxPQUFPLENBQUNtQyxNQUE1QixFQUFvQ0ksQ0FBQyxFQUFyQyxFQUF5QztBQUN2QyxZQUFNRSxDQUFDLEdBQUd6QyxPQUFPLENBQUN1QyxDQUFELENBQWpCO0FBQ0EsWUFBTTtBQUFFUCxRQUFBQTtBQUFGLFVBQWNTLENBQXBCO0FBQ0EsWUFBTTtBQUFFcEMsUUFBQUEsS0FBRjtBQUFTQyxRQUFBQTtBQUFULFVBQW9CMEIsT0FBTyxDQUFDUSxLQUFsQztBQUVBQyxNQUFBQSxDQUFDLENBQUNDLENBQUYsR0FBTXJDLEtBQU47QUFDQW9DLE1BQUFBLENBQUMsQ0FBQ0UsQ0FBRixHQUFNckMsTUFBTjtBQUNEOztBQUVELFVBQU1zQyxLQUFLLEdBQUc3RCxPQUFPLENBQUNpQixPQUFELENBQXJCO0FBRUEsU0FBS2dCLEdBQUwsQ0FBUyxnQkFBVCxFQUEyQjRCLEtBQTNCOztBQUVBLFFBQUk5QyxNQUFNLENBQUNPLEtBQVAsSUFBZ0J1QyxLQUFLLENBQUNGLENBQXRCLElBQTJCNUMsTUFBTSxDQUFDUSxNQUFQLElBQWlCc0MsS0FBSyxDQUFDRCxDQUF0RCxFQUF5RDtBQUN2RDdDLE1BQUFBLE1BQU0sQ0FBQ08sS0FBUCxHQUFldUMsS0FBSyxDQUFDRixDQUFyQjtBQUNBNUMsTUFBQUEsTUFBTSxDQUFDUSxNQUFQLEdBQWdCc0MsS0FBSyxDQUFDRCxDQUF0QjtBQUNEOztBQUVELFNBQUssSUFBSUosQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR3ZDLE9BQU8sQ0FBQ21DLE1BQTVCLEVBQW9DSSxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDLFlBQU1FLENBQUMsR0FBRyxLQUFLekMsT0FBTCxDQUFhdUMsQ0FBYixDQUFWO0FBQ0EsWUFBTU0sRUFBRSxHQUFHSixDQUFDLENBQUNULE9BQUYsQ0FBVUUsWUFBVixHQUF5QixDQUFwQzs7QUFFQSxVQUFJM0MsWUFBWSxLQUFLWix5QkFBckIsRUFBZ0Q7QUFDOUNvQixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CSixDQUFDLENBQUNLLENBQUYsR0FBTWhELE1BQU0sQ0FBQ08sS0FBakM7QUFDQU4sUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQkosQ0FBQyxDQUFDTSxDQUFGLEdBQU1qRCxNQUFNLENBQUNRLE1BQWpDO0FBQ0FQLFFBQUFBLFNBQVMsQ0FBQzhDLEVBQUUsR0FBRyxDQUFOLENBQVQsR0FBb0IsQ0FBQ0osQ0FBQyxDQUFDSyxDQUFGLEdBQU1MLENBQUMsQ0FBQ0MsQ0FBVCxJQUFjNUMsTUFBTSxDQUFDTyxLQUF6QztBQUNBTixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CLENBQUNKLENBQUMsQ0FBQ00sQ0FBRixHQUFNTixDQUFDLENBQUNFLENBQVQsSUFBYzdDLE1BQU0sQ0FBQ1EsTUFBekM7QUFDRDs7QUFFRCxVQUFJZixZQUFZLEtBQUtYLHdCQUFyQixFQUErQztBQUM3Q21CLFFBQUFBLFNBQVMsQ0FBQzhDLEVBQUUsR0FBRyxDQUFOLENBQVQsR0FBb0JKLENBQUMsQ0FBQ0ssQ0FBRixJQUFPaEQsTUFBTSxDQUFDTyxLQUFQLEdBQWUsQ0FBdEIsQ0FBcEI7QUFDQU4sUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQkosQ0FBQyxDQUFDTSxDQUFGLElBQU9qRCxNQUFNLENBQUNRLE1BQVAsR0FBZ0IsQ0FBdkIsQ0FBcEI7QUFDQVAsUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQixDQUFDSixDQUFDLENBQUNLLENBQUYsR0FBTUwsQ0FBQyxDQUFDQyxDQUFULEtBQWU1QyxNQUFNLENBQUNPLEtBQVAsR0FBZSxDQUE5QixDQUFwQjtBQUNBTixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CLENBQUNKLENBQUMsQ0FBQ00sQ0FBRixHQUFNTixDQUFDLENBQUNFLENBQVQsS0FBZTdDLE1BQU0sQ0FBQ1EsTUFBUCxHQUFnQixDQUEvQixDQUFwQjtBQUNEOztBQUVEWixNQUFBQSxHQUFHLENBQUNzRCxTQUFKLENBQWNQLENBQUMsQ0FBQ1QsT0FBRixDQUFVUSxLQUF4QixFQUErQkMsQ0FBQyxDQUFDSyxDQUFqQyxFQUFvQ0wsQ0FBQyxDQUFDTSxDQUF0QyxFQUF5Q04sQ0FBQyxDQUFDQyxDQUEzQyxFQUE4Q0QsQ0FBQyxDQUFDRSxDQUFoRDtBQUNEOztBQUVELFFBQUlwRCxZQUFZLEtBQUtaLHlCQUFyQixFQUFnRDtBQUM5Q3NCLE1BQUFBLFVBQVUsQ0FBQ29DLFdBQVgsR0FBeUIsSUFBekI7QUFDRDs7QUFFRDdCLElBQUFBLFlBQVksQ0FBQzZCLFdBQWIsR0FBMkIsSUFBM0I7QUFDRDtBQUVEOzs7Ozs7O0FBS0FZLEVBQUFBLE9BQU8sR0FBRztBQUNSLFVBQU07QUFBRWhELE1BQUFBLFVBQUY7QUFBY08sTUFBQUEsWUFBZDtBQUE0QlYsTUFBQUE7QUFBNUIsUUFBdUMsSUFBN0M7QUFFQVUsSUFBQUEsWUFBWSxDQUFDMEMsT0FBYjtBQUNBakQsSUFBQUEsVUFBVSxJQUFJQSxVQUFVLENBQUNpRCxPQUFYLEVBQWQ7O0FBRUEsUUFBSSxLQUFLL0QsV0FBVCxFQUFzQjtBQUNwQlcsTUFBQUEsTUFBTSxDQUFDcUQsTUFBUDtBQUNEOztBQUVELFNBQUtuRCxPQUFMLEdBQWUsRUFBZjtBQUNEOztBQXhMK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QLFxuICBSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUsXG59IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgREFUQV9URVhUVVJFX1NJWkUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBfX0RFVl9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCBwb3RwYWNrIGZyb20gJ3BvdHBhY2snO1xuXG4vKipcbiAqIER5bmFtaWMgdGV4dHVyZSBhdGxhcyBmb3IgcGVyZm9ybWFudCBzdXBwb3J0IG9mIHN5c3RlbXMgd2l0aCBtdWx0aXBsZSBlbWl0dGVycyBhbmQgdGV4dHVyZXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXh0dXJlQXRsYXMge1xuICBjb25zdHJ1Y3RvcihyZW5kZXJlciwgc2hvdWxkRGVidWcpIHtcbiAgICBjb25zdCB7IHRocmVlOiBUSFJFRSwgdHlwZTogcmVuZGVyZXJUeXBlIH0gPSByZW5kZXJlcjtcbiAgICBjb25zdCBkYXRhID0gbmV3IEZsb2F0MzJBcnJheShEQVRBX1RFWFRVUkVfU0laRSAqIDQpO1xuICAgIGNvbnN0IGN0eCA9ICh0aGlzLmN0eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJykpO1xuICAgIGNvbnN0IHsgY2FudmFzIH0gPSBjdHg7XG5cbiAgICB0aGlzLnNob3VsZERlYnVnID0gc2hvdWxkRGVidWc7XG4gICAgdGhpcy5yZW5kZXJlclR5cGUgPSByZW5kZXJlclR5cGU7XG4gICAgdGhpcy5pbmRleERhdGEgPSBkYXRhO1xuICAgIHRoaXMuY2FudmFzID0gY2FudmFzO1xuICAgIHRoaXMuZW50cmllcyA9IFtdO1xuXG4gICAgaWYgKHJlbmRlcmVyVHlwZSA9PT0gUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCkge1xuICAgICAgdGhpcy5hdGxhc0luZGV4ID0gbmV3IFRIUkVFLkRhdGFUZXh0dXJlKFxuICAgICAgICBkYXRhLFxuICAgICAgICBEQVRBX1RFWFRVUkVfU0laRSxcbiAgICAgICAgMSxcbiAgICAgICAgVEhSRUUuUkdCQUZvcm1hdCxcbiAgICAgICAgVEhSRUUuRmxvYXRUeXBlXG4gICAgICApO1xuICAgIH1cblxuICAgIGNhbnZhcy53aWR0aCA9IGNhbnZhcy5oZWlnaHQgPSBEQVRBX1RFWFRVUkVfU0laRTtcblxuICAgIGlmIChzaG91bGREZWJ1Zykge1xuICAgICAgdGhpcy5kZWJ1ZyhjYW52YXMsIGN0eCk7XG4gICAgfVxuXG4gICAgdGhpcy5hdGxhc1RleHR1cmUgPSBuZXcgVEhSRUUuQ2FudmFzVGV4dHVyZShjYW52YXMpO1xuICAgIHRoaXMuYXRsYXNUZXh0dXJlLmZsaXBZID0gZmFsc2U7XG5cbiAgICByZW5kZXJlci5tYXRlcmlhbC51bmlmb3Jtcy51VGV4dHVyZS52YWx1ZSA9IHRoaXMuYXRsYXNUZXh0dXJlO1xuXG4gICAgaWYgKHJlbmRlcmVyVHlwZSA9PT0gUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCkge1xuICAgICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXMuYXRsYXNJbmRleC52YWx1ZSA9IHRoaXMuYXRsYXNJbmRleDtcbiAgICB9XG5cbiAgICByZW5kZXJlci5tYXRlcmlhbC51bmlmb3Jtc05lZWRVcGRhdGUgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgdG8gdGhlIGNvbnNvbGUgd2hlbiBpbiBkZXYgbW9kZS5cbiAgICpcbiAgICovXG4gIGxvZyguLi5hcmdzKSB7XG4gICAgaWYgKCFfX0RFVl9fKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogRGVidWdzIHRoZSB0ZXh0dXJlIGF0bGFzIGJ5IHJlbmRlcmluZyBpdCB0byBhIGNhbnZhcyBpbiB0aGUgRE9NLlxuICAgKlxuICAgKi9cbiAgZGVidWcoKSB7XG4gICAgY29uc3QgeyBjYW52YXMsIGN0eCB9ID0gdGhpcztcbiAgICBjb25zdCBoYWxmbWF4ID0gY2FudmFzLndpZHRoO1xuXG4gICAgY3R4LmZpbGxTdHlsZSA9ICdwdXJwbGUnO1xuICAgIGN0eC5maWxsUmVjdCgwLCAwLCBoYWxmbWF4LCBoYWxmbWF4KTtcbiAgICBjdHguZmlsbFN0eWxlID0gJ2dyZWVuJztcbiAgICBjdHguZmlsbFJlY3QoMCwgaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICdibHVlJztcbiAgICBjdHguZmlsbFJlY3QoaGFsZm1heCwgMCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICdvcmFuZ2UnO1xuICAgIGN0eC5maWxsUmVjdChoYWxmbWF4LCBoYWxmbWF4LCBoYWxmbWF4LCBoYWxmbWF4KTtcbiAgICBjdHguZmlsbFN0eWxlID0gJ3llbGxvdyc7XG4gICAgY3R4LmZvbnQgPSBjYW52YXMud2lkdGggKyAncHggVmVyZGFuYSc7XG4gICAgY3R4LmZpbGxUZXh0KCd0b3Agcm93JywgMTAwLCA1MDApO1xuICAgIGN0eC5maWxsU3R5bGUgPSAncGluayc7XG4gICAgY3R4LmZpbGxUZXh0KCdib3R0b20gcm93JywgMTAwLCAxNTAwKTtcblxuICAgIGNhbnZhcy5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgY2FudmFzLnN0eWxlLndpZHRoID0gY2FudmFzLnN0eWxlLmhlaWdodCA9ICczMDBweCc7XG4gICAgY2FudmFzLnN0eWxlLmxlZnQgPSBjYW52YXMuc3R5bGUudG9wID0gJzBweCc7XG4gICAgY2FudmFzLnN0eWxlLnpJbmRleCA9IDEwMDtcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgdGV4dHVyZSB0byB0aGUgdGV4dHVyZSBhdGxhcyBhbmQgZmxhZ3MgdGhhdCB0aGUgYXRsYXMgbmVlZHMgdG8gYmUgdXBkYXRlZC5cbiAgICpcbiAgICovXG4gIGFkZFRleHR1cmUodGV4dHVyZSkge1xuICAgIHRoaXMubG9nKCdBZGRpbmcgdGV4dHVyZSB0byBhdGxhczonLCB0ZXh0dXJlLnV1aWQpO1xuXG4gICAgdGV4dHVyZS50ZXh0dXJlSW5kZXggPSB0aGlzLmVudHJpZXMubGVuZ3RoO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHsgdGV4dHVyZTogdGV4dHVyZSB9KTtcbiAgICB0aGlzLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSB0ZXh0dXJlIGF0bGFzLiBXaWxsIG9ubHkgcmVidWlsZCB0aGUgYXRsYXMgaWYgYWxsIGltYWdlcyBhcmUgbG9hZGVkLlxuICAgKlxuICAgKi9cbiAgdXBkYXRlKCkge1xuICAgIGlmICghdGhpcy5uZWVkc1VwZGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHtcbiAgICAgIGVudHJpZXMsXG4gICAgICBjYW52YXMsXG4gICAgICBpbmRleERhdGEsXG4gICAgICBjdHgsXG4gICAgICBhdGxhc0luZGV4LFxuICAgICAgYXRsYXNUZXh0dXJlLFxuICAgICAgcmVuZGVyZXJUeXBlLFxuICAgIH0gPSB0aGlzO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIWVudHJpZXNbaV0udGV4dHVyZS5pbWFnZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5uZWVkc1VwZGF0ZSA9IGZhbHNlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlID0gZW50cmllc1tpXTtcbiAgICAgIGNvbnN0IHsgdGV4dHVyZSB9ID0gZTtcbiAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGV4dHVyZS5pbWFnZTtcblxuICAgICAgZS53ID0gd2lkdGg7XG4gICAgICBlLmggPSBoZWlnaHQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdHMgPSBwb3RwYWNrKGVudHJpZXMpO1xuXG4gICAgdGhpcy5sb2coJ1JlYnVpbHQgYXRsYXM6Jywgc3RhdHMpO1xuXG4gICAgaWYgKGNhbnZhcy53aWR0aCAhPSBzdGF0cy53IHx8IGNhbnZhcy5oZWlnaHQgIT0gc3RhdHMuaCkge1xuICAgICAgY2FudmFzLndpZHRoID0gc3RhdHMudztcbiAgICAgIGNhbnZhcy5oZWlnaHQgPSBzdGF0cy5oO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZSA9IHRoaXMuZW50cmllc1tpXTtcbiAgICAgIGNvbnN0IGlpID0gZS50ZXh0dXJlLnRleHR1cmVJbmRleCAqIDQ7XG5cbiAgICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMF0gPSBlLnggLyBjYW52YXMud2lkdGg7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDFdID0gZS55IC8gY2FudmFzLmhlaWdodDtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMl0gPSAoZS54ICsgZS53KSAvIGNhbnZhcy53aWR0aDtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgM10gPSAoZS55ICsgZS5oKSAvIGNhbnZhcy5oZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX01PQklMRSkge1xuICAgICAgICBpbmRleERhdGFbaWkgKyAwXSA9IGUueCAvIChjYW52YXMud2lkdGggKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMV0gPSBlLnkgLyAoY2FudmFzLmhlaWdodCArIDEpO1xuICAgICAgICBpbmRleERhdGFbaWkgKyAyXSA9IChlLnggKyBlLncpIC8gKGNhbnZhcy53aWR0aCArIDEpO1xuICAgICAgICBpbmRleERhdGFbaWkgKyAzXSA9IChlLnkgKyBlLmgpIC8gKGNhbnZhcy5oZWlnaHQgKyAxKTtcbiAgICAgIH1cblxuICAgICAgY3R4LmRyYXdJbWFnZShlLnRleHR1cmUuaW1hZ2UsIGUueCwgZS55LCBlLncsIGUuaCk7XG4gICAgfVxuXG4gICAgaWYgKHJlbmRlcmVyVHlwZSA9PT0gUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCkge1xuICAgICAgYXRsYXNJbmRleC5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgYXRsYXNUZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwb3NlcyBvZiB0aGUgdGV4dHVyZXMgdXNlZCBieSB0aGUgdGV4dHVyZSBhdGxhcy5cbiAgICpcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIGNvbnN0IHsgYXRsYXNJbmRleCwgYXRsYXNUZXh0dXJlLCBjYW52YXMgfSA9IHRoaXM7XG5cbiAgICBhdGxhc1RleHR1cmUuZGlzcG9zZSgpO1xuICAgIGF0bGFzSW5kZXggJiYgYXRsYXNJbmRleC5kaXNwb3NlKCk7XG5cbiAgICBpZiAodGhpcy5zaG91bGREZWJ1Zykge1xuICAgICAgY2FudmFzLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIHRoaXMuZW50cmllcyA9IFtdO1xuICB9XG59XG4iXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vVGV4dHVyZUF0bGFzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AiLCJSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUiLCJEQVRBX1RFWFRVUkVfU0laRSIsIl9fREVWX18iLCJwb3RwYWNrIiwiVGV4dHVyZUF0bGFzIiwiY29uc3RydWN0b3IiLCJyZW5kZXJlciIsInNob3VsZERlYnVnIiwidGhyZWUiLCJUSFJFRSIsInR5cGUiLCJyZW5kZXJlclR5cGUiLCJkYXRhIiwiRmxvYXQzMkFycmF5IiwiY3R4IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZ2V0Q29udGV4dCIsImNhbnZhcyIsImluZGV4RGF0YSIsImVudHJpZXMiLCJhdGxhc0luZGV4IiwiRGF0YVRleHR1cmUiLCJSR0JBRm9ybWF0IiwiRmxvYXRUeXBlIiwid2lkdGgiLCJoZWlnaHQiLCJkZWJ1ZyIsImF0bGFzVGV4dHVyZSIsIkNhbnZhc1RleHR1cmUiLCJmbGlwWSIsIm1hdGVyaWFsIiwidW5pZm9ybXMiLCJ1VGV4dHVyZSIsInZhbHVlIiwidW5pZm9ybXNOZWVkVXBkYXRlIiwibG9nIiwiYXJncyIsImNvbnNvbGUiLCJoYWxmbWF4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJmb250IiwiZmlsbFRleHQiLCJzdHlsZSIsInBvc2l0aW9uIiwibGVmdCIsInRvcCIsInpJbmRleCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImFkZFRleHR1cmUiLCJ0ZXh0dXJlIiwidXVpZCIsInRleHR1cmVJbmRleCIsImxlbmd0aCIsInB1c2giLCJuZWVkc1VwZGF0ZSIsInVwZGF0ZSIsImkiLCJpbWFnZSIsImUiLCJ3IiwiaCIsInN0YXRzIiwiaWkiLCJ4IiwieSIsImRyYXdJbWFnZSIsImRlc3Ryb3kiLCJkaXNwb3NlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNF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QUEzQyxFQUE4Q0QsQ0FBQyxDQUFDRSxDQUFoRDtBQUNEOztBQUVELFFBQUlwRCxZQUFZLEtBQUtaLHlCQUFyQixFQUFnRDtBQUM5Q3NCLE1BQUFBLFVBQVUsQ0FBQ29DLFdBQVgsR0FBeUIsSUFBekI7QUFDRDs7QUFFRDdCLElBQUFBLFlBQVksQ0FBQzZCLFdBQWIsR0FBMkIsSUFBM0I7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFWSxFQUFBQSxPQUFPLEdBQUc7QUFDUixVQUFNO0FBQUVoRCxNQUFBQSxVQUFGO0FBQWNPLE1BQUFBLFlBQWQ7QUFBNEJWLE1BQUFBO0FBQTVCLFFBQXVDLElBQTdDO0FBRUFVLElBQUFBLFlBQVksQ0FBQzBDLE9BQWI7QUFDQWpELElBQUFBLFVBQVUsSUFBSUEsVUFBVSxDQUFDaUQsT0FBWCxFQUFkOztBQUVBLFFBQUksS0FBSy9ELFdBQVQsRUFBc0I7QUFDcEJXLE1BQUFBLE1BQU0sQ0FBQ3FELE1BQVA7QUFDRDs7QUFFRCxTQUFLbkQsT0FBTCxHQUFlLEVBQWY7QUFDRDs7QUF4TCtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCxcbiAgUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFLFxufSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IERBVEFfVEVYVFVSRV9TSVpFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgX19ERVZfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgcG90cGFjayBmcm9tICdwb3RwYWNrJztcblxuLyoqXG4gKiBEeW5hbWljIHRleHR1cmUgYXRsYXMgZm9yIHBlcmZvcm1hbnQgc3VwcG9ydCBvZiBzeXN0ZW1zIHdpdGggbXVsdGlwbGUgZW1pdHRlcnMgYW5kIHRleHR1cmVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dHVyZUF0bGFzIHtcbiAgY29uc3RydWN0b3IocmVuZGVyZXIsIHNob3VsZERlYnVnKSB7XG4gICAgY29uc3QgeyB0aHJlZTogVEhSRUUsIHR5cGU6IHJlbmRlcmVyVHlwZSB9ID0gcmVuZGVyZXI7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBGbG9hdDMyQXJyYXkoREFUQV9URVhUVVJFX1NJWkUgKiA0KTtcbiAgICBjb25zdCBjdHggPSAodGhpcy5jdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpKTtcbiAgICBjb25zdCB7IGNhbnZhcyB9ID0gY3R4O1xuXG4gICAgdGhpcy5zaG91bGREZWJ1ZyA9IHNob3VsZERlYnVnO1xuICAgIHRoaXMucmVuZGVyZXJUeXBlID0gcmVuZGVyZXJUeXBlO1xuICAgIHRoaXMuaW5kZXhEYXRhID0gZGF0YTtcbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIHRoaXMuYXRsYXNJbmRleCA9IG5ldyBUSFJFRS5EYXRhVGV4dHVyZShcbiAgICAgICAgZGF0YSxcbiAgICAgICAgREFUQV9URVhUVVJFX1NJWkUsXG4gICAgICAgIDEsXG4gICAgICAgIFRIUkVFLlJHQkFGb3JtYXQsXG4gICAgICAgIFRIUkVFLkZsb2F0VHlwZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW52YXMud2lkdGggPSBjYW52YXMuaGVpZ2h0ID0gREFUQV9URVhUVVJFX1NJWkU7XG5cbiAgICBpZiAoc2hvdWxkRGVidWcpIHtcbiAgICAgIHRoaXMuZGVidWcoY2FudmFzLCBjdHgpO1xuICAgIH1cblxuICAgIHRoaXMuYXRsYXNUZXh0dXJlID0gbmV3IFRIUkVFLkNhbnZhc1RleHR1cmUoY2FudmFzKTtcbiAgICB0aGlzLmF0bGFzVGV4dHVyZS5mbGlwWSA9IGZhbHNlO1xuXG4gICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXMudVRleHR1cmUudmFsdWUgPSB0aGlzLmF0bGFzVGV4dHVyZTtcblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIHJlbmRlcmVyLm1hdGVyaWFsLnVuaWZvcm1zLmF0bGFzSW5kZXgudmFsdWUgPSB0aGlzLmF0bGFzSW5kZXg7XG4gICAgfVxuXG4gICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXNOZWVkVXBkYXRlID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIHRvIHRoZSBjb25zb2xlIHdoZW4gaW4gZGV2IG1vZGUuXG4gICAqXG4gICAqL1xuICBsb2coLi4uYXJncykge1xuICAgIGlmICghX19ERVZfXykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYnVncyB0aGUgdGV4dHVyZSBhdGxhcyBieSByZW5kZXJpbmcgaXQgdG8gYSBjYW52YXMgaW4gdGhlIERPTS5cbiAgICpcbiAgICovXG4gIGRlYnVnKCkge1xuICAgIGNvbnN0IHsgY2FudmFzLCBjdHggfSA9IHRoaXM7XG4gICAgY29uc3QgaGFsZm1heCA9IGNhbnZhcy53aWR0aDtcblxuICAgIGN0eC5maWxsU3R5bGUgPSAncHVycGxlJztcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICdncmVlbic7XG4gICAgY3R4LmZpbGxSZWN0KDAsIGhhbGZtYXgsIGhhbGZtYXgsIGhhbGZtYXgpO1xuICAgIGN0eC5maWxsU3R5bGUgPSAnYmx1ZSc7XG4gICAgY3R4LmZpbGxSZWN0KGhhbGZtYXgsIDAsIGhhbGZtYXgsIGhhbGZtYXgpO1xuICAgIGN0eC5maWxsU3R5bGUgPSAnb3JhbmdlJztcbiAgICBjdHguZmlsbFJlY3QoaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICd5ZWxsb3cnO1xuICAgIGN0eC5mb250ID0gY2FudmFzLndpZHRoICsgJ3B4IFZlcmRhbmEnO1xuICAgIGN0eC5maWxsVGV4dCgndG9wIHJvdycsIDEwMCwgNTAwKTtcbiAgICBjdHguZmlsbFN0eWxlID0gJ3BpbmsnO1xuICAgIGN0eC5maWxsVGV4dCgnYm90dG9tIHJvdycsIDEwMCwgMTUwMCk7XG5cbiAgICBjYW52YXMuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGNhbnZhcy5zdHlsZS53aWR0aCA9IGNhbnZhcy5zdHlsZS5oZWlnaHQgPSAnMzAwcHgnO1xuICAgIGNhbnZhcy5zdHlsZS5sZWZ0ID0gY2FudmFzLnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgIGNhbnZhcy5zdHlsZS56SW5kZXggPSAxMDA7XG5cbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRleHR1cmUgdG8gdGhlIHRleHR1cmUgYXRsYXMgYW5kIGZsYWdzIHRoYXQgdGhlIGF0bGFzIG5lZWRzIHRvIGJlIHVwZGF0ZWQuXG4gICAqXG4gICAqL1xuICBhZGRUZXh0dXJlKHRleHR1cmUpIHtcbiAgICB0aGlzLmxvZygnQWRkaW5nIHRleHR1cmUgdG8gYXRsYXM6JywgdGV4dHVyZS51dWlkKTtcblxuICAgIHRleHR1cmUudGV4dHVyZUluZGV4ID0gdGhpcy5lbnRyaWVzLmxlbmd0aDtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7IHRleHR1cmU6IHRleHR1cmUgfSk7XG4gICAgdGhpcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgdGV4dHVyZSBhdGxhcy4gV2lsbCBvbmx5IHJlYnVpbGQgdGhlIGF0bGFzIGlmIGFsbCBpbWFnZXMgYXJlIGxvYWRlZC5cbiAgICpcbiAgICovXG4gIHVwZGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMubmVlZHNVcGRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBlbnRyaWVzLFxuICAgICAgY2FudmFzLFxuICAgICAgaW5kZXhEYXRhLFxuICAgICAgY3R4LFxuICAgICAgYXRsYXNJbmRleCxcbiAgICAgIGF0bGFzVGV4dHVyZSxcbiAgICAgIHJlbmRlcmVyVHlwZSxcbiAgICB9ID0gdGhpcztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFlbnRyaWVzW2ldLnRleHR1cmUuaW1hZ2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubmVlZHNVcGRhdGUgPSBmYWxzZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZSA9IGVudHJpZXNbaV07XG4gICAgICBjb25zdCB7IHRleHR1cmUgfSA9IGU7XG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRleHR1cmUuaW1hZ2U7XG5cbiAgICAgIGUudyA9IHdpZHRoO1xuICAgICAgZS5oID0gaGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXRzID0gcG90cGFjayhlbnRyaWVzKTtcblxuICAgIHRoaXMubG9nKCdSZWJ1aWx0IGF0bGFzOicsIHN0YXRzKTtcblxuICAgIGlmIChjYW52YXMud2lkdGggIT0gc3RhdHMudyB8fCBjYW52YXMuaGVpZ2h0ICE9IHN0YXRzLmgpIHtcbiAgICAgIGNhbnZhcy53aWR0aCA9IHN0YXRzLnc7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gc3RhdHMuaDtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGUgPSB0aGlzLmVudHJpZXNbaV07XG4gICAgICBjb25zdCBpaSA9IGUudGV4dHVyZS50ZXh0dXJlSW5kZXggKiA0O1xuXG4gICAgICBpZiAocmVuZGVyZXJUeXBlID09PSBSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QKSB7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDBdID0gZS54IC8gY2FudmFzLndpZHRoO1xuICAgICAgICBpbmRleERhdGFbaWkgKyAxXSA9IGUueSAvIGNhbnZhcy5oZWlnaHQ7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDJdID0gKGUueCArIGUudykgLyBjYW52YXMud2lkdGg7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDNdID0gKGUueSArIGUuaCkgLyBjYW52YXMuaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBpZiAocmVuZGVyZXJUeXBlID09PSBSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUpIHtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMF0gPSBlLnggLyAoY2FudmFzLndpZHRoICsgMSk7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDFdID0gZS55IC8gKGNhbnZhcy5oZWlnaHQgKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMl0gPSAoZS54ICsgZS53KSAvIChjYW52YXMud2lkdGggKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgM10gPSAoZS55ICsgZS5oKSAvIChjYW52YXMuaGVpZ2h0ICsgMSk7XG4gICAgICB9XG5cbiAgICAgIGN0eC5kcmF3SW1hZ2UoZS50ZXh0dXJlLmltYWdlLCBlLngsIGUueSwgZS53LCBlLmgpO1xuICAgIH1cblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIGF0bGFzSW5kZXgubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGF0bGFzVGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRGlzcG9zZXMgb2YgdGhlIHRleHR1cmVzIHVzZWQgYnkgdGhlIHRleHR1cmUgYXRsYXMuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICBjb25zdCB7IGF0bGFzSW5kZXgsIGF0bGFzVGV4dHVyZSwgY2FudmFzIH0gPSB0aGlzO1xuXG4gICAgYXRsYXNUZXh0dXJlLmRpc3Bvc2UoKTtcbiAgICBhdGxhc0luZGV4ICYmIGF0bGFzSW5kZXguZGlzcG9zZSgpO1xuXG4gICAgaWYgKHRoaXMuc2hvdWxkRGVidWcpIHtcbiAgICAgIGNhbnZhcy5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgfVxufVxuIl19
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
export class Target {
|
|
6
6
|
constructor(THREE) {
|
|
7
7
|
this.position = new THREE.Vector3();
|
|
8
|
+
this.rotation = new THREE.Vector3();
|
|
8
9
|
this.size = 0;
|
|
9
10
|
this.color = new THREE.Color();
|
|
10
11
|
this.alpha = 0;
|
|
@@ -14,6 +15,7 @@ export class Target {
|
|
|
14
15
|
|
|
15
16
|
reset() {
|
|
16
17
|
this.position.set(0, 0, 0);
|
|
18
|
+
this.rotation.set(0, 0, 0);
|
|
17
19
|
this.size = 0;
|
|
18
20
|
this.color.setRGB(0, 0, 0);
|
|
19
21
|
this.alpha = 0;
|
|
@@ -21,4 +23,4 @@ export class Target {
|
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL1RhcmdldC5qcyJdLCJuYW1lcyI6WyJUYXJnZXQiLCJjb25zdHJ1Y3RvciIsIlRIUkVFIiwicG9zaXRpb24iLCJWZWN0b3IzIiwicm90YXRpb24iLCJzaXplIiwiY29sb3IiLCJDb2xvciIsImFscGhhIiwidGV4dHVyZSIsImluZGV4IiwicmVzZXQiLCJzZXQiLCJzZXRSR0IiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxNQUFNQSxNQUFOLENBQWE7QUFDbEJDLEVBQUFBLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2pCLFNBQUtDLFFBQUwsR0FBZ0IsSUFBSUQsS0FBSyxDQUFDRSxPQUFWLEVBQWhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixJQUFJSCxLQUFLLENBQUNFLE9BQVYsRUFBaEI7QUFDQSxTQUFLRSxJQUFMLEdBQVksQ0FBWjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxJQUFJTCxLQUFLLENBQUNNLEtBQVYsRUFBYjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxDQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLQyxLQUFMLEdBQWEsQ0FBYjtBQUNEOztBQUVEQyxFQUFBQSxLQUFLLEdBQUc7QUFDTixTQUFLVCxRQUFMLENBQWNVLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEI7QUFDQSxTQUFLUixRQUFMLENBQWNRLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEI7QUFDQSxTQUFLUCxJQUFMLEdBQVksQ0FBWjtBQUNBLFNBQUtDLEtBQUwsQ0FBV08sTUFBWCxDQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QixDQUF4QjtBQUNBLFNBQUtMLEtBQUwsR0FBYSxDQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDRDs7QUFsQmlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaW1wbGUgY2xhc3MgdGhhdCBzdG9yZXMgdGhlIHBhcnRpY2xlJ3MgXCJ0YXJnZXRcIiBvciBcIm5leHRcIiBzdGF0ZS5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXQge1xuICBjb25zdHJ1Y3RvcihUSFJFRSkge1xuICAgIHRoaXMucG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgIHRoaXMucm90YXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgdGhpcy5jb2xvciA9IG5ldyBUSFJFRS5Db2xvcigpO1xuICAgIHRoaXMuYWxwaGEgPSAwO1xuICAgIHRoaXMudGV4dHVyZSA9IG51bGw7XG4gICAgdGhpcy5pbmRleCA9IDA7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnBvc2l0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLnJvdGF0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLnNpemUgPSAwO1xuICAgIHRoaXMuY29sb3Iuc2V0UkdCKDAsIDAsIDApO1xuICAgIHRoaXMuYWxwaGEgPSAwO1xuICAgIHRoaXMudGV4dHVyZSA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -26,4 +26,4 @@ export class UniqueList {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL1VuaXF1ZUxpc3QuanMiXSwibmFtZXMiOlsiVW5pcXVlTGlzdCIsImNvbnN0cnVjdG9yIiwibWF4IiwiSW5maW5pdHkiLCJjb3VudCIsIl9pdGVtcyIsImFkZCIsIml0ZW0iLCJ1bmRlZmluZWQiLCJmaW5kIiwiZGVzdHJveSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsT0FBTyxNQUFNQSxVQUFOLENBQWlCO0FBQ3RCQyxFQUFBQSxXQUFXLENBQUNDLEdBQUcsR0FBR0MsUUFBUCxFQUFpQjtBQUMxQixTQUFLRCxHQUFMLEdBQVdBLEdBQVg7QUFDQSxTQUFLRSxLQUFMLEdBQWEsQ0FBYjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0Q7O0FBRURDLEVBQUFBLEdBQUcsQ0FBQ0MsSUFBRCxFQUFPO0FBQ1IsUUFBSSxLQUFLRixNQUFMLENBQVlFLElBQVosTUFBc0JDLFNBQTFCLEVBQXFDO0FBQ25DO0FBQ0Q7O0FBRUQsU0FBS0gsTUFBTCxDQUFZRSxJQUFaLElBQW9CLEtBQUtILEtBQUwsRUFBcEI7QUFDRDs7QUFFREssRUFBQUEsSUFBSSxDQUFDRixJQUFELEVBQU87QUFDVCxXQUFPLEtBQUtGLE1BQUwsQ0FBWUUsSUFBWixDQUFQO0FBQ0Q7O0FBRURHLEVBQUFBLE9BQU8sR0FBRztBQUNSLFNBQUtMLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0QsS0FBTCxHQUFhLENBQWI7QUFDRDs7QUF0QnFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYXAgb2YgcGFydGljbGUgSURzIHRvIGludGVnZXIgaWRzXG4gKi9cbmV4cG9ydCBjbGFzcyBVbmlxdWVMaXN0IHtcbiAgY29uc3RydWN0b3IobWF4ID0gSW5maW5pdHkpIHtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLmNvdW50ID0gMDtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICB9XG5cbiAgYWRkKGl0ZW0pIHtcbiAgICBpZiAodGhpcy5faXRlbXNbaXRlbV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2l0ZW1zW2l0ZW1dID0gdGhpcy5jb3VudCsrO1xuICB9XG5cbiAgZmluZChpdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zW2l0ZW1dO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICAgIHRoaXMuY291bnQgPSAwO1xuICB9XG59XG4iXX0=
|
|
@@ -54,4 +54,4 @@ export default class GPURenderer extends BaseRenderer {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJCYXNlUmVuZGVyZXIiLCJERUZBVUxUX1JFTkRFUkVSX09QVElPTlMiLCJEZXNrdG9wR1BVUmVuZGVyZXIiLCJNb2JpbGVHUFVSZW5kZXJlciIsIlJFTkRFUkVSX1RZUEVfR1BVIiwiR1BVUmVuZGVyZXIiLCJjb25zdHJ1Y3RvciIsImNvbnRhaW5lciIsIlRIUkVFIiwib3B0aW9ucyIsInNob3VsZEZvcmNlRGVza3RvcFJlbmRlcmVyIiwic2hvdWxkRm9yY2VNb2JpbGVSZW5kZXJlciIsImFyZ3MiLCJpc0Zsb2F0aW5nUG9pbnRUZXh0dXJlU3VwcG9ydGVkIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luZG93IiwiV2ViR0wyUmVuZGVyaW5nQ29udGV4dCIsImdldENvbnRleHQiLCJnbCIsInN1cHBvcnQiLCJnZXRFeHRlbnNpb24iLCJyZW1vdmUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsaUJBQXpCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsb0JBQXpDO0FBQ0EsT0FBT0Msa0JBQVAsTUFBK0IsV0FBL0I7QUFDQSxPQUFPQyxpQkFBUCxNQUE4QixVQUE5QjtBQUNBLFNBQVNDLGlCQUFULFFBQWtDLFVBQWxDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFdBQU4sU0FBMEJMLFlBQTFCLENBQXVDO0FBQ3BETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUcsaUJBQU47QUFFQSxVQUFNO0FBQUVNLE1BQUFBLDBCQUFGO0FBQThCQyxNQUFBQTtBQUE5QixRQUE0REYsT0FBbEU7QUFDQSxVQUFNRyxJQUFJLEdBQUcsQ0FBQ0wsU0FBRCxFQUFZQyxLQUFaLEVBQW1CQyxPQUFuQixDQUFiOztBQUVBLFFBQUlDLDBCQUFKLEVBQWdDO0FBQzlCLGFBQU8sSUFBSVIsa0JBQUosQ0FBdUIsR0FBR1UsSUFBMUIsQ0FBUDtBQUNEOztBQUVELFFBQUlELHlCQUFKLEVBQStCO0FBQzdCLGFBQU8sSUFBSVIsaUJBQUosQ0FBc0IsR0FBR1MsSUFBekIsQ0FBUDtBQUNEOztBQUVELFFBQUksQ0FBQyxLQUFLQywrQkFBTCxFQUFMLEVBQTZDO0FBQzNDLGFBQU8sSUFBSVYsaUJBQUosQ0FBc0IsR0FBR1MsSUFBekIsQ0FBUDtBQUNEOztBQUVELFdBQU8sSUFBSVYsa0JBQUosQ0FBdUIsR0FBR1UsSUFBMUIsQ0FBUDtBQUNEOztBQUVEQyxFQUFBQSwrQkFBK0IsR0FBRztBQUNoQyxVQUFNQyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixRQUF2QixDQUFmOztBQUVBLFFBQUlDLE1BQU0sQ0FBQ0Msc0JBQVAsSUFBaUNKLE1BQU0sQ0FBQ0ssVUFBUCxDQUFrQixRQUFsQixDQUFyQyxFQUFrRTtBQUNoRTtBQUNBLGFBQU8sSUFBUDtBQUNEOztBQUVELFVBQU1DLEVBQUUsR0FBR04sTUFBTSxDQUFDSyxVQUFQLENBQWtCLE9BQWxCLENBQVg7QUFDQSxVQUFNRSxPQUFPLEdBQUcsQ0FBQyxDQUFDRCxFQUFFLENBQUNFLFlBQUgsQ0FBZ0IsbUJBQWhCLENBQWxCO0FBRUFSLElBQUFBLE1BQU0sQ0FBQ1MsTUFBUDtBQUVBLFdBQU9GLE9BQVA7QUFDRDs7QUFwQ21EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VSZW5kZXJlciBmcm9tICcuLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgREVGQVVMVF9SRU5ERVJFUl9PUFRJT05TIH0gZnJvbSAnLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCBEZXNrdG9wR1BVUmVuZGVyZXIgZnJvbSAnLi9EZXNrdG9wJztcbmltcG9ydCBNb2JpbGVHUFVSZW5kZXJlciBmcm9tICcuL01vYmlsZSc7XG5pbXBvcnQgeyBSRU5ERVJFUl9UWVBFX0dQVSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBQZXJmb3JtYW50IHBhcnRpY2xlIHJlbmRlcmVyIHRoYXQgdXNlcyBUSFJFRS5Qb2ludHMgdG8gcHJvcGFnYXRlIHBhcnRpY2xlIChwb3N0aWlvbiwgcmdiYSBldGMuLCkgcHJvcGVydGllcyB0b1xuICogdmVydGljZXMgaW4gYSBQYXJ0aWNsZUJ1ZmZlckdlb21ldHJ5LlxuICogVXNlcyBhIGR5bmFtaWMgdGV4dHVyZSBhdGxhcyB0byBzdXBwb3J0IHN5c3RlbXMgd2l0aCBtdXRsaXBsZSBzcHJpdGVzIGluIGEgcGVyZm9ybWFudCB3YXkuXG4gKlxuICogTk9URSEgVGhpcyBpcyBhbiBleHBlcmltZW50YWwgcmVuZGVyZXIgYW5kIGlzIGN1cnJlbnRseSBub3QgY292ZXJlZCBieSB0ZXN0cywgY292ZXJhZ2Ugd2lsbCBiZSBhZGRlZCB3aGVuIHRoZSBBUElcbiAqIGlzIG1vcmUgc3RhYmxlLiBDdXJyZW50bHkgb25seSBjb21wYXRpYmxlIHdpdGggc3ByaXRlL3RleHR1cmUgYmFzZWQgc3lzdGVtcy4gTWVzaGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC5cbiAqXG4gKiBAYXV0aG9yIHRocmF4IDxtYW50aHJheEBnbWFpbC5jb20+XG4gKiBAYXV0aG9yIHJvaGFuLWRlc2hwYW5kZSA8cm9oYW5AY3JlYXRpdmVsaWZlZm9ybS5jb20+XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdQVVJlbmRlcmVyIGV4dGVuZHMgQmFzZVJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IoY29udGFpbmVyLCBUSFJFRSwgb3B0aW9ucyA9IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUykge1xuICAgIHN1cGVyKFJFTkRFUkVSX1RZUEVfR1BVKTtcblxuICAgIGNvbnN0IHsgc2hvdWxkRm9yY2VEZXNrdG9wUmVuZGVyZXIsIHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgYXJncyA9IFtjb250YWluZXIsIFRIUkVFLCBvcHRpb25zXTtcblxuICAgIGlmIChzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlcikge1xuICAgICAgcmV0dXJuIG5ldyBEZXNrdG9wR1BVUmVuZGVyZXIoLi4uYXJncyk7XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIpIHtcbiAgICAgIHJldHVybiBuZXcgTW9iaWxlR1BVUmVuZGVyZXIoLi4uYXJncyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzRmxvYXRpbmdQb2ludFRleHR1cmVTdXBwb3J0ZWQoKSkge1xuICAgICAgcmV0dXJuIG5ldyBNb2JpbGVHUFVSZW5kZXJlciguLi5hcmdzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERlc2t0b3BHUFVSZW5kZXJlciguLi5hcmdzKTtcbiAgfVxuXG4gIGlzRmxvYXRpbmdQb2ludFRleHR1cmVTdXBwb3J0ZWQoKSB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cbiAgICBpZiAod2luZG93LldlYkdMMlJlbmRlcmluZ0NvbnRleHQgJiYgY2FudmFzLmdldENvbnRleHQoJ3dlYmdsMicpKSB7XG4gICAgICAvLyByZXR1cm4gZmFsc2UgaGVyZSB0byB0ZXN0IHRoZSBtb2JpbGUgcmVuZGVyZXIgb24gZGVza3RvcFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZ2wgPSBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKTtcbiAgICBjb25zdCBzdXBwb3J0ID0gISFnbC5nZXRFeHRlbnNpb24oJ09FU190ZXh0dXJlX2Zsb2F0Jyk7XG5cbiAgICBjYW52YXMucmVtb3ZlKCk7XG5cbiAgICByZXR1cm4gc3VwcG9ydDtcbiAgfVxufVxuIl19
|
|
@@ -49,8 +49,7 @@ export default class MeshRenderer extends BaseRenderer {
|
|
|
49
49
|
const {
|
|
50
50
|
target,
|
|
51
51
|
useAlpha,
|
|
52
|
-
useColor
|
|
53
|
-
rotation
|
|
52
|
+
useColor
|
|
54
53
|
} = particle;
|
|
55
54
|
|
|
56
55
|
if (!target) {
|
|
@@ -58,11 +57,7 @@ export default class MeshRenderer extends BaseRenderer {
|
|
|
58
57
|
}
|
|
59
58
|
|
|
60
59
|
target.position.copy(particle.position);
|
|
61
|
-
|
|
62
|
-
if (!this.isThreeSprite(particle)) {
|
|
63
|
-
target.rotation.set(rotation.x, rotation.y, rotation.z);
|
|
64
|
-
}
|
|
65
|
-
|
|
60
|
+
this.rotate(particle);
|
|
66
61
|
this.scale(particle);
|
|
67
62
|
|
|
68
63
|
if (useAlpha) {
|
|
@@ -75,6 +70,10 @@ export default class MeshRenderer extends BaseRenderer {
|
|
|
75
70
|
}
|
|
76
71
|
}
|
|
77
72
|
|
|
73
|
+
rotate(particle) {
|
|
74
|
+
particle.target.rotation.set(particle.rotation.x, particle.rotation.y, particle.rotation.z);
|
|
75
|
+
}
|
|
76
|
+
|
|
78
77
|
scale(particle) {
|
|
79
78
|
particle.target.scale.set(particle.scale, particle.scale, particle.scale);
|
|
80
79
|
}
|
|
@@ -91,4 +90,4 @@ export default class MeshRenderer extends BaseRenderer {
|
|
|
91
90
|
}
|
|
92
91
|
|
|
93
92
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9NZXNoUmVuZGVyZXIuanMiXSwibmFtZXMiOlsiQmFzZVJlbmRlcmVyIiwiUFVJRCIsIlBvb2wiLCJSRU5ERVJFUl9UWVBFX01FU0giLCJ0eXBlIiwiTWVzaFJlbmRlcmVyIiwiY29uc3RydWN0b3IiLCJjb250YWluZXIiLCJUSFJFRSIsIl90YXJnZXRQb29sIiwiX21hdGVyaWFsUG9vbCIsIl9ib2R5IiwiTWVzaCIsIkJveEdlb21ldHJ5IiwiTWVzaExhbWJlcnRNYXRlcmlhbCIsImNvbG9yIiwiaXNUaHJlZVNwcml0ZSIsInBhcnRpY2xlIiwidGFyZ2V0IiwiaXNTcHJpdGUiLCJvblN5c3RlbVVwZGF0ZSIsIm9uUGFydGljbGVDcmVhdGVkIiwiYm9keSIsImdldCIsInVzZUFscGhhIiwidXNlQ29sb3IiLCJtYXRlcmlhbCIsIl9fcHVpZCIsImlkIiwicG9zaXRpb24iLCJjb3B5IiwiYWRkIiwib25QYXJ0aWNsZVVwZGF0ZSIsInJvdGF0ZSIsInNjYWxlIiwib3BhY2l0eSIsImFscGhhIiwidHJhbnNwYXJlbnQiLCJyb3RhdGlvbiIsInNldCIsIngiLCJ5IiwieiIsIm9uUGFydGljbGVEZWFkIiwiZXhwaXJlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFQLE1BQXlCLGdCQUF6QjtBQUNBLFNBQVNDLElBQVQsUUFBcUIsVUFBckI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLFNBQXJCO0FBQ0EsU0FBU0Msa0JBQWtCLElBQUlDLElBQS9CLFFBQTJDLFNBQTNDO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsWUFBTixTQUEyQkwsWUFBM0IsQ0FBd0M7QUFDckQ7QUFDRjtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxTQUFELEVBQVlDLEtBQVosRUFBbUI7QUFDNUIsVUFBTUosSUFBTjtBQUVBLFNBQUtHLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0EsU0FBS0UsV0FBTCxHQUFtQixJ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Q0FBQ3FCLFFBQVQsQ0FBa0JJLENBQXpGO0FBQ0Q7O0FBRURSLEVBQUFBLEtBQUssQ0FBQ2pCLFFBQUQsRUFBVztBQUNkQSxJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JnQixLQUFoQixDQUFzQkssR0FBdEIsQ0FBMEJ0QixRQUFRLENBQUNpQixLQUFuQyxFQUEwQ2pCLFFBQVEsQ0FBQ2lCLEtBQW5ELEVBQTBEakIsUUFBUSxDQUFDaUIsS0FBbkU7QUFDRDs7QUFFRFMsRUFBQUEsY0FBYyxDQUFDMUIsUUFBRCxFQUFXO0FBQ3ZCLFFBQUlBLFFBQVEsQ0FBQ0MsTUFBYixFQUFxQjtBQUNuQixVQUFJRCxRQUFRLENBQUNPLFFBQVQsSUFBcUJQLFFBQVEsQ0FBQ1EsUUFBbEMsRUFDRSxLQUFLZixhQUFMLENBQW1Ca0MsTUFBbkIsQ0FBMEIzQixRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBQTFDOztBQUVGLFdBQUtqQixXQUFMLENBQWlCbUMsTUFBakIsQ0FBd0IzQixRQUFRLENBQUNDLE1BQWpDOztBQUNBLFdBQUtYLFNBQUwsQ0FBZXNDLE1BQWYsQ0FBc0I1QixRQUFRLENBQUNDLE1BQS9CO0FBQ0FELE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxHQUFrQixJQUFsQjtBQUNEO0FBQ0Y7O0FBcEZvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgUFVJRCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFBvb2wgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7IFJFTkRFUkVSX1RZUEVfTUVTSCBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQHJlcXVpcmVzIFRIUkVFIC0geyBNZXNoLCBCb3hHZW9tZXRyeSwgTWVzaExhbWJlcnRNYXRlcmlhbCB9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lc2hSZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGFpbmVyIC0gQW4gT2JqZWN0M0QgY29udGFpbmVyLCB1c3VhbGx5IGEgVEhSRUUuU2NlbmVcbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVEhSRUUgQXBpXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb250YWluZXIsIFRIUkVFKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB0aGlzLl90YXJnZXRQb29sID0gbmV3IFBvb2woKTtcbiAgICB0aGlzLl9tYXRlcmlhbFBvb2wgPSBuZXcgUG9vbCgpO1xuICAgIHRoaXMuX2JvZHkgPSBuZXcgVEhSRUUuTWVzaChcbiAgICAgIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSg1MCwgNTAsIDUwKSxcbiAgICAgIG5ldyBUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsKHsgY29sb3I6ICcjZmYwMDAwJyB9KVxuICAgICk7XG4gIH1cblxuICBpc1RocmVlU3ByaXRlKHBhcnRpY2xlKSB7XG4gICAgcmV0dXJuIHBhcnRpY2xlLnRhcmdldC5pc1Nwcml0ZTtcbiAgfVxuXG4gIG9uU3lzdGVtVXBkYXRlKCkge31cblxuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICAvL3NldCB0YXJnZXRcbiAgICAgIGlmICghcGFydGljbGUuYm9keSkgcGFydGljbGUuYm9keSA9IHRoaXMuX2JvZHk7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQgPSB0aGlzLl90YXJnZXRQb29sLmdldChwYXJ0aWNsZS5ib2R5KTtcblxuICAgICAgLy9zZXQgbWF0ZXJpYWxcbiAgICAgIGlmIChwYXJ0aWNsZS51c2VBbHBoYSB8fCBwYXJ0aWNsZS51c2VDb2xvcikge1xuICAgICAgICBwYXJ0aWNsZS50YXJnZXQubWF0ZXJpYWwuX19wdWlkID0gUFVJRC5pZChwYXJ0aWNsZS5ib2R5Lm1hdGVyaWFsKTtcbiAgICAgICAgcGFydGljbGUudGFyZ2V0Lm1hdGVyaWFsID0gdGhpcy5fbWF0ZXJpYWxQb29sLmdldChcbiAgICAgICAgICBwYXJ0aWNsZS50YXJnZXQubWF0ZXJpYWxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQucG9zaXRpb24uY29weShwYXJ0aWNsZS5wb3NpdGlvbik7XG4gICAgICB0aGlzLmNvbnRhaW5lci5hZGQocGFydGljbGUudGFyZ2V0KTtcbiAgICB9XG4gIH1cblxuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgeyB0YXJnZXQsIHVzZUFscGhhLCB1c2VDb2xvciB9ID0gcGFydGljbGU7XG5cbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhcmdldC5wb3NpdGlvbi5jb3B5KHBhcnRpY2xlLnBvc2l0aW9uKTtcblxuICAgIHRoaXMucm90YXRlKHBhcnRpY2xlKTtcblxuICAgIHRoaXMuc2NhbGUocGFydGljbGUpO1xuXG4gICAgaWYgKHVzZUFscGhhKSB7XG4gICAgICB0YXJnZXQubWF0ZXJpYWwub3BhY2l0eSA9IHBhcnRpY2xlLmFscGhhO1xuICAgICAgdGFyZ2V0Lm1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodXNlQ29sb3IpIHtcbiAgICAgIHRhcmdldC5tYXRlcmlhbC5jb2xvci5jb3B5KHBhcnRpY2xlLmNvbG9yKTtcbiAgICB9XG4gIH1cblxuICByb3RhdGUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS50YXJnZXQucm90YXRpb24uc2V0KHBhcnRpY2xlLnJvdGF0aW9uLngsIHBhcnRpY2xlLnJvdGF0aW9uLnksIHBhcnRpY2xlLnJvdGF0aW9uLnopO1xuICB9XG5cbiAgc2NhbGUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS50YXJnZXQuc2NhbGUuc2V0KHBhcnRpY2xlLnNjYWxlLCBwYXJ0aWNsZS5zY2FsZSwgcGFydGljbGUuc2NhbGUpO1xuICB9XG5cbiAgb25QYXJ0aWNsZURlYWQocGFydGljbGUpIHtcbiAgICBpZiAocGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBpZiAocGFydGljbGUudXNlQWxwaGEgfHwgcGFydGljbGUudXNlQ29sb3IpXG4gICAgICAgIHRoaXMuX21hdGVyaWFsUG9vbC5leHBpcmUocGFydGljbGUudGFyZ2V0Lm1hdGVyaWFsKTtcblxuICAgICAgdGhpcy5fdGFyZ2V0UG9vbC5leHBpcmUocGFydGljbGUudGFyZ2V0KTtcbiAgICAgIHRoaXMuY29udGFpbmVyLnJlbW92ZShwYXJ0aWNsZS50YXJnZXQpO1xuICAgICAgcGFydGljbGUudGFyZ2V0ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -18,9 +18,13 @@ export default class SpriteRenderer extends MeshRenderer {
|
|
|
18
18
|
}));
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
rotate(particle) {
|
|
22
|
+
particle.target.material.rotation = particle.rotation.z;
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
scale(particle) {
|
|
22
26
|
particle.target.scale.set(particle.scale * particle.radius, particle.scale * particle.radius, 1);
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9TcHJpdGVSZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJNZXNoUmVuZGVyZXIiLCJSRU5ERVJFUl9UWVBFX1NQUklURSIsInR5cGUiLCJTcHJpdGVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwiVEhSRUUiLCJfYm9keSIsIlNwcml0ZSIsIlNwcml0ZU1hdGVyaWFsIiwiY29sb3IiLCJyb3RhdGUiLCJwYXJ0aWNsZSIsInRhcmdldCIsIm1hdGVyaWFsIiwicm90YXRpb24iLCJ6Iiwic2NhbGUiLCJzZXQiLCJyYWRpdXMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsZ0JBQXpCO0FBQ0EsU0FBU0Msb0JBQW9CLElBQUlDLElBQWpDLFFBQTZDLFNBQTdDO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsWUFBN0IsQ0FBMEM7QUFDdkRJLEVBQUFBLFdBQVcsQ0FBQ0MsU0FBRCxFQUFZQyxLQUFaLEVBQW1CO0FBQzVCLFVBQU1ELFNBQU4sRUFBaUJDLEtBQWpCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0osSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0ssS0FBTCxHQUFhLElBQUlELEtBQUssQ0FBQ0UsTUFBVixDQUNYLElBQUlGLEtBQUssQ0FBQ0csY0FBVixDQUF5QjtBQUFFQyxNQUFBQSxLQUFLLEVBQUU7QUFBVCxLQUF6QixDQURXLENBQWI7QUFHRDs7QUFFREMsRUFBQUEsTUFBTSxDQUFDQyxRQUFELEVBQVc7QUFDZkEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCQyxRQUFoQixDQUF5QkMsUUFBekIsR0FBb0NILFFBQVEsQ0FBQ0csUUFBVCxDQUFrQkMsQ0FBdEQ7QUFDRDs7QUFFREMsRUFBQUEsS0FBSyxDQUFDTCxRQUFELEVBQVc7QUFDZEEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCSSxLQUFoQixDQUFzQkMsR0FBdEIsQ0FDRU4sUUFBUSxDQUFDSyxLQUFULEdBQWlCTCxRQUFRLENBQUNPLE1BRDVCLEVBRUVQLFFBQVEsQ0FBQ0ssS0FBVCxHQUFpQkwsUUFBUSxDQUFDTyxNQUY1QixFQUdFLENBSEY7QUFLRDs7QUF4QnNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1lc2hSZW5kZXJlciBmcm9tICcuL01lc2hSZW5kZXJlcic7XG5pbXBvcnQgeyBSRU5ERVJFUl9UWVBFX1NQUklURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQHJlcXVpcmVzIFRIUkVFIC0geyBNZXNoLCBCb3hHZW9tZXRyeSwgTWVzaExhbWJlcnRNYXRlcmlhbCwgU3ByaXRlLCBTcHJpdGVNYXRlcmlhbCB9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNwcml0ZVJlbmRlcmVyIGV4dGVuZHMgTWVzaFJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IoY29udGFpbmVyLCBUSFJFRSkge1xuICAgIHN1cGVyKGNvbnRhaW5lciwgVEhSRUUpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuX2JvZHkgPSBuZXcgVEhSRUUuU3ByaXRlKFxuICAgICAgbmV3IFRIUkVFLlNwcml0ZU1hdGVyaWFsKHsgY29sb3I6IDB4ZmZmZmZmIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJvdGF0ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRhcmdldC5tYXRlcmlhbC5yb3RhdGlvbiA9IHBhcnRpY2xlLnJvdGF0aW9uLno7XG4gIH1cblxuICBzY2FsZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRhcmdldC5zY2FsZS5zZXQoXG4gICAgICBwYXJ0aWNsZS5zY2FsZSAqIHBhcnRpY2xlLnJhZGl1cyxcbiAgICAgIHBhcnRpY2xlLnNjYWxlICogcGFydGljbGUucmFkaXVzLFxuICAgICAgMVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/build/esm/utils/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
|
|
3
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
4
|
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
6
|
|
package/build/esm/utils/uid.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import uid from 'uuid
|
|
1
|
+
import { v1 as uid } from 'uuid';
|
|
2
2
|
export default uid;
|
|
3
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy91aWQuanMiXSwibmFtZXMiOlsidjEiLCJ1aWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQUUsSUFBSUMsR0FBZixRQUEwQixNQUExQjtBQUVBLGVBQWVBLEdBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2MSBhcyB1aWQgfSBmcm9tICd1dWlkJztcblxuZXhwb3J0IGRlZmF1bHQgdWlkO1xuIl19
|