react-confetti-burst 1.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/LICENSE +21 -0
- package/README.md +303 -0
- package/dist/cjs/components.d.ts +219 -0
- package/dist/cjs/components.d.ts.map +1 -0
- package/dist/cjs/components.js +341 -0
- package/dist/cjs/components.js.map +1 -0
- package/dist/cjs/confetti-engine.d.ts +122 -0
- package/dist/cjs/confetti-engine.d.ts.map +1 -0
- package/dist/cjs/confetti-engine.js +589 -0
- package/dist/cjs/confetti-engine.js.map +1 -0
- package/dist/cjs/confetti.d.ts +50 -0
- package/dist/cjs/confetti.d.ts.map +1 -0
- package/dist/cjs/confetti.js +446 -0
- package/dist/cjs/confetti.js.map +1 -0
- package/dist/cjs/constants.d.ts +147 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +609 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/hooks.d.ts +94 -0
- package/dist/cjs/hooks.d.ts.map +1 -0
- package/dist/cjs/hooks.js +225 -0
- package/dist/cjs/hooks.js.map +1 -0
- package/dist/cjs/index.d.ts +34 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +180 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/particle.d.ts +50 -0
- package/dist/cjs/particle.d.ts.map +1 -0
- package/dist/cjs/particle.js +475 -0
- package/dist/cjs/particle.js.map +1 -0
- package/dist/cjs/shapes.d.ts +190 -0
- package/dist/cjs/shapes.d.ts.map +1 -0
- package/dist/cjs/shapes.js +272 -0
- package/dist/cjs/shapes.js.map +1 -0
- package/dist/cjs/types.d.ts +720 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +25 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils.d.ts +90 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +330 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/components.js +334 -0
- package/dist/esm/components.js.map +1 -0
- package/dist/esm/confetti-engine.js +581 -0
- package/dist/esm/confetti-engine.js.map +1 -0
- package/dist/esm/confetti.js +443 -0
- package/dist/esm/confetti.js.map +1 -0
- package/dist/esm/constants.js +605 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/hooks.js +218 -0
- package/dist/esm/hooks.js.map +1 -0
- package/dist/esm/index.js +146 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/particle.js +465 -0
- package/dist/esm/particle.js.map +1 -0
- package/dist/esm/shapes.js +265 -0
- package/dist/esm/shapes.js.map +1 -0
- package/dist/esm/types.js +24 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils.js +309 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/types/components.d.ts +219 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/confetti-engine.d.ts +122 -0
- package/dist/types/confetti-engine.d.ts.map +1 -0
- package/dist/types/confetti.d.ts +50 -0
- package/dist/types/confetti.d.ts.map +1 -0
- package/dist/types/constants.d.ts +147 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/hooks.d.ts +94 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/particle.d.ts +50 -0
- package/dist/types/particle.d.ts.map +1 -0
- package/dist/types/shapes.d.ts +190 -0
- package/dist/types/shapes.d.ts.map +1 -0
- package/dist/types/types.d.ts +720 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utils.d.ts +90 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React hooks for confetti animations
|
|
3
|
+
*
|
|
4
|
+
* Provides convenient React hooks for triggering confetti bursts
|
|
5
|
+
* with proper lifecycle management and cleanup.
|
|
6
|
+
*/
|
|
7
|
+
import { useCallback, useRef, useState, useEffect } from 'react';
|
|
8
|
+
import { createConfettiExplosion, fireFromElement, } from './confetti-engine';
|
|
9
|
+
/**
|
|
10
|
+
* Main hook for triggering confetti animations
|
|
11
|
+
*
|
|
12
|
+
* @returns Object with fire functions and state
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* const { fire, isActive } = useConfetti();
|
|
17
|
+
*
|
|
18
|
+
* const handleClick = (e) => {
|
|
19
|
+
* fire({ x: e.clientX, y: e.clientY });
|
|
20
|
+
* };
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function useConfetti() {
|
|
24
|
+
const [isActive, setIsActive] = useState(false);
|
|
25
|
+
const activeHandles = useRef(new Set());
|
|
26
|
+
// Cleanup on unmount
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
return () => {
|
|
29
|
+
activeHandles.current.forEach(handle => handle.stop());
|
|
30
|
+
activeHandles.current.clear();
|
|
31
|
+
};
|
|
32
|
+
}, []);
|
|
33
|
+
/**
|
|
34
|
+
* Fires confetti from a point
|
|
35
|
+
*/
|
|
36
|
+
const fire = useCallback((origin, options) => {
|
|
37
|
+
const handle = createConfettiExplosion(origin, options);
|
|
38
|
+
activeHandles.current.add(handle);
|
|
39
|
+
setIsActive(true);
|
|
40
|
+
handle.promise.then(() => {
|
|
41
|
+
activeHandles.current.delete(handle);
|
|
42
|
+
if (activeHandles.current.size === 0) {
|
|
43
|
+
setIsActive(false);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return handle;
|
|
47
|
+
}, []);
|
|
48
|
+
/**
|
|
49
|
+
* Fires confetti from an element's center
|
|
50
|
+
*/
|
|
51
|
+
const fireFromElementCallback = useCallback((element, options) => {
|
|
52
|
+
if (!element)
|
|
53
|
+
return null;
|
|
54
|
+
const handle = fireFromElement(element, options);
|
|
55
|
+
if (handle) {
|
|
56
|
+
activeHandles.current.add(handle);
|
|
57
|
+
setIsActive(true);
|
|
58
|
+
handle.promise.then(() => {
|
|
59
|
+
activeHandles.current.delete(handle);
|
|
60
|
+
if (activeHandles.current.size === 0) {
|
|
61
|
+
setIsActive(false);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return handle;
|
|
66
|
+
}, []);
|
|
67
|
+
/**
|
|
68
|
+
* Stops all active animations
|
|
69
|
+
*/
|
|
70
|
+
const stopAll = useCallback(() => {
|
|
71
|
+
activeHandles.current.forEach(handle => handle.stop());
|
|
72
|
+
activeHandles.current.clear();
|
|
73
|
+
setIsActive(false);
|
|
74
|
+
}, []);
|
|
75
|
+
/**
|
|
76
|
+
* Pauses all active animations
|
|
77
|
+
*/
|
|
78
|
+
const pauseAll = useCallback(() => {
|
|
79
|
+
activeHandles.current.forEach(handle => handle.pause());
|
|
80
|
+
}, []);
|
|
81
|
+
/**
|
|
82
|
+
* Resumes all paused animations
|
|
83
|
+
*/
|
|
84
|
+
const resumeAll = useCallback(() => {
|
|
85
|
+
activeHandles.current.forEach(handle => handle.resume());
|
|
86
|
+
}, []);
|
|
87
|
+
/**
|
|
88
|
+
* Gets the currently active handles
|
|
89
|
+
*/
|
|
90
|
+
const getActiveHandles = useCallback(() => {
|
|
91
|
+
return Array.from(activeHandles.current);
|
|
92
|
+
}, []);
|
|
93
|
+
return {
|
|
94
|
+
fire,
|
|
95
|
+
fireFromElement: fireFromElementCallback,
|
|
96
|
+
isActive,
|
|
97
|
+
stopAll,
|
|
98
|
+
pauseAll,
|
|
99
|
+
resumeAll,
|
|
100
|
+
getActiveHandles,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Hook for confetti triggered by a ref element
|
|
105
|
+
*
|
|
106
|
+
* @param options - Confetti configuration options
|
|
107
|
+
* @returns Ref to attach to trigger element and fire function
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```tsx
|
|
111
|
+
* const { ref, fire } = useConfettiTrigger();
|
|
112
|
+
*
|
|
113
|
+
* return (
|
|
114
|
+
* <button ref={ref} onClick={fire}>
|
|
115
|
+
* Celebrate!
|
|
116
|
+
* </button>
|
|
117
|
+
* );
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export function useConfettiTrigger(options) {
|
|
121
|
+
const ref = useRef(null);
|
|
122
|
+
const { fireFromElement: fireFromEl, isActive } = useConfetti();
|
|
123
|
+
const fire = useCallback(() => {
|
|
124
|
+
return fireFromEl(ref.current, options);
|
|
125
|
+
}, [fireFromEl, options]);
|
|
126
|
+
return { ref, fire, isActive };
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Hook for auto-firing confetti when a condition becomes true
|
|
130
|
+
*
|
|
131
|
+
* @param condition - When true, fires confetti
|
|
132
|
+
* @param origin - Origin point for the burst
|
|
133
|
+
* @param options - Confetti configuration options
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```tsx
|
|
137
|
+
* const [isComplete, setIsComplete] = useState(false);
|
|
138
|
+
*
|
|
139
|
+
* useConfettiOnCondition(isComplete, { x: 500, y: 300 });
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export function useConfettiOnCondition(condition, origin, options) {
|
|
143
|
+
const hasFired = useRef(false);
|
|
144
|
+
const { fire } = useConfetti();
|
|
145
|
+
useEffect(() => {
|
|
146
|
+
if (condition && !hasFired.current) {
|
|
147
|
+
hasFired.current = true;
|
|
148
|
+
fire(origin, options);
|
|
149
|
+
}
|
|
150
|
+
}, [condition, fire, origin, options]);
|
|
151
|
+
// Reset when condition becomes false
|
|
152
|
+
useEffect(() => {
|
|
153
|
+
if (!condition) {
|
|
154
|
+
hasFired.current = false;
|
|
155
|
+
}
|
|
156
|
+
}, [condition]);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Hook for sequencing multiple confetti bursts
|
|
160
|
+
*
|
|
161
|
+
* @param bursts - Array of burst configurations with delays
|
|
162
|
+
* @returns Start function and active state
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```tsx
|
|
166
|
+
* const { start, isActive } = useConfettiSequence([
|
|
167
|
+
* { origin: { x: 100, y: 100 }, delay: 0 },
|
|
168
|
+
* { origin: { x: 300, y: 100 }, delay: 200 },
|
|
169
|
+
* { origin: { x: 500, y: 100 }, delay: 400 },
|
|
170
|
+
* ]);
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export function useConfettiSequence(bursts) {
|
|
174
|
+
const { fire, isActive, stopAll } = useConfetti();
|
|
175
|
+
const timeouts = useRef([]);
|
|
176
|
+
const cancel = useCallback(() => {
|
|
177
|
+
timeouts.current.forEach(id => clearTimeout(id));
|
|
178
|
+
timeouts.current = [];
|
|
179
|
+
stopAll();
|
|
180
|
+
}, [stopAll]);
|
|
181
|
+
const start = useCallback(() => {
|
|
182
|
+
cancel(); // Clear any existing sequence
|
|
183
|
+
bursts.forEach(({ origin, options, delay }) => {
|
|
184
|
+
const timeoutId = window.setTimeout(() => {
|
|
185
|
+
fire(origin, options);
|
|
186
|
+
}, delay);
|
|
187
|
+
timeouts.current.push(timeoutId);
|
|
188
|
+
});
|
|
189
|
+
}, [bursts, fire, cancel]);
|
|
190
|
+
// Cleanup on unmount
|
|
191
|
+
useEffect(() => {
|
|
192
|
+
return () => {
|
|
193
|
+
timeouts.current.forEach(id => clearTimeout(id));
|
|
194
|
+
};
|
|
195
|
+
}, []);
|
|
196
|
+
return { start, isActive, cancel };
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Hook for viewport-centered confetti
|
|
200
|
+
*
|
|
201
|
+
* @param options - Confetti configuration options
|
|
202
|
+
* @returns Fire function for center-screen confetti
|
|
203
|
+
*/
|
|
204
|
+
export function useConfettiCenter(options) {
|
|
205
|
+
const { fire: baseFire, isActive } = useConfetti();
|
|
206
|
+
const fire = useCallback(() => {
|
|
207
|
+
const centerOrigin = {
|
|
208
|
+
x: window.innerWidth / 2,
|
|
209
|
+
y: window.innerHeight / 2,
|
|
210
|
+
};
|
|
211
|
+
return baseFire(centerOrigin, {
|
|
212
|
+
...options,
|
|
213
|
+
direction: { direction: 'radial' },
|
|
214
|
+
});
|
|
215
|
+
}, [baseFire, options]);
|
|
216
|
+
return { fire, isActive };
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* react-confetti-burst
|
|
3
|
+
*
|
|
4
|
+
* A high-performance, zero-dependency React confetti component
|
|
5
|
+
* with directional bursts using the native Canvas API.
|
|
6
|
+
* Exceeds the feature set of both react-confetti and canvas-confetti.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
// Basic Constants
|
|
11
|
+
export { DEFAULT_COLORS, DEFAULT_PHYSICS, DEFAULT_DIRECTION, DEFAULT_PARTICLE, DEFAULT_CONFIG, DIRECTION_ANGLES, EASING_FUNCTIONS, COLOR_PALETTES, } from './constants';
|
|
12
|
+
// Core engine (Basic)
|
|
13
|
+
export { ConfettiEngine, createConfettiExplosion, fireFromElement, getActiveAnimationCount, forceCleanup, } from './confetti-engine';
|
|
14
|
+
// Basic React hooks
|
|
15
|
+
export { useConfetti, } from './hooks';
|
|
16
|
+
// Basic React components
|
|
17
|
+
export { ConfettiBurst, ConfettiButton, } from './components';
|
|
18
|
+
// Basic Utility functions
|
|
19
|
+
export { parseColor, rgbaToString, randomInRange, randomInt, randomFromArray, clamp, lerp, degToRad, radToDeg, getDirectionAngle, getElementCenter, mergeConfig, isBrowser, } from './utils';
|
|
20
|
+
// Basic Functional API
|
|
21
|
+
export { confetti, confetti as default } from './confetti';
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// v1.1.0 - REACT HOOKS (Uncomment when releasing)
|
|
24
|
+
// ============================================================================
|
|
25
|
+
/*
|
|
26
|
+
export {
|
|
27
|
+
useConfettiTrigger,
|
|
28
|
+
useConfettiOnCondition,
|
|
29
|
+
useConfettiSequence,
|
|
30
|
+
useConfettiCenter,
|
|
31
|
+
} from './hooks';
|
|
32
|
+
|
|
33
|
+
export {
|
|
34
|
+
ConfettiTrigger,
|
|
35
|
+
} from './components';
|
|
36
|
+
|
|
37
|
+
export type { ConfettiTriggerHandle } from './components';
|
|
38
|
+
*/
|
|
39
|
+
// ============================================================================
|
|
40
|
+
// v1.2.0 - BUILT-IN PRESETS (Uncomment when releasing)
|
|
41
|
+
// ============================================================================
|
|
42
|
+
/*
|
|
43
|
+
export type {
|
|
44
|
+
PresetName,
|
|
45
|
+
PresetConfig,
|
|
46
|
+
} from './types';
|
|
47
|
+
|
|
48
|
+
export {
|
|
49
|
+
PRESETS,
|
|
50
|
+
getPreset,
|
|
51
|
+
} from './constants';
|
|
52
|
+
*/
|
|
53
|
+
// ============================================================================
|
|
54
|
+
// v1.3.0 - CANVAS-CONFETTI API (Uncomment when releasing)
|
|
55
|
+
// ============================================================================
|
|
56
|
+
/*
|
|
57
|
+
export type {
|
|
58
|
+
NormalizedOrigin,
|
|
59
|
+
AccessibilityConfig,
|
|
60
|
+
CanvasConfettiOptions,
|
|
61
|
+
ConfettiCreateOptions,
|
|
62
|
+
CanvasConfig,
|
|
63
|
+
ConfettiProps,
|
|
64
|
+
} from './types';
|
|
65
|
+
|
|
66
|
+
export {
|
|
67
|
+
DEFAULT_CANVAS,
|
|
68
|
+
DEFAULT_ACCESSIBILITY,
|
|
69
|
+
} from './constants';
|
|
70
|
+
|
|
71
|
+
export {
|
|
72
|
+
ConfettiOnMount,
|
|
73
|
+
ConfettiCannon,
|
|
74
|
+
Confetti,
|
|
75
|
+
} from './components';
|
|
76
|
+
|
|
77
|
+
export type { ConfettiComponentProps } from './components';
|
|
78
|
+
*/
|
|
79
|
+
// ============================================================================
|
|
80
|
+
// v1.4.0 - CUSTOM SHAPES (Uncomment when releasing)
|
|
81
|
+
// ============================================================================
|
|
82
|
+
/*
|
|
83
|
+
export type {
|
|
84
|
+
DrawContext,
|
|
85
|
+
CustomDrawFunction,
|
|
86
|
+
PathShape,
|
|
87
|
+
TextShape,
|
|
88
|
+
CustomShape,
|
|
89
|
+
ShapeInput,
|
|
90
|
+
PathBounds,
|
|
91
|
+
} from './types';
|
|
92
|
+
|
|
93
|
+
export {
|
|
94
|
+
EMOJI_SETS,
|
|
95
|
+
} from './constants';
|
|
96
|
+
|
|
97
|
+
export {
|
|
98
|
+
shapeFromPath,
|
|
99
|
+
shapeFromText,
|
|
100
|
+
shapeFromImage,
|
|
101
|
+
shapesFromEmoji,
|
|
102
|
+
pathShapes,
|
|
103
|
+
emojiShapes,
|
|
104
|
+
} from './shapes';
|
|
105
|
+
|
|
106
|
+
export type {
|
|
107
|
+
ShapeFromPathOptions,
|
|
108
|
+
ShapeFromTextOptions,
|
|
109
|
+
} from './shapes';
|
|
110
|
+
*/
|
|
111
|
+
// ============================================================================
|
|
112
|
+
// v1.5.0 - ADVANCED EFFECTS (Uncomment when releasing)
|
|
113
|
+
// ============================================================================
|
|
114
|
+
/*
|
|
115
|
+
export type {
|
|
116
|
+
EffectMode,
|
|
117
|
+
SpawnArea,
|
|
118
|
+
TrailConfig,
|
|
119
|
+
GlowConfig,
|
|
120
|
+
ImageParticle,
|
|
121
|
+
ContinuousConfig,
|
|
122
|
+
FireworkConfig,
|
|
123
|
+
} from './types';
|
|
124
|
+
|
|
125
|
+
export {
|
|
126
|
+
DEFAULT_TRAIL,
|
|
127
|
+
DEFAULT_GLOW,
|
|
128
|
+
DEFAULT_CONTINUOUS,
|
|
129
|
+
DEFAULT_FIREWORK,
|
|
130
|
+
} from './constants';
|
|
131
|
+
*/
|
|
132
|
+
// ============================================================================
|
|
133
|
+
// v1.6.0 - PARTICLE UTILITIES (Uncomment when releasing)
|
|
134
|
+
// ============================================================================
|
|
135
|
+
/*
|
|
136
|
+
export {
|
|
137
|
+
createParticle,
|
|
138
|
+
updateParticle,
|
|
139
|
+
renderParticle,
|
|
140
|
+
areAllParticlesInactive,
|
|
141
|
+
countActiveParticles,
|
|
142
|
+
loadImage,
|
|
143
|
+
clearImageCache,
|
|
144
|
+
} from './particle';
|
|
145
|
+
*/
|
|
146
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2DH,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,sBAAsB;AACtB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EACL,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,yBAAyB;AACzB,OAAO,EACL,aAAa,EACb,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,0BAA0B;AAC1B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,eAAe,EACf,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,uBAAuB;AACvB,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3D,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAE/E;;;;;;;;;;;;;EAaE;AAEF,+EAA+E;AAC/E,uDAAuD;AACvD,+EAA+E;AAE/E;;;;;;;;;;EAUE;AAEF,+EAA+E;AAC/E,0DAA0D;AAC1D,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;EAsBE;AAEF,+EAA+E;AAC/E,oDAAoD;AACpD,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BE;AAEF,+EAA+E;AAC/E,uDAAuD;AACvD,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;EAiBE;AAEF,+EAA+E;AAC/E,yDAAyD;AACzD,+EAA+E;AAE/E;;;;;;;;;;EAUE"}
|