@tpzdsp/next-toolkit 1.0.1

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.
Files changed (61) hide show
  1. package/README.md +594 -0
  2. package/package.json +133 -0
  3. package/src/assets/fonts/gds-bold-w-v2.woff +0 -0
  4. package/src/assets/fonts/gds-bold-w2-v2.woff2 +0 -0
  5. package/src/assets/fonts/gds-light-w-v2.woff +0 -0
  6. package/src/assets/fonts/gds-light-w2-v2.woff2 +0 -0
  7. package/src/assets/images/defra-logo.svg +51 -0
  8. package/src/assets/images/ea-logo.svg +58 -0
  9. package/src/assets/images/ogl.svg +1 -0
  10. package/src/assets/styles/globals.css +68 -0
  11. package/src/assets/styles/index.ts +7 -0
  12. package/src/components/Button/Button.stories.tsx +41 -0
  13. package/src/components/Button/Button.test.tsx +55 -0
  14. package/src/components/Button/Button.tsx +44 -0
  15. package/src/components/Card/Card.stories.tsx +35 -0
  16. package/src/components/Card/Card.test.tsx +12 -0
  17. package/src/components/Card/Card.tsx +19 -0
  18. package/src/components/ErrorText/ErrorText.stories.tsx +34 -0
  19. package/src/components/ErrorText/ErrorText.test.tsx +35 -0
  20. package/src/components/ErrorText/ErrorText.tsx +17 -0
  21. package/src/components/Heading/Heading.stories.tsx +21 -0
  22. package/src/components/Heading/Heading.test.tsx +24 -0
  23. package/src/components/Heading/Heading.tsx +21 -0
  24. package/src/components/Hint/Hint.stories.tsx +40 -0
  25. package/src/components/Hint/Hint.test.tsx +35 -0
  26. package/src/components/Hint/Hint.tsx +13 -0
  27. package/src/components/Paragraph/Paragraph.stories.tsx +30 -0
  28. package/src/components/Paragraph/Paragraph.test.tsx +12 -0
  29. package/src/components/Paragraph/Paragraph.tsx +7 -0
  30. package/src/components/container/Container.tsx +38 -0
  31. package/src/components/dropdown/DropdownMenu.test.tsx +213 -0
  32. package/src/components/dropdown/DropdownMenu.tsx +106 -0
  33. package/src/components/dropdown/useDropdownMenu.ts +245 -0
  34. package/src/components/images/DefraLogo.tsx +64 -0
  35. package/src/components/images/EaLogo.tsx +81 -0
  36. package/src/components/images/OglLogo.tsx +18 -0
  37. package/src/components/index.ts +36 -0
  38. package/src/components/layout/footer/Copyright.tsx +14 -0
  39. package/src/components/layout/footer/Footer.tsx +26 -0
  40. package/src/components/layout/footer/Licence.tsx +19 -0
  41. package/src/components/layout/footer/MetaLinks.tsx +36 -0
  42. package/src/components/layout/header/Header.tsx +89 -0
  43. package/src/components/layout/header/HeaderAuthClient.tsx +32 -0
  44. package/src/components/layout/header/HeaderNavClient.tsx +64 -0
  45. package/src/components/link/ExternalLink.tsx +29 -0
  46. package/src/components/link/Link.tsx +26 -0
  47. package/src/components/link/NextLinkWrapper.tsx +66 -0
  48. package/src/components/theme/ThemeProvider.tsx +30 -0
  49. package/src/contexts/ThemeContext.tsx +72 -0
  50. package/src/contexts/index.ts +5 -0
  51. package/src/hooks/index.ts +6 -0
  52. package/src/hooks/useDebounce.ts +18 -0
  53. package/src/hooks/useLocalStorage.ts +57 -0
  54. package/src/index.ts +8 -0
  55. package/src/types.ts +99 -0
  56. package/src/utils/auth.ts +19 -0
  57. package/src/utils/constants.ts +3 -0
  58. package/src/utils/index.ts +4 -0
  59. package/src/utils/renderers.tsx +68 -0
  60. package/src/utils/utils.ts +63 -0
  61. package/src/vite-env.d.ts +17 -0
@@ -0,0 +1,245 @@
1
+ 'use client';
2
+
3
+ import {
4
+ useState,
5
+ useRef,
6
+ useId,
7
+ useEffect,
8
+ useMemo,
9
+ type HTMLAttributes,
10
+ useCallback,
11
+ } from 'react';
12
+
13
+ import type { ExtendProps } from '../../types';
14
+
15
+ /**
16
+ * The current state of the menu
17
+ */
18
+ export type DropdownMenuState = { state: { isOpen: boolean } };
19
+
20
+ // use a data attribute with a unique value to tell us which elements belong to the current menu
21
+ type DropdownMenuAttribute = { 'data-menu': string };
22
+
23
+ /**
24
+ * The props that are passed into the button that is used to open/close the menu.
25
+ */
26
+ export type ButtonRendererProps = ExtendProps<'button', DropdownMenuState>;
27
+
28
+ // can't use `ExtendProps` here since we just want the most base level of HTML attributes.
29
+ // a number of elements use only these props, like `abbr`, but that implies the menu
30
+ // item is an `<abbr>` which isn't strictly true, and so qualifying it ourselves is better
31
+ /**
32
+ * The props passed into each child item of the menu.
33
+ */
34
+ export type ItemRendererProps = HTMLAttributes<HTMLElement>;
35
+
36
+ export type DropdownMenuHook = {
37
+ isOpen: boolean;
38
+ buttonProps: ButtonRendererProps & DropdownMenuAttribute;
39
+ itemProps: (ItemRendererProps & DropdownMenuAttribute)[];
40
+ selectedItemIndex: number;
41
+ };
42
+
43
+ /**
44
+ * This hook handles the behaviour and accessibility concerns when creating a dropdown menu (*not* a select menu).
45
+ * while leaving all the styling and design up to the user.
46
+ *
47
+ * The hook returns an object with 4 keys:
48
+ * - `isOpen`: Whether the dropdown is open or not.
49
+ * - `buttonProps`: These props are generated by the hook and need to be passed down (via spreading) into the `button` element
50
+ * that the user can click to open/close the menu. Other attributes can be applied to the button along side these, but at minimum
51
+ * these MUST be added.
52
+ * - `itemProps`: These props are also generated by the hook, but they should be passed down to each item displayed in the menu.
53
+ * Since the style and design is up to the user, when you create the menu children from some data, you can use the index to get
54
+ * the props for each item and spread them in. For example:
55
+ * ```tsx
56
+ * data.map((_, i) => <div {...itemProps[i]}></div>)
57
+ * ```
58
+ * - `selectedItemIndex`: This represents which item was last selected by the user.
59
+ *
60
+ * ### NOTES:
61
+ * This hook makes use of `refs`. For that reason, the menu items **must not** be unmounted from the DOM via a conditional statement with `isOpen`.
62
+ * Instead, you can show/hide the menu item container using its `display` or `visibility` style and set it to a different value depending on
63
+ * if the menu is open or not. This does not affect accessibility.
64
+ *
65
+ * Keyboard interactivity sources:
66
+ * https://www.w3.org/WAI/ARIA/apg/patterns/menubar/examples/menubar-navigation/
67
+ *
68
+ * @param itemCount The number of items to show in the menu.
69
+ * @returns
70
+ */
71
+ export const useDropdownMenu = (itemCount: number): DropdownMenuHook => {
72
+ const [isOpen, setIsOpen] = useState(false);
73
+ const [selectedItem, setSelectedItem] = useState(0);
74
+
75
+ const currentFocusIndex = useRef<number | null>(null);
76
+
77
+ const menuId = useId();
78
+
79
+ // track the refs of each child so they can be focussed for accessibility
80
+ // this is memoified so it only updates when the number of items changes
81
+ const itemRefs: { current: Record<number, HTMLElement | null> } = useMemo(
82
+ () => ({ current: {} }),
83
+ [],
84
+ );
85
+
86
+ // use the unique id to determive if a given element is part of the menu
87
+ const isMenuItem = useCallback(
88
+ (element: Element | null): boolean => {
89
+ return (
90
+ element?.getAttribute('data-menu') === menuId ||
91
+ // get the closest element with that id, essentially checking if we are a child somewhere down the line
92
+ element?.closest(`[data-menu="${menuId}"]`) !== null
93
+ );
94
+ },
95
+ [menuId],
96
+ );
97
+
98
+ const focusItem = useCallback(
99
+ (index: number) => {
100
+ currentFocusIndex.current = index;
101
+ itemRefs.current[index]?.focus();
102
+ },
103
+ [itemRefs],
104
+ );
105
+
106
+ const selectItem = (index: number) => {
107
+ setSelectedItem(index);
108
+ setIsOpen(false);
109
+ };
110
+
111
+ useEffect(() => {
112
+ if (isOpen) {
113
+ focusItem(0);
114
+ }
115
+ }, [focusItem, isOpen]);
116
+
117
+ useEffect(() => {
118
+ // handles exiting the menu when the `Escape` key is pressed
119
+ const escapeExitMenuHandler = (event: KeyboardEvent) => {
120
+ if (event.key === 'Escape' && document.activeElement && isMenuItem(document.activeElement)) {
121
+ event.preventDefault();
122
+
123
+ setIsOpen(false);
124
+ }
125
+ };
126
+
127
+ // handles exiting the menu when focus moved to another element
128
+ const blurExitMenuHandler = () => {
129
+ if (!isMenuItem(document.activeElement)) {
130
+ setIsOpen(false);
131
+ }
132
+ };
133
+
134
+ // handles exiting the menu when the user clicks/touches outside the menu
135
+ const clickExitMenuHandler = (event: PointerEvent) => {
136
+ if (event.button === 0 && !isMenuItem(event.target as Element)) {
137
+ setIsOpen(false);
138
+ }
139
+ };
140
+
141
+ window.addEventListener('keydown', escapeExitMenuHandler);
142
+ // `passive` events just mean we dont call `preventDefault` and it allows the browser to be a bit smarter about the events
143
+ // `capture` is a bit more complicated but from what I understand it essentially makes it so this event handler fires BEFORE
144
+ // the element gets the event, whereas without it it would trigger AFTER the element recieved the event
145
+ document.addEventListener('focus', blurExitMenuHandler, { capture: true, passive: true });
146
+ // make use of pointer events instead of click events to support touch devices.
147
+ document.addEventListener('pointerup', clickExitMenuHandler, { passive: true });
148
+
149
+ return () => {
150
+ window.removeEventListener('keydown', escapeExitMenuHandler);
151
+ document.removeEventListener('focus', blurExitMenuHandler);
152
+ document.removeEventListener('pointerup', clickExitMenuHandler);
153
+ };
154
+ }, [isMenuItem]);
155
+
156
+ return {
157
+ isOpen,
158
+ selectedItemIndex: selectedItem,
159
+
160
+ buttonProps: {
161
+ state: { isOpen },
162
+ 'data-menu': menuId,
163
+ 'aria-haspopup': 'menu',
164
+ 'aria-expanded': isOpen,
165
+
166
+ onPointerUp: () => setIsOpen(!isOpen),
167
+ onKeyDown: (event) => {
168
+ // space and enter act more like clicking and can toggle the menu open/closed
169
+ if (event.key === ' ' || event.key === 'Enter') {
170
+ event.preventDefault();
171
+
172
+ setIsOpen(!isOpen);
173
+ }
174
+
175
+ // the down arrow should open the menu
176
+ if (event.key === 'ArrowDown') {
177
+ event.preventDefault();
178
+
179
+ if (!isOpen) {
180
+ setIsOpen(true);
181
+ } else {
182
+ focusItem(0);
183
+ }
184
+ }
185
+ },
186
+ },
187
+
188
+ // eslint-disable-next-line @typescript-eslint/naming-convention
189
+ itemProps: Array.from({ length: itemCount }, (_, itemIndex) => ({
190
+ key: itemIndex,
191
+
192
+ role: 'menuitem',
193
+ // the items in the menu should not be focussable. using `Tab` should move the focus away from the menu entirely.
194
+ // only arrow keys should navigate each item
195
+ tabIndex: -1,
196
+ 'data-menu': menuId,
197
+
198
+ ref: (el: HTMLElement) => {
199
+ itemRefs.current[itemIndex] = el;
200
+ },
201
+
202
+ // by using a 0 second `setTimeout` the event handler is moved to the bottom of the stack
203
+ // this is important because it means our handler is fired AFTER the default behaviour
204
+ // without the setTimeout things like links might not work properly because the menu
205
+ // would hide BEFORE the browsers own default click handler could redirect you
206
+ onPointerUp: () => setTimeout(() => selectItem(itemIndex), 0),
207
+ onKeyDown: (event) => {
208
+ let focusIndex = currentFocusIndex.current;
209
+
210
+ // close the menu if you "select" an item
211
+ if (event.key === ' ' || event.key === 'Enter') {
212
+ event.preventDefault();
213
+
214
+ // we just called `preventDefault` so we need to manually click it otherwise nothing will happen
215
+ // the reason we must call `preventDefault` is to avoid other behaviour like spacebar scrolling the page
216
+ itemRefs.current[itemIndex]?.click();
217
+
218
+ selectItem(itemIndex);
219
+ }
220
+
221
+ if (focusIndex !== null) {
222
+ // arrow keys should cycle through each item in the menu
223
+ if (event.key === 'ArrowDown') {
224
+ event.preventDefault();
225
+
226
+ focusIndex += 1;
227
+ } else if (event.key === 'ArrowUp') {
228
+ event.preventDefault();
229
+
230
+ focusIndex -= 1;
231
+ }
232
+
233
+ // allow wrapping of focus
234
+ if (focusIndex > itemCount - 1) {
235
+ focusIndex = 0;
236
+ } else if (focusIndex < 0) {
237
+ focusIndex = itemCount - 1;
238
+ }
239
+
240
+ focusItem(focusIndex);
241
+ }
242
+ },
243
+ })),
244
+ };
245
+ };
@@ -0,0 +1,64 @@
1
+ type DefraLogoProps = React.SVGProps<SVGSVGElement>;
2
+
3
+ export const DefraLogo = ({ className, ...props }: DefraLogoProps) => (
4
+ <svg
5
+ viewBox="0 0 125 102"
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ fill="white"
8
+ focusable="false"
9
+ className={className}
10
+ {...props}
11
+ >
12
+ <title>DEFRA Logo - Royal Coat of Arms</title>
13
+
14
+ <path d="m108.76 55.62-.27-.03-.74-1.97c.35-.44.53-1.14 0-1.49-.72-.28-2.74-2.56-3.34-1.08-.26.09-1.86.18-1.98.47a17.72 17.72 0 0 1-1.9-3.9c.31-1.64 4.72-3.7 4.72-3.7s-1.25-1.78-1.75-2.79c-.22.5-.42.29-.9.5 2.44-4.3 2.96-9.97-.28-14.04-.33-.7-.18-1.63-.5-2.33-.56-.73-.95-2.18-1.95-2.33 0 1.28-.13 2.53.5 3.72.66.82-.92 1.53-1.4.87.93-.1 1.1-.29.77-.82-4.05-.9-6.3 1.92-10.17 2.36-.34 0-.64.12-.83.42-2.38 3.17 2.96 1.01 3.42 3.11-.89.73-1.01.25-1.85.04-1.2.05-2.36.42-.86 1.42-.92 1.43-.87 1.93-2.74 2.05.81 1.13.64 2.76.85 4.04-1.33.24-2.23.87-2.26 2.28-.6.13-1.24-.18-1.66.46-.84-.69-1.8-.81-2.8-.83-.48-.36-1.66-1.2-2.93-1.84l.71-2.62 2.06-1.3-1.08-2.15c2.39-8.11 3.16-8.57 4.37-8.74l.06-.23-4.4-1.4-.08.3c1.1.8 1.47 2.12.96 3.68-1.17-.5-1.84-1.61-1.72-2.6l-.29-.08-1.47 4.85.23.07c.58-.83 1.6-1.3 2.76-1.1-1.36 4.29-7.5 2.95-6.4-.7.78-1.5 2.27-.54 1.55 1.04 3.45-1.2 1.41-6.1-1.53-3.17.97-1.98 1.52-3.53.3-5.44-1.59 1.01-2 2.84-1.69 5.27-1.94-4.4-5.33.13-2.58 2.43-.5-3.27 3.58-1.11.82 1.52-2.63 1.84-5.86-.27-5.95-3.52 1.52.13 2.67 1.02 2.83 2.14h.28l.19-5.54-.35-.01c-.23 1.12-1.47 2.07-3.02 2.1.1-1.7 1.1-3.04 2.37-3.26v-.31h-6.46v.31c1.28.22 2.27 1.55 2.38 3.26-1.56-.03-2.8-.98-3.03-2.1l-.34.01.18 5.55.28-.01c.16-1.12 1.32-2.01 2.83-2.14-.09 3.24-3.32 5.36-5.95 3.52-2.75-2.63 1.32-4.79.82-1.52 2.76-2.3-.64-6.83-2.58-2.43.3-2.43-.1-4.26-1.69-5.27-1.22 1.91-.67 3.46.3 5.44-2.94-2.93-4.97 1.98-1.53 3.17-.71-1.58.77-2.54 1.55-1.04 1.1 3.65-5.04 4.99-6.4.7 1.17-.2 2.18.27 2.76 1.1l.24-.07-1.48-4.85-.3.08c.14.99-.53 2.1-1.71 2.6-.5-1.56-.15-2.89.97-3.69l-.08-.28-4.41 1.4.06.22c1.21.17 1.98.63 4.37 8.74l-1.08 2.15 2.06 1.3.65 2.37.02-.01c0 .03-.01.04-.02.01-5.94 2.75-4.59 4.61-9.15 4.08-.41.93-.8 1.86-1.72 2.5a6.64 6.64 0 0 0-1.67-3.56c-.42-.49-1 .05-1.63.1-1.24 2.67-2.1.26-4.28 1.65.09 1.25.28 2.49.97 3.64a7.83 7.83 0 0 1-4.04-1.3c-4.85 5.36-9.92 10.51-14.07 16.42-2.21 2.9-8.14 1.2-6.58-2.79.72-2.91 4.97-2.29 4.7.6 2.1-2.31.76-4.61-2.46-4.1 2.95-1.26 4.72 1.13 7.38-2.15-2.03.04-3.75-.6-5.78-.13 2.57-1.52 6.09.74 8.27-3.45-1.9.2-3.63.99-5.6 1.28 11.84-11.18.45-11.73 1.9-16.56-.93.78-1.46 1.56-1.03 2.6-2.66-1.1-6.59-.77-7.66-3.96-.26 4.54 1.75 4.22 5.22 5.15-1.6-.19-3.18-.2-4.68-.75.31 2.04 1.87 2.47 3.71 2.28-1.8.98-1.39 3.52.44 4.39-1.17-6.57 8.78-4.32 4.24 1.72-2.11 3.1-5.16 5.42-7.72 8.13-.49-.83-1-1.66-2.11-1.54 1.95 2.23-.25 4.66-.77 6.96-.75 2.84 1.79 5.26 4.5 5.6-1.08 1.27-1.16 2.4-.33 3.44.82-4.18 6.94-3.24 7.52-7.76.1-.53.36-.95.96-1.19-2.76 3.09 3.87 9.62-2.36 10.38-.89.03-1.1.95-.62 1.61-2.57-.13-3.28.84-3.67 3.25l3.25-.84c-1.12 2.9-3.66-.17-3.24 5 1.04-.49 2.02-1.01 2.97-1.6.92 2.9-4.67 1.65-.47 6.28a8.57 8.57 0 0 1 1.95-3.03c-.51 1.46-.4 3.15 1.26 3.8l.22-1.07h.13c.24.96.28 2.3 1.22 2.86.31.12.48.3.59.62.17.54.67.68 1.16.74.62.13.78-.56 1.23-.84.13.76 1.04.89 1.5 1.54.33-3.77-4.72-2.4-3.56-4.9.45 1.52 1.88 1.2 2.88 1.81.4.63 1.34 1.16 1.82.28l1.31.97c-.98-4.47-3.33-1.7-4.8-4.05 1.02.04 2.12 1.55 3.23.52.6.61 1.06 1.32 1.51 2.04a3.29 3.29 0 0 0-1.5-3.32c-1.28-.77-3.02.6-4.12-.95-1.5-1.83-1.45-4.4-.67-6.52.71-1.63 2.7-2.24 3.63-3.78-.26 1.36-.13 3.73 1.43 4.17-.38-2.53 1.44-4.81 1.81-7.26.48-.62.5-1.1.07-1.77-.78-1.26-.99-2.77-1.84-4.01-1.33-1.85-2.97-1.9-.26-3.84-1.64 2.53-.3 1.6 1.12 3.99.26-.8 1.47-1.85-.04-1.85-2.39-1.16 3.1-4.18 4.35-4.25 1.23-.1 2.94.04 3.87-1.16C32.56 55 32 54.83 33 53.7c-.67-.39-1.26-.85-1.38-1.71l-1.85.63c.6-.67 2.37-2.03 2.56-.52.04.84.89 1 1.55 1.2-.48.7-1.28 1.4-.55 2.2.5.54.82 1.54 1.61 1.67l.63-2.31c1.74 1.8-1.75 2.8 3.03 4.43a9.56 9.56 0 0 1-.2-2.93c2.3 1.9-1 3.1 4.3 3.72-.58-.7-.72-1.46-.94-2.24.89.15 1.6.98 2.17 1.61.55.83.95 1.28 2.2.47.06.15.07.34.18.43.56.42.33.93.32 1.49h.15c.74-.74.8-1.58.56-2.5-.5-1.74-2.65-.36-3.4-2.13 1 .68 2.02 1.08 3.13.5.62.59.88 1.01 1.18 1.83.5-1.87-.08-3.78-2.07-3.22-.62.22-.88.17-1.5-.37.92.32 1.54-.15 2.13-.57.13.17.2.35.29.36.56.03.92.36 1.27.77.19-1.6-1.42-2.9-3.04-2.49-.4 1.97-2.07.86-3.4.6-2.04-1.2-3.12-3.47-4.93-4.95a3.6 3.6 0 0 0-3.9-3.83c2-.87 4.39.84 4.54 2.91.08.85.6 1.39 1.14 2.02 6.79-13.5 28.69-17.04 41.26-8.47 1.07.98 2.23 1.77 3.34 2.8.44-1.3.18-2.83 2.12-2.05l.37-.24a1.84 1.84 0 0 1 1.58-2.4v.84c-.5.09-.9.57-.82 1.1.39-.09.74.42.53.75a1 1 0 0 0 1.16-.18l.96.08c-.44 1.04-1.97 1.4-2.84.63.17.23-.58 2.53-.6 2.8a.73.73 0 0 1-.75.54l.38.61c.55-.3 1.32-.28 1.25-1.05.1-.44-.18-2.46.45-2.28.25.77-.23 1.65.34 2.4 1.82-.44 1.02-2.06 3.22-2.48.88-.08 2.72-.5 3.19.36-1.92-.5-4.4.02-4.83 2.19-2 .46-3.68 1.88-5.8 1.88-1.7.09-2.15 2.1-2.22 3.48-.29 1.58-.37 3.22-1.08 4.69-.35.56-.06 1.2.13 1.72.65.34 1.11 2.56 1.2 3.36 0 1.45 2.51 1.93 3.54 2.84.28-1.82-3.2-1.3-2.71-3.85.62 1.69 1.97 2.03 3.45 2.86-.46-1.7-.6-4.53-3-4.18-.93-1.27.42-1.34-.01-2.86.69.21 1.01.45 1.2.87l-.7-.22c.08 1.08 1.02 1.33 1.75 2.07-.12-1.76-.28-2.87-1.94-3.73-.94-.85.14-2.81.08-3.99-.03-.34 2.22-1.45 2.56-1.35 1.67.21 3.41-.05 5.02.36 1.61.5.23-2.95 2.83-1.13-1.88-.55-.74 1.48-2.1 1.59-.94 0-1.75-.08-2.74-.12 3.42 7.52 10.99 5.32 13.07 12.03 1.74-1.52.56-1.5.07-3.09 3.94 2.6-3.66 5.6-.8 10.16-.19-.52 1.6-2.65 1.8-3.08.32-.48.88-.5 1.23-.16l.57-1.17c-1.06-.57.86-3.03 1-3.73.2-.42.65-.62 1-.45l.53-1.46c-1-.27-.25-2.67-.33-3.34-1.4-1.26-2.56-2.84-3.65-4.3l.67-.1c-.07.32.05.68.33.87.48.19 2.33 1.96 2.91 1.54l.3.78c-.47.12-.55.77-.56 1.21.25.2.52.4.76.62.03-.16.01-.87.15-.98.22.29.62.3.87.06.22.12-.06 1.67-.03 1.87.27.3.53.6.77.9-.1-.7.78-3.43-.44-3.57ZM88.93 30.25l.76-.08c-.5-.35-.02-.84.4-.5.98.76-1 2-1.16.58Zm-39.44 7.11-2.07-1.3 1.1-2.2 2.98 1.06-2 2.44Zm6.78-1.7c-3.25.66-3.93-2.88-.67-3.47 3.24-.65 3.93 2.89.67 3.47Zm7.34-.27-3.2-2.24 3.2-2.23 3.2 2.23-3.2 2.24Zm10.19-.99c-.38 2.27-5.5 1.29-5.01-.95.38-2.26 5.5-1.29 5 .95Zm1.92.52 3-1.05 1.09 2.18-2.08 1.31-2.01-2.44Zm24.64-10.39c.6.65.85 1.35.85 2.14-.57-.19-.81-.8-.85-2.14Zm-2.69 4.2c-.79.53-1.5 1.32-2.3.25l-.54.1c1.2-1.83 1.1-1.51 2.84-.36Zm-6.61 6.64c.53.19 1.03.46 1.56-.06-.51 0-.67-.36-.81-.7-.25-1.73 2.6-1.12 3.66-1 2.68 1.62 7.23.6 5.65-3.24 1.24.75.81 2.86-.13 3.68-2.47 1.32-4.82.32-7.29 2.92-.37-1.19-1.8-1.12-2.3.18l-1.05.05c-.08-.68.49-1.18.71-1.83Zm9.33 11.35-.33.42c-2.06-2.32-9-4.99-12-4.56l.05-.53-.02.02 1.14-.72-.98-.8c.01-.11-.62-4.02-.62-4.02l1.72-.05s-.61.7-.64 1.27c.1.07.18.17.24.29.34-.15.71-.86.71-.86l.16 2.32s-.47-.67-.82-.79a.56.56 0 0 1-.13.23c.5 1.53 2.76 1.62 2.77.3-.08-.67-.84-.56-.8.16-1.24-.98.44-2.53 1.12-.97-.08-.9 0-1.41.7-1.85.47.58.4 1.13-.1 2 1.52-1.4 2.1.98.67 1.33.7-1.25-1.31-.86-.57.45.67 1.02 2.3.87 2.88-.24a.62.62 0 0 1-.08-.21c-.58-.1-1.43.37-1.43.37l.8-2.13s.33.91.8 1.2c.1-.08.2-.14.32-.17.09-.56-.48-1.44-.48-1.44l2.64 1.01s-1.05.26-1.38.73c.06.1.1.21.11.33.55.1 1.44-.34 1.44-.34l-.94 2.07s-.28-.9-.77-1.2a.68.68 0 0 1-.21.1 1.64 1.64 0 0 0 1.92 2.07c1.46-.44.3-2.08-.1-.7-.78-1.21 1.34-2.54 1.44-.52.26-.97.6-1.41 1.36-1.53.2.79-.1 1.21-.82 1.8 1.64-.67 1.71 1.57.13 1.45.55-.5.07-1.08-.47-.63-.94.97.82 2.37 2.2 1.67 0-.08.03-.17.07-.25-.35-.23-1.16-.26-1.16-.26l1.7-1.24s-.21.75-.05 1.15c.13-.02.25 0 .37.04.37-.37.39-1.34.39-1.34l1.26 1.56s-3.17 1.45-3.73 1.87l-.88-.1.43 1.24h-.03Zm6.83 6.38c-.4-.03-.73.31-.6.74a.25.25 0 0 1-.11-.04l-1.86-1.26a.3.3 0 0 1-.09-.38c.35-.01.73-.2.68-.61.14.18 2.14 1.23 1.98 1.55Z" />
15
+
16
+ <path d="M84.8 44.17c-.14-.17-.17-.4-.05-.59-.22-.04-.6 2.03-.67 2.15.15.14.28.28.4.43.2.05.53.16.6-.12l.48-1.83c-.22.2-.58.22-.75-.04ZM56.86 95.9c-5.24-2.05-9.06 2.98-4.78 3.83-4.7.2-3.79-6.35-5.73-5.96 1.7 1.81 1.7 5.2 3.27 6.13 3.16 1.33 6.44 1.54 9.83 1.39-1.7-1.5-2.12-3.39-2.59-5.39ZM72.9 99.66c4.27-.84.48-5.89-4.78-3.83-.47 2-.88 3.9-2.59 5.39 3.39.16 6.67-.06 9.83-1.4 1.57-.93 1.57-4.3 3.27-6.12-1.94-.4-1.03 6.16-5.73 5.96ZM107.3 59.02c0 .1.04.2.1.26.24-.2.62-.12.79.12.27-.08.18-.92.24-1.12-.31-.33-.64-.65-.98-.94l-.14 1.68ZM106 65.25c.02-.24 1.34-2.4 1-2.59a.58.58 0 0 1-.62-.3c-.32-.14-1.16 2.22-1.3 2.37.41-.26.95.17.8.65a.3.3 0 0 0 .11-.13Z" />
17
+
18
+ <path d="M121 55.27c-1.1.33-1.55 1.24-1.96 2.26-2.76-4.26-8.01-7.2-8.81-12.41.61-4.17 6.2-3.22 5.06 1.13 2.9-1.54 1.5-4.4-1.23-4.91 2.97.23 4.58 2.7 6.6-1.41-1.74.63-4.41.18-5.33.05 3.69-.5 5.7-.47 5.58-5-1.25 2.72-4.73 2.77-7.26 3.65.16-1.2-.22-1.95-1.2-2.34 1 6.63-11.7 4.47 2.25 18.77-1.7-.94-3.7-.62-5.36-1.66 1.3 3.44 3.48 2.84 6.33 4.04-3.06-.01-4.01 2.94-1.75 4.36-.59-2.28 2.58-3.85 4.17-2.07 3.62 4.6-3 11-8.89-.54.05.64-.4 1.21-1.03 1.02l-.66 1.82c1.34.5-.72 3.07-.87 3.81-.23.5-.75.64-1.14.37l-.65 1.34c.81.74-1.38 2.83-1.63 3.49-.25.37-.7.5-1.03.3l-.23.48.08.1c1.49 1.74 2.17 3.08 1.77 4.93 1.2-1.02 1.75-3.86.78-5.4 1.1 1.12 2.67 1.93 3.3 3.37a7.94 7.94 0 0 1-1.65 7.28c-.76.75-.56 1.15-.66 2.08-.5 1.48-2.28 1.6-2.96 2.85-.47 1.1-1.25 2-1.59 3.14 2.03-.31 1.68-3.1 3.6-3.68-.78 1.18-1.53 2.24-2.06 3.6 1.6-.41 4.61-.84 4.1-3.07-.37-1.03.64-1.71.59-2.7 1.26-.44.97-.95 1.58-1.93.28.6.29 1.1.26 1.74l-.37-.76c-.9 1.2-.15 2.38-.27 3.67 4.41-3.92-1.45-3.89 3.13-12.56 1.05-1.73-3-1.54-3.3-5.44-.28-1.69 1.22-3.07 1.53-4.68 1.77 3.1 7.93 3 7.1 6.97 1.23-.93 1.18-2.62.69-3.9 6.36-2.26 1.34-8.05 3.39-12.16Z" />
19
+
20
+ <path d="M102.07 70.19c.14.06.26.16.31.3a.3.3 0 0 0 .29-.13c.05-.15 1.62-2.19 1.44-2.33-.17-.05-.33-.17-.39-.35-.15-.14-.36-.21-.51 0-.06.26-1.8 2.22-1.36 2.46.08 0 .15.02.22.05ZM101.15 70.6l.08.13.02-.06-.1-.08ZM39.6 79.41c.64.12 1.34.24 1.96-.04l-2.89-4.86c-1.7 2.08-4.67.81-6.54-.47-1.51-1.1 1.76-2.83.71-6.52 1.46 2.33-1.2 4.34 2.9 5.65-1.18-1.74-1.02-4-1.46-5.99-.06-.34-.23-.68.05-1.03.14-.48.17-1.12-.48-1.2-4.58-2.6-3.66-1.33-8.11-1.93-1.1 1.9 1.23 3.61.86 5.48-.33.92 1.08.88 1.06 1.77.31 1.4.16 3.34-1.45 3.88-.8.48-.16 1.49.54 1.72-1.42 2.53-.33 2.94 1.84 4.2.01-.97.03-1.83.44-2.66 3 1.97-1.47 2.3 4.46 4.68-.6-.98-.58-2.05-.67-3.03l1.66.38c.65 2.72 2.13 2.96 4.75 2.72-.94-.92-1.2-2.12-1.88-3.08.79.27 1.57-.27 2.25.33ZM93.03 64.27c-.8.13-1 .47-.84 1.26-.91 1.93-.93 4.28-2.48 5.91 3.33-.93 2.6-2.17 3.4-4.67-.17 3.39.01 3.34 1.25 5.67-2.56 1.78-6.75.28-8.15 3.74.39.45.9 0 1.41.12-.33.4-.47.87-1 1.22l.26-.75c-.96-.32-1.75 1.85-2.47 2.55 6.85-1.36-.82-3.35 12.67-4.9 2.38-1.12-2.25-2.86 2.43-5.8.41-1.6.66-3.25 1.55-4.7.2-.47-.13-1.14-.56-1.47-2.06 1.43-3.03-.88-7.47 1.82ZM23.91 36.42l.1-1.36-1.52-.26a2.1 2.1 0 0 1 1.98-.34c-.52 2.18.41 3.72 2.78 3.85.72-1.07 1.36-1.23 2.07-.48-3.12-.32-.8 2.94.79 1.84.42-.6 1.77-1.14 1.38-2-2.48-1.78-2.3.86-2.77-3.56l-.31-.03c-.23.84-1.07 1.5-1.75.7-.24-.27-.44-.51-.83-.58 1.7-1.34 3.71.6 3.59-2.55 1.89 2.34 2.05-.26 3.92-.3-.09 1.86-.47 1.71-2.09 1.6.53.4 2.54 2.4 1.37 2.58-.49-1.24-1.31-2.45-2.7-2.7-1.13 1.11-.58 2.36-.4 3.64 1-.34 1.85-.98 2.9-.9.36 1.03-1.3 1.6-.36 2.6 1.61.27 3.36.28 2.85-1.98-.53-.31-1.05-.52-1.6.05.03-.88.9-1.03 1.58-.86 1.48-1.57.99-3.64-.61-4.9.42-.61.87-1.04 1.63-1.19-.25.53-.8.73-.92 1.21L36 31.73c.86-.37 1.08-1.7.48-3.06-1.06.27-2.92 1.14-2.92 1.14-.9-.34-.52.1-.39.54-2.9.52-5.76 1.28-8.07 3.19-.41.3-.6.12-.74-.46-.27-.42-.4.3-.44.48 0 0-1.75.42-2.5 1.06.53.88 1.29 2.26 2.5 1.8Z" />
21
+
22
+ <path d="M35.32 35.55c.27 1.3-.1 2.39-.96 3.41 1.29 2.3 3.48 4.03 4.45 6.5 2.16-3.99-.15-5.33-3.12-7.52 1.9.68 3.83 1.33 4.89 3.12.22-3.42-1.31-5.13-4.67-5.66l.03-.14c1.4-.07 2.8-.06 4.1.78-.34-1.06-1.21-2.63-2.48-2.5.45-.94.45-1.56-.01-2.13-.22.66-.64 1.07-1.33 1.1a4.09 4.09 0 0 1-.9 3.04ZM24.64 43.35c.4.96.99 2.07 1.97 2.47-.5-1.89.78-3.53 1.38-5.24.01 3.94-2.24 6.07 3.2 7.51-1.45-2.31-.49-5.12-1.4-7.5-.88-.5-1.87-.62-2.46-1.35-.16-.34-.46-.47-.78-.53-1.02-.22-1.97-.56-2.48-1.4-.75.23-1.2.2-1.89-.08-.06.84.66 1.68 1.61 1.36-.76 1.1-.34 2.09-.06 3.22a5.64 5.64 0 0 1 2.32-2.39c-.72 1.21-2 2.43-1.41 3.94ZM46.52 83.51c.74-.68-.26-1.07-.65-1.6-6.58-6.05-9.03-13.92-8.45-22.67l-.69-.34a27.66 27.66 0 0 0 9.8 24.61ZM105.23 33.13c-.62 1.19 1.19 1.68 1.2 2.81l-1.33-1.05c-.57 2.2 2.06 2.92 2.87 4.66 1.06-3.22.49-5.18-2.73-6.42ZM32.99 42.63c-1.75.1-1.5-2.07-2-3.28l-.86.97 1.1 3.69.8-.56c1.2.85 2.32.27 2.72-1.06.36.09.69.24.95-.02l-1.68-3.43c-.35.07-.68-.42-1.1-.03.4 1.07 1.84 3.22.07 3.72ZM104.9 27.73l-.03.14-1.67-.09c.62 1.95 2.9 1.01 4.35 1.9-.83-1.57-1.43-3.1-3.35-3.4.2-.92-.05-1.8-.63-2.15 0 .82-.33 1.41-1.09 1.72-.37 1.62 1.34 1.54 2.42 1.88ZM104.4 38.96l-.13.02c-.4 1.73.81 3.24 1.57 4.7 1.31-2.3 1.26-4.93-.84-6.76-.64 1.22.25 2.4.57 3.56l-.13.05-1.04-1.57ZM103.92 29.24c.75 1.77 1.95 1.35 2.73 2.5-.66-.2-1.23-.4-1.8-.58-.03 1.89 2.36 2.08 3.69 2.8-.22-3.04-1.71-4.2-4.62-4.72ZM97.01 26.05c.82 0 2 .52 2.68.05.01-2.57-3.16-2.23-4.96-2.29.54.97 1.22 1.92 2.28 2.24ZM88 62.7l-2.05-.15.07.91c.41.1.76.2 1.14.28.11 2.12-1.07 2.16-2.66 1.27-.48 2.69 3.9 2.42 3.5-2.3ZM86.49 54.14c-2.42 2.92-2.44 3.35 1.24 4.6l-.08-.8a7.35 7.35 0 0 1-2.07-.9l1.34-1.64-.43-1.26ZM75.24 43.48l1.11-.09c.39-1.43-.43-1.58-1.42-2.35-.4 1.18-1.45 1.76-2.05 2.76a2.5 2.5 0 0 0 2.08-1.12l.28.8ZM80.8 49.96c.34-.94 2.16-3.26 1.18-3.99-.45.27-1.4.16-1.3.86-.02 1.03-.01 2.06-.01 3.09l.12.04ZM98.87 23.63l.11-.16c-1.02-1.44-1.46-1.73-3.26-1.74.03 1.74 1.86 1.75 3.15 1.9ZM94.26 19.3c-.07 1.24.98 1.95 2.7 1.86-.44-1.25-1.34-1.92-2.7-1.85ZM90.2 32.13c-1.4-.65-2.55.17-3.97-.13.4 1.94 2.74.53 3.98.13ZM92.9 17.34c.36 1.24.85 1.5 2.14 1.33-.41-1.02-1.08-1.43-2.15-1.33ZM93.59 16.7c-.5-1.06-.76-1.2-1.82-1.09.44 1.05 1.07 1.44 1.82 1.09ZM87.13 51.13l1 1.69c1.3 0 .2-1.07-.1-1.53-.17-.18-.54-.18-.81-.27l-.09.11ZM83.4 52.62c.66-.38 1.34-.67 1.94-1.14l-.4-.56c-.57.55-1.9.73-1.55 1.7ZM92.01 14.98c.19-.67-.78-1.57-1.47-1.3.09.75.88 1.4 1.47 1.3ZM77.16 52.33ZM26.88 26.49c.36-.34-.19-.88-.53-.54-.36.33.18.88.53.54ZM27.35 27.47c.36-.33-.18-.88-.53-.54-.36.34.18.88.53.54Z" />
23
+
24
+ <path d="m24.87 23.04-.86.06.45 1.12.6-.7.12.05.08 1.49c.16 1.3 2.16.5 1.36-.55l-.96-1.13a.43.43 0 0 0 .05-.11l.92.1-.45-1.12-.66.54a.5.5 0 0 0-.11-.05l-.08-1.07-1.1.43.69.83a.48.48 0 0 0-.05.11ZM22.42 28.86c.55.01.56-.85.01-.85-.55-.01-.56.85-.01.85ZM22.33 29.96c.55.02.56-.85 0-.84-.54-.02-.55.84 0 .84ZM24.1 26.2c.56 0 .57-.85.02-.85-.55-.01-.56.84-.01.84ZM22.77 27.85c.56.02.57-.84.01-.84-.54-.01-.56.85 0 .84ZM27.95 28.9c-.03-.42.28-1.25.28-1.25l-1.75.69s.8.4 1.08.72c-.37.13-.73.2-1.24-.04l.68 1.34c.15-.6.46-.94.7-.99.73 1.12-1.1 2.35-1.9 1.4-.22-.4.05-.84.52-.5-.07-.83-.8-.83-1.02-.22.02-.85-.2-1.36-1.1-1.61-.23.85.06 1.36.92 1.72-.5-.06-1.02.41-.36 1.01 0-.53.46-.6.7-.23.4.99-.78 1.37-1.75.37.22-.08.44-.05.75.02l-.92-1.15c.05.4.02.7-.07.88-.2-.23-.26-.43-.34-.87l-.7.61a8.22 8.22 0 0 1 2.34 2.38c1.22-1.2 6.16-3.23 8.06-3.17a8.09 8.09 0 0 1 .05-3.33l-.93.04c.25.38.34.56.35.86a1.78 1.78 0 0 1-.66-.6l.13 1.47c.18-.26.32-.44.53-.53 0 1.39-1.12 1.91-1.53.93-.07-.43.3-.7.67-.31.07-.89-.64-.87-.95-.5.37-.84.22-1.41-.54-1.87-.48.8-.28 1.32.33 1.92-.6-.3-1.12.2-.6.85.11-.56.61-.43.72.01.1 1.24-2.1 1.58-2.33.27.2-.12.67-.08 1.18.26l-.43-1.44c-.21.52-.51.71-.87.87ZM51.05 74.28l2.07 1.17c-1.65 1.99 1.31 2.84 1.15.91 1.1.47 5.45 1.79 3.7-.78-5.7.19-8.6-5.73-5.45-10.26 1.92.87 8.66-2.37 8.1.93.35.36.45.4 1.25.4 1.95-4.44-4.76-3.12-7.17-2.6-2.15.63-4.12-2.48-6.02-.77-.75.66-.26 2.13.76 2.18.9.02 1.17-1.22.36-1.6 1.77-.6.92 2.22.28 2.94-2.03-1.04-2.37 2.2-.36 1.35.09.58.12 1.15-.02 1.7-2.2-.47-1.61 2.65.03 1.4.47.44.7 1.13.75 1.8-2.2.3-.44 3.1.58 1.23Z" />
25
+
26
+ <path d="m57.42 77.66-.3-.1c-.16.4-.4 1.16-.03 1.41l1.85.79L61.3 78l.64-9.41-.7.05c-.19.02-1.48 10.88-2.15 10.24.13-.72 1.7-10.24 1.7-10.24l-.7-.1-.08.5-2.62-3.4-.34.16 2.8 3.65-.18.65c-.26-.17-2.96-3.88-3.23-4.23l-.55-.04 3.64 4.7-.2.63-4.08-5.31h-.52l4.42 5.76-.23.83-4.86-6.53-.64.01 5.37 7.02-.2.65-5.92-7.67-.1.6s5.51 7.18 5.85 7.65c-.28.88-.06.96.33 1.69.2.82-.36 2.09-1.34 1.79Z" />
27
+
28
+ <path d="m57.98 74.67-5.68-7.45s-.1.36-.16.51l5.44 7.13.4-.19ZM52.29 69.74c1.3 1.64 2.6 3.32 3.87 4.98.2.02.55.1.55.1l-4.63-6.08s-.08.62.2 1ZM62.18 66.97c-.63-.05-1.3-.18-1.9-.24-1.2 1.03.14 1.62 1.03 1.54.77.2 1.79-.8.87-1.3ZM61.99 93.54c-.19.84 1.15 1.11 1.31.26.19-.84-1.15-1.1-1.31-.26ZM63.2 88.49c.22-1.04-1.44-1.38-1.64-.33-.23 1.04 1.43 1.38 1.63.33ZM57.53 85.7c.23-1.03-1.43-1.37-1.63-.32-.23 1.04 1.43 1.38 1.63.33ZM66.64 95.91c-.67 3.76-2.48 5.46-4.1 5.46-1.6 0-3.42-1.7-4.1-5.46.21.19.41.44.64.74l.35.45.5-.3c.2-.13.41-.24.6-.31-.21.43-.29.95-.18 1.48a2.28 2.28 0 0 0 2.2 1.93c1.08 0 1.98-.8 2.2-1.93.1-.53.02-1.05-.2-1.48.2.07.4.18.61.3l.5.31.35-.45c.23-.3.42-.55.63-.74m.79-1.02c-.95.1-1.43.72-1.93 1.37a3.22 3.22 0 0 0-1.57-.54c-.3 0-.57.08-.82.27 1.73.68 1.11 3.27-.57 3.27-1.68 0-2.3-2.59-.57-3.27-.24-.2-.52-.27-.82-.27a3.2 3.2 0 0 0-1.57.54c-.5-.65-.98-1.28-1.93-1.37.52 4.74 2.7 7.11 4.89 7.11 2.18 0 4.37-2.37 4.89-7.11ZM51.8 82.46c.73-.86-1.81-1.98-2.18-2.46-.3-.18-.68-.14-.88.12-.72.82 1.77 1.96 2.11 2.42.31.24.74.2.96-.08Z" />
29
+
30
+ <path d="M51.48 84.3c2.8 0 2.44-4.4-.32-3.93 1.28.69 2.4 2.5.4 3.03-.75.15-1.52-.65-2.07-1.04.02 1.07.9 1.94 2 1.94Z" />
31
+
32
+ <path d="M47.5 85.03c.61 1.16 4.22 4.31 5.2 2.82-1.76-.88-4.74-3.05-3.6-5.82-2.59-1.57-.3-4.08 1.72-1.95 2.14-1.31 4.53-.37 6.65 1.08.76-1.62-2.94-2.75-3.8-3.23-1.08-.36-4.51.4-5.66.46-.78.1-1.34.79-1.27 1.56.17.83.14 4.42.76 5.08ZM79.27 22.87l1.6.5a19.58 19.58 0 0 0-12.7-10.61c-.14.36-.26.76-.37 1.17 4.88 1.22 9 4.5 11.47 8.94ZM46.36 23.38l1.6-.5a18.3 18.3 0 0 1 11.47-8.95c-.12-.41-.24-.8-.38-1.17a19.58 19.58 0 0 0-12.7 10.62ZM75.62 14.87c1.14.02 1.14-1.75 0-1.74-1.14-.01-1.14 1.76 0 1.74ZM71.6 12.6c1.13.02 1.13-1.75 0-1.74-1.15-.01-1.15 1.76 0 1.74ZM69.4 11.82c1.15.01 1.15-1.76 0-1.74-1.13-.02-1.13 1.75 0 1.74ZM73.67 13.62c1.14.02 1.14-1.75 0-1.73-1.14-.02-1.14 1.75 0 1.73ZM77.42 16.32c1.14.02 1.14-1.76 0-1.74-1.13-.02-1.13 1.76 0 1.74ZM81.98 22.85c-.02 1.13 1.78 1.13 1.76 0 .02-1.12-1.78-1.12-1.76 0ZM80.92 20.81c-.02 1.13 1.77 1.13 1.76 0 .01-1.13-1.78-1.13-1.76 0ZM79.06 17.95c1.14.01 1.14-1.76 0-1.74-1.14-.02-1.14 1.75 0 1.74ZM79.65 18.87c-.02 1.13 1.77 1.13 1.76 0 .01-1.12-1.78-1.12-1.76 0ZM51.6 14.87c1.14.02 1.14-1.75 0-1.74-1.14-.01-1.14 1.76 0 1.74ZM49.8 16.32c1.14.02 1.14-1.76 0-1.74-1.14-.02-1.14 1.76 0 1.74ZM44.36 23.72c1.14.02 1.14-1.75 0-1.73-1.14-.02-1.14 1.75 0 1.73ZM53.55 13.62c1.14.02 1.14-1.75 0-1.73-1.13-.02-1.13 1.75 0 1.73ZM46.7 19.74c1.14.02 1.14-1.75 0-1.73-1.14-.02-1.14 1.75 0 1.73ZM45.43 21.68c1.14.02 1.14-1.76 0-1.74-1.14-.02-1.14 1.76 0 1.74ZM57.82 11.82c1.14.01 1.14-1.76 0-1.74-1.14-.02-1.14 1.75 0 1.74ZM48.16 17.95c1.14.01 1.14-1.76 0-1.74-1.14-.02-1.14 1.75 0 1.74ZM55.63 12.6c1.14.02 1.14-1.75 0-1.74-1.14-.01-1.14 1.76 0 1.74ZM65.12 20.68h1.17c0-3.67.54-6.85 1.5-8.95.33-.67-.75-1.17-1.06-.48-1.4 3.03-1.6 7.2-1.6 9.43ZM60.93 20.68h1.17c0-2.23-.21-6.4-1.61-9.43-.31-.69-1.4-.2-1.07.48.97 2.1 1.5 5.28 1.5 8.95ZM63.61 20.66c1.24.02 1.24-1.9 0-1.88-1.23-.02-1.23 1.9 0 1.88ZM63.61 18.3c1.24.02 1.24-1.9 0-1.88-1.23-.02-1.23 1.9 0 1.88ZM63.61 15.94c1.24.02 1.24-1.9 0-1.88-1.23-.02-1.23 1.9 0 1.88ZM62.94 13.64c.4-.21.94-.21 1.35 0 1.36-2.08-2.72-2.08-1.35 0Z" />
33
+
34
+ <path d="M64.37 11.66c1.06-1.96-2.58-1.95-1.51 0a1.52 1.52 0 0 1 1.5 0Z" />
35
+
36
+ <path d="M63.04 3.73c-.16 1.2-.8 2.13-1.59 2.28v.3H63a1.1 1.1 0 0 0-.2.2c-2.75.6-3.03 4.76-.4 5.74-1.03-.99-.24-2.87 1.21-2.82 1.45-.05 2.24 1.83 1.21 2.82 2.64-.98 2.35-5.14-.4-5.75a.97.97 0 0 0-.2-.19h1.55v-.3c-.8-.15-1.43-1.08-1.58-2.28 1.21.15 2.16.78 2.3 1.56h.31V1.02h-.3c-.15.78-1.1 1.41-2.31 1.57.15-1.2.79-2.14 1.58-2.28V0h-4.32v.3c.8.15 1.43 1.08 1.59 2.29-1.22-.16-2.16-.79-2.3-1.57h-.32v4.27h.31c.15-.78 1.09-1.41 2.3-1.56ZM101.14 70.59h.01l-.28-.49c.03.2.12.38.27.49ZM100.42 72.4c-1.22-.76-1.9 2.59-2.35 3.16-.22.49-.03 1.02.42 1.17l-.9 1.85c-.48-.08-.9.29-.9.84.18.72-.55 3.85.74 3.89v.86c-3.1.56-2.64 5.39.55 5.31 3.17.08 3.66-4.71.6-5.3v-.83c.48.08.9-.28.9-.84-.17-.7.49-3.71-.65-3.87l.69-1.41c1.16.62 1.84-2.64 2.28-3.2.2-.45.05-.97-.36-1.14l.52-1.06c-.14-.2-.44-.64-.73-1.1l-.81 1.67Zm-.58 14.4c-.75 4.3-6.34.04-2.34-1.78.19.42.82.44 1 .02.78.22 1.34.93 1.34 1.76Zm-1.27-4.4c.08-.62-.73-.96-1.05-.44.09-.23-.22-2.57.22-2.57.18.13.42.16.62.01.14.03.24.16.24.32v2.53l-.03.15Zm2.36-8.53c-.14.15-1 2.6-1.3 2.5-.11-.2-.38-.33-.61-.26-.13-.06-.18-.24-.11-.4.16-.17.97-2.67 1.34-2.5.1.24.4.4.64.33.07.08.09.21.03.33ZM38.28 66.98l.27 1.05 4.85-.6-.24-.94c-.24-.05-3.26.5-3.26.5s2.87-3.32 2.8-3.71l-4.9.55.1.83 2.88-.4s-2.39 2.67-2.5 2.72ZM40 73.13c2.35 2.22 6.03-1.33 3.6-3.61-2.34-2.25-6.08 1.33-3.6 3.61Zm.28-2.47c1.03-1.85 4.45-.75 3.03 1.35-1.06 1.79-4.42.78-3.03-1.35ZM43.26 78.37l.82 1.12a11.23 11.23 0 0 1 3.94-2.83l-.82-1.12a5.73 5.73 0 0 1-1.55 1.4l-1.26-1.72c.53-.4 1.23-.9 1.82-1.03l-.82-1.12a11.23 11.23 0 0 1-3.94 2.82l.82 1.12a5.7 5.7 0 0 1 1.55-1.38l1.25 1.72c-.53.39-1.22.88-1.81 1.02ZM42.8 61.64l.06-1.02c-1.38.26-3.61.25-4.99-.01l-.07 1.02c1.39-.25 3.62-.25 5 .01ZM77.96 82.36c2.97-1.29 2.3-4.2-1.04-2.87-1.4-.4.37-1.8 1.3-1.5l.02-.01-.7-.82c-1.05.45-2.73 1.85-1.84 3.04.62.78 1.87-.05 2.69-.04 1.36.24-.1 1.64-.94 1.56l-.02.02M86.09 72.17l.84-2.82c-.43.03-4.28-1.08-4.62-1.33l-.8 2.68.8.68.02-.01c-.06-.62.03-1.32.25-2.09l1.47.42c-.15.42-.4 1.38-.6 1.63l.72.1.47-1.56 1.4.4c-.17.52-.4.93-.7 1.22l.75.68ZM84.14 75.93l.46-.87-3.8-2.52-.42.79c.15.18 2.62 1.63 2.62 1.63s-4.08.53-4.27.84l3.8 2.58.44-.64-2.28-1.46s3.34-.38 3.45-.35ZM73.66 85.15l2.64-1.52c-.34-.25-2.4-3.58-2.47-3.99l-2.5 1.44.1 1.02h.02c.4-.5.96-.94 1.68-1.36l.78 1.27c-.41.2-1.28.74-1.61.79l.46.56 1.46-.84.75 1.2c-.5.28-.95.42-1.38.44l.07.99ZM44.19 52.1c-.8-.62-1.8.48-2.6.66-1.38.08-.3-1.61.54-1.73V51l-.66-.49c-1.24.63-2.19 3.3-.18 3.36.43.02 1.52-.73 1.88-.81.94-.18.64 1.08.08 1.38.28-.02.57-.05.84.02.53-.73.86-1.8.1-2.37ZM45.16 50.66c-2.2-.14-2.66-3.9 0-3.34v-.91c-3.45-.2-3.4 5.22 0 5.1v-.85ZM50.64 43.99h1.52l-1.04-1.64c.53-.3 1.65-.75 2.15-.72l-1.2-.9-3.67 2.17.42 1.4h.02c.3-.57.74-1.04 1.23-1.3l.56.99ZM61.37 43.36l.01.02c-.73.58-1.67.34-2.45-.07-2.3 1.27-4.76-1.71-2.93-3.62 1.94-2.28 5.77.3 3.92 2.82.6.46 1.09.74 1.45.85Zm-2.8-.73c1.84-.71.24-3.53-1.39-2.86-1.82.69-.25 3.53 1.39 2.86ZM62.06 41.34c-.01-.78.1-2.16-.24-2.83h1.64c-.27.72-.74 4.06.66 3.9.55 0 1.1-.38 1.08-.95-.02-.8.1-2.27-.24-2.96h1.64a9.8 9.8 0 0 0 0 4.72H65.2c.03-.1.05-.25.05-.47-1.42 1-3.33.5-3.2-1.41ZM68.99 43.66c.29-1.16.7-3.13 1.35-4.11l-1.27-.42c.01 1.24-.66 3.18-1.09 4.37l1.01.16ZM76.74 59.37h.8V46.62h-11.9v12.75h11.1ZM72.19 59ZM71 59Zm6.15-6.56Zm-11.1 1.12v.12c.02-.24.41-.06.22.1l.06.06c.4.05.45-.54.05-.56v-.01l.48-.2v-.15l-.48-.2v-.02c.4-.02.34-.6-.05-.56l-.06.06c.2.17-.2.34-.22.1v.15-5.07h.4V47h4.42c.25.04.04.37-.12.2l-.06.06c-.05.38.6.4.6.02l.24.47h.15l.22-.47c0 .39.65.36.6-.02l-.05-.06c-.16.17-.37-.16-.12-.2h4.42v.38h.4c-.04-.09.16 6.22-.21 4.82l-.06-.06c-.4-.04-.45.54-.05.57l-.48.22v.14l.48.2v.01c-.4.02-.34.6.05.56l.06-.06c.37-1.43.17 5.02.21 4.84h-.4V59h-4.42c-.25-.04-.05-.38.12-.2l.06-.06c.05-.38-.59-.42-.6-.04h-.01l-.23-.45h-.15l-.22.45h-.01c-.02-.38-.64-.34-.6.04l.06.05c.17-.17.37.17.11.2h-4.4v-.37h-.41v-5.06Z" />
37
+
38
+ <path d="M79.3 59.86c.01-.26-.29-.46-.54-.37v.06c-.48 2.1-.25-6.56-.29-6.24l.44.18v-1.01l-.44.18v-6.39c.07-.32.57-.04.3.16v.06c.59.19.76-.75.12-.76l.4-.68-.1-.1s-.7.4-.71.39c-.01-.58-1-.44-.82.13h.06c.21-.26.52.2.18.26h-5.95l.18-.4h-1.08l.19.4H65.3c-.36-.05-.06-.52.16-.27h.06c.2-.56-.81-.7-.82-.12l-.72-.38-.1.09.4.68c-.63 0-.46.95.14.76v-.06c.46-2.1.24 6.52.28 6.22l-.42-.17v1l.42-.16c-.04-.16.18 8.28-.28 6.23v-.06c-.6-.18-.77.75-.14.76l-.4.68.1.1c.01 0 .71-.4.72-.39 0 .59 1.01.44.82-.12h-.06c-.1.13-.34.06-.34-.1 0-.09.07-.16.16-.17h5.96l-.19.4h1.08l-.19-.4h5.95c.09.01.16.08.16.17 0 .16-.24.23-.34.1h-.06c-.19.56.81.7.82.12l.71.38.1-.09-.4-.68c.23 0 .42-.17.42-.39Zm-7.2-13.74h5.96v13.75H65.12V46.13h6.98ZM77.13 53.68v.01ZM77.13 52.3ZM66.06 53.7v-.02.01ZM66.06 52.3ZM23.05 29.52l.28-.23a3.93 3.93 0 0 1 1.58-2.87 3.77 3.77 0 0 0-.18-.23 4.24 4.24 0 0 0-1.68 3.33ZM25.84 27.87l.27-.1a5.81 5.81 0 0 0-1.15-2c-.13-.13-.34.07-.21.2.4.4.79 1.07 1.09 1.9ZM23.35 26.94c.55.01.56-.85 0-.85-.54 0-.56.85 0 .85ZM31.47 25.12c-.38.4-1.01-.19-.62-.58.37-.4 1 .2.62.58ZM32.32 25.83c-.38.4-1-.2-.61-.59.37-.4 1 .2.61.59ZM28.36 24.45c-.38.4-1-.2-.62-.59.38-.4 1 .2.62.59ZM30.5 24.67c-.38.4-1.01-.2-.62-.59.37-.4 1 .2.62.59ZM31.5 26.03l-.36.04a4 4 0 0 0-3.18-.9l-.04-.29c1.26-.2 2.57.23 3.59 1.15ZM28.28 26.84l-.25.14a5.8 5.8 0 0 1-.64-2.22c0-.19.29-.2.29-.02 0 .56.22 1.31.6 2.1ZM29.43 24.43c-.38.4-1-.19-.62-.58.38-.4 1.01.2.62.58ZM75.3 69.76c1.23-.02 4.1-1.36 2.02-2.48-1.17-.2-2.33.37-3.45.63-4.52 1.78-1.87-.4-4.67-.16.94 2.37 3.33 1.15 5.12.6.06.26-.27.32-.23.58l1.74-.36c.25-1.16 2.4-1.17 1.41 0-2.47 1.06-5.39.86-7.97 1.59-1.73 4.48-4.74 1.43-4.71 2.72-.68.06-.67.7.02.65.02 1.3 3.35-.2 3.97-.6l.43-.9c1.01.48 1.73-.96 2.6-1.22.88-.17 2.02-1.02 2.77-.24.83.91 2.07-.47 2.8.44-.27.71.09.4.21.84 0 .4.66.4.67 0 0-.18.02-.29.2-.36.37-.56-.42-1.17-.7-1.64-.6-.58-1.62.53-2.23-.09Z" />
39
+
40
+ <path d="M64.13 67.79c.2.07.13.3.22.42 1.07.07 2.13-.2 3.2-.34.8 0 .78-.7 1.37-.8 1.41.08 2.3-1.16 3.63-1.36 1.07-.3 2.51-.7 3.46.05.23.25.56.3.9.24.45-.08 1-.18 1.23.34l-.26.27.16.32c.22-.01.25.16.34.3.12.2.4.2.45 0 .05-.25.31-.12.4-.34.03-.64-.1-1.45-.76-1.77-.32-.3-1.6.31-1.63-.31.95.21 2.76-1.01 1.51-1.8-2.11-.5-4.43.52-6.58.76-.84.19-.42-1.18-2.29-.8 1.2 2.47 3.8.72 5.8.7.02.22-.38.2-.28.48.58-.18 1.58.13 1.91-.45.18-.7 1.68-.53 1.24.28-1.12.7-2.8.38-4.12.53-1.61.13-3.37.17-4.89.73-.3.93-.71 1.88-1.8 2.1-.75-.72-1.85.14-2.66-.6-.26.05-.31.2-.42.4-.4.16-.53.38-.12.65ZM76.04 74.3c-2.12-.26-1.8 1.18-2.84.84.19-.23.7-.36.54-.7-1.55.66-3.18 1.14-4.72 1.83-.79.83-.53 2.47-2.3 2.62-.06.86-1.28 1.44-2.03 1.05-.3.28-.17.36-.12.62-.26.23-.6.75-.05.75.17-.04.3-.3.48-.21l-.04.35c.15 0 .35.04.4-.02.24-.3.59-.05.86-.29.91-.6 2.21-1.16 2.14-2.42 1.6-.7 2.54-3.27 4.63-2.37 1.04.56 1.32-1.1 2.25-1.14.26.61.38.56.72.36.58.44.48-.26.71-.58.03-.32-.3-.69-.63-.68Z" />
41
+
42
+ <path d="M66.48 64.23c-.34.95 0 2.21.9 2.74a2.48 2.48 0 0 0 1.32-2.88c.24-.2.54-.3.45-.65-.16-.38-.77-.1-.92-.54-.39-.52-.9-.1-1.2.25-.24.03-.47-.09-.69.02-.22.4.4.65.14 1.06ZM66.21 77.55c1 2.36 2.5-.64 2.12-1.91.69-.56.5-.9-.33-.95-.3-.62-.93-.68-1.36-.16-.16.19-.38.12-.58.14-.43.2-.2.66.18.76-.2.72-.31 1.43-.03 2.13ZM68.95 68.81c-.2-.11-.44-.12-.65-.1-.36-.91-1-.57-1.51-.02-.77-.3-.66.38-.25.75-.38.93-.12 2.32.88 2.72 1.06-.44 1.35-1.7 1.28-2.73.33-.05.6-.42.25-.62ZM76.52 71.9c-1.9-.63-4.87 3.44-6.13 2.24-.3-.66-1.24-.58-1.83-.4.7.5 1.1 1.62 2.18 1.25 1.21-.23 2.17-1.2 3.22-1.65.03.35-.33.5-.48.83.72-.23 1.37-.43 1.9-.88-.09-1.97 2.76-.6.03.62.49.01.82.23 1.15-.17.63-.55.66-1.35-.04-1.85ZM72.22 76.46c-.56.13-1.11.18-1.46.74l.42.55c-.27.68-.95.57-1.6.6l.14.47c-.27.15-.38.39-.32.72l.24.08c.18-.22.5-.44.58-.03a4.57 4.57 0 0 0 2.76-2.15 2.03 2.03 0 0 1-.76-.98Z" />
43
+
44
+ <path d="M70.69 72.4c-.25 0-.3.31-.13.46.16.18.33-.02.52.03l.01.28c1.02.06 2.55-.84 3.1-1.65l-.64-.97c-.55.18-1.18.16-1.5.66l.56.59c-.38.2-.8.55-1.21.22-.17-.15-.63-.08-.51.2.01.05-.01.1-.02.16l-.18.02ZM66.37 78.52c-.38-.73-.97-1.39-1.24-2.15.33-.47.18-1.06-.45-.68-.15-.32-.39-.38-.68-.3-.08.2-.13.4.1.55l-.01.1-.2.06c-.16.4.24.63.38.94.44.7 1.09 2.35 2.1 1.48ZM66.37 66.55c-.06-1-1.23-1.65-.88-2.66.1-.19.07-.41-.13-.56a.73.73 0 0 1-.6-.08c-.44-.21-.5.27-.46.58l-.29.13c.3.86 1.22 3.03 2.36 2.59ZM64.1 69.96c.43.65.55 1.69 1.29 2.06.33 0 .85.3 1.05-.09-.22-.77-1.19-1.22-1.05-2.1.05-.21-.03-.42-.2-.6-.38.1-1.16-.73-.88.27-.23.08-.37.24-.2.46ZM47.32 49.85c.16.01.32-.17.49 0l-.05.25c1.03.45 2.17-.05 3.2-.33.4-.12.63-.53 1.07-.52 1.06.08 1.66-.8 2.57-1.05 1.12-.22 2.26-.4 3.4-.37 1.32 1.78 1.56.27 2.74.87l-.1.53.3.1c-.11.44.55.7.64.14.02-.07-.02-.15.08-.17.7-.37-.38-2.21-1.12-1.73-.38.18-.88.35-1.18-.1.66-.26 1.47-.2 1.91-.8.34-.4.3-1.2-.33-1.42-1.65-.45-3.4.37-5.06.52-3.13.84-.9-.67-3.38-.65.89 2.51 3.56.9 5.41.71-.13.3-.44.4-.56.67.66-.12 1.52.12 2-.38.26-.69 1.92-.77 1.52.17-1.56 1.51-6.45.1-8.63 1.06-.33.99-.9 1.64-1.86 1.91-.77-.48-1.13.07-1.9-.15-.22-.23-.44-.5-.78-.24v.36c-.36-.1-.78.4-.38.63Z" />
45
+
46
+ <path d="M50.03 46.02c-.58 1.04-.4 1.99.28 2.87 1.28.04 1.8-1.7 1.6-2.74l.39-.27-.1-.38-.65-.03c-.47-.6-.75-.6-1.3-.07-.25-.1-.46-.03-.63.19.09.19.21.33.41.43ZM56.3 48.27c-.06.29.2.42.26.64-.35.22-.72.24-1.09.28-.19-.19-.27-.53-.6-.43-.2.04-.09.24-.23.32-.25-.02-.39.1-.43.35l.35.2c-.28 1.31 3.34-.05 3.87-.44-.17-.3-.4-.5-.47-.84-.15-.58-1.22-.1-1.66-.09ZM49.53 48.43c-.04-.46-.16-1-.52-1.32-.41-.42-.55-1-.13-1.44-.2-.2-.49-.04-.7-.32-.25-.3-.41.05-.47.36-.74.1-.32.35-.15.73.24.68 1.11 2.3 1.97 1.99ZM60.45 53.33c-.38.18-.89.35-1.18-.1.65-.26 1.47-.2 1.92-.8.34-.41.3-1.22-.34-1.44-1.66-.46-3.42.38-5.1.52-3.15.85-.9-.67-3.4-.66.9 2.54 3.58.91 5.45.73-.13.3-.44.4-.57.68.66-.13 1.53.12 2.03-.39.25-.7 1.92-.78 1.53.17-1.58 1.52-6.51.1-8.7 1.07-.34 1-.92 1.65-1.88 1.92-.67-.4-1.02-.07-1.6-.1.03.2.09.37.13.55.05.19.07.37.08.56.67-.07 1.34-.32 1.96-.49.41-.12.64-.53 1.1-.52 1.06.07 1.67-.81 2.58-1.07a16.9 16.9 0 0 1 3.44-.37c1.32 1.8 1.56.27 2.75.88l-.1.53.3.1c-.1.45.56.71.65.15.01-.07-.02-.16.08-.17.71-.38-.38-2.23-1.13-1.75Z" />
47
+
48
+ <path d="M49.86 51.76c-.59 1.06-.42 2.01.28 2.9 1.29.04 1.82-1.7 1.6-2.77.14-.09.27-.17.4-.27l-.1-.38-.66-.03c-.46-.6-.75-.6-1.3-.07-.26-.1-.47-.03-.64.2.1.18.21.33.41.42ZM56.17 54.03c-.05.3.22.42.27.66-.35.22-.73.23-1.1.28-.19-.2-.27-.54-.6-.44-.2.05-.1.25-.24.33-.25-.02-.4.1-.43.34l.35.21c-.28 1.32 3.37-.05 3.9-.45-.17-.3-.4-.5-.47-.84-.15-.58-1.23-.1-1.68-.09ZM49.35 54.2c-.04-.47-.16-1.01-.53-1.33-.41-.43-.54-1-.12-1.46-.21-.2-.5-.04-.7-.32-.27-.3-.42.05-.49.36-.74.11-.31.35-.14.74.24.68 1.12 2.3 1.98 2ZM60.58 58.73c-.38.18-.88.35-1.18-.1.65-.27 1.47-.2 1.92-.81.33-.4.3-1.21-.34-1.43-1.66-.45-3.41.38-5.1.52-3.14.85-.9-.67-3.4-.65.9 2.53 3.59.9 5.45.72-.13.3-.44.4-.56.67.66-.12 1.53.12 2.02-.38.25-.7 1.92-.78 1.53.17-1.57 1.52-6.5.1-8.7 1.07-.32.99-.9 1.65-1.86 1.92-.79-.48-1.14.06-1.93-.15l-.23-.24a.15.15 0 0 1-.06-.04.48.48 0 0 0-.1-.05l.02.04c.01.45-.1.9-.28 1.31 1.02.4 2.14-.09 3.15-.36.4-.12.64-.53 1.09-.52 1.06.08 1.67-.8 2.58-1.06 1.13-.21 2.28-.39 3.43-.37 1.32 1.79 1.56.27 2.75.88l-.1.52.3.11c-.1.45.56.7.65.14.01-.07-.02-.16.08-.17.7-.38-.38-2.23-1.13-1.74Z" />
49
+
50
+ <path d="M50 57.16c-.58 1.06-.41 2 .28 2.9 1.3.04 1.82-1.7 1.6-2.77.14-.09.27-.17.4-.27l-.1-.38-.65-.03c-.47-.6-.75-.6-1.31-.07-.26-.1-.47-.03-.64.2.1.18.22.33.42.42ZM56.3 59.43c-.05.3.22.42.27.65-.35.22-.72.24-1.09.28-.2-.19-.27-.53-.61-.43-.2.04-.09.24-.23.32-.25-.02-.4.1-.43.35l.35.2c-.28 1.32 3.36-.05 3.9-.44-.18-.3-.4-.5-.47-.85-.15-.58-1.23-.1-1.68-.08ZM48.97 58.26a1.56 1.56 0 0 1-.2-.25c-.03.24.1.51.06.74-.04.19-.09.46-.14.63.3.3.47.33.8.21-.04-.46-.15-1-.52-1.33ZM67.88 48.96c.28.18.5 1 .67 1.12.32.42 1 1.55 1.66 1.32v-.02c.2-.08.38-.65.4-.73-.01-.02-.12-.12-.25-.22-.62-.53-1-1.06-1-1.55-.04-.16.35-.38.32-.53-.02-.56-.49.07-.67-.02-.1-.16-.45-.62-.67-.4-.13.06.03.4-.07.47-.05.07-.08.08-.23.07-.5 0-.57.3-.16.5Z" />
51
+
52
+ <path d="M70.54 52.75c.17-.17.67-.65.73-.76.05-.11.07-.11.42-.14.97-.14 1.46-.53 1.74-1.56.13-.31-.04-.98-.24-1.13-.08-.05-.11-.15-.06-.19.18-.02.55-.17.62-.38-.1-.2-.36-.05-.7-.16-.25-.11-.92-.32-1.2-.17-.18.23-1.32.25-1.11.59l.12.4.52.07v.37l-.48.1c-.31.45.73.48 1 .14.19-.22.48-.25.47-.01-.14.3-.64.44-.93.59-.44.07-.55.92-.89 1.2-.95.17-1.29.15-2.23-.6-.34-.4-.61-.1-.35.2-.17.06-1.04-.43-.65.4l.06.08c-.43.61.21.4.57.6.77.3 1.6.52 2.6.36Z" />
53
+
54
+ <path d="m73.59 52.15.4.83s.86.38.98.5c.49.35.4 1.32-.03 1.21-.72-.29-1.15-1.3-1.65-1.92-.13-.1-.47-1.11-.7-.85-2.96.65.54 1.4 0 2.5-.1.15-.43.9-.3 1.02.25.3.8.53 1.1.91.48.47.05 1-.55.57-.34-.25-.74.11-.4.45.03.06-.2.16-.24.19-.35.48.23.45.54.21.17-.08 0 .42.29.34.54-.12 1.37-.39 1.52-1.23.34-.76-.44-.64-.63-1.31-.2-.28-.21-1.29.21-.92.4.5.92.77 1.4.34.44-.42.04-1.42-.19-1.86-.43-.89-.92-1.74-.89-2.8.6-.7 1.3.56 1.72-1.4-1.4.09-2.78 1.02-2.09 2.58.43.88.34.81-.5.65Z" />
55
+
56
+ <path d="M71.33 53.82c-.74-.04-1.3-.1-1.1.77.04.21.12.85.25 1 .05.08.04.17-.03.22-.3.17-1.43-.29-1.3-.67 0-.31-.31-.39-.4-.16-.06.1-.14.1-.25-.03-.21-.3-.5.1-.38.33.04.09-.01.18-.12.2-.31.13-.3.55.14.56.94.44 1.76.88 2.86.73h-.02c1.2-.09.59-.31.53-1.14-.2-.88 1.33-1.47-.18-1.81ZM72.46 66.5c-.08-.07-.28 0-.3.06 0 .4-.42.28-.55.56.08.16.2.3.39.28.23-.02.2.26.42.27.98-.44 2.16-.33 3-1.1-.32-.26-.4-.62-.46-1-.57.04-1.13-.04-1.62.22-.05.26.13.4.26.62-.4.17-.76.26-1.14.09Z" />
57
+
58
+ <path d="M88.26 55.51c-.4-.82-1.3-5.44-2.6-4.44 5.96 11.02 1.98 25.52-8.37 32.5-3.03 1.81-6.8 4.83-10.4 2.82 2.32-8.95 13.44-5.17 15.85-22.22-.3-.14-.4-.23-.68-.28a29.17 29.17 0 0 1-1.85 6.87c.96-2.54.35-10.48.53-10.92-.1-.13-.2-.18-.53-.58.06.96 0 1.3 0 2.58H63.35V44.43H79.9v9.82a6 6 0 0 0 .1.7c.24-.37.26-.35.42-.47V43.92H45.7l-.03 8.9h.51v-8.4h16.66v17.42H46.77c-.05.05.01-.28-.04-.23 0-.05-.11.27-.11.23h-.45V60.5l-.5-.02c-.38 1.3.72 12.23 2.53 14.15-3.62-3.48-4.76-9.65-4.08-14.3 0 0-.34-.26-.71-.6-1.14 6.56 1.36 13.02 6 17.7.4.44.85-.02 1.34-.15-.1-.1-.31-.27-.46-.47l.46.47-.25-.7c-3.65-2.76-4.25-10.63-4.32-14.23h16.65s0 21.83-.02 21.88c-3.54-.17-5.94-3.98-9.36-4.02 4.92 2.88 13.9 9.83 19.58 6.78l.08.1c-.6.74-2.7 2.14-3.64 1.78-1.54-.92-3.93.76-2.83 2.47.14.2.22.37.06.64-6.14-.57-11.66-4.2-16.83-7.31l-.09.1c1.98 2.65 9.06 5.94 9.06 5.94v3.94l.75.5v-4.27c1.86.63 5.62 1.8 5.62 1.8l.01 2.66.72-.45-.04-2 1-.27a1.3 1.3 0 0 0 .97-1.41.75.75 0 0 1-.42-.87c.15-.78 1.1-.8 1.49-.33.77.34 1.52-.57 2.28-.79 1.07-.64 2.38-1.2 2.88-2.42.1-.3.26-.5.52-.64a27.42 27.42 0 0 0 6-4.3c7.52-6.29 10.14-17.1 7.64-26.35Zm-24.91 6.83H80.2c1.38 12.76-6.18 17.03-16.86 21.48V62.34Zm.3 22.8a6.99 6.99 0 0 1 3.56-1.79l-1.26 2.8-2.3-1.02ZM26.02 92.14c-.38-.23-.86-.3-1.42-.21.12.84.43 2.41.67 3.23 1.6-.23 2.07-2.2.75-3.02Z" />
59
+
60
+ <path d="M47.7 86.35c-9.55.01-19.06 4.05-28.6 4.05-1.15 0-2.3-.06-3.45-.2 2.96 2.32 2.76 6.96 7.06 6.96l.58-.03c5.85-.62 11.66-2.25 17.42-3.15.99-.15 5.75-1.3 8.54-1.3 1 0 1.76.14 1.98.55.3.54-1.6 2.12-1.6 2.18-.01.02 0 .03.02.03.18 0 1.23-.6 2.02-1.11 3.11-2.22-3.41-7.98-3.97-7.98Zm-20.1 7.84c-.52 1.22-2.07 1.5-3.29 1.71.06-.38-.68-3.91-.9-4.24 2.1-.89 5.1-.02 4.19 2.53Zm1.23.74a9.99 9.99 0 0 0-.91-4.24l1.22-.26a10 10 0 0 0 .9 4.24l-1.21.26Zm4.69-1-2.5.54c.05-.37-.76-3.84-.97-4.16l2.63-.57-.21.87c-.37-.1-.8-.1-1.28 0l.3 1.25 1.45-.32.23.62c-.29-.05-1.16.17-1.56.23l.3 1.32c.72-.16 1.31-.4 1.78-.71h.01l-.18.92Zm2.56-.4c-1.82.05-2.09-2.53-2.51-3.8l.88-.16c.42 1.1.3 3.7 2.18 3.35 1.36-.6.26-2.73.12-3.76l.87-.12c.33 1.7 1.11 4.67-1.54 4.5Zm7.24-1.28-2.5.57c.05-.37-.79-3.83-1-4.15l2.63-.6-.2.88c-.37-.1-.8-.1-1.29 0l.3 1.26 1.46-.33.24.6c-.29-.04-1.16.18-1.56.26l.31 1.3c.72-.15 1.31-.4 1.78-.72l.01.01-.18.92Zm2.63-4.2.72 3.58-.84.15-.73-3.57c-.52.09-.8.09-1.5.39l-.02-.8 3.6-.46.25.68a5.68 5.68 0 0 0-1.48.02ZM91.93 90.33c-.2.8-.52 2.28-.62 3.08 1.87.4 2.45-2.7.62-3.08ZM99.27 91.6c-1.43-.36-1.9 2.6-.7 3.07 1.45.34 1.9-2.6.7-3.08ZM95.52 91.04l-.44 1.57c1.22.22 1.75-1.37.44-1.57ZM84.04 88.8c-1.5-.4-2.07 2.65-.82 3.17 1.53.4 2.08-2.64.82-3.17Z" />
61
+
62
+ <path d="M105.4 90.38c-1.19 0-2.33-.02-2.88-.07-6.3-.6-12.52-2.38-18.8-3.37-1.81-.28-3.3-.55-4.58-.55-2.67 0-4.48 1.15-6.63 5.67-.91 1.73 2.15 3.37 2.83 3.44-2.52-2.13-1.64-2.76.34-2.76 2.75 0 7.62 1.2 8.57 1.33 5.75.9 11.57 2.53 17.42 3.15l.59.03c4.3 0 4.09-4.64 7.05-6.95-.53.04-2.27.08-3.9.08Zm-23.67-2.5c-.14.13-.65 3.67-.62 4.01l-.96-.18c.17-.3.4-2.77.4-2.77l-1.65 2.53-.97-2.86s-.39 2.06-.4 2.72l-.95-.13c.3-.48.9-4.12.9-4.12l.97.18c.03.2.76 2.66.76 2.66s1.3-2.15 1.38-2.26l1.14.2v.02Zm3.53 3.13c-.86 2.9-4.24 1.31-3.24-1.27.86-2.81 4.24-1.33 3.24 1.27Zm3.33 2.54c-.3-.07-1.89-3.28-1.89-3.28s-.39 2.5-.49 2.67l-.72-.1.83-3.93.8.1c0 .11 1.27 2.76 1.27 2.76l.46-2.34.62.17-.88 3.95Zm3.77.34c-.57.2-1.39-.02-1.98-.14l.8-4.04c2.65-.17 3.74 3.22 1.18 4.18Zm4.7-1.86c-.12.46-.46.77-1.02.94.24.8.39 1.06.8 1.93v.02l-.65-.1a7.54 7.54 0 0 1-1.18-1.8c-.14.5-.28 1.13-.22 1.58l-1.1-.16c.2-.31 1.06-3.62 1.03-3.97.94.12 2.64.29 2.34 1.56Zm2.1 3.2c-2.44.45-2.43-3.6-.48-4.17 2.43-.51 2.44 3.61.47 4.17Zm2.52-2.37c-.1.71-.43 2.18-.3 2.86l-.95-.14c.42-1.06.7-2.85.64-3.98l.95.13c-.16.32-.27.7-.34 1.13Zm2.25-.18s-.56 3.11-.53 3.38l-.94-.17c-.02.02.58-2.73.73-3.33a2 2 0 0 0-1.1.1h-.01l.38-.78 2.56.45.18.87a3.4 3.4 0 0 0-1.27-.52Z" />
63
+ </svg>
64
+ );
@@ -0,0 +1,81 @@
1
+ type EaLogoProps = React.SVGProps<SVGSVGElement>;
2
+
3
+ export const EaLogo = ({ className, ...props }: EaLogoProps) => (
4
+ <svg
5
+ viewBox="0 0 641.32416 178.27345"
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ focusable="false"
8
+ className={className}
9
+ {...props}
10
+ >
11
+ <title>Environment Agency Logo</title>
12
+
13
+ <g transform="matrix(1.25 0 0 -1.25 .091648 177.27659)">
14
+ <ellipse
15
+ cx="70.870361"
16
+ cy="-70.511894"
17
+ fill="#000"
18
+ rx="70.94368"
19
+ ry="71.30938"
20
+ transform="scale(1 -1)"
21
+ ></ellipse>
22
+
23
+ <path
24
+ d="m47.4352 11.3129.6429 1.5902c5.3239 14.4938 11.5571 28.3508 15.2266 36.1895-.3067 5.1828-.9344 9.9054-1.5629 13.5949-14.2969 3.532-24.4395 13.2977-24.4395 13.2977l4.07 6.005s13.8617-11.1554 30.3691-11.1554c16.507 0 30.3596 11.1515 30.3596 11.1515l4.075-6.0035s-10.1584-9.7828-24.4748-13.3043c-.6133-3.6308-1.2364-8.2551-1.5477-13.3293 3.6-7.6703 9.7567-21.3633 15.0781-35.764l.593-1.634c22.9174 9.7289 38.9874 32.4383 38.9874 58.9008 0 35.325-28.636 63.961-63.9608 63.961-35.3242 0-63.96253-28.636-63.96253-63.961 0-27.0614 16.80433-50.195 40.54653-59.5391z"
25
+ fill="#fff"
26
+ ></path>
27
+
28
+ <g fill="#000">
29
+ <path d="m190.688 111.196 2 .127v9.94l-21.202-.124-14.082.125-.008-2.269c5.245-.175 6.459-.35 6.459-5.022v-26.7609c0-5.6426-.734-6.4535-6.459-6.4535v-2.282l15.45.1234 20.053-.1227c.712 3.2852 2.005 7.4915 2.977 10.1852l-2.149.3816c-2.579-6.2742-5.776-7.3113-12.284-7.6082h-3.566c-6.423 0-6.648 1.4024-6.648 8.0215v9.5742h6.92c5.277 0 7.055-.3566 7.055-5.7863h2.085l-.149 4.1246-.136 2.9221c0 2.085.171 6.056.309 7.423h-2.067c-.522-4.345-.895-5.501-5.398-5.501 0 0-7.962 0-8.619 0v16.091h8.864c6.924 0 9.648-1.831 10.595-7.109"></path>
30
+
31
+ <path d="m198.346 104.349c2.601-.595 3.828-1.908 3.828-4.118v-17.4994c0-1.7535-.811-1.8222-2.814-1.8222h-1.543v-2.4367l7.49.1394 7.361-.1394-.008 2.4367h-1.545c-2.043 0-2.945.0726-2.945 1.8222v19.3454c2.312 1.515 5.415 2.698 7.304 2.698 3.098 0 5.719-1.229 5.719-5.573v-16.4704c0-1.7535-.811-1.8222-2.811-1.8222h-1.548v-2.4367l7.49.1394 7.361-.1394-.008 2.4367h-1.543c-2.042 0-2.947.0726-2.947 1.8222v17.0368c0 6.5736-3.377 9.6016-7.947 9.6016-4.031 0-7.196-2.115-11.07-4.625v3.925c0 .823-.63.746-.873.643-2.421-1.052-6.33-2.433-8.951-3.209z"></path>
32
+
33
+ <path d="m459.53 104.349c2.602-.595 3.828-1.908 3.828-4.118v-17.4994c0-1.7535-.814-1.8222-2.814-1.8222h-1.543v-2.4367l7.49.1394 7.361-.1394-.007 2.4367h-1.546c-2.042 0-2.945.0726-2.945 1.8222v19.3454c2.309 1.515 5.416 2.698 7.304 2.698 3.099 0 5.72-1.229 5.72-5.573v-16.4704c0-1.7535-.814-1.8222-2.812-1.8222h-1.547v-2.4367l7.489.1394 7.361-.1394-.008 2.4367h-1.543c-2.045 0-2.947.0726-2.947 1.8222v17.0368c0 6.5736-3.378 9.6016-7.947 9.6016-4.03 0-7.195-2.115-11.07-4.625v3.925c0 .823-.633.746-.873.643-2.42-1.052-6.33-2.433-8.951-3.209z"></path>
34
+
35
+ <path d="m340.984 104.349c2.602-.595 3.828-1.908 3.828-4.118v-17.4994c0-1.7535-.813-1.8222-2.814-1.8222h-1.543v-2.4367l7.487.1394 7.364-.1394-.01 2.4367h-1.543c-2.042 0-2.947.0726-2.947 1.8222v19.3454c2.312 1.515 5.415 2.698 7.304 2.698 3.101 0 5.722-1.229 5.722-5.573v-16.4704c0-1.7535-.813-1.8222-2.814-1.8222h-1.548v-2.4367l7.492.1394 7.358-.1394-.005 2.4367h-1.543c-2.044 0-2.947.0726-2.947 1.8222v17.0368c0 6.5736-3.378 9.6016-7.947 9.6016-4.03 0-7.195-2.115-11.072-4.625v3.925c0 .823-.631.746-.87.643-2.424-1.052-6.331-2.433-8.952-3.209z"></path>
36
+
37
+ <path d="m262.828 105.95v2.436l-6.513-.139-5.48.141-.004-2.406c1.085.002 1.886-.058 2.462-.179.831-.175 1.202-.833 1.202-1.748 0-.914-.462-2.492-1.298-4.4874l-5.512-12.7426-5.647 14.167c-1.148 2.714-1.088 4.008.143 4.681.337.184 1.573.277 2.683.277v2.436l-7.749-.139-7.46.139-.005-2.436c2.512 0 3.491 0 5.479-4.854l9.73-23.6089h2.292l10.299 23.9319c1.209 2.819 2.233 4.531 5.378 4.531"></path>
38
+
39
+ <path d="m264.964 106.571v-1.533c1.874-.552 3.434-1.848 3.434-4.409v-17.8974c0-1.7535-.813-1.8222-2.811-1.8222h-1.612v-2.4367l7.555.1394 7.292-.1406v2.4379h-1.481c-2.045 0-2.947.0726-2.947 1.8222v25.3574c0 1.313-.71 1.411-1.66.986-1.582-.712-5.263-1.82-7.77-2.504"></path>
40
+
41
+ <path d="m267.805 118.686c0-1.914 1.712-3.657 3.591-3.657 1.95 0 3.596 1.675 3.596 3.657 0 1.946-1.612 3.529-3.596 3.529-1.879 0-3.591-1.681-3.591-3.529"></path>
42
+
43
+ <path d="m282.635 104.024c2.27-.595 3.434-1.478 3.434-4.004v-17.2884c0-1.7535-.813-1.8222-2.813-1.8222h-2.142v-2.4356l8.219.1383 7.302-.0961 2.298-.0433v2.4367h-4.053c-2.003 0-2.816.0687-2.816 1.8222v15.5184c0 3.786 3.557 5.123 4.467 5.123 1.073 0 1.58-.368 2.116-.759.557-.405 1.133-.823 2.241-.823 1.941 0 3.462 1.636 3.462 3.723 0 2.66-2.409 3.856-4.12 3.856-2.809 0-6.211-2.451-8.229-5.524v4.626c0 1.021-.736 1.113-1.582.642-1.424-.791-5.499-2.768-7.77-3.634z"></path>
44
+
45
+ <path d="m312.512 93.9574c0 6.0606 2.648 12.6676 9.072 12.6676 6.513 0 9.235-7.2187 9.235-13.7234 0-6.0629-2.668-12.6672-9.141-12.6672-6.468 0-9.166 7.216-9.166 13.723zm-6.79-.6578c0-10.0066 6.555-15.8125 16.02-15.8125 8.57 0 15.862 6.3684 15.862 16.0746 0 10.1533-6.426 15.8083-16.084 15.8083-8.679 0-15.798-6.215-15.798-16.0704"></path>
46
+
47
+ <path d="m405.051 104.464c-1.041 3.14-3.531 4.906-7.154 4.906-4.586 0-7.554-2.115-10.991-4.563 0 0-.059-.044-.076-.055v3.337c0 1.157-.92 1.631-2.186.902-.304-.173-4.058-1.467-7.245-2.42v-1.533c2.01-.592 3.434-1.848 3.434-4.409v-17.8974c0-1.7535-.811-1.8222-2.813-1.8222h-1.744v-2.4395l7.688.1422 7.363-.1394-.007 2.4367h-1.546c-2.042 0-2.944.0726-2.944 1.8222v19.3484c1.822 1.247 5.185 3.012 7.435 3.012 3.778 0 5.39-2.323 5.39-7.767v-14.5934c0-1.7535-.81-1.8222-2.813-1.8222h-1.546v-2.4367l7.49.1394 7.422-.1394v2.4367h-1.545c-2.035 0-3.012.0769-3.012 1.8222v19.3484c1.823 1.247 5.186 3.012 7.436 3.012 3.778 0 5.388-2.323 5.388-7.767v-14.5934c0-1.7535-.814-1.8222-2.814-1.8222h-1.543v-2.4367l7.486.1394 7.167-.1406-.008 2.4379h-1.347c-2.043 0-2.945.0726-2.945 1.8222v16.97c0 6.0544-3.072 9.6684-8.214 9.6684-4.145 0-8.472-2.815-11.206-4.906"></path>
48
+
49
+ <path d="m437.188 99.5332c.868 4.3738 3.481 7.0098 7.121 7.0098 3.271 0 5.385-2.245 5.385-5.719 0-.77-.467-1.2908-1.491-1.2908zm17.993-2.8289.868 1.0957c0 8.076-5.804 11.57-11.478 11.57-5.507 0-13.696-4.561-13.696-17.1286 0-5.1035 2.71-14.7543 12.969-14.7543 6.001 0 9.834 4.0649 12.502 7.6047l-1.462 1.3934c-2.989-2.9891-5.662-4.3223-8.661-4.3223-4.933 0-8.953 4.7672-9.355 11.0914-.064 1.1187-.098 1.9223-.098 2.5133 0 .4398.034.6875.069.9367z"></path>
50
+
51
+ <path d="m262.059 47.3523c2.601-.5937 3.827-1.9043 3.827-4.1152v-17.5012c0-1.7507-.813-1.825-2.814-1.825h-1.542v-2.4328l7.489.1391 7.363-.1391-.008 2.4328h-1.545c-2.043 0-2.945.0743-2.945 1.825v19.3461c2.309 1.5137 5.415 2.6981 7.304 2.6981 3.098 0 5.719-1.2293 5.719-5.5762v-16.468c0-1.7507-.813-1.825-2.811-1.825h-1.548v-2.4328l7.49.1391 7.36-.1391-.006 2.4328h-1.543c-2.045 0-2.948.0743-2.948 1.825v17.0364c0 6.5722-3.378 9.6035-7.947 9.6035-4.03 0-7.195-2.116-11.07-4.6258v3.9234c0 .8246-.633.7473-.873.6438-2.422-1.0508-6.331-2.4336-8.952-3.2102z"></path>
52
+
53
+ <path d="m240.032 42.5379c.868 4.3738 3.482 7.0098 7.122 7.0098 3.271 0 5.385-2.245 5.385-5.7168 0-.7715-.467-1.293-1.491-1.293zm17.994-2.827.868 1.093c0 8.0758-5.804 11.5719-11.478 11.5719-5.507 0-13.696-4.5645-13.696-17.1309 0-5.1027 2.71-14.7508 12.969-14.7508 6.001 0 9.833 4.0598 12.501 7.6l-1.461 1.395c-2.989-2.9871-5.662-4.3219-8.662-4.3219-4.933 0-8.953 4.7668-9.354 11.0918-.064 1.1172-.098 1.9242-.098 2.5129 0 .439.034.6859.069.939z"></path>
54
+
55
+ <path d="m492.963 106.323.003-1.59h4.356v-20.7478c0-4.1899 2.354-6.4981 6.629-6.4981 3.076 0 6.033 1.5051 9.035 4.5992l-1.478 1.5082c-1.511-1.3152-2.74-1.8269-4.387-1.8269-.892 0-3.806.3734-3.806 5.1898v17.7756h9.526v3.645h-9.526v6.654h-1.448c-3.01-4.781-6.303-7.156-8.904-8.709"></path>
56
+
57
+ <path d="m176.08 56.2977 6.844-16.2106h-13.053zm2.129 8.7609c-.895-1.2727-3.472-2.5481-4.342-2.8645.633-2.1757.235-3.5554-1.049-6.7468-.022-.0539-9.445-22.7832-9.445-22.7832-.653-1.6469-1.323-3.3532-2.136-4.9352-1.652-3.1859-2.641-3.8328-6.365-4.0301v-2.2207l8.325.1231 8.437-.1231-.005 2.25-2.425-.0402c-2.431.0992-3.806.332-3.806 2.4633 0 1.8008 1.017 4.6289 1.832 6.9039l1.417 3.8969h15.6l3.336-8.3379c.487-1.1332 1.065-2.725 1.001-3.293-.133-1.1582-1.147-1.593-3.41-1.593h-1.587v-2.25l10.353.1231 7.917-.1231-.005 2.25c-1.698 0-3.748.0641-5.039 1.4778-.86.9402-2.156 4.3082-3.128 6.741l-13.889 33.1117z"></path>
58
+
59
+ <path d="m210.049 42.7773c0 3.452 2.025 7.1688 5.771 7.1688 4.231 0 6.13-4.1719 6.13-8.2961 0-3.5609-1.588-7.3691-6.048-7.3691-4.021 0-5.853 3.5601-5.853 8.4964zm-2.309-27.1453c0 5.8512 6.382 5.8512 10.605 5.8512 5.944 0 8.956-1.6773 8.956-4.9902 0-5.9399-8.088-7.23987-11.204-7.23987-3.855 0-8.357 1.67067-8.357 6.37887zm-2.777 14.6489c-.529-.6879-.841-1.8797-.841-2.6309 0-2.8941 2.557-4.782 5.208-5.752-3.734-.8511-7.126-3.3929-7.126-7.7199 0-4.58396 4.416-7.74919 12.84-7.74919 13.951 0 17.855 8.78829 17.855 12.71519 0 4.7969-3.111 7.3438-9.403 7.3438-1.655 0-6.981-.0047-9.115.0633-4.26.1488-4.263 2.0238-4.263 2.6859 0 1.4039.859 2.2059 1.724 2.9918 1.236-.2367 2.514-.3758 3.531-.3758 8.253 0 12.571 5.2969 12.571 10.5239 0 1.6863-.574 3.3035-1.464 4.6382 1.019-.0386 6.285-.2515 6.285-.2515v3.9511c-1.783-.2726-3.08-.3828-4.186-.3828-2.463 0-4.413.5606-6.11 1.0504-2.008.5785-4.411.9934-6.105.9934-7.719 0-12.707-4.1309-12.707-10.5281 0-3.8426 1.882-6.5676 5.949-8.8086z"></path>
60
+
61
+ <path d="m322.173 29.1582c-2.647-2.057-4.795-3.1652-7.989-3.1613-7.833.0152-10.798 5.0941-10.821 12.6461-.017 5.1136 3.722 10.5531 8.403 10.5093 3.456-.0304 4.453-1.4589 5.605-3.0019.776-1.0332 1.508-2.0078 2.764-2.018 1.835-.0144 2.769 1.5918 2.747 3.1848-.037 2.9426-3.776 4.8469-9.373 4.9004-9.169.0898-16.077-7.2742-16.077-17.2547 0-8.2277 5.959-14.2809 13.401-14.2809 5.581 0 10.024 3.3282 12.937 6.834z"></path>
62
+
63
+ <path d="m338.23 22.8969c-.217-.5778-1.583-4.1239-4.397-10.118-.806.618-1.518.8313-2.551.8313-2.018 0-3.526-1.9293-3.526-3.65903 0-2.0082 1.543-3.52226 3.59-3.52226 2.082 0 3.528 1.11797 4.554 3.51718l14.925 35.00191c1.193 2.7649 2.429 4.0606 5.247 4.0008v2.4485l-5.308-.1438-6.521.1391-.044-2.4356c.949 0 1.706-.0453 2.284-.2101.96-.2774 1.414-.8953 1.414-2.2063 0-.3855-.261-1.2508-.676-2.398l-5.539-13.5305-5.45 13.6984c-.549 1.375-1.041 2.6708-.961 3.2196.098.6828.513 1.048 1.307 1.2433.573.1414 1.345.1954 2.334.211l-.007 2.4082-6.302-.1391-8.017.1391v-2.4727c.45-.0195 1.093.0196 1.562-.0937 1.182-.2871 2.132-.9153 2.646-2.1321z"></path>
64
+
65
+ <path d="m79.4563 80.6016c.1925.5906.3011 1.2222.3011 1.8879 0 3.2242-2.4824 5.8339-5.5484 5.8339-3.0563 0-5.5387-2.6097-5.5387-5.8339 0-3.2254 2.4824-5.8368 5.5387-5.8368l.5344.0274c-.4254-.1508-.8758-.2746-1.3407-.3613-4.8855-.9075-9.5492 2.5343-10.4144 7.6792-.8559 5.1489 2.4082 10.0547 7.2988 10.9633 4.8863.9063 9.55-2.5269 10.4102-7.6789.4054-2.4082-.0942-4.7683-1.241-6.6808z"></path>
66
+
67
+ <path d="m117.886 68.0887c1.681 4.4 1.439 9.4961-1.098 13.9015-2.739 4.75-7.521 7.5907-12.605 8.0465.836 3.5211 1.137 6.7594-.297 10.2523-2.492 6.061-10.7266 8.9-16.3297 6.666 7.6406 5.421 17.6207 4.36 21.8987-3.411 1.31-2.378 1.933-5.6721 1.963-8.485 4.015-.9531 7.645-3.4977 9.871-7.3559 3.813-6.6054 2.22-14.8508-3.403-19.6144z"></path>
68
+ </g>
69
+
70
+ <path
71
+ d="m87.9793 9.21094-.6402 1.61016c-4.5055 11.0519-15.5485 31.6848-15.5485 31.6848s-11.3441-21.1911-15.7207-32.1207l-.6656-1.61723c4.9477-1.22578 10.1207-1.87578 15.4469-1.87578 5.932 0 11.6758.80898 17.1281 2.31875z"
72
+ fill="#fff"
73
+ ></path>
74
+
75
+ <path
76
+ d="m57.1328 107.771c-1.7109 2.694-4.6976 4.505-8.1297 4.563-5.4304.098-9.9054-4.229-9.9996-9.653-.0097-.542.025-1.068.0942-1.585 3.0113-.773 8.0113-4.08 8.2734-10.7003-2.725 3.6012-5.168 4.7285-9.3023 5.091-5.8997.5196-10.9536-4.6547-11.0477-10.4219-.0445-2.2453.6277-4.3343 1.8004-6.0535-2.7254-2.4254-4.4707-5.9418-4.5402-9.8797-.1286-7.4628 3.7242-12.7839 10.1625-13.9367 3.5363-.6226 9.3664.2035 12.7539 4.0024-3.0657-6.4297-8.5649-8.9375-14.1184-9.0024-9.1637-.1031-16.3645 8.0676-16.2059 17.2258.0891 4.9395 2.3243 9.3383 5.8059 12.3156-1.1723 2.1594-1.8199 4.6496-1.7754 7.2789.1285 7.3305 5.5828 13.3138 12.6055 14.3378-.0297.468-.0446.941-.0395 1.419.1531 8.484 7.1457 15.243 15.627 15.092 2.7445-.049 5.3066-.811 7.5066-2.107 2.6262 2.687 6.3059 4.323 10.3555 4.251 6.9387-.119 12.6207-5.219 13.7035-11.83-2.6508 3.372-6.7352 5.565-11.3543 5.645-4.9848.085-9.4406-2.31-12.1754-6.052z"
77
+ fill="#000"
78
+ ></path>
79
+ </g>
80
+ </svg>
81
+ );
@@ -0,0 +1,18 @@
1
+ type OglLogoProps = React.SVGProps<SVGSVGElement>;
2
+
3
+ export const OglLogo = ({ className, ...props }: OglLogoProps) => (
4
+ <svg
5
+ viewBox="0 0 483.2 195.7"
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ focusable="false"
8
+ className={className}
9
+ {...props}
10
+ >
11
+ <title>Open Government Licence logo</title>
12
+
13
+ <path
14
+ fill="#454A4C"
15
+ d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145"
16
+ />
17
+ </svg>
18
+ );
@@ -0,0 +1,36 @@
1
+ // Default components - these can be used in server or client-side rendering
2
+ export { Button } from './Button/Button';
3
+ export { Card } from './Card/Card';
4
+ export { Container } from './container/Container';
5
+ export { ErrorText } from './ErrorText/ErrorText';
6
+ export { Heading } from './Heading/Heading';
7
+ export { Hint } from './Hint/Hint';
8
+ export { DefraLogo } from './images/DefraLogo';
9
+ export { EaLogo } from './images/EaLogo';
10
+ export { OglLogo } from './images/OglLogo';
11
+ export { ExternalLink } from './link/ExternalLink';
12
+ export { Link } from './link/Link';
13
+ export { Paragraph } from './Paragraph/Paragraph';
14
+
15
+ // Export default component types
16
+ export type { ButtonProps } from './Button/Button';
17
+ export type { CardProps } from './Card/Card';
18
+ export type { ContainerProps } from './container/Container';
19
+ export type { ErrorTextProps } from './ErrorText/ErrorText';
20
+ export type { HeadingProps } from './Heading/Heading';
21
+ export type { HintProps } from './Hint/Hint';
22
+ export type { ExternalLinkProps } from './link/ExternalLink';
23
+ export type { LinkProps } from './link/Link';
24
+ export type { ParagraphProps } from './Paragraph/Paragraph';
25
+
26
+ // Client components - these require 'use client' directive
27
+ export { NextLinkWrapper } from './link/NextLinkWrapper';
28
+ export { DropdownMenu } from './dropdown/DropdownMenu';
29
+ export { useDropdownMenu } from './dropdown/useDropdownMenu';
30
+
31
+ // Export client component types
32
+ export type { NextLinkWrapperProps } from './link/NextLinkWrapper';
33
+
34
+ // Export layout components
35
+ export { Header } from './layout/header/Header';
36
+ export { Footer } from './layout/footer/Footer';
@@ -0,0 +1,14 @@
1
+ import { ExternalLink } from '../../link/ExternalLink';
2
+
3
+ export const Copyright = () => {
4
+ const currentYear = new Date().getFullYear();
5
+
6
+ return (
7
+ <ExternalLink
8
+ className="text-black text-balance sm:text-nowrap text-center sm:text-left justify-start"
9
+ href="https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/"
10
+ >
11
+ &copy; Crown Copyright {currentYear}
12
+ </ExternalLink>
13
+ );
14
+ };
@@ -0,0 +1,26 @@
1
+ import { Copyright } from './Copyright';
2
+ import { Licence } from './Licence';
3
+ import { MetaLinks } from './MetaLinks';
4
+
5
+ export const Footer = () => (
6
+ <footer className="border-2 border-t-gray-200 bg-gray-100 p-3 flex items-center justify-center">
7
+ <div
8
+ className="grid w-full max-w-7xl gap-2 grid-cols-1 md:grid-cols-[1fr_min-content]
9
+ grid-rows-[min-content_min-content_min-content] md:grid-rows-[min-content_min-content]"
10
+ >
11
+ <nav className="row-start-1 col-start-1 md:col-span-2 w-full pb-2">
12
+ <h2 className="sr-only">Support Links</h2>
13
+
14
+ <MetaLinks />
15
+ </nav>
16
+
17
+ <div className="row-start-2 col-start-1 pt-1">
18
+ <Licence />
19
+ </div>
20
+
21
+ <div className="row-start-3 col-start-1 md:row-start-2 md:col-start-2 w-full h-min">
22
+ <Copyright />
23
+ </div>
24
+ </div>
25
+ </footer>
26
+ );
@@ -0,0 +1,19 @@
1
+ import { OglLogo } from '../../images/OglLogo';
2
+ import { ExternalLink } from '../../link/ExternalLink';
3
+
4
+ export const Licence = () => (
5
+ <div className="flex gap-2 w-full items-center">
6
+ <OglLogo className="inline h-9 w-9" aria-hidden />
7
+
8
+ <span className="text-xs text-black break-words flex-auto">
9
+ All content is available under the{' '}
10
+ <ExternalLink
11
+ className="inline-flex break-words min-w-0 text-black"
12
+ href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"
13
+ >
14
+ Open Government Licence v3.0
15
+ </ExternalLink>
16
+ , except where otherwise stated.
17
+ </span>
18
+ </div>
19
+ );
@@ -0,0 +1,36 @@
1
+ import { ExternalLink } from '../../link/ExternalLink';
2
+
3
+ const LINKS = [
4
+ {
5
+ label: 'Accessibility statement',
6
+ url: '/support/faqs/275810340/275810354',
7
+ },
8
+ {
9
+ label: 'Cookie Policy',
10
+ url: '/help/cookies',
11
+ },
12
+ {
13
+ label: 'Terms and Conditions',
14
+ url: '/support/faqs/275811163/275811177',
15
+ },
16
+ {
17
+ label: 'Privacy',
18
+ url: '/support/faqs/275811163/275811229',
19
+ },
20
+ {
21
+ label: 'Contact Us',
22
+ url: '/support',
23
+ },
24
+ ];
25
+
26
+ export const MetaLinks = () => (
27
+ <ul className="flex w-full flex-wrap gap-x-4 gap-y-2 md:gap-6 text-xs md:justify-start">
28
+ {LINKS.map((link) => (
29
+ <li className="flex" key={link.label}>
30
+ <ExternalLink className="text-black md:text-left" href={link.url}>
31
+ {link.label}
32
+ </ExternalLink>
33
+ </li>
34
+ ))}
35
+ </ul>
36
+ );