abidlabs HF staff commited on
Commit
57c271c
1 Parent(s): b0abf92

Upload folder using huggingface_hub

Browse files
Files changed (45) hide show
  1. Dockerfile +16 -0
  2. README.md +12 -5
  3. __init__.py +0 -0
  4. app.py +17 -0
  5. css.css +157 -0
  6. requirements.txt +1 -0
  7. space.py +139 -0
  8. src/.gitignore +9 -0
  9. src/README.md +287 -0
  10. src/backend/gradio_highlightedcode/__init__.py +4 -0
  11. src/backend/gradio_highlightedcode/highlightedcode.py +145 -0
  12. src/backend/gradio_highlightedcode/highlightedcode.pyi +315 -0
  13. src/backend/gradio_highlightedcode/templates/component/Index-2933bd90.js +0 -0
  14. src/backend/gradio_highlightedcode/templates/component/dockerfile-1dc69d82.js +285 -0
  15. src/backend/gradio_highlightedcode/templates/component/frontmatter-75b295a4.js +44 -0
  16. src/backend/gradio_highlightedcode/templates/component/index-151dd287.js +1758 -0
  17. src/backend/gradio_highlightedcode/templates/component/index-5dd45a26.js +547 -0
  18. src/backend/gradio_highlightedcode/templates/component/index-b2e60ce6.js +76 -0
  19. src/backend/gradio_highlightedcode/templates/component/index-bfba6ce4.js +546 -0
  20. src/backend/gradio_highlightedcode/templates/component/index-d8995119.js +923 -0
  21. src/backend/gradio_highlightedcode/templates/component/index-f4953321.js +1301 -0
  22. src/backend/gradio_highlightedcode/templates/component/index-f8c771ea.js +979 -0
  23. src/backend/gradio_highlightedcode/templates/component/index.js +9 -0
  24. src/backend/gradio_highlightedcode/templates/component/r-1df568be.js +108 -0
  25. src/backend/gradio_highlightedcode/templates/component/shell-9b920301.js +184 -0
  26. src/backend/gradio_highlightedcode/templates/component/style.css +1 -0
  27. src/backend/gradio_highlightedcode/templates/component/yaml-cef3802d.js +53 -0
  28. src/backend/gradio_highlightedcode/templates/example/index.js +91 -0
  29. src/backend/gradio_highlightedcode/templates/example/style.css +1 -0
  30. src/demo/__init__.py +0 -0
  31. src/demo/app.py +17 -0
  32. src/demo/css.css +157 -0
  33. src/demo/space.py +139 -0
  34. src/frontend/Example.svelte +19 -0
  35. src/frontend/Index.svelte +89 -0
  36. src/frontend/package-lock.json +1342 -0
  37. src/frontend/package.json +44 -0
  38. src/frontend/shared/Code.svelte +261 -0
  39. src/frontend/shared/Copy.svelte +68 -0
  40. src/frontend/shared/Download.svelte +88 -0
  41. src/frontend/shared/Widgets.svelte +35 -0
  42. src/frontend/shared/extensions.ts +48 -0
  43. src/frontend/shared/frontmatter.ts +61 -0
  44. src/frontend/shared/language.ts +70 -0
  45. src/pyproject.toml +42 -0
Dockerfile ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ FROM python:3.9
3
+
4
+ WORKDIR /code
5
+
6
+ COPY --link --chown=1000 . .
7
+
8
+ RUN mkdir -p /tmp/cache/
9
+ RUN chmod a+rwx -R /tmp/cache/
10
+ ENV TRANSFORMERS_CACHE=/tmp/cache/
11
+
12
+ RUN pip install --no-cache-dir -r requirements.txt
13
+
14
+ ENV PYTHONUNBUFFERED=1 GRADIO_ALLOW_FLAGGING=never GRADIO_NUM_PORTS=1 GRADIO_SERVER_NAME=0.0.0.0 GRADIO_SERVER_PORT=7860 SYSTEM=spaces
15
+
16
+ CMD ["python", "space.py"]
README.md CHANGED
@@ -1,10 +1,17 @@
 
1
  ---
2
- title: Gradio Highlightedcode
3
- emoji: 🏢
4
- colorFrom: indigo
5
- colorTo: red
6
  sdk: docker
7
  pinned: false
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
1
+
2
  ---
3
+ tags: [gradio-custom-component,gradio-template-Code,code,highlighted,completion]
4
+ title: gradio_highlightedcode V0.0.1
5
+ colorFrom: purple
6
+ colorTo: gray
7
  sdk: docker
8
  pinned: false
9
+ license: apache-2.0
10
  ---
11
 
12
+
13
+ # Name: gradio_highlightedcode
14
+
15
+ Description: A variant of the Code component that supports highlighting lines of code.
16
+
17
+ Install with: pip install gradio_highlightedcode
__init__.py ADDED
File without changes
app.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import gradio as gr
3
+ from gradio_highlightedcode import HighlightedCode
4
+
5
+
6
+ example = HighlightedCode().example_inputs()
7
+
8
+ demo = gr.Interface(
9
+ lambda x:x,
10
+ HighlightedCode(), # interactive version of your component
11
+ HighlightedCode(), # static version of your component
12
+ # examples=[[example]], # uncomment this line to view the "example version" of your component
13
+ )
14
+
15
+
16
+ if __name__ == "__main__":
17
+ demo.launch()
css.css ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ html {
2
+ font-family: Inter;
3
+ font-size: 16px;
4
+ font-weight: 400;
5
+ line-height: 1.5;
6
+ -webkit-text-size-adjust: 100%;
7
+ background: #fff;
8
+ color: #323232;
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+ text-rendering: optimizeLegibility;
12
+ }
13
+
14
+ :root {
15
+ --space: 1;
16
+ --vspace: calc(var(--space) * 1rem);
17
+ --vspace-0: calc(3 * var(--space) * 1rem);
18
+ --vspace-1: calc(2 * var(--space) * 1rem);
19
+ --vspace-2: calc(1.5 * var(--space) * 1rem);
20
+ --vspace-3: calc(0.5 * var(--space) * 1rem);
21
+ }
22
+
23
+ .app {
24
+ max-width: 748px !important;
25
+ }
26
+
27
+ .prose p {
28
+ margin: var(--vspace) 0;
29
+ line-height: var(--vspace * 2);
30
+ font-size: 1rem;
31
+ }
32
+
33
+ code {
34
+ font-family: "Inconsolata", sans-serif;
35
+ font-size: 16px;
36
+ }
37
+
38
+ h1,
39
+ h1 code {
40
+ font-weight: 400;
41
+ line-height: calc(2.5 / var(--space) * var(--vspace));
42
+ }
43
+
44
+ h1 code {
45
+ background: none;
46
+ border: none;
47
+ letter-spacing: 0.05em;
48
+ padding-bottom: 5px;
49
+ position: relative;
50
+ padding: 0;
51
+ }
52
+
53
+ h2 {
54
+ margin: var(--vspace-1) 0 var(--vspace-2) 0;
55
+ line-height: 1em;
56
+ }
57
+
58
+ h3,
59
+ h3 code {
60
+ margin: var(--vspace-1) 0 var(--vspace-2) 0;
61
+ line-height: 1em;
62
+ }
63
+
64
+ h4,
65
+ h5,
66
+ h6 {
67
+ margin: var(--vspace-3) 0 var(--vspace-3) 0;
68
+ line-height: var(--vspace);
69
+ }
70
+
71
+ .bigtitle,
72
+ h1,
73
+ h1 code {
74
+ font-size: calc(8px * 4.5);
75
+ word-break: break-word;
76
+ }
77
+
78
+ .title,
79
+ h2,
80
+ h2 code {
81
+ font-size: calc(8px * 3.375);
82
+ font-weight: lighter;
83
+ word-break: break-word;
84
+ border: none;
85
+ background: none;
86
+ }
87
+
88
+ .subheading1,
89
+ h3,
90
+ h3 code {
91
+ font-size: calc(8px * 1.8);
92
+ font-weight: 600;
93
+ border: none;
94
+ background: none;
95
+ letter-spacing: 0.1em;
96
+ text-transform: uppercase;
97
+ }
98
+
99
+ h2 code {
100
+ padding: 0;
101
+ position: relative;
102
+ letter-spacing: 0.05em;
103
+ }
104
+
105
+ blockquote {
106
+ font-size: calc(8px * 1.1667);
107
+ font-style: italic;
108
+ line-height: calc(1.1667 * var(--vspace));
109
+ margin: var(--vspace-2) var(--vspace-2);
110
+ }
111
+
112
+ .subheading2,
113
+ h4 {
114
+ font-size: calc(8px * 1.4292);
115
+ text-transform: uppercase;
116
+ font-weight: 600;
117
+ }
118
+
119
+ .subheading3,
120
+ h5 {
121
+ font-size: calc(8px * 1.2917);
122
+ line-height: calc(1.2917 * var(--vspace));
123
+
124
+ font-weight: lighter;
125
+ text-transform: uppercase;
126
+ letter-spacing: 0.15em;
127
+ }
128
+
129
+ h6 {
130
+ font-size: calc(8px * 1.1667);
131
+ font-size: 1.1667em;
132
+ font-weight: normal;
133
+ font-style: italic;
134
+ font-family: "le-monde-livre-classic-byol", serif !important;
135
+ letter-spacing: 0px !important;
136
+ }
137
+
138
+ #start .md > *:first-child {
139
+ margin-top: 0;
140
+ }
141
+
142
+ h2 + h3 {
143
+ margin-top: 0;
144
+ }
145
+
146
+ .md hr {
147
+ border: none;
148
+ border-top: 1px solid var(--block-border-color);
149
+ margin: var(--vspace-2) 0 var(--vspace-2) 0;
150
+ }
151
+ .prose ul {
152
+ margin: var(--vspace-2) 0 var(--vspace-1) 0;
153
+ }
154
+
155
+ .gap {
156
+ gap: 0;
157
+ }
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ gradio_highlightedcode==0.0.1
space.py ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import gradio as gr
3
+ from app import demo as app
4
+ import os
5
+
6
+ _docs = {'HighlightedCode': {'description': 'Creates a code editor for viewing code (as an ouptut component), or for entering and editing code (as an input component).', 'members': {'__init__': {'value': {'type': 'str | tuple[str] | None', 'default': 'None', 'description': 'Default value to show in the code editor. If callable, the function will be called whenever the app loads to set the initial value of the component.'}, 'language': {'type': '"python"\n | "markdown"\n | "json"\n | "html"\n | "css"\n | "javascript"\n | "typescript"\n | "yaml"\n | "dockerfile"\n | "shell"\n | "r"\n | None', 'default': 'None', 'description': 'The language to display the code as. Supported languages listed in `gr.Code.languages`.'}, 'highlights': {'type': 'list[tuple[int, str]] | None', 'default': 'None', 'description': 'A list of tuples indicating lines to highlight. The first element of the tuple is the starting line number (1-indexed) and the second element is the highlight color (as a CSS hex string). The highlights are applied in order, with later highlights taking precedence over earlier ones.'}, 'every': {'type': 'float | None', 'default': 'None', 'description': "If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute."}, 'lines': {'type': 'int', 'default': '5', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': 'The label for this component. Appears above the component and is also used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component is assigned to.'}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': 'Whether user should be able to enter code or only view it.'}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': 'if True, will display label.'}, 'container': {'type': 'bool', 'default': 'True', 'description': 'If True, will place the component in a container - providing some extra padding around the border.'}, 'scale': {'type': 'int | None', 'default': 'None', 'description': 'relative width compared to adjacent Components in a Row. For example, if Component A has scale=2, and Component B has scale=1, A will be twice as wide as B. Should be an integer.'}, 'min_width': {'type': 'int', 'default': '160', 'description': 'minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first.'}, 'visible': {'type': 'bool', 'default': 'True', 'description': 'If False, component will be hidden.'}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': 'An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles.'}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': 'An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles.'}, 'render': {'type': 'bool', 'default': 'True', 'description': 'If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later.'}}, 'postprocess': {'value': {'type': 'tuple[str] | str | None', 'description': 'Expects a `str` of code or a single-element `tuple`: (filepath,) with the `str` path to a file containing the code.'}}, 'preprocess': {'return': {'type': 'str | None', 'description': 'Passes the code entered as a `str`.'}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': 'Triggered when the value of the HighlightedCode changes either because of user input (e.g. a user types in a textbox) OR because of a function update (e.g. an image receives a value from the output of an event trigger). See `.input()` for a listener that is only triggered by user input.'}, 'input': {'type': None, 'default': None, 'description': 'This listener is triggered when the user changes the value of the HighlightedCode.'}, 'focus': {'type': None, 'default': None, 'description': 'This listener is triggered when the HighlightedCode is focused.'}, 'blur': {'type': None, 'default': None, 'description': 'This listener is triggered when the HighlightedCode is unfocused/blurred.'}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'HighlightedCode': []}}}
7
+
8
+ abs_path = os.path.join(os.path.dirname(__file__), "css.css")
9
+
10
+ with gr.Blocks(
11
+ css=abs_path,
12
+ theme=gr.themes.Default(
13
+ font_mono=[
14
+ gr.themes.GoogleFont("Inconsolata"),
15
+ "monospace",
16
+ ],
17
+ ),
18
+ ) as demo:
19
+ gr.Markdown(
20
+ """
21
+ # `gradio_highlightedcode`
22
+
23
+ <div style="display: flex; gap: 7px;">
24
+ <img alt="Static Badge" src="https://img.shields.io/badge/version%20-%200.0.1%20-%20orange">
25
+ </div>
26
+
27
+ A variant of the Code component that supports highlighting lines of code.
28
+ """, elem_classes=["md-custom"], header_links=True)
29
+ app.render()
30
+ gr.Markdown(
31
+ """
32
+ ## Installation
33
+
34
+ ```bash
35
+ pip install gradio_highlightedcode
36
+ ```
37
+
38
+ ## Usage
39
+
40
+ ```python
41
+
42
+ import gradio as gr
43
+ from gradio_highlightedcode import HighlightedCode
44
+
45
+
46
+ example = HighlightedCode().example_inputs()
47
+
48
+ demo = gr.Interface(
49
+ lambda x:x,
50
+ HighlightedCode(), # interactive version of your component
51
+ HighlightedCode(), # static version of your component
52
+ # examples=[[example]], # uncomment this line to view the "example version" of your component
53
+ )
54
+
55
+
56
+ if __name__ == "__main__":
57
+ demo.launch()
58
+
59
+ ```
60
+ """, elem_classes=["md-custom"], header_links=True)
61
+
62
+
63
+ gr.Markdown("""
64
+ ## `HighlightedCode`
65
+
66
+ ### Initialization
67
+ """, elem_classes=["md-custom"], header_links=True)
68
+
69
+ gr.ParamViewer(value=_docs["HighlightedCode"]["members"]["__init__"], linkify=[])
70
+
71
+
72
+ gr.Markdown("### Events")
73
+ gr.ParamViewer(value=_docs["HighlightedCode"]["events"], linkify=['Event'])
74
+
75
+
76
+
77
+
78
+ gr.Markdown("""
79
+
80
+ ### User function
81
+
82
+ The impact on the users predict function varies depending on whether the component is used as an input or output for an event (or both).
83
+
84
+ - When used as an Input, the component only impacts the input signature of the user function.
85
+ - When used as an output, the component only impacts the return signature of the user function.
86
+
87
+ The code snippet below is accurate in cases where the component is used as both an input and an output.
88
+
89
+ - **As input:** Is passed, passes the code entered as a `str`.
90
+ - **As output:** Should return, expects a `str` of code or a single-element `tuple`: (filepath,) with the `str` path to a file containing the code.
91
+
92
+ ```python
93
+ def predict(
94
+ value: str | None
95
+ ) -> tuple[str] | str | None:
96
+ return value
97
+ ```
98
+ """, elem_classes=["md-custom", "HighlightedCode-user-fn"], header_links=True)
99
+
100
+
101
+
102
+
103
+ demo.load(None, js=r"""function() {
104
+ const refs = {};
105
+ const user_fn_refs = {
106
+ HighlightedCode: [], };
107
+ requestAnimationFrame(() => {
108
+
109
+ Object.entries(user_fn_refs).forEach(([key, refs]) => {
110
+ if (refs.length > 0) {
111
+ const el = document.querySelector(`.${key}-user-fn`);
112
+ if (!el) return;
113
+ refs.forEach(ref => {
114
+ el.innerHTML = el.innerHTML.replace(
115
+ new RegExp("\\b"+ref+"\\b", "g"),
116
+ `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
117
+ );
118
+ })
119
+ }
120
+ })
121
+
122
+ Object.entries(refs).forEach(([key, refs]) => {
123
+ if (refs.length > 0) {
124
+ const el = document.querySelector(`.${key}`);
125
+ if (!el) return;
126
+ refs.forEach(ref => {
127
+ el.innerHTML = el.innerHTML.replace(
128
+ new RegExp("\\b"+ref+"\\b", "g"),
129
+ `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
130
+ );
131
+ })
132
+ }
133
+ })
134
+ })
135
+ }
136
+
137
+ """)
138
+
139
+ demo.launch()
src/.gitignore ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ .eggs/
2
+ dist/
3
+ *.pyc
4
+ __pycache__/
5
+ *.py[cod]
6
+ *$py.class
7
+ __tmp/*
8
+ *.pyi
9
+ node_modules
src/README.md ADDED
@@ -0,0 +1,287 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # `gradio_highlightedcode`
3
+ <img alt="Static Badge" src="https://img.shields.io/badge/version%20-%200.0.1%20-%20orange">
4
+
5
+ A variant of the Code component that supports highlighting lines of code.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ pip install gradio_highlightedcode
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ```python
16
+
17
+ import gradio as gr
18
+ from gradio_highlightedcode import HighlightedCode
19
+
20
+
21
+ example = HighlightedCode().example_inputs()
22
+
23
+ demo = gr.Interface(
24
+ lambda x:x,
25
+ HighlightedCode(), # interactive version of your component
26
+ HighlightedCode(), # static version of your component
27
+ # examples=[[example]], # uncomment this line to view the "example version" of your component
28
+ )
29
+
30
+
31
+ if __name__ == "__main__":
32
+ demo.launch()
33
+
34
+ ```
35
+
36
+ ## `HighlightedCode`
37
+
38
+ ### Initialization
39
+
40
+ <table>
41
+ <thead>
42
+ <tr>
43
+ <th align="left">name</th>
44
+ <th align="left" style="width: 25%;">type</th>
45
+ <th align="left">default</th>
46
+ <th align="left">description</th>
47
+ </tr>
48
+ </thead>
49
+ <tbody>
50
+ <tr>
51
+ <td align="left"><code>value</code></td>
52
+ <td align="left" style="width: 25%;">
53
+
54
+ ```python
55
+ str | tuple[str] | None
56
+ ```
57
+
58
+ </td>
59
+ <td align="left"><code>None</code></td>
60
+ <td align="left">Default value to show in the code editor. If callable, the function will be called whenever the app loads to set the initial value of the component.</td>
61
+ </tr>
62
+
63
+ <tr>
64
+ <td align="left"><code>language</code></td>
65
+ <td align="left" style="width: 25%;">
66
+
67
+ ```python
68
+ "python"
69
+ | "markdown"
70
+ | "json"
71
+ | "html"
72
+ | "css"
73
+ | "javascript"
74
+ | "typescript"
75
+ | "yaml"
76
+ | "dockerfile"
77
+ | "shell"
78
+ | "r"
79
+ | None
80
+ ```
81
+
82
+ </td>
83
+ <td align="left"><code>None</code></td>
84
+ <td align="left">The language to display the code as. Supported languages listed in `gr.Code.languages`.</td>
85
+ </tr>
86
+
87
+ <tr>
88
+ <td align="left"><code>highlights</code></td>
89
+ <td align="left" style="width: 25%;">
90
+
91
+ ```python
92
+ list[tuple[int, str]] | None
93
+ ```
94
+
95
+ </td>
96
+ <td align="left"><code>None</code></td>
97
+ <td align="left">A list of tuples indicating lines to highlight. The first element of the tuple is the starting line number (1-indexed) and the second element is the highlight color (as a CSS hex string). The highlights are applied in order, with later highlights taking precedence over earlier ones.</td>
98
+ </tr>
99
+
100
+ <tr>
101
+ <td align="left"><code>every</code></td>
102
+ <td align="left" style="width: 25%;">
103
+
104
+ ```python
105
+ float | None
106
+ ```
107
+
108
+ </td>
109
+ <td align="left"><code>None</code></td>
110
+ <td align="left">If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute.</td>
111
+ </tr>
112
+
113
+ <tr>
114
+ <td align="left"><code>lines</code></td>
115
+ <td align="left" style="width: 25%;">
116
+
117
+ ```python
118
+ int
119
+ ```
120
+
121
+ </td>
122
+ <td align="left"><code>5</code></td>
123
+ <td align="left">None</td>
124
+ </tr>
125
+
126
+ <tr>
127
+ <td align="left"><code>label</code></td>
128
+ <td align="left" style="width: 25%;">
129
+
130
+ ```python
131
+ str | None
132
+ ```
133
+
134
+ </td>
135
+ <td align="left"><code>None</code></td>
136
+ <td align="left">The label for this component. Appears above the component and is also used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component is assigned to.</td>
137
+ </tr>
138
+
139
+ <tr>
140
+ <td align="left"><code>interactive</code></td>
141
+ <td align="left" style="width: 25%;">
142
+
143
+ ```python
144
+ bool | None
145
+ ```
146
+
147
+ </td>
148
+ <td align="left"><code>None</code></td>
149
+ <td align="left">Whether user should be able to enter code or only view it.</td>
150
+ </tr>
151
+
152
+ <tr>
153
+ <td align="left"><code>show_label</code></td>
154
+ <td align="left" style="width: 25%;">
155
+
156
+ ```python
157
+ bool | None
158
+ ```
159
+
160
+ </td>
161
+ <td align="left"><code>None</code></td>
162
+ <td align="left">if True, will display label.</td>
163
+ </tr>
164
+
165
+ <tr>
166
+ <td align="left"><code>container</code></td>
167
+ <td align="left" style="width: 25%;">
168
+
169
+ ```python
170
+ bool
171
+ ```
172
+
173
+ </td>
174
+ <td align="left"><code>True</code></td>
175
+ <td align="left">If True, will place the component in a container - providing some extra padding around the border.</td>
176
+ </tr>
177
+
178
+ <tr>
179
+ <td align="left"><code>scale</code></td>
180
+ <td align="left" style="width: 25%;">
181
+
182
+ ```python
183
+ int | None
184
+ ```
185
+
186
+ </td>
187
+ <td align="left"><code>None</code></td>
188
+ <td align="left">relative width compared to adjacent Components in a Row. For example, if Component A has scale=2, and Component B has scale=1, A will be twice as wide as B. Should be an integer.</td>
189
+ </tr>
190
+
191
+ <tr>
192
+ <td align="left"><code>min_width</code></td>
193
+ <td align="left" style="width: 25%;">
194
+
195
+ ```python
196
+ int
197
+ ```
198
+
199
+ </td>
200
+ <td align="left"><code>160</code></td>
201
+ <td align="left">minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first.</td>
202
+ </tr>
203
+
204
+ <tr>
205
+ <td align="left"><code>visible</code></td>
206
+ <td align="left" style="width: 25%;">
207
+
208
+ ```python
209
+ bool
210
+ ```
211
+
212
+ </td>
213
+ <td align="left"><code>True</code></td>
214
+ <td align="left">If False, component will be hidden.</td>
215
+ </tr>
216
+
217
+ <tr>
218
+ <td align="left"><code>elem_id</code></td>
219
+ <td align="left" style="width: 25%;">
220
+
221
+ ```python
222
+ str | None
223
+ ```
224
+
225
+ </td>
226
+ <td align="left"><code>None</code></td>
227
+ <td align="left">An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles.</td>
228
+ </tr>
229
+
230
+ <tr>
231
+ <td align="left"><code>elem_classes</code></td>
232
+ <td align="left" style="width: 25%;">
233
+
234
+ ```python
235
+ list[str] | str | None
236
+ ```
237
+
238
+ </td>
239
+ <td align="left"><code>None</code></td>
240
+ <td align="left">An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles.</td>
241
+ </tr>
242
+
243
+ <tr>
244
+ <td align="left"><code>render</code></td>
245
+ <td align="left" style="width: 25%;">
246
+
247
+ ```python
248
+ bool
249
+ ```
250
+
251
+ </td>
252
+ <td align="left"><code>True</code></td>
253
+ <td align="left">If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later.</td>
254
+ </tr>
255
+ </tbody></table>
256
+
257
+
258
+ ### Events
259
+
260
+ | name | description |
261
+ |:-----|:------------|
262
+ | `change` | Triggered when the value of the HighlightedCode changes either because of user input (e.g. a user types in a textbox) OR because of a function update (e.g. an image receives a value from the output of an event trigger). See `.input()` for a listener that is only triggered by user input. |
263
+ | `input` | This listener is triggered when the user changes the value of the HighlightedCode. |
264
+ | `focus` | This listener is triggered when the HighlightedCode is focused. |
265
+ | `blur` | This listener is triggered when the HighlightedCode is unfocused/blurred. |
266
+
267
+
268
+
269
+ ### User function
270
+
271
+ The impact on the users predict function varies depending on whether the component is used as an input or output for an event (or both).
272
+
273
+ - When used as an Input, the component only impacts the input signature of the user function.
274
+ - When used as an output, the component only impacts the return signature of the user function.
275
+
276
+ The code snippet below is accurate in cases where the component is used as both an input and an output.
277
+
278
+ - **As output:** Is passed, passes the code entered as a `str`.
279
+ - **As input:** Should return, expects a `str` of code or a single-element `tuple`: (filepath,) with the `str` path to a file containing the code.
280
+
281
+ ```python
282
+ def predict(
283
+ value: str | None
284
+ ) -> tuple[str] | str | None:
285
+ return value
286
+ ```
287
+
src/backend/gradio_highlightedcode/__init__.py ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+
2
+ from .highlightedcode import HighlightedCode
3
+
4
+ __all__ = ['HighlightedCode']
src/backend/gradio_highlightedcode/highlightedcode.py ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """gr.Code() component"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+ from typing import Any, Literal
7
+
8
+ from gradio_client.documentation import document, set_documentation_group
9
+
10
+ from gradio.components.base import Component
11
+ from gradio.events import Events
12
+
13
+ set_documentation_group("component")
14
+
15
+
16
+ @document("languages")
17
+ class HighlightedCode(Component):
18
+ """
19
+ Creates a code editor for viewing code (as an ouptut component), or for entering and editing code (as an input component).
20
+ """
21
+
22
+ languages = [
23
+ "python",
24
+ "markdown",
25
+ "json",
26
+ "html",
27
+ "css",
28
+ "javascript",
29
+ "typescript",
30
+ "yaml",
31
+ "dockerfile",
32
+ "shell",
33
+ "r",
34
+ None,
35
+ ]
36
+
37
+ EVENTS = [
38
+ Events.change,
39
+ Events.input,
40
+ Events.focus,
41
+ Events.blur,
42
+ ]
43
+
44
+ def __init__(
45
+ self,
46
+ value: str | tuple[str] | None = None,
47
+ language: Literal[
48
+ "python",
49
+ "markdown",
50
+ "json",
51
+ "html",
52
+ "css",
53
+ "javascript",
54
+ "typescript",
55
+ "yaml",
56
+ "dockerfile",
57
+ "shell",
58
+ "r",
59
+ ]
60
+ | None = None,
61
+ highlights: list[tuple[int, str]] | None = None,
62
+ *,
63
+ every: float | None = None,
64
+ lines: int = 5,
65
+ label: str | None = None,
66
+ interactive: bool | None = None,
67
+ show_label: bool | None = None,
68
+ container: bool = True,
69
+ scale: int | None = None,
70
+ min_width: int = 160,
71
+ visible: bool = True,
72
+ elem_id: str | None = None,
73
+ elem_classes: list[str] | str | None = None,
74
+ render: bool = True,
75
+ ):
76
+ """
77
+ Parameters:
78
+ value: Default value to show in the code editor. If callable, the function will be called whenever the app loads to set the initial value of the component.
79
+ language: The language to display the code as. Supported languages listed in `gr.Code.languages`.
80
+ highlights: A list of tuples indicating lines to highlight. The first element of the tuple is the starting line number (1-indexed) and the second element is the highlight color (as a CSS hex string). The highlights are applied in order, with later highlights taking precedence over earlier ones.
81
+ every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute.
82
+ label: The label for this component. Appears above the component and is also used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component is assigned to.
83
+ interactive: Whether user should be able to enter code or only view it.
84
+ show_label: if True, will display label.
85
+ container: If True, will place the component in a container - providing some extra padding around the border.
86
+ scale: relative width compared to adjacent Components in a Row. For example, if Component A has scale=2, and Component B has scale=1, A will be twice as wide as B. Should be an integer.
87
+ min_width: minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first.
88
+ visible: If False, component will be hidden.
89
+ elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles.
90
+ elem_classes: An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles.
91
+ render: If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later.
92
+ """
93
+ if language not in HighlightedCode.languages:
94
+ raise ValueError(f"Language {language} not supported.")
95
+
96
+ self.language = language
97
+ self.lines = lines
98
+ self.highlights = highlights
99
+ super().__init__(
100
+ label=label,
101
+ every=every,
102
+ interactive=interactive,
103
+ show_label=show_label,
104
+ container=container,
105
+ scale=scale,
106
+ min_width=min_width,
107
+ visible=visible,
108
+ elem_id=elem_id,
109
+ elem_classes=elem_classes,
110
+ render=render,
111
+ value=value,
112
+ )
113
+
114
+ def preprocess(self, payload: str | None) -> str | None:
115
+ """
116
+ Parameters:
117
+ payload: string corresponding to the code
118
+ Returns:
119
+ Passes the code entered as a `str`.
120
+ """
121
+ return payload
122
+
123
+ def postprocess(self, value: tuple[str] | str | None) -> None | str:
124
+ """
125
+ Parameters:
126
+ value: Expects a `str` of code or a single-element `tuple`: (filepath,) with the `str` path to a file containing the code.
127
+ Returns:
128
+ Returns the code as a `str`.
129
+ """
130
+ if value is None:
131
+ return None
132
+ elif isinstance(value, tuple):
133
+ with open(value[0]) as file_data:
134
+ return file_data.read()
135
+ else:
136
+ return value.strip()
137
+
138
+ def flag(self, payload: Any, flag_dir: str | Path = "") -> str:
139
+ return super().flag(payload, flag_dir)
140
+
141
+ def api_info(self) -> dict[str, Any]:
142
+ return {"type": "string"}
143
+
144
+ def example_inputs(self) -> Any:
145
+ return "print('Hello World')"
src/backend/gradio_highlightedcode/highlightedcode.pyi ADDED
@@ -0,0 +1,315 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """gr.Code() component"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+ from typing import Any, Literal
7
+
8
+ from gradio_client.documentation import document, set_documentation_group
9
+
10
+ from gradio.components.base import Component
11
+ from gradio.events import Events
12
+
13
+ set_documentation_group("component")
14
+
15
+ from gradio.events import Dependency
16
+
17
+ @document("languages")
18
+ class HighlightedCode(Component):
19
+ """
20
+ Creates a code editor for viewing code (as an ouptut component), or for entering and editing code (as an input component).
21
+ """
22
+
23
+ languages = [
24
+ "python",
25
+ "markdown",
26
+ "json",
27
+ "html",
28
+ "css",
29
+ "javascript",
30
+ "typescript",
31
+ "yaml",
32
+ "dockerfile",
33
+ "shell",
34
+ "r",
35
+ None,
36
+ ]
37
+
38
+ EVENTS = [
39
+ Events.change,
40
+ Events.input,
41
+ Events.focus,
42
+ Events.blur,
43
+ ]
44
+
45
+ def __init__(
46
+ self,
47
+ value: str | tuple[str] | None = None,
48
+ language: Literal[
49
+ "python",
50
+ "markdown",
51
+ "json",
52
+ "html",
53
+ "css",
54
+ "javascript",
55
+ "typescript",
56
+ "yaml",
57
+ "dockerfile",
58
+ "shell",
59
+ "r",
60
+ ]
61
+ | None = None,
62
+ highlights: list[tuple[int, str]] | None = None,
63
+ *,
64
+ every: float | None = None,
65
+ lines: int = 5,
66
+ label: str | None = None,
67
+ interactive: bool | None = None,
68
+ show_label: bool | None = None,
69
+ container: bool = True,
70
+ scale: int | None = None,
71
+ min_width: int = 160,
72
+ visible: bool = True,
73
+ elem_id: str | None = None,
74
+ elem_classes: list[str] | str | None = None,
75
+ render: bool = True,
76
+ ):
77
+ """
78
+ Parameters:
79
+ value: Default value to show in the code editor. If callable, the function will be called whenever the app loads to set the initial value of the component.
80
+ language: The language to display the code as. Supported languages listed in `gr.Code.languages`.
81
+ highlights: A list of tuples indicating lines to highlight. The first element of the tuple is the starting line number (1-indexed) and the second element is the highlight color (as a CSS hex string). The highlights are applied in order, with later highlights taking precedence over earlier ones.
82
+ every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute.
83
+ label: The label for this component. Appears above the component and is also used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component is assigned to.
84
+ interactive: Whether user should be able to enter code or only view it.
85
+ show_label: if True, will display label.
86
+ container: If True, will place the component in a container - providing some extra padding around the border.
87
+ scale: relative width compared to adjacent Components in a Row. For example, if Component A has scale=2, and Component B has scale=1, A will be twice as wide as B. Should be an integer.
88
+ min_width: minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first.
89
+ visible: If False, component will be hidden.
90
+ elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles.
91
+ elem_classes: An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles.
92
+ render: If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later.
93
+ """
94
+ if language not in HighlightedCode.languages:
95
+ raise ValueError(f"Language {language} not supported.")
96
+
97
+ self.language = language
98
+ self.lines = lines
99
+ self.highlights = highlights
100
+ super().__init__(
101
+ label=label,
102
+ every=every,
103
+ interactive=interactive,
104
+ show_label=show_label,
105
+ container=container,
106
+ scale=scale,
107
+ min_width=min_width,
108
+ visible=visible,
109
+ elem_id=elem_id,
110
+ elem_classes=elem_classes,
111
+ render=render,
112
+ value=value,
113
+ )
114
+
115
+ def preprocess(self, payload: str | None) -> str | None:
116
+ """
117
+ Parameters:
118
+ payload: string corresponding to the code
119
+ Returns:
120
+ Passes the code entered as a `str`.
121
+ """
122
+ return payload
123
+
124
+ def postprocess(self, value: tuple[str] | str | None) -> None | str:
125
+ """
126
+ Parameters:
127
+ value: Expects a `str` of code or a single-element `tuple`: (filepath,) with the `str` path to a file containing the code.
128
+ Returns:
129
+ Returns the code as a `str`.
130
+ """
131
+ if value is None:
132
+ return None
133
+ elif isinstance(value, tuple):
134
+ with open(value[0]) as file_data:
135
+ return file_data.read()
136
+ else:
137
+ return value.strip()
138
+
139
+ def flag(self, payload: Any, flag_dir: str | Path = "") -> str:
140
+ return super().flag(payload, flag_dir)
141
+
142
+ def api_info(self) -> dict[str, Any]:
143
+ return {"type": "string"}
144
+
145
+ def example_inputs(self) -> Any:
146
+ return "print('Hello World')"
147
+
148
+
149
+ def change(self,
150
+ fn: Callable | None,
151
+ inputs: Component | Sequence[Component] | set[Component] | None = None,
152
+ outputs: Component | Sequence[Component] | None = None,
153
+ api_name: str | None | Literal[False] = None,
154
+ scroll_to_output: bool = False,
155
+ show_progress: Literal["full", "minimal", "hidden"] = "full",
156
+ queue: bool | None = None,
157
+ batch: bool = False,
158
+ max_batch_size: int = 4,
159
+ preprocess: bool = True,
160
+ postprocess: bool = True,
161
+ cancels: dict[str, Any] | list[dict[str, Any]] | None = None,
162
+ every: float | None = None,
163
+ trigger_mode: Literal["once", "multiple", "always_last"] | None = None,
164
+ js: str | None = None,
165
+ concurrency_limit: int | None | Literal["default"] = "default",
166
+ concurrency_id: str | None = None,
167
+ show_api: bool = True) -> Dependency:
168
+ """
169
+ Parameters:
170
+ fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component.
171
+ inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list.
172
+ outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list.
173
+ api_name: Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name.
174
+ scroll_to_output: If True, will scroll to output component on completion
175
+ show_progress: If True, will show progress animation while pending
176
+ queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app.
177
+ batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component.
178
+ max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True)
179
+ preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component).
180
+ postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser.
181
+ cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish.
182
+ every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds.
183
+ trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` event) would allow a second submission after the pending event is complete.
184
+ js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components.
185
+ concurrency_limit: If set, this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default).
186
+ concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit.
187
+ show_api: whether to show this event in the "view API" page of the Gradio app, or in the ".view_api()" method of the Gradio clients. Unlike setting api_name to False, setting show_api to False will still allow downstream apps to use this event. If fn is None, show_api will automatically be set to False.
188
+ """
189
+ ...
190
+
191
+ def input(self,
192
+ fn: Callable | None,
193
+ inputs: Component | Sequence[Component] | set[Component] | None = None,
194
+ outputs: Component | Sequence[Component] | None = None,
195
+ api_name: str | None | Literal[False] = None,
196
+ scroll_to_output: bool = False,
197
+ show_progress: Literal["full", "minimal", "hidden"] = "full",
198
+ queue: bool | None = None,
199
+ batch: bool = False,
200
+ max_batch_size: int = 4,
201
+ preprocess: bool = True,
202
+ postprocess: bool = True,
203
+ cancels: dict[str, Any] | list[dict[str, Any]] | None = None,
204
+ every: float | None = None,
205
+ trigger_mode: Literal["once", "multiple", "always_last"] | None = None,
206
+ js: str | None = None,
207
+ concurrency_limit: int | None | Literal["default"] = "default",
208
+ concurrency_id: str | None = None,
209
+ show_api: bool = True) -> Dependency:
210
+ """
211
+ Parameters:
212
+ fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component.
213
+ inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list.
214
+ outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list.
215
+ api_name: Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name.
216
+ scroll_to_output: If True, will scroll to output component on completion
217
+ show_progress: If True, will show progress animation while pending
218
+ queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app.
219
+ batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component.
220
+ max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True)
221
+ preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component).
222
+ postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser.
223
+ cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish.
224
+ every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds.
225
+ trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` event) would allow a second submission after the pending event is complete.
226
+ js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components.
227
+ concurrency_limit: If set, this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default).
228
+ concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit.
229
+ show_api: whether to show this event in the "view API" page of the Gradio app, or in the ".view_api()" method of the Gradio clients. Unlike setting api_name to False, setting show_api to False will still allow downstream apps to use this event. If fn is None, show_api will automatically be set to False.
230
+ """
231
+ ...
232
+
233
+ def focus(self,
234
+ fn: Callable | None,
235
+ inputs: Component | Sequence[Component] | set[Component] | None = None,
236
+ outputs: Component | Sequence[Component] | None = None,
237
+ api_name: str | None | Literal[False] = None,
238
+ scroll_to_output: bool = False,
239
+ show_progress: Literal["full", "minimal", "hidden"] = "full",
240
+ queue: bool | None = None,
241
+ batch: bool = False,
242
+ max_batch_size: int = 4,
243
+ preprocess: bool = True,
244
+ postprocess: bool = True,
245
+ cancels: dict[str, Any] | list[dict[str, Any]] | None = None,
246
+ every: float | None = None,
247
+ trigger_mode: Literal["once", "multiple", "always_last"] | None = None,
248
+ js: str | None = None,
249
+ concurrency_limit: int | None | Literal["default"] = "default",
250
+ concurrency_id: str | None = None,
251
+ show_api: bool = True) -> Dependency:
252
+ """
253
+ Parameters:
254
+ fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component.
255
+ inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list.
256
+ outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list.
257
+ api_name: Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name.
258
+ scroll_to_output: If True, will scroll to output component on completion
259
+ show_progress: If True, will show progress animation while pending
260
+ queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app.
261
+ batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component.
262
+ max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True)
263
+ preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component).
264
+ postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser.
265
+ cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish.
266
+ every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds.
267
+ trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` event) would allow a second submission after the pending event is complete.
268
+ js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components.
269
+ concurrency_limit: If set, this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default).
270
+ concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit.
271
+ show_api: whether to show this event in the "view API" page of the Gradio app, or in the ".view_api()" method of the Gradio clients. Unlike setting api_name to False, setting show_api to False will still allow downstream apps to use this event. If fn is None, show_api will automatically be set to False.
272
+ """
273
+ ...
274
+
275
+ def blur(self,
276
+ fn: Callable | None,
277
+ inputs: Component | Sequence[Component] | set[Component] | None = None,
278
+ outputs: Component | Sequence[Component] | None = None,
279
+ api_name: str | None | Literal[False] = None,
280
+ scroll_to_output: bool = False,
281
+ show_progress: Literal["full", "minimal", "hidden"] = "full",
282
+ queue: bool | None = None,
283
+ batch: bool = False,
284
+ max_batch_size: int = 4,
285
+ preprocess: bool = True,
286
+ postprocess: bool = True,
287
+ cancels: dict[str, Any] | list[dict[str, Any]] | None = None,
288
+ every: float | None = None,
289
+ trigger_mode: Literal["once", "multiple", "always_last"] | None = None,
290
+ js: str | None = None,
291
+ concurrency_limit: int | None | Literal["default"] = "default",
292
+ concurrency_id: str | None = None,
293
+ show_api: bool = True) -> Dependency:
294
+ """
295
+ Parameters:
296
+ fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component.
297
+ inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list.
298
+ outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list.
299
+ api_name: Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name.
300
+ scroll_to_output: If True, will scroll to output component on completion
301
+ show_progress: If True, will show progress animation while pending
302
+ queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app.
303
+ batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component.
304
+ max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True)
305
+ preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component).
306
+ postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser.
307
+ cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish.
308
+ every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds.
309
+ trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` event) would allow a second submission after the pending event is complete.
310
+ js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components.
311
+ concurrency_limit: If set, this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default).
312
+ concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit.
313
+ show_api: whether to show this event in the "view API" page of the Gradio app, or in the ".view_api()" method of the Gradio clients. Unlike setting api_name to False, setting show_api to False will still allow downstream apps to use this event. If fn is None, show_api will automatically be set to False.
314
+ """
315
+ ...
src/backend/gradio_highlightedcode/templates/component/Index-2933bd90.js ADDED
The diff for this file is too large to render. See raw diff
 
src/backend/gradio_highlightedcode/templates/component/dockerfile-1dc69d82.js ADDED
@@ -0,0 +1,285 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function c(n) {
2
+ a(n, "start");
3
+ var t = {}, e = n.languageData || {}, s = !1;
4
+ for (var l in n)
5
+ if (l != e && n.hasOwnProperty(l))
6
+ for (var u = t[l] = [], o = n[l], r = 0; r < o.length; r++) {
7
+ var i = o[r];
8
+ u.push(new w(i, n)), (i.indent || i.dedent) && (s = !0);
9
+ }
10
+ return {
11
+ name: e.name,
12
+ startState: function() {
13
+ return { state: "start", pending: null, indent: s ? [] : null };
14
+ },
15
+ copyState: function(g) {
16
+ var x = { state: g.state, pending: g.pending, indent: g.indent && g.indent.slice(0) };
17
+ return g.stack && (x.stack = g.stack.slice(0)), x;
18
+ },
19
+ token: v(t),
20
+ indent: R(t, e),
21
+ languageData: e
22
+ };
23
+ }
24
+ function a(n, t) {
25
+ if (!n.hasOwnProperty(t))
26
+ throw new Error("Undefined state " + t + " in simple mode");
27
+ }
28
+ function h(n, t) {
29
+ if (!n)
30
+ return /(?:)/;
31
+ var e = "";
32
+ return n instanceof RegExp ? (n.ignoreCase && (e = "i"), n = n.source) : n = String(n), new RegExp((t === !1 ? "" : "^") + "(?:" + n + ")", e);
33
+ }
34
+ function y(n) {
35
+ if (!n)
36
+ return null;
37
+ if (n.apply)
38
+ return n;
39
+ if (typeof n == "string")
40
+ return n.replace(/\./g, " ");
41
+ for (var t = [], e = 0; e < n.length; e++)
42
+ t.push(n[e] && n[e].replace(/\./g, " "));
43
+ return t;
44
+ }
45
+ function w(n, t) {
46
+ (n.next || n.push) && a(t, n.next || n.push), this.regex = h(n.regex), this.token = y(n.token), this.data = n;
47
+ }
48
+ function v(n) {
49
+ return function(t, e) {
50
+ if (e.pending) {
51
+ var s = e.pending.shift();
52
+ return e.pending.length == 0 && (e.pending = null), t.pos += s.text.length, s.token;
53
+ }
54
+ for (var l = n[e.state], u = 0; u < l.length; u++) {
55
+ var o = l[u], r = (!o.data.sol || t.sol()) && t.match(o.regex);
56
+ if (r) {
57
+ o.data.next ? e.state = o.data.next : o.data.push ? ((e.stack || (e.stack = [])).push(e.state), e.state = o.data.push) : o.data.pop && e.stack && e.stack.length && (e.state = e.stack.pop()), o.data.indent && e.indent.push(t.indentation() + t.indentUnit), o.data.dedent && e.indent.pop();
58
+ var i = o.token;
59
+ if (i && i.apply && (i = i(r)), r.length > 2 && o.token && typeof o.token != "string") {
60
+ e.pending = [];
61
+ for (var g = 2; g < r.length; g++)
62
+ r[g] && e.pending.push({ text: r[g], token: o.token[g - 1] });
63
+ return t.backUp(r[0].length - (r[1] ? r[1].length : 0)), i[0];
64
+ } else
65
+ return i && i.join ? i[0] : i;
66
+ }
67
+ }
68
+ return t.next(), null;
69
+ };
70
+ }
71
+ function R(n, t) {
72
+ return function(e, s) {
73
+ if (e.indent == null || t.dontIndentStates && t.doneIndentState.indexOf(e.state) > -1)
74
+ return null;
75
+ var l = e.indent.length - 1, u = n[e.state];
76
+ n:
77
+ for (; ; ) {
78
+ for (var o = 0; o < u.length; o++) {
79
+ var r = u[o];
80
+ if (r.data.dedent && r.data.dedentIfLineStart !== !1) {
81
+ var i = r.regex.exec(s);
82
+ if (i && i[0]) {
83
+ l--, (r.next || r.push) && (u = n[r.next || r.push]), s = s.slice(i[0].length);
84
+ continue n;
85
+ }
86
+ }
87
+ }
88
+ break;
89
+ }
90
+ return l < 0 ? 0 : e.indent[l];
91
+ };
92
+ }
93
+ var p = "from", $ = new RegExp("^(\\s*)\\b(" + p + ")\\b", "i"), d = ["run", "cmd", "entrypoint", "shell"], b = new RegExp("^(\\s*)(" + d.join("|") + ")(\\s+\\[)", "i"), f = "expose", m = new RegExp("^(\\s*)(" + f + ")(\\s+)", "i"), S = [
94
+ "arg",
95
+ "from",
96
+ "maintainer",
97
+ "label",
98
+ "env",
99
+ "add",
100
+ "copy",
101
+ "volume",
102
+ "user",
103
+ "workdir",
104
+ "onbuild",
105
+ "stopsignal",
106
+ "healthcheck",
107
+ "shell"
108
+ ], E = [p, f].concat(d).concat(S), k = "(" + E.join("|") + ")", I = new RegExp("^(\\s*)" + k + "(\\s*)(#.*)?$", "i"), O = new RegExp("^(\\s*)" + k + "(\\s+)", "i");
109
+ const D = c({
110
+ start: [
111
+ // Block comment: This is a line starting with a comment
112
+ {
113
+ regex: /^\s*#.*$/,
114
+ sol: !0,
115
+ token: "comment"
116
+ },
117
+ {
118
+ regex: $,
119
+ token: [null, "keyword"],
120
+ sol: !0,
121
+ next: "from"
122
+ },
123
+ // Highlight an instruction without any arguments (for convenience)
124
+ {
125
+ regex: I,
126
+ token: [null, "keyword", null, "error"],
127
+ sol: !0
128
+ },
129
+ {
130
+ regex: b,
131
+ token: [null, "keyword", null],
132
+ sol: !0,
133
+ next: "array"
134
+ },
135
+ {
136
+ regex: m,
137
+ token: [null, "keyword", null],
138
+ sol: !0,
139
+ next: "expose"
140
+ },
141
+ // Highlight an instruction followed by arguments
142
+ {
143
+ regex: O,
144
+ token: [null, "keyword", null],
145
+ sol: !0,
146
+ next: "arguments"
147
+ },
148
+ {
149
+ regex: /./,
150
+ token: null
151
+ }
152
+ ],
153
+ from: [
154
+ {
155
+ regex: /\s*$/,
156
+ token: null,
157
+ next: "start"
158
+ },
159
+ {
160
+ // Line comment without instruction arguments is an error
161
+ regex: /(\s*)(#.*)$/,
162
+ token: [null, "error"],
163
+ next: "start"
164
+ },
165
+ {
166
+ regex: /(\s*\S+\s+)(as)/i,
167
+ token: [null, "keyword"],
168
+ next: "start"
169
+ },
170
+ // Fail safe return to start
171
+ {
172
+ token: null,
173
+ next: "start"
174
+ }
175
+ ],
176
+ single: [
177
+ {
178
+ regex: /(?:[^\\']|\\.)/,
179
+ token: "string"
180
+ },
181
+ {
182
+ regex: /'/,
183
+ token: "string",
184
+ pop: !0
185
+ }
186
+ ],
187
+ double: [
188
+ {
189
+ regex: /(?:[^\\"]|\\.)/,
190
+ token: "string"
191
+ },
192
+ {
193
+ regex: /"/,
194
+ token: "string",
195
+ pop: !0
196
+ }
197
+ ],
198
+ array: [
199
+ {
200
+ regex: /\]/,
201
+ token: null,
202
+ next: "start"
203
+ },
204
+ {
205
+ regex: /"(?:[^\\"]|\\.)*"?/,
206
+ token: "string"
207
+ }
208
+ ],
209
+ expose: [
210
+ {
211
+ regex: /\d+$/,
212
+ token: "number",
213
+ next: "start"
214
+ },
215
+ {
216
+ regex: /[^\d]+$/,
217
+ token: null,
218
+ next: "start"
219
+ },
220
+ {
221
+ regex: /\d+/,
222
+ token: "number"
223
+ },
224
+ {
225
+ regex: /[^\d]+/,
226
+ token: null
227
+ },
228
+ // Fail safe return to start
229
+ {
230
+ token: null,
231
+ next: "start"
232
+ }
233
+ ],
234
+ arguments: [
235
+ {
236
+ regex: /^\s*#.*$/,
237
+ sol: !0,
238
+ token: "comment"
239
+ },
240
+ {
241
+ regex: /"(?:[^\\"]|\\.)*"?$/,
242
+ token: "string",
243
+ next: "start"
244
+ },
245
+ {
246
+ regex: /"/,
247
+ token: "string",
248
+ push: "double"
249
+ },
250
+ {
251
+ regex: /'(?:[^\\']|\\.)*'?$/,
252
+ token: "string",
253
+ next: "start"
254
+ },
255
+ {
256
+ regex: /'/,
257
+ token: "string",
258
+ push: "single"
259
+ },
260
+ {
261
+ regex: /[^#"']+[\\`]$/,
262
+ token: null
263
+ },
264
+ {
265
+ regex: /[^#"']+$/,
266
+ token: null,
267
+ next: "start"
268
+ },
269
+ {
270
+ regex: /[^#"']+/,
271
+ token: null
272
+ },
273
+ // Fail safe return to start
274
+ {
275
+ token: null,
276
+ next: "start"
277
+ }
278
+ ],
279
+ languageData: {
280
+ commentTokens: { line: "#" }
281
+ }
282
+ });
283
+ export {
284
+ D as dockerFile
285
+ };
src/backend/gradio_highlightedcode/templates/component/frontmatter-75b295a4.js ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { s, f as m, c as l, p as i, t as o, S as f } from "./Index-2933bd90.js";
2
+ import { yaml as p } from "./yaml-cef3802d.js";
3
+ const n = /^---\s*$/m, F = {
4
+ defineNodes: [{ name: "Frontmatter", block: !0 }, "FrontmatterMark"],
5
+ props: [
6
+ s({
7
+ Frontmatter: [o.documentMeta, o.monospace],
8
+ FrontmatterMark: o.processingInstruction
9
+ }),
10
+ m.add({
11
+ Frontmatter: l,
12
+ FrontmatterMark: () => null
13
+ })
14
+ ],
15
+ wrap: i((t) => {
16
+ const { parser: e } = f.define(p);
17
+ return t.type.name === "Frontmatter" ? {
18
+ parser: e,
19
+ overlay: [{ from: t.from + 4, to: t.to - 4 }]
20
+ } : null;
21
+ }),
22
+ parseBlock: [
23
+ {
24
+ name: "Frontmatter",
25
+ before: "HorizontalRule",
26
+ parse: (t, e) => {
27
+ let r;
28
+ const a = new Array();
29
+ if (t.lineStart === 0 && n.test(e.text)) {
30
+ for (a.push(t.elt("FrontmatterMark", 0, 4)); t.nextLine(); )
31
+ if (n.test(e.text)) {
32
+ r = t.lineStart + 4;
33
+ break;
34
+ }
35
+ return r !== void 0 && (a.push(t.elt("FrontmatterMark", r - 4, r)), t.addElement(t.elt("Frontmatter", 0, r, a))), !0;
36
+ }
37
+ return !1;
38
+ }
39
+ }
40
+ ]
41
+ };
42
+ export {
43
+ F as frontmatter
44
+ };
src/backend/gradio_highlightedcode/templates/component/index-151dd287.js ADDED
@@ -0,0 +1,1758 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { j as _, k as H, s as Ae, l as Ie, t as c, P as rt, T as nt, m as E, p as st, a as q, E as P, n as T, e as ae, o as it, q as ot, C as at, r as lt, u as ht, v as ft, w as ut, f as Be, b as dt, x as pt, y as ct, z as le, A as mt } from "./Index-2933bd90.js";
2
+ import { htmlCompletionSource as gt, html as kt } from "./index-f8c771ea.js";
3
+ import "./index-f4953321.js";
4
+ import "./index-d8995119.js";
5
+ import "./index-5dd45a26.js";
6
+ class j {
7
+ static create(e, r, n, s, i) {
8
+ let o = s + (s << 8) + e + (r << 4) | 0;
9
+ return new j(e, r, n, o, i, [], []);
10
+ }
11
+ constructor(e, r, n, s, i, o, a) {
12
+ this.type = e, this.value = r, this.from = n, this.hash = s, this.end = i, this.children = o, this.positions = a, this.hashProp = [[H.contextHash, s]];
13
+ }
14
+ addChild(e, r) {
15
+ e.prop(H.contextHash) != this.hash && (e = new E(e.type, e.children, e.positions, e.length, this.hashProp)), this.children.push(e), this.positions.push(r);
16
+ }
17
+ toTree(e, r = this.end) {
18
+ let n = this.children.length - 1;
19
+ return n >= 0 && (r = Math.max(r, this.positions[n] + this.children[n].length + this.from)), new E(e.types[this.type], this.children, this.positions, r - this.from).balance({
20
+ makeTree: (s, i, o) => new E(_.none, s, i, o, this.hashProp)
21
+ });
22
+ }
23
+ }
24
+ var u;
25
+ (function(t) {
26
+ t[t.Document = 1] = "Document", t[t.CodeBlock = 2] = "CodeBlock", t[t.FencedCode = 3] = "FencedCode", t[t.Blockquote = 4] = "Blockquote", t[t.HorizontalRule = 5] = "HorizontalRule", t[t.BulletList = 6] = "BulletList", t[t.OrderedList = 7] = "OrderedList", t[t.ListItem = 8] = "ListItem", t[t.ATXHeading1 = 9] = "ATXHeading1", t[t.ATXHeading2 = 10] = "ATXHeading2", t[t.ATXHeading3 = 11] = "ATXHeading3", t[t.ATXHeading4 = 12] = "ATXHeading4", t[t.ATXHeading5 = 13] = "ATXHeading5", t[t.ATXHeading6 = 14] = "ATXHeading6", t[t.SetextHeading1 = 15] = "SetextHeading1", t[t.SetextHeading2 = 16] = "SetextHeading2", t[t.HTMLBlock = 17] = "HTMLBlock", t[t.LinkReference = 18] = "LinkReference", t[t.Paragraph = 19] = "Paragraph", t[t.CommentBlock = 20] = "CommentBlock", t[t.ProcessingInstructionBlock = 21] = "ProcessingInstructionBlock", t[t.Escape = 22] = "Escape", t[t.Entity = 23] = "Entity", t[t.HardBreak = 24] = "HardBreak", t[t.Emphasis = 25] = "Emphasis", t[t.StrongEmphasis = 26] = "StrongEmphasis", t[t.Link = 27] = "Link", t[t.Image = 28] = "Image", t[t.InlineCode = 29] = "InlineCode", t[t.HTMLTag = 30] = "HTMLTag", t[t.Comment = 31] = "Comment", t[t.ProcessingInstruction = 32] = "ProcessingInstruction", t[t.Autolink = 33] = "Autolink", t[t.HeaderMark = 34] = "HeaderMark", t[t.QuoteMark = 35] = "QuoteMark", t[t.ListMark = 36] = "ListMark", t[t.LinkMark = 37] = "LinkMark", t[t.EmphasisMark = 38] = "EmphasisMark", t[t.CodeMark = 39] = "CodeMark", t[t.CodeText = 40] = "CodeText", t[t.CodeInfo = 41] = "CodeInfo", t[t.LinkTitle = 42] = "LinkTitle", t[t.LinkLabel = 43] = "LinkLabel", t[t.URL = 44] = "URL";
27
+ })(u || (u = {}));
28
+ class Lt {
29
+ /// @internal
30
+ constructor(e, r) {
31
+ this.start = e, this.content = r, this.marks = [], this.parsers = [];
32
+ }
33
+ }
34
+ class bt {
35
+ constructor() {
36
+ this.text = "", this.baseIndent = 0, this.basePos = 0, this.depth = 0, this.markers = [], this.pos = 0, this.indent = 0, this.next = -1;
37
+ }
38
+ /// @internal
39
+ forward() {
40
+ this.basePos > this.pos && this.forwardInner();
41
+ }
42
+ /// @internal
43
+ forwardInner() {
44
+ let e = this.skipSpace(this.basePos);
45
+ this.indent = this.countIndent(e, this.pos, this.indent), this.pos = e, this.next = e == this.text.length ? -1 : this.text.charCodeAt(e);
46
+ }
47
+ /// Skip whitespace after the given position, return the position of
48
+ /// the next non-space character or the end of the line if there's
49
+ /// only space after `from`.
50
+ skipSpace(e) {
51
+ return R(this.text, e);
52
+ }
53
+ /// @internal
54
+ reset(e) {
55
+ for (this.text = e, this.baseIndent = this.basePos = this.pos = this.indent = 0, this.forwardInner(), this.depth = 1; this.markers.length; )
56
+ this.markers.pop();
57
+ }
58
+ /// Move the line's base position forward to the given position.
59
+ /// This should only be called by composite [block
60
+ /// parsers](#BlockParser.parse) or [markup skipping
61
+ /// functions](#NodeSpec.composite).
62
+ moveBase(e) {
63
+ this.basePos = e, this.baseIndent = this.countIndent(e, this.pos, this.indent);
64
+ }
65
+ /// Move the line's base position forward to the given _column_.
66
+ moveBaseColumn(e) {
67
+ this.baseIndent = e, this.basePos = this.findColumn(e);
68
+ }
69
+ /// Store a composite-block-level marker. Should be called from
70
+ /// [markup skipping functions](#NodeSpec.composite) when they
71
+ /// consume any non-whitespace characters.
72
+ addMarker(e) {
73
+ this.markers.push(e);
74
+ }
75
+ /// Find the column position at `to`, optionally starting at a given
76
+ /// position and column.
77
+ countIndent(e, r = 0, n = 0) {
78
+ for (let s = r; s < e; s++)
79
+ n += this.text.charCodeAt(s) == 9 ? 4 - n % 4 : 1;
80
+ return n;
81
+ }
82
+ /// Find the position corresponding to the given column.
83
+ findColumn(e) {
84
+ let r = 0;
85
+ for (let n = 0; r < this.text.length && n < e; r++)
86
+ n += this.text.charCodeAt(r) == 9 ? 4 - n % 4 : 1;
87
+ return r;
88
+ }
89
+ /// @internal
90
+ scrub() {
91
+ if (!this.baseIndent)
92
+ return this.text;
93
+ let e = "";
94
+ for (let r = 0; r < this.basePos; r++)
95
+ e += " ";
96
+ return e + this.text.slice(this.basePos);
97
+ }
98
+ }
99
+ function he(t, e, r) {
100
+ if (r.pos == r.text.length || t != e.block && r.indent >= e.stack[r.depth + 1].value + r.baseIndent)
101
+ return !0;
102
+ if (r.indent >= r.baseIndent + 4)
103
+ return !1;
104
+ let n = (t.type == u.OrderedList ? se : ne)(r, e, !1);
105
+ return n > 0 && (t.type != u.BulletList || re(r, e, !1) < 0) && r.text.charCodeAt(r.pos + n - 1) == t.value;
106
+ }
107
+ const Ee = {
108
+ [u.Blockquote](t, e, r) {
109
+ return r.next != 62 ? !1 : (r.markers.push(g(u.QuoteMark, e.lineStart + r.pos, e.lineStart + r.pos + 1)), r.moveBase(r.pos + (C(r.text.charCodeAt(r.pos + 1)) ? 2 : 1)), t.end = e.lineStart + r.text.length, !0);
110
+ },
111
+ [u.ListItem](t, e, r) {
112
+ return r.indent < r.baseIndent + t.value && r.next > -1 ? !1 : (r.moveBaseColumn(r.baseIndent + t.value), !0);
113
+ },
114
+ [u.OrderedList]: he,
115
+ [u.BulletList]: he,
116
+ [u.Document]() {
117
+ return !0;
118
+ }
119
+ };
120
+ function C(t) {
121
+ return t == 32 || t == 9 || t == 10 || t == 13;
122
+ }
123
+ function R(t, e = 0) {
124
+ for (; e < t.length && C(t.charCodeAt(e)); )
125
+ e++;
126
+ return e;
127
+ }
128
+ function fe(t, e, r) {
129
+ for (; e > r && C(t.charCodeAt(e - 1)); )
130
+ e--;
131
+ return e;
132
+ }
133
+ function Me(t) {
134
+ if (t.next != 96 && t.next != 126)
135
+ return -1;
136
+ let e = t.pos + 1;
137
+ for (; e < t.text.length && t.text.charCodeAt(e) == t.next; )
138
+ e++;
139
+ if (e < t.pos + 3)
140
+ return -1;
141
+ if (t.next == 96) {
142
+ for (let r = e; r < t.text.length; r++)
143
+ if (t.text.charCodeAt(r) == 96)
144
+ return -1;
145
+ }
146
+ return e;
147
+ }
148
+ function Pe(t) {
149
+ return t.next != 62 ? -1 : t.text.charCodeAt(t.pos + 1) == 32 ? 2 : 1;
150
+ }
151
+ function re(t, e, r) {
152
+ if (t.next != 42 && t.next != 45 && t.next != 95)
153
+ return -1;
154
+ let n = 1;
155
+ for (let s = t.pos + 1; s < t.text.length; s++) {
156
+ let i = t.text.charCodeAt(s);
157
+ if (i == t.next)
158
+ n++;
159
+ else if (!C(i))
160
+ return -1;
161
+ }
162
+ return r && t.next == 45 && Ne(t) > -1 && t.depth == e.stack.length || n < 3 ? -1 : 1;
163
+ }
164
+ function He(t, e) {
165
+ for (let r = t.stack.length - 1; r >= 0; r--)
166
+ if (t.stack[r].type == e)
167
+ return !0;
168
+ return !1;
169
+ }
170
+ function ne(t, e, r) {
171
+ return (t.next == 45 || t.next == 43 || t.next == 42) && (t.pos == t.text.length - 1 || C(t.text.charCodeAt(t.pos + 1))) && (!r || He(e, u.BulletList) || t.skipSpace(t.pos + 2) < t.text.length) ? 1 : -1;
172
+ }
173
+ function se(t, e, r) {
174
+ let n = t.pos, s = t.next;
175
+ for (; s >= 48 && s <= 57; ) {
176
+ n++;
177
+ if (n == t.text.length)
178
+ return -1;
179
+ s = t.text.charCodeAt(n);
180
+ }
181
+ return n == t.pos || n > t.pos + 9 || s != 46 && s != 41 || n < t.text.length - 1 && !C(t.text.charCodeAt(n + 1)) || r && !He(e, u.OrderedList) && (t.skipSpace(n + 1) == t.text.length || n > t.pos + 1 || t.next != 49) ? -1 : n + 1 - t.pos;
182
+ }
183
+ function ve(t) {
184
+ if (t.next != 35)
185
+ return -1;
186
+ let e = t.pos + 1;
187
+ for (; e < t.text.length && t.text.charCodeAt(e) == 35; )
188
+ e++;
189
+ if (e < t.text.length && t.text.charCodeAt(e) != 32)
190
+ return -1;
191
+ let r = e - t.pos;
192
+ return r > 6 ? -1 : r;
193
+ }
194
+ function Ne(t) {
195
+ if (t.next != 45 && t.next != 61 || t.indent >= t.baseIndent + 4)
196
+ return -1;
197
+ let e = t.pos + 1;
198
+ for (; e < t.text.length && t.text.charCodeAt(e) == t.next; )
199
+ e++;
200
+ let r = e;
201
+ for (; e < t.text.length && C(t.text.charCodeAt(e)); )
202
+ e++;
203
+ return e == t.text.length ? r : -1;
204
+ }
205
+ const K = /^[ \t]*$/, ye = /-->/, Re = /\?>/, J = [
206
+ [/^<(?:script|pre|style)(?:\s|>|$)/i, /<\/(?:script|pre|style)>/i],
207
+ [/^\s*<!--/, ye],
208
+ [/^\s*<\?/, Re],
209
+ [/^\s*<![A-Z]/, />/],
210
+ [/^\s*<!\[CDATA\[/, /\]\]>/],
211
+ [/^\s*<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i, K],
212
+ [/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i, K]
213
+ ];
214
+ function Oe(t, e, r) {
215
+ if (t.next != 60)
216
+ return -1;
217
+ let n = t.text.slice(t.pos);
218
+ for (let s = 0, i = J.length - (r ? 1 : 0); s < i; s++)
219
+ if (J[s][0].test(n))
220
+ return s;
221
+ return -1;
222
+ }
223
+ function ue(t, e) {
224
+ let r = t.countIndent(e, t.pos, t.indent), n = t.countIndent(t.skipSpace(e), e, r);
225
+ return n >= r + 5 ? r + 1 : n;
226
+ }
227
+ function B(t, e, r) {
228
+ let n = t.length - 1;
229
+ n >= 0 && t[n].to == e && t[n].type == u.CodeText ? t[n].to = r : t.push(g(u.CodeText, e, r));
230
+ }
231
+ const F = {
232
+ LinkReference: void 0,
233
+ IndentedCode(t, e) {
234
+ let r = e.baseIndent + 4;
235
+ if (e.indent < r)
236
+ return !1;
237
+ let n = e.findColumn(r), s = t.lineStart + n, i = t.lineStart + e.text.length, o = [], a = [];
238
+ for (B(o, s, i); t.nextLine() && e.depth >= t.stack.length; )
239
+ if (e.pos == e.text.length) {
240
+ B(a, t.lineStart - 1, t.lineStart);
241
+ for (let l of e.markers)
242
+ a.push(l);
243
+ } else {
244
+ if (e.indent < r)
245
+ break;
246
+ {
247
+ if (a.length) {
248
+ for (let f of a)
249
+ f.type == u.CodeText ? B(o, f.from, f.to) : o.push(f);
250
+ a = [];
251
+ }
252
+ B(o, t.lineStart - 1, t.lineStart);
253
+ for (let f of e.markers)
254
+ o.push(f);
255
+ i = t.lineStart + e.text.length;
256
+ let l = t.lineStart + e.findColumn(e.baseIndent + 4);
257
+ l < i && B(o, l, i);
258
+ }
259
+ }
260
+ return a.length && (a = a.filter((l) => l.type != u.CodeText), a.length && (e.markers = a.concat(e.markers))), t.addNode(t.buffer.writeElements(o, -s).finish(u.CodeBlock, i - s), s), !0;
261
+ },
262
+ FencedCode(t, e) {
263
+ let r = Me(e);
264
+ if (r < 0)
265
+ return !1;
266
+ let n = t.lineStart + e.pos, s = e.next, i = r - e.pos, o = e.skipSpace(r), a = fe(e.text, e.text.length, o), l = [g(u.CodeMark, n, n + i)];
267
+ o < a && l.push(g(u.CodeInfo, t.lineStart + o, t.lineStart + a));
268
+ for (let f = !0; t.nextLine() && e.depth >= t.stack.length; f = !1) {
269
+ let h = e.pos;
270
+ if (e.indent - e.baseIndent < 4)
271
+ for (; h < e.text.length && e.text.charCodeAt(h) == s; )
272
+ h++;
273
+ if (h - e.pos >= i && e.skipSpace(h) == e.text.length) {
274
+ for (let p of e.markers)
275
+ l.push(p);
276
+ l.push(g(u.CodeMark, t.lineStart + e.pos, t.lineStart + h)), t.nextLine();
277
+ break;
278
+ } else {
279
+ f || B(l, t.lineStart - 1, t.lineStart);
280
+ for (let m of e.markers)
281
+ l.push(m);
282
+ let p = t.lineStart + e.basePos, d = t.lineStart + e.text.length;
283
+ p < d && B(l, p, d);
284
+ }
285
+ }
286
+ return t.addNode(t.buffer.writeElements(l, -n).finish(u.FencedCode, t.prevLineEnd() - n), n), !0;
287
+ },
288
+ Blockquote(t, e) {
289
+ let r = Pe(e);
290
+ return r < 0 ? !1 : (t.startContext(u.Blockquote, e.pos), t.addNode(u.QuoteMark, t.lineStart + e.pos, t.lineStart + e.pos + 1), e.moveBase(e.pos + r), null);
291
+ },
292
+ HorizontalRule(t, e) {
293
+ if (re(e, t, !1) < 0)
294
+ return !1;
295
+ let r = t.lineStart + e.pos;
296
+ return t.nextLine(), t.addNode(u.HorizontalRule, r), !0;
297
+ },
298
+ BulletList(t, e) {
299
+ let r = ne(e, t, !1);
300
+ if (r < 0)
301
+ return !1;
302
+ t.block.type != u.BulletList && t.startContext(u.BulletList, e.basePos, e.next);
303
+ let n = ue(e, e.pos + 1);
304
+ return t.startContext(u.ListItem, e.basePos, n - e.baseIndent), t.addNode(u.ListMark, t.lineStart + e.pos, t.lineStart + e.pos + r), e.moveBaseColumn(n), null;
305
+ },
306
+ OrderedList(t, e) {
307
+ let r = se(e, t, !1);
308
+ if (r < 0)
309
+ return !1;
310
+ t.block.type != u.OrderedList && t.startContext(u.OrderedList, e.basePos, e.text.charCodeAt(e.pos + r - 1));
311
+ let n = ue(e, e.pos + r);
312
+ return t.startContext(u.ListItem, e.basePos, n - e.baseIndent), t.addNode(u.ListMark, t.lineStart + e.pos, t.lineStart + e.pos + r), e.moveBaseColumn(n), null;
313
+ },
314
+ ATXHeading(t, e) {
315
+ let r = ve(e);
316
+ if (r < 0)
317
+ return !1;
318
+ let n = e.pos, s = t.lineStart + n, i = fe(e.text, e.text.length, n), o = i;
319
+ for (; o > n && e.text.charCodeAt(o - 1) == e.next; )
320
+ o--;
321
+ (o == i || o == n || !C(e.text.charCodeAt(o - 1))) && (o = e.text.length);
322
+ let a = t.buffer.write(u.HeaderMark, 0, r).writeElements(t.parser.parseInline(e.text.slice(n + r + 1, o), s + r + 1), -s);
323
+ o < e.text.length && a.write(u.HeaderMark, o - n, i - n);
324
+ let l = a.finish(u.ATXHeading1 - 1 + r, e.text.length - n);
325
+ return t.nextLine(), t.addNode(l, s), !0;
326
+ },
327
+ HTMLBlock(t, e) {
328
+ let r = Oe(e, t, !1);
329
+ if (r < 0)
330
+ return !1;
331
+ let n = t.lineStart + e.pos, s = J[r][1], i = [], o = s != K;
332
+ for (; !s.test(e.text) && t.nextLine(); ) {
333
+ if (e.depth < t.stack.length) {
334
+ o = !1;
335
+ break;
336
+ }
337
+ for (let f of e.markers)
338
+ i.push(f);
339
+ }
340
+ o && t.nextLine();
341
+ let a = s == ye ? u.CommentBlock : s == Re ? u.ProcessingInstructionBlock : u.HTMLBlock, l = t.prevLineEnd();
342
+ return t.addNode(t.buffer.writeElements(i, -n).finish(a, l - n), n), !0;
343
+ },
344
+ SetextHeading: void 0
345
+ // Specifies relative precedence for block-continue function
346
+ };
347
+ class wt {
348
+ constructor(e) {
349
+ this.stage = 0, this.elts = [], this.pos = 0, this.start = e.start, this.advance(e.content);
350
+ }
351
+ nextLine(e, r, n) {
352
+ if (this.stage == -1)
353
+ return !1;
354
+ let s = n.content + `
355
+ ` + r.scrub(), i = this.advance(s);
356
+ return i > -1 && i < s.length ? this.complete(e, n, i) : !1;
357
+ }
358
+ finish(e, r) {
359
+ return (this.stage == 2 || this.stage == 3) && R(r.content, this.pos) == r.content.length ? this.complete(e, r, r.content.length) : !1;
360
+ }
361
+ complete(e, r, n) {
362
+ return e.addLeafElement(r, g(u.LinkReference, this.start, this.start + n, this.elts)), !0;
363
+ }
364
+ nextStage(e) {
365
+ return e ? (this.pos = e.to - this.start, this.elts.push(e), this.stage++, !0) : (e === !1 && (this.stage = -1), !1);
366
+ }
367
+ advance(e) {
368
+ for (; ; ) {
369
+ if (this.stage == -1)
370
+ return -1;
371
+ if (this.stage == 0) {
372
+ if (!this.nextStage(qe(e, this.pos, this.start, !0)))
373
+ return -1;
374
+ if (e.charCodeAt(this.pos) != 58)
375
+ return this.stage = -1;
376
+ this.elts.push(g(u.LinkMark, this.pos + this.start, this.pos + this.start + 1)), this.pos++;
377
+ } else if (this.stage == 1) {
378
+ if (!this.nextStage(je(e, R(e, this.pos), this.start)))
379
+ return -1;
380
+ } else if (this.stage == 2) {
381
+ let r = R(e, this.pos), n = 0;
382
+ if (r > this.pos) {
383
+ let s = _e(e, r, this.start);
384
+ if (s) {
385
+ let i = Q(e, s.to - this.start);
386
+ i > 0 && (this.nextStage(s), n = i);
387
+ }
388
+ }
389
+ return n || (n = Q(e, this.pos)), n > 0 && n < e.length ? n : -1;
390
+ } else
391
+ return Q(e, this.pos);
392
+ }
393
+ }
394
+ }
395
+ function Q(t, e) {
396
+ for (; e < t.length; e++) {
397
+ let r = t.charCodeAt(e);
398
+ if (r == 10)
399
+ break;
400
+ if (!C(r))
401
+ return -1;
402
+ }
403
+ return e;
404
+ }
405
+ class St {
406
+ nextLine(e, r, n) {
407
+ let s = r.depth < e.stack.length ? -1 : Ne(r), i = r.next;
408
+ if (s < 0)
409
+ return !1;
410
+ let o = g(u.HeaderMark, e.lineStart + r.pos, e.lineStart + s);
411
+ return e.nextLine(), e.addLeafElement(n, g(i == 61 ? u.SetextHeading1 : u.SetextHeading2, n.start, e.prevLineEnd(), [
412
+ ...e.parser.parseInline(n.content, n.start),
413
+ o
414
+ ])), !0;
415
+ }
416
+ finish() {
417
+ return !1;
418
+ }
419
+ }
420
+ const Ct = {
421
+ LinkReference(t, e) {
422
+ return e.content.charCodeAt(0) == 91 ? new wt(e) : null;
423
+ },
424
+ SetextHeading() {
425
+ return new St();
426
+ }
427
+ }, xt = [
428
+ (t, e) => ve(e) >= 0,
429
+ (t, e) => Me(e) >= 0,
430
+ (t, e) => Pe(e) >= 0,
431
+ (t, e) => ne(e, t, !0) >= 0,
432
+ (t, e) => se(e, t, !0) >= 0,
433
+ (t, e) => re(e, t, !0) >= 0,
434
+ (t, e) => Oe(e, t, !0) >= 0
435
+ ], At = { text: "", end: 0 };
436
+ class It {
437
+ /// @internal
438
+ constructor(e, r, n, s) {
439
+ this.parser = e, this.input = r, this.ranges = s, this.line = new bt(), this.atEnd = !1, this.reusePlaceholders = /* @__PURE__ */ new Map(), this.stoppedAt = null, this.rangeI = 0, this.to = s[s.length - 1].to, this.lineStart = this.absoluteLineStart = this.absoluteLineEnd = s[0].from, this.block = j.create(u.Document, 0, this.lineStart, 0, 0), this.stack = [this.block], this.fragments = n.length ? new Pt(n, r) : null, this.readLine();
440
+ }
441
+ get parsedPos() {
442
+ return this.absoluteLineStart;
443
+ }
444
+ advance() {
445
+ if (this.stoppedAt != null && this.absoluteLineStart > this.stoppedAt)
446
+ return this.finish();
447
+ let { line: e } = this;
448
+ for (; ; ) {
449
+ for (let n = 0; ; ) {
450
+ let s = e.depth < this.stack.length ? this.stack[this.stack.length - 1] : null;
451
+ for (; n < e.markers.length && (!s || e.markers[n].from < s.end); ) {
452
+ let i = e.markers[n++];
453
+ this.addNode(i.type, i.from, i.to);
454
+ }
455
+ if (!s)
456
+ break;
457
+ this.finishContext();
458
+ }
459
+ if (e.pos < e.text.length)
460
+ break;
461
+ if (!this.nextLine())
462
+ return this.finish();
463
+ }
464
+ if (this.fragments && this.reuseFragment(e.basePos))
465
+ return null;
466
+ e:
467
+ for (; ; ) {
468
+ for (let n of this.parser.blockParsers)
469
+ if (n) {
470
+ let s = n(this, e);
471
+ if (s != !1) {
472
+ if (s == !0)
473
+ return null;
474
+ e.forward();
475
+ continue e;
476
+ }
477
+ }
478
+ break;
479
+ }
480
+ let r = new Lt(this.lineStart + e.pos, e.text.slice(e.pos));
481
+ for (let n of this.parser.leafBlockParsers)
482
+ if (n) {
483
+ let s = n(this, r);
484
+ s && r.parsers.push(s);
485
+ }
486
+ e:
487
+ for (; this.nextLine() && e.pos != e.text.length; ) {
488
+ if (e.indent < e.baseIndent + 4) {
489
+ for (let n of this.parser.endLeafBlock)
490
+ if (n(this, e, r))
491
+ break e;
492
+ }
493
+ for (let n of r.parsers)
494
+ if (n.nextLine(this, e, r))
495
+ return null;
496
+ r.content += `
497
+ ` + e.scrub();
498
+ for (let n of e.markers)
499
+ r.marks.push(n);
500
+ }
501
+ return this.finishLeaf(r), null;
502
+ }
503
+ stopAt(e) {
504
+ if (this.stoppedAt != null && this.stoppedAt < e)
505
+ throw new RangeError("Can't move stoppedAt forward");
506
+ this.stoppedAt = e;
507
+ }
508
+ reuseFragment(e) {
509
+ if (!this.fragments.moveTo(this.absoluteLineStart + e, this.absoluteLineStart) || !this.fragments.matches(this.block.hash))
510
+ return !1;
511
+ let r = this.fragments.takeNodes(this);
512
+ return r ? (this.absoluteLineStart += r, this.lineStart = Ue(this.absoluteLineStart, this.ranges), this.moveRangeI(), this.absoluteLineStart < this.to ? (this.lineStart++, this.absoluteLineStart++, this.readLine()) : (this.atEnd = !0, this.readLine()), !0) : !1;
513
+ }
514
+ /// The number of parent blocks surrounding the current block.
515
+ get depth() {
516
+ return this.stack.length;
517
+ }
518
+ /// Get the type of the parent block at the given depth. When no
519
+ /// depth is passed, return the type of the innermost parent.
520
+ parentType(e = this.depth - 1) {
521
+ return this.parser.nodeSet.types[this.stack[e].type];
522
+ }
523
+ /// Move to the next input line. This should only be called by
524
+ /// (non-composite) [block parsers](#BlockParser.parse) that consume
525
+ /// the line directly, or leaf block parser
526
+ /// [`nextLine`](#LeafBlockParser.nextLine) methods when they
527
+ /// consume the current line (and return true).
528
+ nextLine() {
529
+ return this.lineStart += this.line.text.length, this.absoluteLineEnd >= this.to ? (this.absoluteLineStart = this.absoluteLineEnd, this.atEnd = !0, this.readLine(), !1) : (this.lineStart++, this.absoluteLineStart = this.absoluteLineEnd + 1, this.moveRangeI(), this.readLine(), !0);
530
+ }
531
+ moveRangeI() {
532
+ for (; this.rangeI < this.ranges.length - 1 && this.absoluteLineStart >= this.ranges[this.rangeI].to; )
533
+ this.rangeI++, this.absoluteLineStart = Math.max(this.absoluteLineStart, this.ranges[this.rangeI].from);
534
+ }
535
+ /// @internal
536
+ scanLine(e) {
537
+ let r = At;
538
+ if (r.end = e, e >= this.to)
539
+ r.text = "";
540
+ else if (r.text = this.lineChunkAt(e), r.end += r.text.length, this.ranges.length > 1) {
541
+ let n = this.absoluteLineStart, s = this.rangeI;
542
+ for (; this.ranges[s].to < r.end; ) {
543
+ s++;
544
+ let i = this.ranges[s].from, o = this.lineChunkAt(i);
545
+ r.end = i + o.length, r.text = r.text.slice(0, this.ranges[s - 1].to - n) + o, n = r.end - r.text.length;
546
+ }
547
+ }
548
+ return r;
549
+ }
550
+ /// @internal
551
+ readLine() {
552
+ let { line: e } = this, { text: r, end: n } = this.scanLine(this.absoluteLineStart);
553
+ for (this.absoluteLineEnd = n, e.reset(r); e.depth < this.stack.length; e.depth++) {
554
+ let s = this.stack[e.depth], i = this.parser.skipContextMarkup[s.type];
555
+ if (!i)
556
+ throw new Error("Unhandled block context " + u[s.type]);
557
+ if (!i(s, this, e))
558
+ break;
559
+ e.forward();
560
+ }
561
+ }
562
+ lineChunkAt(e) {
563
+ let r = this.input.chunk(e), n;
564
+ if (this.input.lineChunks)
565
+ n = r == `
566
+ ` ? "" : r;
567
+ else {
568
+ let s = r.indexOf(`
569
+ `);
570
+ n = s < 0 ? r : r.slice(0, s);
571
+ }
572
+ return e + n.length > this.to ? n.slice(0, this.to - e) : n;
573
+ }
574
+ /// The end position of the previous line.
575
+ prevLineEnd() {
576
+ return this.atEnd ? this.lineStart : this.lineStart - 1;
577
+ }
578
+ /// @internal
579
+ startContext(e, r, n = 0) {
580
+ this.block = j.create(e, n, this.lineStart + r, this.block.hash, this.lineStart + this.line.text.length), this.stack.push(this.block);
581
+ }
582
+ /// Start a composite block. Should only be called from [block
583
+ /// parser functions](#BlockParser.parse) that return null.
584
+ startComposite(e, r, n = 0) {
585
+ this.startContext(this.parser.getNodeType(e), r, n);
586
+ }
587
+ /// @internal
588
+ addNode(e, r, n) {
589
+ typeof e == "number" && (e = new E(this.parser.nodeSet.types[e], v, v, (n ?? this.prevLineEnd()) - r)), this.block.addChild(e, r - this.block.from);
590
+ }
591
+ /// Add a block element. Can be called by [block
592
+ /// parsers](#BlockParser.parse).
593
+ addElement(e) {
594
+ this.block.addChild(e.toTree(this.parser.nodeSet), e.from - this.block.from);
595
+ }
596
+ /// Add a block element from a [leaf parser](#LeafBlockParser). This
597
+ /// makes sure any extra composite block markup (such as blockquote
598
+ /// markers) inside the block are also added to the syntax tree.
599
+ addLeafElement(e, r) {
600
+ this.addNode(this.buffer.writeElements(W(r.children, e.marks), -r.from).finish(r.type, r.to - r.from), r.from);
601
+ }
602
+ /// @internal
603
+ finishContext() {
604
+ let e = this.stack.pop(), r = this.stack[this.stack.length - 1];
605
+ r.addChild(e.toTree(this.parser.nodeSet), e.from - r.from), this.block = r;
606
+ }
607
+ finish() {
608
+ for (; this.stack.length > 1; )
609
+ this.finishContext();
610
+ return this.addGaps(this.block.toTree(this.parser.nodeSet, this.lineStart));
611
+ }
612
+ addGaps(e) {
613
+ return this.ranges.length > 1 ? Te(this.ranges, 0, e.topNode, this.ranges[0].from, this.reusePlaceholders) : e;
614
+ }
615
+ /// @internal
616
+ finishLeaf(e) {
617
+ for (let n of e.parsers)
618
+ if (n.finish(this, e))
619
+ return;
620
+ let r = W(this.parser.parseInline(e.content, e.start), e.marks);
621
+ this.addNode(this.buffer.writeElements(r, -e.start).finish(u.Paragraph, e.content.length), e.start);
622
+ }
623
+ elt(e, r, n, s) {
624
+ return typeof e == "string" ? g(this.parser.getNodeType(e), r, n, s) : new Fe(e, r);
625
+ }
626
+ /// @internal
627
+ get buffer() {
628
+ return new De(this.parser.nodeSet);
629
+ }
630
+ }
631
+ function Te(t, e, r, n, s) {
632
+ let i = t[e].to, o = [], a = [], l = r.from + n;
633
+ function f(h, p) {
634
+ for (; p ? h >= i : h > i; ) {
635
+ let d = t[e + 1].from - i;
636
+ n += d, h += d, e++, i = t[e].to;
637
+ }
638
+ }
639
+ for (let h = r.firstChild; h; h = h.nextSibling) {
640
+ f(h.from + n, !0);
641
+ let p = h.from + n, d, m = s.get(h.tree);
642
+ m ? d = m : h.to + n > i ? (d = Te(t, e, h, n, s), f(h.to + n, !1)) : d = h.toTree(), o.push(d), a.push(p - l);
643
+ }
644
+ return f(r.to + n, !1), new E(r.type, o, a, r.to + n - l, r.tree ? r.tree.propValues : void 0);
645
+ }
646
+ class U extends rt {
647
+ /// @internal
648
+ constructor(e, r, n, s, i, o, a, l, f) {
649
+ super(), this.nodeSet = e, this.blockParsers = r, this.leafBlockParsers = n, this.blockNames = s, this.endLeafBlock = i, this.skipContextMarkup = o, this.inlineParsers = a, this.inlineNames = l, this.wrappers = f, this.nodeTypes = /* @__PURE__ */ Object.create(null);
650
+ for (let h of e.types)
651
+ this.nodeTypes[h.name] = h.id;
652
+ }
653
+ createParse(e, r, n) {
654
+ let s = new It(this, e, r, n);
655
+ for (let i of this.wrappers)
656
+ s = i(s, e, r, n);
657
+ return s;
658
+ }
659
+ /// Reconfigure the parser.
660
+ configure(e) {
661
+ let r = Y(e);
662
+ if (!r)
663
+ return this;
664
+ let { nodeSet: n, skipContextMarkup: s } = this, i = this.blockParsers.slice(), o = this.leafBlockParsers.slice(), a = this.blockNames.slice(), l = this.inlineParsers.slice(), f = this.inlineNames.slice(), h = this.endLeafBlock.slice(), p = this.wrappers;
665
+ if (N(r.defineNodes)) {
666
+ s = Object.assign({}, s);
667
+ let d = n.types.slice(), m;
668
+ for (let L of r.defineNodes) {
669
+ let { name: k, block: w, composite: S, style: b } = typeof L == "string" ? { name: L } : L;
670
+ if (d.some((I) => I.name == k))
671
+ continue;
672
+ S && (s[d.length] = (I, et, tt) => S(et, tt, I.value));
673
+ let A = d.length, M = S ? ["Block", "BlockContext"] : w ? A >= u.ATXHeading1 && A <= u.SetextHeading2 ? ["Block", "LeafBlock", "Heading"] : ["Block", "LeafBlock"] : void 0;
674
+ d.push(_.define({
675
+ id: A,
676
+ name: k,
677
+ props: M && [[H.group, M]]
678
+ })), b && (m || (m = {}), Array.isArray(b) || b instanceof nt ? m[k] = b : Object.assign(m, b));
679
+ }
680
+ n = new Ie(d), m && (n = n.extend(Ae(m)));
681
+ }
682
+ if (N(r.props) && (n = n.extend(...r.props)), N(r.remove))
683
+ for (let d of r.remove) {
684
+ let m = this.blockNames.indexOf(d), L = this.inlineNames.indexOf(d);
685
+ m > -1 && (i[m] = o[m] = void 0), L > -1 && (l[L] = void 0);
686
+ }
687
+ if (N(r.parseBlock))
688
+ for (let d of r.parseBlock) {
689
+ let m = a.indexOf(d.name);
690
+ if (m > -1)
691
+ i[m] = d.parse, o[m] = d.leaf;
692
+ else {
693
+ let L = d.before ? X(a, d.before) : d.after ? X(a, d.after) + 1 : a.length - 1;
694
+ i.splice(L, 0, d.parse), o.splice(L, 0, d.leaf), a.splice(L, 0, d.name);
695
+ }
696
+ d.endLeaf && h.push(d.endLeaf);
697
+ }
698
+ if (N(r.parseInline))
699
+ for (let d of r.parseInline) {
700
+ let m = f.indexOf(d.name);
701
+ if (m > -1)
702
+ l[m] = d.parse;
703
+ else {
704
+ let L = d.before ? X(f, d.before) : d.after ? X(f, d.after) + 1 : f.length - 1;
705
+ l.splice(L, 0, d.parse), f.splice(L, 0, d.name);
706
+ }
707
+ }
708
+ return r.wrap && (p = p.concat(r.wrap)), new U(n, i, o, a, h, s, l, f, p);
709
+ }
710
+ /// @internal
711
+ getNodeType(e) {
712
+ let r = this.nodeTypes[e];
713
+ if (r == null)
714
+ throw new RangeError(`Unknown node type '${e}'`);
715
+ return r;
716
+ }
717
+ /// Parse the given piece of inline text at the given offset,
718
+ /// returning an array of [`Element`](#Element) objects representing
719
+ /// the inline content.
720
+ parseInline(e, r) {
721
+ let n = new Et(this, e, r);
722
+ e:
723
+ for (let s = r; s < n.end; ) {
724
+ let i = n.char(s);
725
+ for (let o of this.inlineParsers)
726
+ if (o) {
727
+ let a = o(n, i, s);
728
+ if (a >= 0) {
729
+ s = a;
730
+ continue e;
731
+ }
732
+ }
733
+ s++;
734
+ }
735
+ return n.resolveMarkers(0);
736
+ }
737
+ }
738
+ function N(t) {
739
+ return t != null && t.length > 0;
740
+ }
741
+ function Y(t) {
742
+ if (!Array.isArray(t))
743
+ return t;
744
+ if (t.length == 0)
745
+ return null;
746
+ let e = Y(t[0]);
747
+ if (t.length == 1)
748
+ return e;
749
+ let r = Y(t.slice(1));
750
+ if (!r || !e)
751
+ return e || r;
752
+ let n = (o, a) => (o || v).concat(a || v), s = e.wrap, i = r.wrap;
753
+ return {
754
+ props: n(e.props, r.props),
755
+ defineNodes: n(e.defineNodes, r.defineNodes),
756
+ parseBlock: n(e.parseBlock, r.parseBlock),
757
+ parseInline: n(e.parseInline, r.parseInline),
758
+ remove: n(e.remove, r.remove),
759
+ wrap: s ? i ? (o, a, l, f) => s(i(o, a, l, f), a, l, f) : s : i
760
+ };
761
+ }
762
+ function X(t, e) {
763
+ let r = t.indexOf(e);
764
+ if (r < 0)
765
+ throw new RangeError(`Position specified relative to unknown parser ${e}`);
766
+ return r;
767
+ }
768
+ let ze = [_.none];
769
+ for (let t = 1, e; e = u[t]; t++)
770
+ ze[t] = _.define({
771
+ id: t,
772
+ name: e,
773
+ props: t >= u.Escape ? [] : [[H.group, t in Ee ? ["Block", "BlockContext"] : ["Block", "LeafBlock"]]],
774
+ top: e == "Document"
775
+ });
776
+ const v = [];
777
+ class De {
778
+ constructor(e) {
779
+ this.nodeSet = e, this.content = [], this.nodes = [];
780
+ }
781
+ write(e, r, n, s = 0) {
782
+ return this.content.push(e, r, n, 4 + s * 4), this;
783
+ }
784
+ writeElements(e, r = 0) {
785
+ for (let n of e)
786
+ n.writeTo(this, r);
787
+ return this;
788
+ }
789
+ finish(e, r) {
790
+ return E.build({
791
+ buffer: this.content,
792
+ nodeSet: this.nodeSet,
793
+ reused: this.nodes,
794
+ topID: e,
795
+ length: r
796
+ });
797
+ }
798
+ }
799
+ class z {
800
+ /// @internal
801
+ constructor(e, r, n, s = v) {
802
+ this.type = e, this.from = r, this.to = n, this.children = s;
803
+ }
804
+ /// @internal
805
+ writeTo(e, r) {
806
+ let n = e.content.length;
807
+ e.writeElements(this.children, r), e.content.push(this.type, this.from + r, this.to + r, e.content.length + 4 - n);
808
+ }
809
+ /// @internal
810
+ toTree(e) {
811
+ return new De(e).writeElements(this.children, -this.from).finish(this.type, this.to - this.from);
812
+ }
813
+ }
814
+ class Fe {
815
+ constructor(e, r) {
816
+ this.tree = e, this.from = r;
817
+ }
818
+ get to() {
819
+ return this.from + this.tree.length;
820
+ }
821
+ get type() {
822
+ return this.tree.type.id;
823
+ }
824
+ get children() {
825
+ return v;
826
+ }
827
+ writeTo(e, r) {
828
+ e.nodes.push(this.tree), e.content.push(e.nodes.length - 1, this.from + r, this.to + r, -1);
829
+ }
830
+ toTree() {
831
+ return this.tree;
832
+ }
833
+ }
834
+ function g(t, e, r, n) {
835
+ return new z(t, e, r, n);
836
+ }
837
+ const Xe = { resolve: "Emphasis", mark: "EmphasisMark" }, $e = { resolve: "Emphasis", mark: "EmphasisMark" }, y = {}, de = {};
838
+ class x {
839
+ constructor(e, r, n, s) {
840
+ this.type = e, this.from = r, this.to = n, this.side = s;
841
+ }
842
+ }
843
+ const pe = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";
844
+ let D = /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;
845
+ try {
846
+ D = new RegExp("[\\p{Pc}|\\p{Pd}|\\p{Pe}|\\p{Pf}|\\p{Pi}|\\p{Po}|\\p{Ps}]", "u");
847
+ } catch {
848
+ }
849
+ const Z = {
850
+ Escape(t, e, r) {
851
+ if (e != 92 || r == t.end - 1)
852
+ return -1;
853
+ let n = t.char(r + 1);
854
+ for (let s = 0; s < pe.length; s++)
855
+ if (pe.charCodeAt(s) == n)
856
+ return t.append(g(u.Escape, r, r + 2));
857
+ return -1;
858
+ },
859
+ Entity(t, e, r) {
860
+ if (e != 38)
861
+ return -1;
862
+ let n = /^(?:#\d+|#x[a-f\d]+|\w+);/i.exec(t.slice(r + 1, r + 31));
863
+ return n ? t.append(g(u.Entity, r, r + 1 + n[0].length)) : -1;
864
+ },
865
+ InlineCode(t, e, r) {
866
+ if (e != 96 || r && t.char(r - 1) == 96)
867
+ return -1;
868
+ let n = r + 1;
869
+ for (; n < t.end && t.char(n) == 96; )
870
+ n++;
871
+ let s = n - r, i = 0;
872
+ for (; n < t.end; n++)
873
+ if (t.char(n) == 96) {
874
+ if (i++, i == s && t.char(n + 1) != 96)
875
+ return t.append(g(u.InlineCode, r, n + 1, [
876
+ g(u.CodeMark, r, r + s),
877
+ g(u.CodeMark, n + 1 - s, n + 1)
878
+ ]));
879
+ } else
880
+ i = 0;
881
+ return -1;
882
+ },
883
+ HTMLTag(t, e, r) {
884
+ if (e != 60 || r == t.end - 1)
885
+ return -1;
886
+ let n = t.slice(r + 1, t.end), s = /^(?:[a-z][-\w+.]+:[^\s>]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(n);
887
+ if (s)
888
+ return t.append(g(u.Autolink, r, r + 1 + s[0].length, [
889
+ g(u.LinkMark, r, r + 1),
890
+ // url[0] includes the closing bracket, so exclude it from this slice
891
+ g(u.URL, r + 1, r + s[0].length),
892
+ g(u.LinkMark, r + s[0].length, r + 1 + s[0].length)
893
+ ]));
894
+ let i = /^!--[^>](?:-[^-]|[^-])*?-->/i.exec(n);
895
+ if (i)
896
+ return t.append(g(u.Comment, r, r + 1 + i[0].length));
897
+ let o = /^\?[^]*?\?>/.exec(n);
898
+ if (o)
899
+ return t.append(g(u.ProcessingInstruction, r, r + 1 + o[0].length));
900
+ let a = /^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(n);
901
+ return a ? t.append(g(u.HTMLTag, r, r + 1 + a[0].length)) : -1;
902
+ },
903
+ Emphasis(t, e, r) {
904
+ if (e != 95 && e != 42)
905
+ return -1;
906
+ let n = r + 1;
907
+ for (; t.char(n) == e; )
908
+ n++;
909
+ let s = t.slice(r - 1, r), i = t.slice(n, n + 1), o = D.test(s), a = D.test(i), l = /\s|^$/.test(s), f = /\s|^$/.test(i), h = !f && (!a || l || o), p = !l && (!o || f || a), d = h && (e == 42 || !p || o), m = p && (e == 42 || !h || a);
910
+ return t.append(new x(e == 95 ? Xe : $e, r, n, (d ? 1 : 0) | (m ? 2 : 0)));
911
+ },
912
+ HardBreak(t, e, r) {
913
+ if (e == 92 && t.char(r + 1) == 10)
914
+ return t.append(g(u.HardBreak, r, r + 2));
915
+ if (e == 32) {
916
+ let n = r + 1;
917
+ for (; t.char(n) == 32; )
918
+ n++;
919
+ if (t.char(n) == 10 && n >= r + 2)
920
+ return t.append(g(u.HardBreak, r, n + 1));
921
+ }
922
+ return -1;
923
+ },
924
+ Link(t, e, r) {
925
+ return e == 91 ? t.append(new x(
926
+ y,
927
+ r,
928
+ r + 1,
929
+ 1
930
+ /* Mark.Open */
931
+ )) : -1;
932
+ },
933
+ Image(t, e, r) {
934
+ return e == 33 && t.char(r + 1) == 91 ? t.append(new x(
935
+ de,
936
+ r,
937
+ r + 2,
938
+ 1
939
+ /* Mark.Open */
940
+ )) : -1;
941
+ },
942
+ LinkEnd(t, e, r) {
943
+ if (e != 93)
944
+ return -1;
945
+ for (let n = t.parts.length - 1; n >= 0; n--) {
946
+ let s = t.parts[n];
947
+ if (s instanceof x && (s.type == y || s.type == de)) {
948
+ if (!s.side || t.skipSpace(s.to) == r && !/[(\[]/.test(t.slice(r + 1, r + 2)))
949
+ return t.parts[n] = null, -1;
950
+ let i = t.takeContent(n), o = t.parts[n] = Bt(t, i, s.type == y ? u.Link : u.Image, s.from, r + 1);
951
+ if (s.type == y)
952
+ for (let a = 0; a < n; a++) {
953
+ let l = t.parts[a];
954
+ l instanceof x && l.type == y && (l.side = 0);
955
+ }
956
+ return o.to;
957
+ }
958
+ }
959
+ return -1;
960
+ }
961
+ };
962
+ function Bt(t, e, r, n, s) {
963
+ let { text: i } = t, o = t.char(s), a = s;
964
+ if (e.unshift(g(u.LinkMark, n, n + (r == u.Image ? 2 : 1))), e.push(g(u.LinkMark, s - 1, s)), o == 40) {
965
+ let l = t.skipSpace(s + 1), f = je(i, l - t.offset, t.offset), h;
966
+ f && (l = t.skipSpace(f.to), l != f.to && (h = _e(i, l - t.offset, t.offset), h && (l = t.skipSpace(h.to)))), t.char(l) == 41 && (e.push(g(u.LinkMark, s, s + 1)), a = l + 1, f && e.push(f), h && e.push(h), e.push(g(u.LinkMark, l, a)));
967
+ } else if (o == 91) {
968
+ let l = qe(i, s - t.offset, t.offset, !1);
969
+ l && (e.push(l), a = l.to);
970
+ }
971
+ return g(r, n, a, e);
972
+ }
973
+ function je(t, e, r) {
974
+ if (t.charCodeAt(e) == 60) {
975
+ for (let s = e + 1; s < t.length; s++) {
976
+ let i = t.charCodeAt(s);
977
+ if (i == 62)
978
+ return g(u.URL, e + r, s + 1 + r);
979
+ if (i == 60 || i == 10)
980
+ return !1;
981
+ }
982
+ return null;
983
+ } else {
984
+ let s = 0, i = e;
985
+ for (let o = !1; i < t.length; i++) {
986
+ let a = t.charCodeAt(i);
987
+ if (C(a))
988
+ break;
989
+ if (o)
990
+ o = !1;
991
+ else if (a == 40)
992
+ s++;
993
+ else if (a == 41) {
994
+ if (!s)
995
+ break;
996
+ s--;
997
+ } else
998
+ a == 92 && (o = !0);
999
+ }
1000
+ return i > e ? g(u.URL, e + r, i + r) : i == t.length ? null : !1;
1001
+ }
1002
+ }
1003
+ function _e(t, e, r) {
1004
+ let n = t.charCodeAt(e);
1005
+ if (n != 39 && n != 34 && n != 40)
1006
+ return !1;
1007
+ let s = n == 40 ? 41 : n;
1008
+ for (let i = e + 1, o = !1; i < t.length; i++) {
1009
+ let a = t.charCodeAt(i);
1010
+ if (o)
1011
+ o = !1;
1012
+ else {
1013
+ if (a == s)
1014
+ return g(u.LinkTitle, e + r, i + 1 + r);
1015
+ a == 92 && (o = !0);
1016
+ }
1017
+ }
1018
+ return null;
1019
+ }
1020
+ function qe(t, e, r, n) {
1021
+ for (let s = !1, i = e + 1, o = Math.min(t.length, i + 999); i < o; i++) {
1022
+ let a = t.charCodeAt(i);
1023
+ if (s)
1024
+ s = !1;
1025
+ else {
1026
+ if (a == 93)
1027
+ return n ? !1 : g(u.LinkLabel, e + r, i + 1 + r);
1028
+ if (n && !C(a) && (n = !1), a == 91)
1029
+ return !1;
1030
+ a == 92 && (s = !0);
1031
+ }
1032
+ }
1033
+ return null;
1034
+ }
1035
+ class Et {
1036
+ /// @internal
1037
+ constructor(e, r, n) {
1038
+ this.parser = e, this.text = r, this.offset = n, this.parts = [];
1039
+ }
1040
+ /// Get the character code at the given (document-relative)
1041
+ /// position.
1042
+ char(e) {
1043
+ return e >= this.end ? -1 : this.text.charCodeAt(e - this.offset);
1044
+ }
1045
+ /// The position of the end of this inline section.
1046
+ get end() {
1047
+ return this.offset + this.text.length;
1048
+ }
1049
+ /// Get a substring of this inline section. Again uses
1050
+ /// document-relative positions.
1051
+ slice(e, r) {
1052
+ return this.text.slice(e - this.offset, r - this.offset);
1053
+ }
1054
+ /// @internal
1055
+ append(e) {
1056
+ return this.parts.push(e), e.to;
1057
+ }
1058
+ /// Add a [delimiter](#DelimiterType) at this given position. `open`
1059
+ /// and `close` indicate whether this delimiter is opening, closing,
1060
+ /// or both. Returns the end of the delimiter, for convenient
1061
+ /// returning from [parse functions](#InlineParser.parse).
1062
+ addDelimiter(e, r, n, s, i) {
1063
+ return this.append(new x(e, r, n, (s ? 1 : 0) | (i ? 2 : 0)));
1064
+ }
1065
+ /// Add an inline element. Returns the end of the element.
1066
+ addElement(e) {
1067
+ return this.append(e);
1068
+ }
1069
+ /// Resolve markers between this.parts.length and from, wrapping matched markers in the
1070
+ /// appropriate node and updating the content of this.parts. @internal
1071
+ resolveMarkers(e) {
1072
+ for (let n = e; n < this.parts.length; n++) {
1073
+ let s = this.parts[n];
1074
+ if (!(s instanceof x && s.type.resolve && s.side & 2))
1075
+ continue;
1076
+ let i = s.type == Xe || s.type == $e, o = s.to - s.from, a, l = n - 1;
1077
+ for (; l >= e; l--) {
1078
+ let k = this.parts[l];
1079
+ if (k instanceof x && k.side & 1 && k.type == s.type && // Ignore emphasis delimiters where the character count doesn't match
1080
+ !(i && (s.side & 1 || k.side & 2) && (k.to - k.from + o) % 3 == 0 && ((k.to - k.from) % 3 || o % 3))) {
1081
+ a = k;
1082
+ break;
1083
+ }
1084
+ }
1085
+ if (!a)
1086
+ continue;
1087
+ let f = s.type.resolve, h = [], p = a.from, d = s.to;
1088
+ if (i) {
1089
+ let k = Math.min(2, a.to - a.from, o);
1090
+ p = a.to - k, d = s.from + k, f = k == 1 ? "Emphasis" : "StrongEmphasis";
1091
+ }
1092
+ a.type.mark && h.push(this.elt(a.type.mark, p, a.to));
1093
+ for (let k = l + 1; k < n; k++)
1094
+ this.parts[k] instanceof z && h.push(this.parts[k]), this.parts[k] = null;
1095
+ s.type.mark && h.push(this.elt(s.type.mark, s.from, d));
1096
+ let m = this.elt(f, p, d, h);
1097
+ this.parts[l] = i && a.from != p ? new x(a.type, a.from, p, a.side) : null, (this.parts[n] = i && s.to != d ? new x(s.type, d, s.to, s.side) : null) ? this.parts.splice(n, 0, m) : this.parts[n] = m;
1098
+ }
1099
+ let r = [];
1100
+ for (let n = e; n < this.parts.length; n++) {
1101
+ let s = this.parts[n];
1102
+ s instanceof z && r.push(s);
1103
+ }
1104
+ return r;
1105
+ }
1106
+ /// Find an opening delimiter of the given type. Returns `null` if
1107
+ /// no delimiter is found, or an index that can be passed to
1108
+ /// [`takeContent`](#InlineContext.takeContent) otherwise.
1109
+ findOpeningDelimiter(e) {
1110
+ for (let r = this.parts.length - 1; r >= 0; r--) {
1111
+ let n = this.parts[r];
1112
+ if (n instanceof x && n.type == e)
1113
+ return r;
1114
+ }
1115
+ return null;
1116
+ }
1117
+ /// Remove all inline elements and delimiters starting from the
1118
+ /// given index (which you should get from
1119
+ /// [`findOpeningDelimiter`](#InlineContext.findOpeningDelimiter),
1120
+ /// resolve delimiters inside of them, and return them as an array
1121
+ /// of elements.
1122
+ takeContent(e) {
1123
+ let r = this.resolveMarkers(e);
1124
+ return this.parts.length = e, r;
1125
+ }
1126
+ /// Skip space after the given (document) position, returning either
1127
+ /// the position of the next non-space character or the end of the
1128
+ /// section.
1129
+ skipSpace(e) {
1130
+ return R(this.text, e - this.offset) + this.offset;
1131
+ }
1132
+ elt(e, r, n, s) {
1133
+ return typeof e == "string" ? g(this.parser.getNodeType(e), r, n, s) : new Fe(e, r);
1134
+ }
1135
+ }
1136
+ function W(t, e) {
1137
+ if (!e.length)
1138
+ return t;
1139
+ if (!t.length)
1140
+ return e;
1141
+ let r = t.slice(), n = 0;
1142
+ for (let s of e) {
1143
+ for (; n < r.length && r[n].to < s.to; )
1144
+ n++;
1145
+ if (n < r.length && r[n].from < s.from) {
1146
+ let i = r[n];
1147
+ i instanceof z && (r[n] = new z(i.type, i.from, i.to, W(i.children, [s])));
1148
+ } else
1149
+ r.splice(n++, 0, s);
1150
+ }
1151
+ return r;
1152
+ }
1153
+ const Mt = [u.CodeBlock, u.ListItem, u.OrderedList, u.BulletList];
1154
+ class Pt {
1155
+ constructor(e, r) {
1156
+ this.fragments = e, this.input = r, this.i = 0, this.fragment = null, this.fragmentEnd = -1, this.cursor = null, e.length && (this.fragment = e[this.i++]);
1157
+ }
1158
+ nextFragment() {
1159
+ this.fragment = this.i < this.fragments.length ? this.fragments[this.i++] : null, this.cursor = null, this.fragmentEnd = -1;
1160
+ }
1161
+ moveTo(e, r) {
1162
+ for (; this.fragment && this.fragment.to <= e; )
1163
+ this.nextFragment();
1164
+ if (!this.fragment || this.fragment.from > (e ? e - 1 : 0))
1165
+ return !1;
1166
+ if (this.fragmentEnd < 0) {
1167
+ let i = this.fragment.to;
1168
+ for (; i > 0 && this.input.read(i - 1, i) != `
1169
+ `; )
1170
+ i--;
1171
+ this.fragmentEnd = i ? i - 1 : 0;
1172
+ }
1173
+ let n = this.cursor;
1174
+ n || (n = this.cursor = this.fragment.tree.cursor(), n.firstChild());
1175
+ let s = e + this.fragment.offset;
1176
+ for (; n.to <= s; )
1177
+ if (!n.parent())
1178
+ return !1;
1179
+ for (; ; ) {
1180
+ if (n.from >= s)
1181
+ return this.fragment.from <= r;
1182
+ if (!n.childAfter(s))
1183
+ return !1;
1184
+ }
1185
+ }
1186
+ matches(e) {
1187
+ let r = this.cursor.tree;
1188
+ return r && r.prop(H.contextHash) == e;
1189
+ }
1190
+ takeNodes(e) {
1191
+ let r = this.cursor, n = this.fragment.offset, s = this.fragmentEnd - (this.fragment.openEnd ? 1 : 0), i = e.absoluteLineStart, o = i, a = e.block.children.length, l = o, f = a;
1192
+ for (; ; ) {
1193
+ if (r.to - n > s) {
1194
+ if (r.type.isAnonymous && r.firstChild())
1195
+ continue;
1196
+ break;
1197
+ }
1198
+ let h = Ue(r.from - n, e.ranges);
1199
+ if (r.to - n <= e.ranges[e.rangeI].to)
1200
+ e.addNode(r.tree, h);
1201
+ else {
1202
+ let p = new E(e.parser.nodeSet.types[u.Paragraph], [], [], 0, e.block.hashProp);
1203
+ e.reusePlaceholders.set(p, r.tree), e.addNode(p, h);
1204
+ }
1205
+ if (r.type.is("Block") && (Mt.indexOf(r.type.id) < 0 ? (o = r.to - n, a = e.block.children.length) : (o = l, a = f, l = r.to - n, f = e.block.children.length)), !r.nextSibling())
1206
+ break;
1207
+ }
1208
+ for (; e.block.children.length > a; )
1209
+ e.block.children.pop(), e.block.positions.pop();
1210
+ return o - i;
1211
+ }
1212
+ }
1213
+ function Ue(t, e) {
1214
+ let r = t;
1215
+ for (let n = 1; n < e.length; n++) {
1216
+ let s = e[n - 1].to, i = e[n].from;
1217
+ s < t && (r -= i - s);
1218
+ }
1219
+ return r;
1220
+ }
1221
+ const Ht = Ae({
1222
+ "Blockquote/...": c.quote,
1223
+ HorizontalRule: c.contentSeparator,
1224
+ "ATXHeading1/... SetextHeading1/...": c.heading1,
1225
+ "ATXHeading2/... SetextHeading2/...": c.heading2,
1226
+ "ATXHeading3/...": c.heading3,
1227
+ "ATXHeading4/...": c.heading4,
1228
+ "ATXHeading5/...": c.heading5,
1229
+ "ATXHeading6/...": c.heading6,
1230
+ "Comment CommentBlock": c.comment,
1231
+ Escape: c.escape,
1232
+ Entity: c.character,
1233
+ "Emphasis/...": c.emphasis,
1234
+ "StrongEmphasis/...": c.strong,
1235
+ "Link/... Image/...": c.link,
1236
+ "OrderedList/... BulletList/...": c.list,
1237
+ "BlockQuote/...": c.quote,
1238
+ "InlineCode CodeText": c.monospace,
1239
+ "URL Autolink": c.url,
1240
+ "HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark": c.processingInstruction,
1241
+ "CodeInfo LinkLabel": c.labelName,
1242
+ LinkTitle: c.string,
1243
+ Paragraph: c.content
1244
+ }), vt = new U(new Ie(ze).extend(Ht), Object.keys(F).map((t) => F[t]), Object.keys(F).map((t) => Ct[t]), Object.keys(F), xt, Ee, Object.keys(Z).map((t) => Z[t]), Object.keys(Z), []);
1245
+ function Nt(t, e, r) {
1246
+ let n = [];
1247
+ for (let s = t.firstChild, i = e; ; s = s.nextSibling) {
1248
+ let o = s ? s.from : r;
1249
+ if (o > i && n.push({ from: i, to: o }), !s)
1250
+ break;
1251
+ i = s.to;
1252
+ }
1253
+ return n;
1254
+ }
1255
+ function yt(t) {
1256
+ let { codeParser: e, htmlParser: r } = t;
1257
+ return { wrap: st((s, i) => {
1258
+ let o = s.type.id;
1259
+ if (e && (o == u.CodeBlock || o == u.FencedCode)) {
1260
+ let a = "";
1261
+ if (o == u.FencedCode) {
1262
+ let f = s.node.getChild(u.CodeInfo);
1263
+ f && (a = i.read(f.from, f.to));
1264
+ }
1265
+ let l = e(a);
1266
+ if (l)
1267
+ return { parser: l, overlay: (f) => f.type.id == u.CodeText };
1268
+ } else if (r && (o == u.HTMLBlock || o == u.HTMLTag))
1269
+ return { parser: r, overlay: Nt(s.node, s.from, s.to) };
1270
+ return null;
1271
+ }) };
1272
+ }
1273
+ const Rt = { resolve: "Strikethrough", mark: "StrikethroughMark" }, Ot = {
1274
+ defineNodes: [{
1275
+ name: "Strikethrough",
1276
+ style: { "Strikethrough/...": c.strikethrough }
1277
+ }, {
1278
+ name: "StrikethroughMark",
1279
+ style: c.processingInstruction
1280
+ }],
1281
+ parseInline: [{
1282
+ name: "Strikethrough",
1283
+ parse(t, e, r) {
1284
+ if (e != 126 || t.char(r + 1) != 126 || t.char(r + 2) == 126)
1285
+ return -1;
1286
+ let n = t.slice(r - 1, r), s = t.slice(r + 2, r + 3), i = /\s|^$/.test(n), o = /\s|^$/.test(s), a = D.test(n), l = D.test(s);
1287
+ return t.addDelimiter(Rt, r, r + 2, !o && (!l || i || a), !i && (!a || o || l));
1288
+ },
1289
+ after: "Emphasis"
1290
+ }]
1291
+ };
1292
+ function O(t, e, r = 0, n, s = 0) {
1293
+ let i = 0, o = !0, a = -1, l = -1, f = !1, h = () => {
1294
+ n.push(t.elt("TableCell", s + a, s + l, t.parser.parseInline(e.slice(a, l), s + a)));
1295
+ };
1296
+ for (let p = r; p < e.length; p++) {
1297
+ let d = e.charCodeAt(p);
1298
+ d == 124 && !f ? ((!o || a > -1) && i++, o = !1, n && (a > -1 && h(), n.push(t.elt("TableDelimiter", p + s, p + s + 1))), a = l = -1) : (f || d != 32 && d != 9) && (a < 0 && (a = p), l = p + 1), f = !f && d == 92;
1299
+ }
1300
+ return a > -1 && (i++, n && h()), i;
1301
+ }
1302
+ function ce(t, e) {
1303
+ for (let r = e; r < t.length; r++) {
1304
+ let n = t.charCodeAt(r);
1305
+ if (n == 124)
1306
+ return !0;
1307
+ n == 92 && r++;
1308
+ }
1309
+ return !1;
1310
+ }
1311
+ const Qe = /^\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;
1312
+ class me {
1313
+ constructor() {
1314
+ this.rows = null;
1315
+ }
1316
+ nextLine(e, r, n) {
1317
+ if (this.rows == null) {
1318
+ this.rows = !1;
1319
+ let s;
1320
+ if ((r.next == 45 || r.next == 58 || r.next == 124) && Qe.test(s = r.text.slice(r.pos))) {
1321
+ let i = [];
1322
+ O(e, n.content, 0, i, n.start) == O(e, s, r.pos) && (this.rows = [
1323
+ e.elt("TableHeader", n.start, n.start + n.content.length, i),
1324
+ e.elt("TableDelimiter", e.lineStart + r.pos, e.lineStart + r.text.length)
1325
+ ]);
1326
+ }
1327
+ } else if (this.rows) {
1328
+ let s = [];
1329
+ O(e, r.text, r.pos, s, e.lineStart), this.rows.push(e.elt("TableRow", e.lineStart + r.pos, e.lineStart + r.text.length, s));
1330
+ }
1331
+ return !1;
1332
+ }
1333
+ finish(e, r) {
1334
+ return this.rows ? (e.addLeafElement(r, e.elt("Table", r.start, r.start + r.content.length, this.rows)), !0) : !1;
1335
+ }
1336
+ }
1337
+ const Tt = {
1338
+ defineNodes: [
1339
+ { name: "Table", block: !0 },
1340
+ { name: "TableHeader", style: { "TableHeader/...": c.heading } },
1341
+ "TableRow",
1342
+ { name: "TableCell", style: c.content },
1343
+ { name: "TableDelimiter", style: c.processingInstruction }
1344
+ ],
1345
+ parseBlock: [{
1346
+ name: "Table",
1347
+ leaf(t, e) {
1348
+ return ce(e.content, 0) ? new me() : null;
1349
+ },
1350
+ endLeaf(t, e, r) {
1351
+ if (r.parsers.some((s) => s instanceof me) || !ce(e.text, e.basePos))
1352
+ return !1;
1353
+ let n = t.scanLine(t.absoluteLineEnd + 1).text;
1354
+ return Qe.test(n) && O(t, e.text, e.basePos) == O(t, n, e.basePos);
1355
+ },
1356
+ before: "SetextHeading"
1357
+ }]
1358
+ };
1359
+ class zt {
1360
+ nextLine() {
1361
+ return !1;
1362
+ }
1363
+ finish(e, r) {
1364
+ return e.addLeafElement(r, e.elt("Task", r.start, r.start + r.content.length, [
1365
+ e.elt("TaskMarker", r.start, r.start + 3),
1366
+ ...e.parser.parseInline(r.content.slice(3), r.start + 3)
1367
+ ])), !0;
1368
+ }
1369
+ }
1370
+ const Dt = {
1371
+ defineNodes: [
1372
+ { name: "Task", block: !0, style: c.list },
1373
+ { name: "TaskMarker", style: c.atom }
1374
+ ],
1375
+ parseBlock: [{
1376
+ name: "TaskList",
1377
+ leaf(t, e) {
1378
+ return /^\[[ xX]\][ \t]/.test(e.content) && t.parentType().name == "ListItem" ? new zt() : null;
1379
+ },
1380
+ after: "SetextHeading"
1381
+ }]
1382
+ }, ge = /(www\.)|(https?:\/\/)|([\w.+-]+@)|(mailto:|xmpp:)/gy, ke = /[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy, Ft = /[\w-]+\.[\w-]+($|\/)/, Le = /[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy, be = /\/[a-zA-Z\d@.]+/gy;
1383
+ function we(t, e, r, n) {
1384
+ let s = 0;
1385
+ for (let i = e; i < r; i++)
1386
+ t[i] == n && s++;
1387
+ return s;
1388
+ }
1389
+ function Xt(t, e) {
1390
+ ke.lastIndex = e;
1391
+ let r = ke.exec(t);
1392
+ if (!r || Ft.exec(r[0])[0].indexOf("_") > -1)
1393
+ return -1;
1394
+ let n = e + r[0].length;
1395
+ for (; ; ) {
1396
+ let s = t[n - 1], i;
1397
+ if (/[?!.,:*_~]/.test(s) || s == ")" && we(t, e, n, ")") > we(t, e, n, "("))
1398
+ n--;
1399
+ else if (s == ";" && (i = /&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(t.slice(e, n))))
1400
+ n = e + i.index;
1401
+ else
1402
+ break;
1403
+ }
1404
+ return n;
1405
+ }
1406
+ function Se(t, e) {
1407
+ Le.lastIndex = e;
1408
+ let r = Le.exec(t);
1409
+ if (!r)
1410
+ return -1;
1411
+ let n = r[0][r[0].length - 1];
1412
+ return n == "_" || n == "-" ? -1 : e + r[0].length - (n == "." ? 1 : 0);
1413
+ }
1414
+ const $t = {
1415
+ parseInline: [{
1416
+ name: "Autolink",
1417
+ parse(t, e, r) {
1418
+ let n = r - t.offset;
1419
+ ge.lastIndex = n;
1420
+ let s = ge.exec(t.text), i = -1;
1421
+ return !s || (s[1] || s[2] ? i = Xt(t.text, n + s[0].length) : s[3] ? i = Se(t.text, n) : (i = Se(t.text, n + s[0].length), i > -1 && s[0] == "xmpp:" && (be.lastIndex = i, s = be.exec(t.text), s && (i = s.index + s[0].length))), i < 0) ? -1 : (t.addElement(t.elt("URL", r, i + t.offset)), i + t.offset);
1422
+ }
1423
+ }]
1424
+ }, jt = [Tt, Dt, Ot, $t];
1425
+ function Ze(t, e, r) {
1426
+ return (n, s, i) => {
1427
+ if (s != t || n.char(i + 1) == t)
1428
+ return -1;
1429
+ let o = [n.elt(r, i, i + 1)];
1430
+ for (let a = i + 1; a < n.end; a++) {
1431
+ let l = n.char(a);
1432
+ if (l == t)
1433
+ return n.addElement(n.elt(e, i, a + 1, o.concat(n.elt(r, a, a + 1))));
1434
+ if (l == 92 && o.push(n.elt("Escape", a, a++ + 2)), C(l))
1435
+ break;
1436
+ }
1437
+ return -1;
1438
+ };
1439
+ }
1440
+ const _t = {
1441
+ defineNodes: [
1442
+ { name: "Superscript", style: c.special(c.content) },
1443
+ { name: "SuperscriptMark", style: c.processingInstruction }
1444
+ ],
1445
+ parseInline: [{
1446
+ name: "Superscript",
1447
+ parse: Ze(94, "Superscript", "SuperscriptMark")
1448
+ }]
1449
+ }, qt = {
1450
+ defineNodes: [
1451
+ { name: "Subscript", style: c.special(c.content) },
1452
+ { name: "SubscriptMark", style: c.processingInstruction }
1453
+ ],
1454
+ parseInline: [{
1455
+ name: "Subscript",
1456
+ parse: Ze(126, "Subscript", "SubscriptMark")
1457
+ }]
1458
+ }, Ut = {
1459
+ defineNodes: [{ name: "Emoji", style: c.character }],
1460
+ parseInline: [{
1461
+ name: "Emoji",
1462
+ parse(t, e, r) {
1463
+ let n;
1464
+ return e != 58 || !(n = /^[a-zA-Z_0-9]+:/.exec(t.slice(r + 1, t.end))) ? -1 : t.addElement(t.elt("Emoji", r, r + 1 + n[0].length));
1465
+ }
1466
+ }]
1467
+ }, Ge = /* @__PURE__ */ ut({ commentTokens: { block: { open: "<!--", close: "-->" } } }), Ve = /* @__PURE__ */ new H(), Ke = /* @__PURE__ */ vt.configure({
1468
+ props: [
1469
+ /* @__PURE__ */ Be.add((t) => !t.is("Block") || t.is("Document") || ee(t) != null ? void 0 : (e, r) => ({ from: r.doc.lineAt(e.from).to, to: e.to })),
1470
+ /* @__PURE__ */ Ve.add(ee),
1471
+ /* @__PURE__ */ dt.add({
1472
+ Document: () => null
1473
+ }),
1474
+ /* @__PURE__ */ pt.add({
1475
+ Document: Ge
1476
+ })
1477
+ ]
1478
+ });
1479
+ function ee(t) {
1480
+ let e = /^(?:ATX|Setext)Heading(\d)$/.exec(t.name);
1481
+ return e ? +e[1] : void 0;
1482
+ }
1483
+ function Qt(t, e) {
1484
+ let r = t;
1485
+ for (; ; ) {
1486
+ let n = r.nextSibling, s;
1487
+ if (!n || (s = ee(n.type)) != null && s <= e)
1488
+ break;
1489
+ r = n;
1490
+ }
1491
+ return r.to;
1492
+ }
1493
+ const Zt = /* @__PURE__ */ ct.of((t, e, r) => {
1494
+ for (let n = q(t).resolveInner(r, -1); n && !(n.from < e); n = n.parent) {
1495
+ let s = n.type.prop(Ve);
1496
+ if (s == null)
1497
+ continue;
1498
+ let i = Qt(n, s);
1499
+ if (i > r)
1500
+ return { from: r, to: i };
1501
+ }
1502
+ return null;
1503
+ });
1504
+ function ie(t) {
1505
+ return new ht(Ge, t, [Zt], "markdown");
1506
+ }
1507
+ const Gt = /* @__PURE__ */ ie(Ke), Vt = /* @__PURE__ */ Ke.configure([jt, qt, _t, Ut, {
1508
+ props: [
1509
+ /* @__PURE__ */ Be.add({
1510
+ Table: (t, e) => ({ from: e.doc.lineAt(t.from).to, to: t.to })
1511
+ })
1512
+ ]
1513
+ }]), Je = /* @__PURE__ */ ie(Vt);
1514
+ function Kt(t, e) {
1515
+ return (r) => {
1516
+ if (r && t) {
1517
+ let n = null;
1518
+ if (r = /\S*/.exec(r)[0], typeof t == "function" ? n = t(r) : n = le.matchLanguageName(t, r, !0), n instanceof le)
1519
+ return n.support ? n.support.language.parser : mt.getSkippingParser(n.load());
1520
+ if (n)
1521
+ return n.parser;
1522
+ }
1523
+ return e ? e.parser : null;
1524
+ };
1525
+ }
1526
+ class $ {
1527
+ constructor(e, r, n, s, i, o, a) {
1528
+ this.node = e, this.from = r, this.to = n, this.spaceBefore = s, this.spaceAfter = i, this.type = o, this.item = a;
1529
+ }
1530
+ blank(e, r = !0) {
1531
+ let n = this.spaceBefore + (this.node.name == "Blockquote" ? ">" : "");
1532
+ if (e != null) {
1533
+ for (; n.length < e; )
1534
+ n += " ";
1535
+ return n;
1536
+ } else {
1537
+ for (let s = this.to - this.from - n.length - this.spaceAfter.length; s > 0; s--)
1538
+ n += " ";
1539
+ return n + (r ? this.spaceAfter : "");
1540
+ }
1541
+ }
1542
+ marker(e, r) {
1543
+ let n = this.node.name == "OrderedList" ? String(+We(this.item, e)[2] + r) : "";
1544
+ return this.spaceBefore + n + this.type + this.spaceAfter;
1545
+ }
1546
+ }
1547
+ function Ye(t, e) {
1548
+ let r = [];
1549
+ for (let s = t; s && s.name != "Document"; s = s.parent)
1550
+ (s.name == "ListItem" || s.name == "Blockquote" || s.name == "FencedCode") && r.push(s);
1551
+ let n = [];
1552
+ for (let s = r.length - 1; s >= 0; s--) {
1553
+ let i = r[s], o, a = e.lineAt(i.from), l = i.from - a.from;
1554
+ if (i.name == "FencedCode")
1555
+ n.push(new $(i, l, l, "", "", "", null));
1556
+ else if (i.name == "Blockquote" && (o = /^ *>( ?)/.exec(a.text.slice(l))))
1557
+ n.push(new $(i, l, l + o[0].length, "", o[1], ">", null));
1558
+ else if (i.name == "ListItem" && i.parent.name == "OrderedList" && (o = /^( *)\d+([.)])( *)/.exec(a.text.slice(l)))) {
1559
+ let f = o[3], h = o[0].length;
1560
+ f.length >= 4 && (f = f.slice(0, f.length - 4), h -= 4), n.push(new $(i.parent, l, l + h, o[1], f, o[2], i));
1561
+ } else if (i.name == "ListItem" && i.parent.name == "BulletList" && (o = /^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(a.text.slice(l)))) {
1562
+ let f = o[4], h = o[0].length;
1563
+ f.length > 4 && (f = f.slice(0, f.length - 4), h -= 4);
1564
+ let p = o[2];
1565
+ o[3] && (p += o[3].replace(/[xX]/, " ")), n.push(new $(i.parent, l, l + h, o[1], f, p, i));
1566
+ }
1567
+ }
1568
+ return n;
1569
+ }
1570
+ function We(t, e) {
1571
+ return /^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(t.from, t.from + 10));
1572
+ }
1573
+ function G(t, e, r, n = 0) {
1574
+ for (let s = -1, i = t; ; ) {
1575
+ if (i.name == "ListItem") {
1576
+ let a = We(i, e), l = +a[2];
1577
+ if (s >= 0) {
1578
+ if (l != s + 1)
1579
+ return;
1580
+ r.push({ from: i.from + a[1].length, to: i.from + a[0].length, insert: String(s + 2 + n) });
1581
+ }
1582
+ s = l;
1583
+ }
1584
+ let o = i.nextSibling;
1585
+ if (!o)
1586
+ break;
1587
+ i = o;
1588
+ }
1589
+ }
1590
+ function oe(t, e) {
1591
+ let r = /^[ \t]*/.exec(t)[0].length;
1592
+ if (!r || e.facet(ft) != " ")
1593
+ return t;
1594
+ let n = T(t, 4, r), s = "";
1595
+ for (let i = n; i > 0; )
1596
+ i >= 4 ? (s += " ", i -= 4) : (s += " ", i--);
1597
+ return s + t.slice(r);
1598
+ }
1599
+ const Jt = ({ state: t, dispatch: e }) => {
1600
+ let r = q(t), { doc: n } = t, s = null, i = t.changeByRange((o) => {
1601
+ if (!o.empty || !Je.isActiveAt(t, o.from))
1602
+ return s = { range: o };
1603
+ let a = o.from, l = n.lineAt(a), f = Ye(r.resolveInner(a, -1), n);
1604
+ for (; f.length && f[f.length - 1].from > a - l.from; )
1605
+ f.pop();
1606
+ if (!f.length)
1607
+ return s = { range: o };
1608
+ let h = f[f.length - 1];
1609
+ if (h.to - h.spaceAfter.length > a - l.from)
1610
+ return s = { range: o };
1611
+ let p = a >= h.to - h.spaceAfter.length && !/\S/.test(l.text.slice(h.to));
1612
+ if (h.item && p) {
1613
+ let w = h.node.firstChild, S = h.node.getChild("ListItem", "ListItem");
1614
+ if (w.to >= a || S && S.to < a || l.from > 0 && !/[^\s>]/.test(n.lineAt(l.from - 1).text)) {
1615
+ let b = f.length > 1 ? f[f.length - 2] : null, A, M = "";
1616
+ b && b.item ? (A = l.from + b.from, M = b.marker(n, 1)) : A = l.from + (b ? b.to : 0);
1617
+ let I = [{ from: A, to: a, insert: M }];
1618
+ return h.node.name == "OrderedList" && G(h.item, n, I, -2), b && b.node.name == "OrderedList" && G(b.item, n, I), { range: P.cursor(A + M.length), changes: I };
1619
+ } else {
1620
+ let b = xe(f, t, l);
1621
+ return {
1622
+ range: P.cursor(a + b.length + 1),
1623
+ changes: { from: l.from, insert: b + t.lineBreak }
1624
+ };
1625
+ }
1626
+ }
1627
+ if (h.node.name == "Blockquote" && p && l.from) {
1628
+ let w = n.lineAt(l.from - 1), S = />\s*$/.exec(w.text);
1629
+ if (S && S.index == h.from) {
1630
+ let b = t.changes([
1631
+ { from: w.from + S.index, to: w.to },
1632
+ { from: l.from + h.from, to: l.to }
1633
+ ]);
1634
+ return { range: o.map(b), changes: b };
1635
+ }
1636
+ }
1637
+ let d = [];
1638
+ h.node.name == "OrderedList" && G(h.item, n, d);
1639
+ let m = h.item && h.item.from < l.from, L = "";
1640
+ if (!m || /^[\s\d.)\-+*>]*/.exec(l.text)[0].length >= h.to)
1641
+ for (let w = 0, S = f.length - 1; w <= S; w++)
1642
+ L += w == S && !m ? f[w].marker(n, 1) : f[w].blank(w < S ? T(l.text, 4, f[w + 1].from) - L.length : null);
1643
+ let k = a;
1644
+ for (; k > l.from && /\s/.test(l.text.charAt(k - l.from - 1)); )
1645
+ k--;
1646
+ return L = oe(L, t), Yt(h.node, t.doc) && (L = xe(f, t, l) + t.lineBreak + L), d.push({ from: k, to: a, insert: t.lineBreak + L }), { range: P.cursor(k + L.length + 1), changes: d };
1647
+ });
1648
+ return s ? !1 : (e(t.update(i, { scrollIntoView: !0, userEvent: "input" })), !0);
1649
+ };
1650
+ function Ce(t) {
1651
+ return t.name == "QuoteMark" || t.name == "ListMark";
1652
+ }
1653
+ function Yt(t, e) {
1654
+ if (t.name != "OrderedList" && t.name != "BulletList")
1655
+ return !1;
1656
+ let r = t.firstChild, n = t.getChild("ListItem", "ListItem");
1657
+ if (!n)
1658
+ return !1;
1659
+ let s = e.lineAt(r.to), i = e.lineAt(n.from), o = /^[\s>]*$/.test(s.text);
1660
+ return s.number + (o ? 0 : 1) < i.number;
1661
+ }
1662
+ function xe(t, e, r) {
1663
+ let n = "";
1664
+ for (let s = 0, i = t.length - 2; s <= i; s++)
1665
+ n += t[s].blank(s < i ? T(r.text, 4, t[s + 1].from) - n.length : null, s < i);
1666
+ return oe(n, e);
1667
+ }
1668
+ function Wt(t, e) {
1669
+ let r = t.resolveInner(e, -1), n = e;
1670
+ Ce(r) && (n = r.from, r = r.parent);
1671
+ for (let s; s = r.childBefore(n); )
1672
+ if (Ce(s))
1673
+ n = s.from;
1674
+ else if (s.name == "OrderedList" || s.name == "BulletList")
1675
+ r = s.lastChild, n = r.to;
1676
+ else
1677
+ break;
1678
+ return r;
1679
+ }
1680
+ const er = ({ state: t, dispatch: e }) => {
1681
+ let r = q(t), n = null, s = t.changeByRange((i) => {
1682
+ let o = i.from, { doc: a } = t;
1683
+ if (i.empty && Je.isActiveAt(t, i.from)) {
1684
+ let l = a.lineAt(o), f = Ye(Wt(r, o), a);
1685
+ if (f.length) {
1686
+ let h = f[f.length - 1], p = h.to - h.spaceAfter.length + (h.spaceAfter ? 1 : 0);
1687
+ if (o - l.from > p && !/\S/.test(l.text.slice(p, o - l.from)))
1688
+ return {
1689
+ range: P.cursor(l.from + p),
1690
+ changes: { from: l.from + p, to: o }
1691
+ };
1692
+ if (o - l.from == p && // Only apply this if we're on the line that has the
1693
+ // construct's syntax, or there's only indentation in the
1694
+ // target range
1695
+ (!h.item || l.from <= h.item.from || !/\S/.test(l.text.slice(0, h.to)))) {
1696
+ let d = l.from + h.from;
1697
+ if (h.item && h.node.from < h.item.from && /\S/.test(l.text.slice(h.from, h.to))) {
1698
+ let m = h.blank(T(l.text, 4, h.to) - T(l.text, 4, h.from));
1699
+ return d == l.from && (m = oe(m, t)), {
1700
+ range: P.cursor(d + m.length),
1701
+ changes: { from: d, to: l.from + h.to, insert: m }
1702
+ };
1703
+ }
1704
+ if (d < o)
1705
+ return { range: P.cursor(d), changes: { from: d, to: o } };
1706
+ }
1707
+ }
1708
+ }
1709
+ return n = { range: i };
1710
+ });
1711
+ return n ? !1 : (e(t.update(s, { scrollIntoView: !0, userEvent: "delete" })), !0);
1712
+ }, tr = [
1713
+ { key: "Enter", run: Jt },
1714
+ { key: "Backspace", run: er }
1715
+ ], te = /* @__PURE__ */ kt({ matchClosingTags: !1 });
1716
+ function hr(t = {}) {
1717
+ let { codeLanguages: e, defaultCodeLanguage: r, addKeymap: n = !0, base: { parser: s } = Gt, completeHTMLTags: i = !0 } = t;
1718
+ if (!(s instanceof U))
1719
+ throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");
1720
+ let o = t.extensions ? [t.extensions] : [], a = [te.support], l;
1721
+ r instanceof ae ? (a.push(r.support), l = r.language) : r && (l = r);
1722
+ let f = e || l ? Kt(e, l) : void 0;
1723
+ o.push(yt({ codeParser: f, htmlParser: te.language.parser })), n && a.push(it.high(ot.of(tr)));
1724
+ let h = ie(s.configure(o));
1725
+ return i && a.push(h.data.of({ autocomplete: rr })), new ae(h, a);
1726
+ }
1727
+ function rr(t) {
1728
+ let { state: e, pos: r } = t, n = /<[:\-\.\w\u00b7-\uffff]*$/.exec(e.sliceDoc(r - 25, r));
1729
+ if (!n)
1730
+ return null;
1731
+ let s = q(e).resolveInner(r, -1);
1732
+ for (; s && !s.type.isTop; ) {
1733
+ if (s.name == "CodeBlock" || s.name == "FencedCode" || s.name == "ProcessingInstructionBlock" || s.name == "CommentBlock" || s.name == "Link" || s.name == "Image")
1734
+ return null;
1735
+ s = s.parent;
1736
+ }
1737
+ return {
1738
+ from: r - n[0].length,
1739
+ to: r,
1740
+ options: nr(),
1741
+ validFor: /^<[:\-\.\w\u00b7-\uffff]*$/
1742
+ };
1743
+ }
1744
+ let V = null;
1745
+ function nr() {
1746
+ if (V)
1747
+ return V;
1748
+ let t = gt(new at(lt.create({ extensions: te }), 0, !0));
1749
+ return V = t ? t.options : [];
1750
+ }
1751
+ export {
1752
+ Gt as commonmarkLanguage,
1753
+ er as deleteMarkupBackward,
1754
+ Jt as insertNewlineContinueMarkup,
1755
+ hr as markdown,
1756
+ tr as markdownKeymap,
1757
+ Je as markdownLanguage
1758
+ };
src/backend/gradio_highlightedcode/templates/component/index-5dd45a26.js ADDED
@@ -0,0 +1,547 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { C, E as d, L as I, a as x } from "./index-f4953321.js";
2
+ import { s as A, t as i, h as n, a as j, L as J, b as N, B as m, G as D, d as K, f as B, c as L, H as R, e as F, i as H, g as M, F as OO, E as aO, I as QO, w as iO, N as eO } from "./Index-2933bd90.js";
3
+ const ZO = 309, h = 1, $O = 2, rO = 3, tO = 310, oO = 312, nO = 313, pO = 4, PO = 5, cO = 0, g = [
4
+ 9,
5
+ 10,
6
+ 11,
7
+ 12,
8
+ 13,
9
+ 32,
10
+ 133,
11
+ 160,
12
+ 5760,
13
+ 8192,
14
+ 8193,
15
+ 8194,
16
+ 8195,
17
+ 8196,
18
+ 8197,
19
+ 8198,
20
+ 8199,
21
+ 8200,
22
+ 8201,
23
+ 8202,
24
+ 8232,
25
+ 8233,
26
+ 8239,
27
+ 8287,
28
+ 12288
29
+ ], G = 125, SO = 59, y = 47, lO = 42, sO = 43, XO = 45, YO = 60, dO = 44, fO = new C({
30
+ start: !1,
31
+ shift(O, a) {
32
+ return a == pO || a == PO || a == oO ? O : a == nO;
33
+ },
34
+ strict: !1
35
+ }), mO = new d((O, a) => {
36
+ let { next: Q } = O;
37
+ (Q == G || Q == -1 || a.context) && O.acceptToken(tO);
38
+ }, { contextual: !0, fallback: !0 }), wO = new d((O, a) => {
39
+ let { next: Q } = O, e;
40
+ g.indexOf(Q) > -1 || Q == y && ((e = O.peek(1)) == y || e == lO) || Q != G && Q != SO && Q != -1 && !a.context && O.acceptToken(ZO);
41
+ }, { contextual: !0 }), WO = new d((O, a) => {
42
+ let { next: Q } = O;
43
+ if ((Q == sO || Q == XO) && (O.advance(), Q == O.next)) {
44
+ O.advance();
45
+ let e = !a.context && a.canShift(h);
46
+ O.acceptToken(e ? h : $O);
47
+ }
48
+ }, { contextual: !0 });
49
+ function w(O, a) {
50
+ return O >= 65 && O <= 90 || O >= 97 && O <= 122 || O == 95 || O >= 192 || !a && O >= 48 && O <= 57;
51
+ }
52
+ const gO = new d((O, a) => {
53
+ if (O.next != YO || !a.dialectEnabled(cO) || (O.advance(), O.next == y))
54
+ return;
55
+ let Q = 0;
56
+ for (; g.indexOf(O.next) > -1; )
57
+ O.advance(), Q++;
58
+ if (w(O.next, !0)) {
59
+ for (O.advance(), Q++; w(O.next, !1); )
60
+ O.advance(), Q++;
61
+ for (; g.indexOf(O.next) > -1; )
62
+ O.advance(), Q++;
63
+ if (O.next == dO)
64
+ return;
65
+ for (let e = 0; ; e++) {
66
+ if (e == 7) {
67
+ if (!w(O.next, !0))
68
+ return;
69
+ break;
70
+ }
71
+ if (O.next != "extends".charCodeAt(e))
72
+ break;
73
+ O.advance(), Q++;
74
+ }
75
+ }
76
+ O.acceptToken(rO, -Q);
77
+ }), yO = A({
78
+ "get set async static": i.modifier,
79
+ "for while do if else switch try catch finally return throw break continue default case": i.controlKeyword,
80
+ "in of await yield void typeof delete instanceof": i.operatorKeyword,
81
+ "let var const using function class extends": i.definitionKeyword,
82
+ "import export from": i.moduleKeyword,
83
+ "with debugger as new": i.keyword,
84
+ TemplateString: i.special(i.string),
85
+ super: i.atom,
86
+ BooleanLiteral: i.bool,
87
+ this: i.self,
88
+ null: i.null,
89
+ Star: i.modifier,
90
+ VariableName: i.variableName,
91
+ "CallExpression/VariableName TaggedTemplateExpression/VariableName": i.function(i.variableName),
92
+ VariableDefinition: i.definition(i.variableName),
93
+ Label: i.labelName,
94
+ PropertyName: i.propertyName,
95
+ PrivatePropertyName: i.special(i.propertyName),
96
+ "CallExpression/MemberExpression/PropertyName": i.function(i.propertyName),
97
+ "FunctionDeclaration/VariableDefinition": i.function(i.definition(i.variableName)),
98
+ "ClassDeclaration/VariableDefinition": i.definition(i.className),
99
+ PropertyDefinition: i.definition(i.propertyName),
100
+ PrivatePropertyDefinition: i.definition(i.special(i.propertyName)),
101
+ UpdateOp: i.updateOperator,
102
+ "LineComment Hashbang": i.lineComment,
103
+ BlockComment: i.blockComment,
104
+ Number: i.number,
105
+ String: i.string,
106
+ Escape: i.escape,
107
+ ArithOp: i.arithmeticOperator,
108
+ LogicOp: i.logicOperator,
109
+ BitOp: i.bitwiseOperator,
110
+ CompareOp: i.compareOperator,
111
+ RegExp: i.regexp,
112
+ Equals: i.definitionOperator,
113
+ Arrow: i.function(i.punctuation),
114
+ ": Spread": i.punctuation,
115
+ "( )": i.paren,
116
+ "[ ]": i.squareBracket,
117
+ "{ }": i.brace,
118
+ "InterpolationStart InterpolationEnd": i.special(i.brace),
119
+ ".": i.derefOperator,
120
+ ", ;": i.separator,
121
+ "@": i.meta,
122
+ TypeName: i.typeName,
123
+ TypeDefinition: i.definition(i.typeName),
124
+ "type enum interface implements namespace module declare": i.definitionKeyword,
125
+ "abstract global Privacy readonly override": i.modifier,
126
+ "is keyof unique infer": i.operatorKeyword,
127
+ JSXAttributeValue: i.attributeValue,
128
+ JSXText: i.content,
129
+ "JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag": i.angleBracket,
130
+ "JSXIdentifier JSXNameSpacedName": i.tagName,
131
+ "JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName": i.attributeName,
132
+ "JSXBuiltin/JSXIdentifier": i.standard(i.tagName)
133
+ }), jO = { __proto__: null, export: 18, as: 23, from: 31, default: 34, async: 39, function: 40, extends: 52, this: 56, true: 64, false: 64, null: 76, void: 80, typeof: 84, super: 102, new: 136, delete: 152, yield: 161, await: 165, class: 170, public: 227, private: 227, protected: 227, readonly: 229, instanceof: 248, satisfies: 251, in: 252, const: 254, import: 286, keyof: 339, unique: 343, infer: 349, is: 385, abstract: 405, implements: 407, type: 409, let: 412, var: 414, using: 417, interface: 423, enum: 427, namespace: 433, module: 435, declare: 439, global: 443, for: 462, of: 471, while: 474, with: 478, do: 482, if: 486, else: 488, switch: 492, case: 498, try: 504, catch: 508, finally: 512, return: 516, throw: 520, break: 524, continue: 528, debugger: 532 }, kO = { __proto__: null, async: 123, get: 125, set: 127, declare: 187, public: 189, private: 189, protected: 189, static: 191, abstract: 193, override: 195, readonly: 201, accessor: 203, new: 389 }, bO = { __proto__: null, "<": 143 }, xO = I.deserialize({
134
+ version: 14,
135
+ states: "$<UO%TQ^OOO%[Q^OOO'_Q`OOP(lOWOOO*zQ08SO'#ChO+RO!bO'#CiO+aO#tO'#CiO+oO?MpO'#D^O.QQ^O'#DdO.bQ^O'#DoO%[Q^O'#DyO0fQ^O'#EROOQ07b'#EZ'#EZO1PQWO'#EWOOQO'#El'#ElOOQO'#Ie'#IeO1XQWO'#GmO1dQWO'#EkO1iQWO'#EkO3kQ08SO'#JiO6[Q08SO'#JjO6xQWO'#FZO6}Q&jO'#FqOOQ07b'#Fc'#FcO7YO,YO'#FcO7hQ7[O'#FxO9UQWO'#FwOOQ07b'#Jj'#JjOOQ07`'#Ji'#JiO9ZQWO'#GqOOQU'#KU'#KUO9fQWO'#IRO9kQ07hO'#ISOOQU'#JW'#JWOOQU'#IW'#IWQ`Q^OOO`Q^OOO%[Q^O'#DqO9sQ^O'#D}O9zQ^O'#EPO9aQWO'#GmO:RQ7[O'#CnO:aQWO'#EjO:lQWO'#EuO:qQ7[O'#FbO;`QWO'#GmOOQO'#KV'#KVO;eQWO'#KVO;sQWO'#GuO;sQWO'#GvO;sQWO'#GxO9aQWO'#G{O<jQWO'#HOO>RQWO'#CdO>cQWO'#H[O>kQWO'#HbO>kQWO'#HdO`Q^O'#HfO>kQWO'#HhO>kQWO'#HkO>pQWO'#HqO>uQ07iO'#HwO%[Q^O'#HyO?QQ07iO'#H{O?]Q07iO'#H}O9kQ07hO'#IPO?hQ08SO'#ChO@jQ`O'#DiQOQWOOO%[Q^O'#EPOAQQWO'#ESO:RQ7[O'#EjOA]QWO'#EjOAhQpO'#FbOOQU'#Cf'#CfOOQ07`'#Dn'#DnOOQ07`'#Jm'#JmO%[Q^O'#JmOOQO'#Jq'#JqOOQO'#Ib'#IbOBhQ`O'#EcOOQ07`'#Eb'#EbOCdQ07pO'#EcOCnQ`O'#EVOOQO'#Jp'#JpODSQ`O'#JqOEaQ`O'#EVOCnQ`O'#EcPEnO!0LbO'#CaPOOO)CDu)CDuOOOO'#IX'#IXOEyO!bO,59TOOQ07b,59T,59TOOOO'#IY'#IYOFXO#tO,59TO%[Q^O'#D`OOOO'#I['#I[OFgO?MpO,59xOOQ07b,59x,59xOFuQ^O'#I]OGYQWO'#JkOI[QrO'#JkO+}Q^O'#JkOIcQWO,5:OOIyQWO'#ElOJWQWO'#JyOJcQWO'#JxOJcQWO'#JxOJkQWO,5;YOJpQWO'#JwOOQ07f,5:Z,5:ZOJwQ^O,5:ZOLxQ08SO,5:eOMiQWO,5:mONSQ07hO'#JvONZQWO'#JuO9ZQWO'#JuONoQWO'#JuONwQWO,5;XON|QWO'#JuO!#UQrO'#JjOOQ07b'#Ch'#ChO%[Q^O'#ERO!#tQpO,5:rOOQO'#Jr'#JrOOQO-E<c-E<cO9aQWO,5=XO!$[QWO,5=XO!$aQ^O,5;VO!&dQ7[O'#EgO!'}QWO,5;VO!)mQ7[O'#DsO!)tQ^O'#DxO!*OQ`O,5;`O!*WQ`O,5;`O%[Q^O,5;`OOQU'#FR'#FROOQU'#FT'#FTO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aO%[Q^O,5;aOOQU'#FX'#FXO!*fQ^O,5;rOOQ07b,5;w,5;wOOQ07b,5;x,5;xO!,iQWO,5;xOOQ07b,5;y,5;yO%[Q^O'#IiO!,qQ07hO,5<eO!&dQ7[O,5;aO!-`Q7[O,5;aO%[Q^O,5;uO!-gQ&jO'#FgO!.dQ&jO'#J}O!.OQ&jO'#J}O!.kQ&jO'#J}OOQO'#J}'#J}O!/PQ&jO,5<POOOS,5<],5<]O!/bQ^O'#FsOOOS'#Ih'#IhO7YO,YO,5;}O!/iQ&jO'#FuOOQ07b,5;},5;}O!0YQMhO'#CuOOQ07b'#Cy'#CyO!0mQWO'#CyO!0rO?MpO'#C}O!1`Q7[O,5<bO!1gQWO,5<dO!3SQ!LQO'#GSO!3aQWO'#GTO!3fQWO'#GTO!3kQ!LQO'#GXO!4jQ`O'#G]OOQO'#Gh'#GhO!(SQ7[O'#GgOOQO'#Gj'#GjO!(SQ7[O'#GiO!5]QMhO'#JdOOQ07b'#Jd'#JdO!5gQWO'#JcO!5uQWO'#JbO!5}QWO'#CtOOQ07b'#Cw'#CwOOQ07b'#DR'#DROOQ07b'#DT'#DTO1SQWO'#DVO!(SQ7[O'#FzO!(SQ7[O'#F|O!6VQWO'#GOO!6[QWO'#GPO!3fQWO'#GVO!(SQ7[O'#G[O!6aQWO'#EmO!7OQWO,5<cOOQ07`'#Cq'#CqO!7WQWO'#EnO!8QQ`O'#EoOOQ07`'#Jw'#JwO!8XQ07hO'#KWO9kQ07hO,5=]O`Q^O,5>mOOQU'#J`'#J`OOQU,5>n,5>nOOQU-E<U-E<UO!:ZQ08SO,5:]O!<wQ08SO,5:iO%[Q^O,5:iO!?bQ08SO,5:kOOQO,5@q,5@qO!@RQ7[O,5=XO!@aQ07hO'#JaO9UQWO'#JaO!@rQ07hO,59YO!@}Q`O,59YO!AVQ7[O,59YO:RQ7[O,59YO!AbQWO,5;VO!AjQWO'#HZO!BOQWO'#KZO%[Q^O,5;zO!7{Q`O,5;|O!BWQWO,5=tO!B]QWO,5=tO!BbQWO,5=tO9kQ07hO,5=tO;sQWO,5=dOOQO'#Cu'#CuO!BpQ`O,5=aO!BxQ7[O,5=bO!CTQWO,5=dO!CYQpO,5=gO!CbQWO'#KVO>pQWO'#HQO9aQWO'#HSO!CgQWO'#HSO:RQ7[O'#HUO!ClQWO'#HUOOQU,5=j,5=jO!CqQWO'#HVO!DSQWO'#CnO!DXQWO,59OO!DcQWO,59OO!FhQ^O,59OOOQU,59O,59OO!FxQ07hO,59OO%[Q^O,59OO!ITQ^O'#H^OOQU'#H_'#H_OOQU'#H`'#H`O`Q^O,5=vO!IkQWO,5=vO`Q^O,5=|O`Q^O,5>OO!IpQWO,5>QO`Q^O,5>SO!IuQWO,5>VO!IzQ^O,5>]OOQU,5>c,5>cO%[Q^O,5>cO9kQ07hO,5>eOOQU,5>g,5>gO!NUQWO,5>gOOQU,5>i,5>iO!NUQWO,5>iOOQU,5>k,5>kO!NZQ`O'#D[O%[Q^O'#JmO!NxQ`O'#JmO# gQ`O'#DjO# xQ`O'#DjO#$ZQ^O'#DjO#$bQWO'#JlO#$jQWO,5:TO#$oQWO'#EpO#$}QWO'#JzO#%VQWO,5;ZO#%[Q`O'#DjO#%iQ`O'#EUOOQ07b,5:n,5:nO%[Q^O,5:nO#%pQWO,5:nO>pQWO,5;UO!@}Q`O,5;UO!AVQ7[O,5;UO:RQ7[O,5;UO#%xQWO,5@XO#%}Q$ISO,5:rOOQO-E<`-E<`O#'TQ07pO,5:}OCnQ`O,5:qO#'_Q`O,5:qOCnQ`O,5:}O!@rQ07hO,5:qOOQ07`'#Ef'#EfOOQO,5:},5:}O%[Q^O,5:}O#'lQ07hO,5:}O#'wQ07hO,5:}O!@}Q`O,5:qOOQO,5;T,5;TO#(VQ07hO,5:}POOO'#IV'#IVP#(kO!0LbO,58{POOO,58{,58{OOOO-E<V-E<VOOQ07b1G.o1G.oOOOO-E<W-E<WO#(vQpO,59zOOOO-E<Y-E<YOOQ07b1G/d1G/dO#({QrO,5>wO+}Q^O,5>wOOQO,5>},5>}O#)VQ^O'#I]OOQO-E<Z-E<ZO#)dQWO,5@VO#)lQrO,5@VO#)sQWO,5@dOOQ07b1G/j1G/jO%[Q^O,5@eO#){QWO'#IcOOQO-E<a-E<aO#)sQWO,5@dOOQ07`1G0t1G0tOOQ07f1G/u1G/uOOQ07f1G0X1G0XO%[Q^O,5@bO#*aQ07hO,5@bO#*rQ07hO,5@bO#*yQWO,5@aO9ZQWO,5@aO#+RQWO,5@aO#+aQWO'#IfO#*yQWO,5@aOOQ07`1G0s1G0sO!*OQ`O,5:tO!*ZQ`O,5:tOOQO,5:v,5:vO#,RQWO,5:vO#,ZQ7[O1G2sO9aQWO1G2sOOQ07b1G0q1G0qO#,iQ08SO1G0qO#-nQ08QO,5;ROOQ07b'#GR'#GRO#.[Q08SO'#JdO!$aQ^O1G0qO#0dQ7[O'#JnO#0nQWO,5:_O#0sQrO'#JoO%[Q^O'#JoO#0}QWO,5:dOOQ07b'#D['#D[OOQ07b1G0z1G0zO%[Q^O1G0zOOQ07b1G1d1G1dO#1SQWO1G0zO#3kQ08SO1G0{O#3rQ08SO1G0{O#6]Q08SO1G0{O#6dQ08SO1G0{O#8nQ08SO1G0{O#9UQ08SO1G0{O#<OQ08SO1G0{O#<VQ08SO1G0{O#>jQ08SO1G0{O#>wQ08SO1G0{O#@uQ08SO1G0{O#CuQ(CYO'#ChO#EsQ(CYO1G1^O#EzQ(CYO'#JjO!,lQWO1G1dO#F[Q08SO,5?TOOQ07`-E<g-E<gO#GOQ08SO1G0{OOQ07b1G0{1G0{O#IZQ08SO1G1aO#I}Q&jO,5<TO#JVQ&jO,5<UO#J_Q&jO'#FlO#JvQWO'#FkOOQO'#KO'#KOOOQO'#Ig'#IgO#J{Q&jO1G1kOOQ07b1G1k1G1kOOOS1G1v1G1vO#K^Q(CYO'#JiO#KhQWO,5<_O!*fQ^O,5<_OOOS-E<f-E<fOOQ07b1G1i1G1iO#KmQ`O'#J}OOQ07b,5<a,5<aO#KuQ`O,5<aOOQ07b,59e,59eO!&dQ7[O'#DPOOOO'#IZ'#IZO#KzO?MpO,59iOOQ07b,59i,59iO%[Q^O1G1|O!6[QWO'#IkO#LVQ7[O,5<uOOQ07b,5<r,5<rO!(SQ7[O'#InO#LuQ7[O,5=RO!(SQ7[O'#IpO#MhQ7[O,5=TO!&dQ7[O,5=VOOQO1G2O1G2OO#MrQpO'#CqO#NVQpO,5<nO#N^QWO'#KRO9aQWO'#KRO#NlQWO,5<pO!(SQ7[O,5<oO#NqQWO'#GUO#N|QWO,5<oO$ RQpO'#GRO$ `QpO'#KSO$ jQWO'#KSO!&dQ7[O'#KSO$ oQWO,5<sO$ tQ`O'#G^O!4eQ`O'#G^O$!VQWO'#G`O$![QWO'#GbO!3fQWO'#GeO$!aQ07hO'#ImO$!lQ`O,5<wOOQ07f,5<w,5<wO$!sQ`O'#G^O$#RQ`O'#G_O$#ZQ`O'#G_O$#`Q7[O,5=RO$#pQ7[O,5=TOOQ07b,5=W,5=WO!(SQ7[O,5?}O!(SQ7[O,5?}O$$QQWO'#IrO$$]QWO,5?|O$$eQWO,59`O$%UQ7[O,59qOOQ07b,59q,59qO$%wQ7[O,5<fO$&jQ7[O,5<hO@bQWO,5<jOOQ07b,5<k,5<kO$&tQWO,5<qO$&yQ7[O,5<vO$'ZQWO'#JuO!$aQ^O1G1}O$'`QWO1G1}O9ZQWO'#JxO9ZQWO'#EpO%[Q^O'#EpO9ZQWO'#ItO$'eQ07hO,5@rOOQU1G2w1G2wOOQU1G4X1G4XOOQ07b1G/w1G/wO!,iQWO1G/wO$)jQ08SO1G0TOOQU1G2s1G2sO!&dQ7[O1G2sO%[Q^O1G2sO#,^QWO1G2sO$+nQ7[O'#EgOOQ07`,5?{,5?{O$+xQ07hO,5?{[email protected]!@}Q`O1G.tO!AVQ7[O1G.tO$,ZQWO1G0qO$,`QWO'#ChO$,kQWO'#K[O$,sQWO,5=uO$,xQWO'#K[O$,}QWO'#K[O$-]QWO'#IzO$-kQWO,5@uO$-sQrO1G1fOOQ07b1G1h1G1hO9aQWO1G3`O@bQWO1G3`O$-zQWO1G3`O$.PQWO1G3`OOQU1G3`1G3`O!CTQWO1G3OO!&dQ7[O1G2{O$.UQWO1G2{OOQU1G2|1G2|O!&dQ7[O1G2|O$.ZQWO1G2|O$.cQ`O'#GzOOQU1G3O1G3OO!4eQ`O'#IvO!CYQpO1G3ROOQU1G3R1G3ROOQU,5=l,5=lO$.kQ7[O,5=nO9aQWO,5=nO$![QWO,5=pO9UQWO,5=pO!@}Q`O,5=pO!AVQ7[O,5=pO:RQ7[O,5=pO$.yQWO'#KYO$/UQWO,5=qOOQU1G.j1G.jO$/[email protected]$/fQWO1G.jO9kQ07hO1G.jO$1kQrO,5@wO$1{QWO,5@wO9ZQWO,5@wO$2WQ^O,5=xO$2_QWO,5=xOOQU1G3b1G3bO`Q^O1G3bOOQU1G3h1G3hOOQU1G3j1G3jO>kQWO1G3lO$2dQ^O1G3nO$6hQ^O'#HmOOQU1G3q1G3qO$6uQWO'#HsO>pQWO'#HuOOQU1G3w1G3wO$6}Q^O1G3wO9kQ07hO1G3}OOQU1G4P1G4POOQ07`'#GY'#GYO9kQ07hO1G4RO9kQ07hO1G4TO$;UQWO,5@XO!*fQ^O,5;[O9ZQWO,5;[O>pQWO,5:UO!*fQ^O,5:UO!@}Q`O,5:UO$;ZQ(CYO,5:UOOQO,5;[,5;[O$;eQ`O'#I^O$;{QWO,5@WOOQ07b1G/o1G/oO$<TQ`O'#IdO$<_QWO,5@fOOQ07`1G0u1G0uO# xQ`O,5:UOOQO'#Ia'#IaO$<gQ`O,5:pOOQ07f,5:p,5:pO#%sQWO1G0YOOQ07b1G0Y1G0YO%[Q^O1G0YOOQ07b1G0p1G0pO>pQWO1G0pO!@}Q`O1G0pO!AVQ7[O1G0pOOQ07`1G5s1G5sO!@rQ07hO1G0]OOQO1G0i1G0iO%[Q^O1G0iO$<nQ07hO1G0iO$<yQ07hO1G0iO!@}Q`O1G0]OCnQ`O1G0]O$=XQ07hO1G0iOOQO1G0]1G0]O$=mQ08SO1G0iPOOO-E<T-E<TPOOO1G.g1G.gOOOO1G/f1G/fO$=wQpO,5<eO$>PQrO1G4cOOQO1G4i1G4iO%[Q^O,5>wO$>ZQWO1G5qO$>cQWO1G6OO$>kQrO1G6PO9ZQWO,5>}O$>uQ08SO1G5|O%[Q^O1G5|O$?VQ07hO1G5|O$?hQWO1G5{O$?hQWO1G5{O9ZQWO1G5{O$?pQWO,5?QO9ZQWO,5?QOOQO,5?Q,5?QO$@UQWO,5?QO$'ZQWO,5?QOOQO-E<d-E<dOOQO1G0`1G0`OOQO1G0b1G0bO!,lQWO1G0bOOQU7+(_7+(_O!&dQ7[O7+(_O%[Q^O7+(_O$@dQWO7+(_O$@oQ7[O7+(_O$@}Q08SO,5=RO$CYQ08SO,5=TO$EeQ08SO,5=RO$GvQ08SO,5=TO$JXQ08SO,59qO$LaQ08SO,5<fO$NlQ08SO,5<hO%!wQ08SO,5<vOOQ07b7+&]7+&]O%%YQ08SO7+&]O%%|Q7[O'#I_O%&WQWO,5@YOOQ07b1G/y1G/yO%&`Q^O'#I`O%&mQWO,5@ZO%&uQrO,5@ZOOQ07b1G0O1G0OO%'PQWO7+&fOOQ07b7+&f7+&fO%'UQ(CYO,5:eO%[Q^O7+&xO%'`Q(CYO,5:]O%'mQ(CYO,5:iO%'wQ(CYO,5:kOOQ07b7+'O7+'OOOQO1G1o1G1oOOQO1G1p1G1pO%(RQtO,5<WO!*fQ^O,5<VOOQO-E<e-E<eOOQ07b7+'V7+'VOOOS7+'b7+'bOOOS1G1y1G1yO%(^QWO1G1yOOQ07b1G1{1G1{O%(cQpO,59kOOOO-E<X-E<XOOQ07b1G/T1G/TO%(jQ08SO7+'hOOQ07b,5?V,5?VO%)^QpO,5?VOOQ07b1G2a1G2aP!&dQ7[O'#IkPOQ07b-E<i-E<iO%)|Q7[O,5?YOOQ07b-E<l-E<lO%*oQ7[O,5?[OOQ07b-E<n-E<nO%*yQpO1G2qOOQ07b1G2Y1G2YO%+QQWO'#IjO%+`QWO,5@mO%+`QWO,5@mO%+hQWO,5@mO%+sQWO,5@mOOQO1G2[1G2[O%,RQ7[O1G2ZO!(SQ7[O1G2ZO%,cQ!LQO'#IlO%,sQWO,5@nO!&dQ7[O,5@nO%,{QpO,5@nOOQ07b1G2_1G2_OOQ07`,5<x,5<xOOQ07`,5<y,5<yO$'ZQWO,5<yOC_QWO,5<yO!@}Q`O,5<xOOQO'#Ga'#GaO%-VQWO,5<zOOQ07`,5<|,5<|O$'ZQWO,5=POOQO,5?X,5?XOOQO-E<k-E<kOOQ07f1G2c1G2cO!4eQ`O,5<xO%-_QWO,5<yO$!VQWO,5<zO!4eQ`O,5<yO!(SQ7[O'#InO%.RQ7[O1G2mO!(SQ7[O'#IpO%.tQ7[O1G2oO%/OQ7[O1G5iO%/YQ7[O1G5iOOQO,5?^,5?^OOQO-E<p-E<pOOQO1G.z1G.zO!7{Q`O,59sO%[Q^O,59sO%/gQWO1G2UO!(SQ7[O1G2]O%/lQ08SO7+'iOOQ07b7+'i7+'iO!$aQ^O7+'iO%0`QWO,5;[OOQ07`,5?`,5?`OOQ07`-E<r-E<rOOQ07b7+%c7+%cO%0eQpO'#KTO#%sQWO7+(_O%0oQrO7+(_O$@gQWO7+(_O%0vQ08QO'#ChO%1ZQ08QO,5<}O%1{QWO,5<}OOQ07`1G5g1G5gOOQU7+$`7+$`O!@rQ07hO7+$`O!@}Q`O7+$`O!$aQ^O7+&]O%2QQWO'#IyO%2iQWO,5@vOOQO1G3a1G3aO9aQWO,5@vO%2iQWO,5@vO%2qQWO,5@vOOQO,5?f,5?fOOQO-E<x-E<xOOQ07b7+'Q7+'QO%2vQWO7+(zO9kQ07hO7+(zO9aQWO7+(zO@bQWO7+(zOOQU7+(j7+(jO%2{Q08QO7+(gO!&dQ7[O7+(gO%3VQpO7+(hOOQU7+(h7+(hO!&dQ7[O7+(hO%3^QWO'#KXO%3iQWO,5=fOOQO,5?b,5?bOOQO-E<t-E<tOOQU7+(m7+(mO%4xQ`O'#HTOOQU1G3Y1G3YO!&dQ7[O1G3YO%[Q^O1G3YO%5PQWO1G3YO%5[Q7[O1G3YO9kQ07hO1G3[O$![QWO1G3[O9UQWO1G3[O!@}Q`O1G3[O!AVQ7[O1G3[O%5jQWO'#IxO%6OQWO,5@tO%6WQ`O,5@tOOQ07`1G3]1G3]OOQU7+$U7+$UO@bQWO7+$UO9kQ07hO7+$UO%6cQWO7+$UO%[Q^O1G6cO%[Q^O1G6dO%6hQ07hO1G6cO%6rQ^O1G3dO%6yQWO1G3dO%7OQ^O1G3dOOQU7+(|7+(|O9kQ07hO7+)WO`Q^O7+)YOOQU'#K_'#K_OOQU'#I{'#I{O%7VQ^O,5>XOOQU,5>X,5>XO%[Q^O'#HnO%7dQWO'#HpOOQU,5>_,5>_O9ZQWO,5>_OOQU,5>a,5>aOOQU7+)c7+)cOOQU7+)i7+)iOOQU7+)m7+)mOOQU7+)o7+)oO%7iQ`O1G5sO%7}Q(CYO1G0vO%8XQWO1G0vOOQO1G/p1G/pO%8dQ(CYO1G/pO>pQWO1G/pO!*fQ^O'#DjOOQO,5>x,5>xOOQO-E<[-E<[OOQO,5?O,5?OOOQO-E<b-E<bO!@}Q`O1G/pOOQO-E<_-E<_OOQ07f1G0[1G0[OOQ07b7+%t7+%tO#%sQWO7+%tOOQ07b7+&[7+&[O>pQWO7+&[O!@}Q`O7+&[OOQO7+%w7+%wO$=mQ08SO7+&TOOQO7+&T7+&TO%[Q^O7+&TO%8nQ07hO7+&TO!@rQ07hO7+%wO!@}Q`O7+%wO%8yQ07hO7+&TO%9XQ08SO7++hO%[Q^O7++hO%9iQWO7++gO%9iQWO7++gOOQO1G4l1G4lO9ZQWO1G4lO%9qQWO1G4lOOQO7+%|7+%|O#%sQWO<<KyO%0oQrO<<KyO%:PQWO<<KyOOQU<<Ky<<KyO!&dQ7[O<<KyO%[Q^O<<KyO%:XQWO<<KyO%:dQ08SO,5?YO%<oQ08SO,5?[O%>zQ08SO1G2ZO%A]Q08SO1G2mO%ChQ08SO1G2oO%EsQ7[O,5>yOOQO-E<]-E<]O%E}QrO,5>zO%[Q^O,5>zOOQO-E<^-E<^O%FXQWO1G5uOOQ07b<<JQ<<JQO%FaQ(CYO1G0qO%HkQ(CYO1G0{O%HrQ(CYO1G0{O%JvQ(CYO1G0{O%J}Q(CYO1G0{O%LrQ(CYO1G0{O%MYQ(CYO1G0{O& mQ(CYO1G0{O& tQ(CYO1G0{O&#rQ(CYO1G0{O&$PQ(CYO1G0{O&%}Q(CYO1G0{O&&bQ08SO<<JdO&'gQ(CYO1G0{O&)]Q(CYO'#JdO&+`Q(CYO1G1aO&+mQ(CYO1G0TO!*fQ^O'#FnOOQO'#KP'#KPOOQO1G1r1G1rO&+wQWO1G1qO&+|Q(CYO,5?TOOOS7+'e7+'eOOOO1G/V1G/VOOQ07b1G4q1G4qO!(SQ7[O7+(]O&,WQWO,5?UO9aQWO,5?UOOQO-E<h-E<hO&,fQWO1G6XO&,fQWO1G6XO&,nQWO1G6XO&,yQ7[O7+'uO&-ZQpO,5?WO&-eQWO,5?WO!&dQ7[O,5?WOOQO-E<j-E<jO&-jQpO1G6YO&-tQWO1G6YOOQ07`1G2e1G2eO$'ZQWO1G2eOOQ07`1G2d1G2dO&-|QWO1G2fO!&dQ7[O1G2fOOQ07`1G2k1G2kO!@}Q`O1G2dOC_QWO1G2eO&.RQWO1G2fO&.ZQWO1G2eO&.}Q7[O,5?YOOQ07b-E<m-E<mO&/pQ7[O,5?[OOQ07b-E<o-E<oO!(SQ7[O7++TOOQ07b1G/_1G/_O&/zQWO1G/_OOQ07b7+'p7+'pO&0PQ7[O7+'wO&0aQ08SO<<KTOOQ07b<<KT<<KTO&1TQWO1G0vO!&dQ7[O'#IsO&1YQWO,5@oO!&dQ7[O1G2iOOQU<<Gz<<GzO!@rQ07hO<<GzO&1bQ08SO<<IwOOQ07b<<Iw<<IwOOQO,5?e,5?eO&2UQWO,5?eO&2ZQWO,5?eOOQO-E<w-E<wO&2iQWO1G6bO&2iQWO1G6bO9aQWO1G6bO@bQWO<<LfOOQU<<Lf<<LfO&2qQWO<<LfO9kQ07hO<<LfOOQU<<LR<<LRO%2{Q08QO<<LROOQU<<LS<<LSO%3VQpO<<LSO&2vQ`O'#IuO&3RQWO,5@sO!*fQ^O,5@sOOQU1G3Q1G3QO&3ZQ^O'#JmOOQO'#Iw'#IwO9kQ07hO'#IwO&3eQ`O,5=oOOQU,5=o,5=oO&3lQ`O'#EcO&4QQWO7+(tO&4VQWO7+(tOOQU7+(t7+(tO!&dQ7[O7+(tO%[Q^O7+(tO&4_QWO7+(tOOQU7+(v7+(vO9kQ07hO7+(vO$![QWO7+(vO9UQWO7+(vO!@}Q`O7+(vO&4jQWO,5?dOOQO-E<v-E<vOOQO'#HW'#HWO&4uQWO1G6`O9kQ07hO<<GpOOQU<<Gp<<GpO@bQWO<<GpO&4}QWO7++}O&5SQWO7+,OO%[Q^O7++}O%[Q^O7+,OOOQU7+)O7+)OO&5XQWO7+)OO&5^Q^O7+)OO&5eQWO7+)OOOQU<<Lr<<LrOOQU<<Lt<<LtOOQU-E<y-E<yOOQU1G3s1G3sO&5jQWO,5>YOOQU,5>[,5>[O&5oQWO1G3yO9ZQWO7+&bO!*fQ^O7+&bOOQO7+%[7+%[O&5tQ(CYO1G6PO>pQWO7+%[OOQ07b<<I`<<I`OOQ07b<<Iv<<IvO>pQWO<<IvOOQO<<Io<<IoO$=mQ08SO<<IoO%[Q^O<<IoOOQO<<Ic<<IcO!@rQ07hO<<IcO&6OQ07hO<<IoO&6ZQ08SO<= SO&6kQWO<= ROOQO7+*W7+*WO9ZQWO7+*WOOQUANAeANAeO&6sQWOANAeO!&dQ7[OANAeO#%sQWOANAeO%0oQrOANAeO%[Q^OANAeO&6{Q08SO7+'uO&9^Q08SO,5?YO&;iQ08SO,5?[O&=tQ08SO7+'wO&@VQrO1G4fO&@aQ(CYO7+&]O&BeQ(CYO,5=RO&DlQ(CYO,5=TO&D|Q(CYO,5=RO&E^Q(CYO,5=TO&EnQ(CYO,59qO&GqQ(CYO,5<fO&ItQ(CYO,5<hO&KwQ(CYO,5<vO&MmQ(CYO7+'hO&MzQ(CYO7+'iO&NXQWO,5<YOOQO7+']7+']O&N^Q7[O<<KwOOQO1G4p1G4pO&NeQWO1G4pO&NpQWO1G4pO' OQWO7++sO' OQWO7++sO!&dQ7[O1G4rO' WQpO1G4rO' bQWO7++tOOQ07`7+(P7+(PO$'ZQWO7+(QO' jQpO7+(QOOQ07`7+(O7+(OO$'ZQWO7+(PO' qQWO7+(QO!&dQ7[O7+(QOC_QWO7+(PO' vQ7[O<<NoOOQ07b7+$y7+$yO'!QQpO,5?_OOQO-E<q-E<qO'![Q08QO7+(TOOQUAN=fAN=fO9aQWO1G5POOQO1G5P1G5PO'!lQWO1G5PO'!qQWO7++|O'!qQWO7++|O9kQ07hOANBQO@bQWOANBQOOQUANBQANBQOOQUANAmANAmOOQUANAnANAnO'!yQWO,5?aOOQO-E<s-E<sO'#UQ(CYO1G6_O'%fQrO'#ChOOQO,5?c,5?cOOQO-E<u-E<uOOQU1G3Z1G3ZO&3ZQ^O,5<zOOQU<<L`<<L`O!&dQ7[O<<L`O&4QQWO<<L`O'%pQWO<<L`O%[Q^O<<L`OOQU<<Lb<<LbO9kQ07hO<<LbO$![QWO<<LbO9UQWO<<LbO'%xQ`O1G5OO'&TQWO7++zOOQUAN=[AN=[O9kQ07hOAN=[OOQU<= i<= iOOQU<= j<= jO'&]QWO<= iO'&bQWO<= jOOQU<<Lj<<LjO'&gQWO<<LjO'&lQ^O<<LjOOQU1G3t1G3tO>pQWO7+)eO'&sQWO<<I|O''OQ(CYO<<I|OOQO<<Hv<<HvOOQ07bAN?bAN?bOOQOAN?ZAN?ZO$=mQ08SOAN?ZOOQOAN>}AN>}O%[Q^OAN?ZOOQO<<Mr<<MrOOQUG27PG27PO!&dQ7[OG27PO#%sQWOG27PO''YQWOG27PO%0oQrOG27PO''bQ(CYO<<JdO''oQ(CYO1G2ZO')eQ(CYO,5?YO'+hQ(CYO,5?[O'-kQ(CYO1G2mO'/nQ(CYO1G2oO'1qQ(CYO<<KTO'2OQ(CYO<<IwOOQO1G1t1G1tO!(SQ7[OANAcOOQO7+*[7+*[O'2]QWO7+*[O'2hQWO<= _O'2pQpO7+*^OOQ07`<<Kl<<KlO$'ZQWO<<KlOOQ07`<<Kk<<KkO'2zQpO<<KlO$'ZQWO<<KkOOQO7+*k7+*kO9aQWO7+*kO'3RQWO<= hOOQUG27lG27lO9kQ07hOG27lO!*fQ^O1G4{O'3ZQWO7++yO&4QQWOANAzOOQUANAzANAzO!&dQ7[OANAzO'3cQWOANAzOOQUANA|ANA|O9kQ07hOANA|O$![QWOANA|OOQO'#HX'#HXOOQO7+*j7+*jOOQUG22vG22vOOQUANETANETOOQUANEUANEUOOQUANBUANBUO'3kQWOANBUOOQU<<MP<<MPO!*fQ^OAN?hOOQOG24uG24uO$=mQ08SOG24uO#%sQWOLD,kOOQULD,kLD,kO!&dQ7[OLD,kO'3pQWOLD,kO'3xQ(CYO7+'uO'5nQ(CYO,5?YO'7qQ(CYO,5?[O'9tQ(CYO7+'wO';jQ7[OG26}OOQO<<Mv<<MvOOQ07`ANAWANAWO$'ZQWOANAWOOQ07`ANAVANAVOOQO<<NV<<NVOOQULD-WLD-WO';zQ(CYO7+*gOOQUG27fG27fO&4QQWOG27fO!&dQ7[OG27fOOQUG27hG27hO9kQ07hOG27hOOQUG27pG27pO'<UQ(CYOG25SOOQOLD*aLD*aOOQU!$(!V!$(!VO#%sQWO!$(!VO!&dQ7[O!$(!VO'<`Q08SOG26}OOQ07`G26rG26rOOQULD-QLD-QO&4QQWOLD-QOOQULD-SLD-SOOQU!)9Eq!)9EqO#%sQWO!)9EqOOQU!$(!l!$(!lOOQU!.K;]!.K;]O'>qQ(CYOG26}O!*fQ^O'#DyO1PQWO'#EWO'@gQrO'#JiO!*fQ^O'#DqO'@nQ^O'#D}O'@uQrO'#ChO'C]QrO'#ChO!*fQ^O'#EPO'CmQ^O,5;VO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O'#IiO'EpQWO,5<eO'ExQ7[O,5;aO'GcQ7[O,5;aO!*fQ^O,5;uO!&dQ7[O'#GgO'ExQ7[O'#GgO!&dQ7[O'#GiO'ExQ7[O'#GiO1SQWO'#DVO1SQWO'#DVO!&dQ7[O'#FzO'ExQ7[O'#FzO!&dQ7[O'#F|O'ExQ7[O'#F|O!&dQ7[O'#G[O'ExQ7[O'#G[O!*fQ^O,5:iO!*fQ^O,5@eO'CmQ^O1G0qO'GjQ(CYO'#ChO!*fQ^O1G1|O!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O,5<oO'ExQ7[O,5<oO'CmQ^O1G1}O!*fQ^O7+&xO!&dQ7[O1G2ZO'ExQ7[O1G2ZO!&dQ7[O'#InO'ExQ7[O'#InO!&dQ7[O'#IpO'ExQ7[O'#IpO!&dQ7[O1G2]O'ExQ7[O1G2]O'CmQ^O7+'iO'CmQ^O7+&]O!&dQ7[OANAcO'ExQ7[OANAcO'GtQWO'#EkO'GyQWO'#EkO'HRQWO'#FZO'HWQWO'#EuO'H]QWO'#JyO'HhQWO'#JwO'HsQWO,5;VO'HxQ7[O,5<bO'IPQWO'#GTO'IUQWO'#GTO'IZQWO,5<cO'IcQWO,5;VO'IkQ(CYO1G1^O'IrQWO,5<oO'IwQWO,5<oO'I|QWO,5<qO'JRQWO,5<qO'JWQWO1G1}O'J]QWO1G0qO'JbQ7[O<<KwO'JiQ7[O<<KwO7hQ7[O'#FxO9UQWO'#FwOA]QWO'#EjO!*fQ^O,5;rO!3fQWO'#GTO!3fQWO'#GTO!3fQWO'#GVO!3fQWO'#GVO!(SQ7[O7+(]O!(SQ7[O7+(]O%*yQpO1G2qO%*yQpO1G2qO!&dQ7[O,5=VO!&dQ7[O,5=V",
136
+ stateData: "'Km~O'tOS'uOSSOS'vRQ~OPYOQYORfOX!VO`qOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!twO!wxO!{]O#s!PO$T|O%b}O%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO&P!WO&V!XO&X!YO&Z!ZO&]![O&`!]O&f!^O&l!_O&n!`O&p!aO&r!bO&t!cO'{SO'}TO(QUO(XVO(g[O(tiO~OVtO~P`OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`!vOo!nO!P!oO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!wO#S!pO#T!pO#W!yO#X!yO'|!lO'}TO(QUO([!mO(g!sO~O'v!zO~OP[XZ[X`[Xn[X|[X}[X!P[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X'r[X(X[X(h[X(o[X(p[X~O!d$|X~P(qO^!|O'}#OO(O!|O(P#OO~O^#PO(P#OO(Q#OO(R#PO~Ot#RO!R#SO(Y#SO(Z#UO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{:hO'}TO(QUO(XVO(g[O(tiO~O!X#YO!Y#VO!V(_P!V(lP~P+}O!Z#bO~P`OPYOQYORfOc!jOd!iOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'}TO(QUO(XVO(g[O(tiO~Ol#lO!X#hO!{]O#e#kO#f#hO'{:iO!j(iP~P.iO!k#nO'{#mO~O!w#rO!{]O%b#sO~O#g#tO~O!d#uO#g#tO~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y$aO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`(]X'r(]X'p(]X!j(]X!V(]X![(]X%c(]X!d(]X~P1qO#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X![(^X%c(^X~O`(^X!i(^X'r(^X'p(^X!V(^X!j(^Xr(^X!d(^X~P4XO#[$eO~O$Y$gO$[$fO$c$lO~ORfO![$mO$f$nO$h$pO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{$rO'}TO(QUO(X$uO(o$}O(p%POf(UP~O!k%bO~O!P%eO![%fO'{%dO~O!d%jO~O`%kO'r%kO~O'|!lO~P%[O%h%rO~P%[Og%VO!k%bO'{%dO'|!lO~Od%yO!k%bO'{%dO~O#r$SO~O|&OO![%{O!k%}O%d&RO'{%dO'|!lO'}TO(QUO_(}P~O!w#rO~O%m&TO!P(yX![(yX'{(yX~O'{&UO~O!t&ZO#s!PO%d!QO%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO~Oc&`Od&_O!w&]O%b&^O%u&[O~P;xOc&cOdyO![&bO!t&ZO!wxO!{]O#s!PO%b}O%f!OO%g!OO%h!OO%k!RO%m!SO%p!TO%q!TO%s!UO~Oa&fO#[&iO%d&dO'|!lO~P<}O!k&jO!t&nO~O!k#nO~O![XO~O`%kO'q&vO'r%kO~O`%kO'q&yO'r%kO~O`%kO'q&{O'r%kO~O'p[X!V[Xr[X!j[X&T[X![[X%c[X!d[X~P(qO!_'YO!`'RO!a'RO'|!lO'}TO(QUO~Oo'PO!P'OO!X'SO([&}O!Z(`P!Z(nP~P@UOj']O!['ZO'{%dO~Od'bO!k%bO'{%dO~O|&OO!k%}O~Oo!nO!P!oO!{:dO#P!pO#Q!pO#S!pO#T!pO'|!lO'}TO(QUO([!mO(g!sO~O!_'hO!`'gO!a'gO#R!pO#W'iO#X'iO~PApO`%kOg%VO!d#uO!k%bO'r%kO(h'kO~O!o'oO#['mO~PCOOo!nO!P!oO'}TO(QUO([!mO(g!sO~O![XOo(eX!P(eX!_(eX!`(eX!a(eX!{(eX#P(eX#Q(eX#R(eX#S(eX#T(eX#W(eX#X(eX'|(eX'}(eX(Q(eX([(eX(g(eX~O!`'gO!a'gO'|!lO~PCnO'w'sO'x'sO'y'uO~O^!|O'}'wO(O!|O(P'wO~O^#PO(P'wO(Q'wO(R#PO~Ot#RO!R#SO(Y#SO(Z'{O~O!X'}O!V'PX!V'VX!Y'PX!Y'VX~P+}O!Y(PO!V(_X~OP$]OZ$dOn$QO|#yO}#zO!P#{O!Y(PO!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O!V(_X~PGbO!V(UO~O!V(kX!Y(kX!d(kX!j(kX(h(kX~O#[(kX#g#`X!Z(kX~PIhO#[(VO!V(mX!Y(mX~O!Y(WO!V(lX~O!V(ZO~O#[$eO~PIhO!Z([O~P`O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!maZ!man!ma!Y!ma!h!ma!o!ma#j!ma#k!ma#l!ma#m!ma#n!ma#o!ma#p!ma#q!ma#r!ma#t!ma#v!ma#x!ma#y!ma(h!ma(o!ma(p!ma~O`!ma'r!ma'p!ma!V!ma!j!mar!ma![!ma%c!ma!d!ma~PKOO!j(]O~O!d#uO#[(^O(h'kO!Y(jX`(jX'r(jX~O!j(jX~PMnO!P%eO![%fO!{]O#e(cO#f(bO'{%dO~O!Y(dO!j(iX~O!j(fO~O!P%eO![%fO#f(bO'{%dO~OP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!i(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#r(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O!d#uO!j(^X~P! [O|(gO}(hO!i#wO!k#xO!{!za!P!za~O!w!za%b!za![!za#e!za#f!za'{!za~P!#`O!w(lO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![XO!fuO!kZO!nYO!oYO!pYO!rvO!t!gO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#g(rO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz%ZO!P${O![$|O!f%`O!k$xO#f%aO$T%^O$o%[O$q%]O$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~Of(bP~P!(SO!X(vO!j(cP~P%[O([(xO(g[O~O!P(zO!k#xO([(xO(g[O~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O})]O!k#xO~O!Y$aO`$ma'r$ma'p$ma!j$ma!V$ma![$ma%c$ma!d$ma~O#s)aO~P!&dO|)dO!d)cO![$ZX$W$ZX$Y$ZX$[$ZX$c$ZX~O!d)cO![(qX$W(qX$Y(qX$[(qX$c(qX~O|)dO~P!.OO|)dO![(qX$W(qX$Y(qX$[(qX$c(qX~O![)fO$W)jO$Y)eO$[)eO$c)kO~O!X)nO~P!*fO$Y$gO$[$fO$c)rO~Oj$uX|$uX!P$uX!i$uX(o$uX(p$uX~OfiXf$uXjiX!YiX#[iX~P!/tOo)tO~Ot)uO(Y)vO(Z)xO~Oj*RO|)zO!P){O(o$}O(p%PO~Of)yO~P!0}Of*SO~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~O!X*WO'{*TO!j(uP~P!1lO#g*YO~O!k*ZO~O!X*`O'{*]O!V(vP~P!1lOn*lO!P*dO!_*jO!`*cO!a*cO!k*ZO#W*kO%Y*fO'|!lO([!mO~O!Z*iO~P!3xO!i#wOj(WX|(WX!P(WX(o(WX(p(WX!Y(WX#[(WX~Of(WX#|(WX~P!4qOj*qO#[*pOf(VX!Y(VX~O!Y*rOf(UX~O'{&UOf(UP~O!k*yO~O'{(pO~Ol*}O!P%eO!X#hO![%fO!{]O#e#kO#f#hO'{%dO!j(iP~O!d#uO#g+OO~O!P%eO!X+QO!Y(WO![%fO'{%dO!V(lP~Oo'VO!P+SO!X+RO'}TO(QUO([(xO~O!Z(nP~P!7lO!Y+TO`(zX'r(zX~OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO#y$YO(XVO(h$ZO(o#|O(p#}O~O`!ea!Y!ea'r!ea'p!ea!V!ea!j!ear!ea![!ea%c!ea!d!ea~P!8dO|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qaZ!qan!qa!Y!qa!h!qa!o!qa#j!qa#k!qa#l!qa#m!qa#n!qa#o!qa#p!qa#q!qa#r!qa#t!qa#v!qa#x!qa#y!qa(h!qa(o!qa(p!qa~O`!qa'r!qa'p!qa!V!qa!j!qar!qa![!qa%c!qa!d!qa~P!:}O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!saZ!san!sa!Y!sa!h!sa!o!sa#j!sa#k!sa#l!sa#m!sa#n!sa#o!sa#p!sa#q!sa#r!sa#t!sa#v!sa#x!sa#y!sa(h!sa(o!sa(p!sa~O`!sa'r!sa'p!sa!V!sa!j!sar!sa![!sa%c!sa!d!sa~P!=hOg%VOj+^O!['ZO%c+]O~O!d+`O`(TX![(TX'r(TX!Y(TX~O`%kO![XO'r%kO~Og%VO!k%bO~Og%VO!k%bO'{%dO~O!d#uO#g(rO~Oa+kO%d+lO'{+hO'}TO(QUO!Z)OP~O!Y+mO_(}X~OZ+qO~O_+rO~O![%{O'{%dO'|!lO_(}P~Og%VO#[+wO~Og%VOj+zO![$|O~O![+|O~O|,OO![XO~O%h%rO~O!w,TO~Od,YO~Oa,ZO'{#mO'}TO(QUO!Z(|P~Od%yO~O%d!QO'{&UO~P<}OZ,`O_,_O~OPYOQYORfOczOdyOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO!fuO!kZO!nYO!oYO!pYO!rvO!wxO!{]O%b}O'}TO(QUO(XVO(g[O(tiO~O![!eO!t!gO$T!kO'{!dO~P!DkO_,_O`%kO'r%kO~OPYOQYORfOc!jOd!iOlkOnYOokOpkOvkOxYOzYO!PWO!TkO!UkO![!eO!fuO!kZO!nYO!oYO!pYO!rvO!w!hO$T!kO'{!dO'}TO(QUO(XVO(g[O(tiO~O`,eO!twO#s!OO%f!OO%g!OO%h!OO~P!GTO!k&jO~O&V,kO~O![,mO~O&h,oO&j,pOP&eaQ&eaR&eaX&ea`&eac&ead&eal&ean&eao&eap&eav&eax&eaz&ea!P&ea!T&ea!U&ea![&ea!f&ea!k&ea!n&ea!o&ea!p&ea!r&ea!t&ea!w&ea!{&ea#s&ea$T&ea%b&ea%d&ea%f&ea%g&ea%h&ea%k&ea%m&ea%p&ea%q&ea%s&ea&P&ea&V&ea&X&ea&Z&ea&]&ea&`&ea&f&ea&l&ea&n&ea&p&ea&r&ea&t&ea'p&ea'{&ea'}&ea(Q&ea(X&ea(g&ea(t&ea!Z&ea&^&eaa&ea&c&ea~O'{,uO~Og!bX!Y!OX!Y!bX!Z!OX!Z!bX!d!OX!d!bX!k!bX#[!OX~O!d,zO#[,yOg(aX!Y#dX!Y(aX!Z#dX!Z(aX!d(aX!k(aX~Og%VO!d,|O!k%bO!Y!^X!Z!^X~Oo!nO!P!oO'}TO(QUO([!mO~OP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![!eO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'}TO(QUO(XVO(g[O(t<YO~O'{;]O~P#!ZO!Y-QO!Z(`X~O!Z-SO~O!d,zO#[,yO!Y#dX!Z#dX~O!Y-TO!Z(nX~O!Z-VO~O!`-WO!a-WO'|!lO~P# xO!Z-ZO~P'_Oj-^O!['ZO~O!V-cO~Oo!za!_!za!`!za!a!za#P!za#Q!za#R!za#S!za#T!za#W!za#X!za'|!za'}!za(Q!za([!za(g!za~P!#`O!o-hO#[-fO~PCOO!`-jO!a-jO'|!lO~PCnO`%kO#[-fO'r%kO~O`%kO!d#uO#[-fO'r%kO~O`%kO!d#uO!o-hO#[-fO'r%kO(h'kO~O'w'sO'x'sO'y-oO~Or-pO~O!V'Pa!Y'Pa~P!8dO!X-tO!V'PX!Y'PX~P%[O!Y(PO!V(_a~O!V(_a~PGbO!Y(WO!V(la~O!P%eO!X-xO![%fO'{%dO!V'VX!Y'VX~O#[-zO!Y(ja!j(ja`(ja'r(ja~O!d#uO~P#*aO!Y(dO!j(ia~O!P%eO![%fO#f.OO'{%dO~Ol.TO!P%eO!X.QO![%fO!{]O#e.SO#f.QO'{%dO!Y'YX!j'YX~O}.XO!k#xO~Og%VOj.[O!['ZO%c.ZO~O`#_i!Y#_i'r#_i'p#_i!V#_i!j#_ir#_i![#_i%c#_i!d#_i~P!8dOj<fO|)zO!P){O(o$}O(p%PO~O#g#Za`#Za#[#Za'r#Za!Y#Za!j#Za![#Za!V#Za~P#-]O#g(WXP(WXZ(WX`(WXn(WX}(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX'r(WX(X(WX(h(WX!j(WX!V(WX'p(WXr(WX![(WX%c(WX!d(WX~P!4qO!Y.iOf(bX~P!0}Of.kO~O!Y.lO!j(cX~P!8dO!j.oO~O!V.qO~OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#ii`#iin#ii!Y#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#j#ii~P#1XO#j$OO~P#1XOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO(XVOZ#ii`#ii!Y#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~On#ii~P#3yOn$QO~P#3yOP$]On$QO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO(XVO`#ii!Y#ii#t#ii#v#ii#x#ii#y#ii'r#ii(h#ii(o#ii(p#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P#6kOZ$dO!h$SO#o$SO#p$SO#q$cO#r$SO~P#6kOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO(p#}O`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii(o#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v$VO~P#9lO#v#ii~P#9lOP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO(XVO`#ii!Y#ii#x#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~O#v#ii(o#ii(p#ii~P#<^O#v$VO(o#|O(p#}O~P#<^OP$]OZ$dOn$QO|#yO}#zO!P#{O!h$SO!i#wO!k#xO!o$]O#j$OO#k$PO#l$PO#m$PO#n$RO#o$SO#p$SO#q$cO#r$SO#t$TO#v$VO#x$XO(XVO(o#|O(p#}O~O`#ii!Y#ii#y#ii'r#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#?UOP[XZ[Xn[X|[X}[X!P[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X!Y[X!Z[X~O#|[X~P#AoOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO#y:vO(XVO(h$ZO(o#|O(p#}O~O#|.sO~P#C|O#[:{O$O:{O#|(^X!Z(^X~P! [O`']a!Y']a'r']a'p']a!j']a!V']ar']a![']a%c']a!d']a~P!8dOP#iiZ#ii`#iin#ii}#ii!Y#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii'r#ii(X#ii(h#ii'p#ii!V#ii!j#iir#ii![#ii%c#ii!d#ii~P#-]O`#}i!Y#}i'r#}i'p#}i!V#}i!j#}ir#}i![#}i%c#}i!d#}i~P!8dO$Y.xO$[.xO~O$Y.yO$[.yO~O!d)cO#[.zO![$`X$W$`X$Y$`X$[$`X$c$`X~O!X.{O~O![)fO$W.}O$Y)eO$[)eO$c/OO~O!Y:wO!Z(]X~P#C|O!Z/PO~O!d)cO$c(qX~O$c/RO~Ot)uO(Y)vO(Z/UO~O!V/YO~P!&dO(o$}Oj%Za|%Za!P%Za(p%Za!Y%Za#[%Za~Of%Za#|%Za~P#L^O(p%POj%]a|%]a!P%]a(o%]a!Y%]a#[%]a~Of%]a#|%]a~P#MPO!YeX!deX!jeX!j$uX(heX~P!/tO!j/bO~P#-]O!Y/cO!d#uO(h'kO!j(uX~O!j/hO~O!X*WO'{%dO!j(uP~O#g/jO~O!V$uX!Y$uX!d$|X~P!/tO!Y/kO!V(vX~P#-]O!d/mO~O!V/oO~Og%VOn/sO!d#uO!k%bO(h'kO~O'{/uO~O!d+`O~O`%kO!Y/yO'r%kO~O!Z/{O~P!3xO!`/|O!a/|O'|!lO([!mO~O!P0OO([!mO~O#W0PO~Of%Za!Y%Za#[%Za#|%Za~P!0}Of%]a!Y%]a#[%]a#|%]a~P!0}O'{&UOf'fX!Y'fX~O!Y*rOf(Ua~Of0YO~O|0ZO}0ZO!P0[Ojya(oya(pya!Yya#[ya~Ofya#|ya~P$$jO|)zO!P){Oj$na(o$na(p$na!Y$na#[$na~Of$na#|$na~P$%`O|)zO!P){Oj$pa(o$pa(p$pa!Y$pa#[$pa~Of$pa#|$pa~P$&RO#g0^O~Of%Oa!Y%Oa#[%Oa#|%Oa~P!0}O!d#uO~O#g0aO~O!Y+TO`(za'r(za~O|#yO}#zO!P#{O!i#wO!k#xO(XVOP!qiZ!qin!qi!Y!qi!h!qi!o!qi#j!qi#k!qi#l!qi#m!qi#n!qi#o!qi#p!qi#q!qi#r!qi#t!qi#v!qi#x!qi#y!qi(h!qi(o!qi(p!qi~O`!qi'r!qi'p!qi!V!qi!j!qir!qi![!qi%c!qi!d!qi~P$'pOg%VOn$tOo$sOp$sOv%XOx%YOz;QO!P${O![$|O!f<`O!k$xO#f;WO$T%^O$o;SO$q;UO$t%_O'}TO(QUO(X$uO(o$}O(p%PO~Ol0kO'{0jO~P$*ZO!d+`O`(Ta![(Ta'r(Ta!Y(Ta~O#g0qO~OZ[X!YeX!ZeX~O!Y0rO!Z)OX~O!Z0tO~OZ0uO~Oa0wO'{+hO'}TO(QUO~O![%{O'{%dO_'nX!Y'nX~O!Y+mO_(}a~O!j0zO~P!8dOZ0}O~O_1OO~O#[1RO~Oj1UO![$|O~O([(xO!Z({P~Og%VOj1_O![1[O%c1^O~OZ1iO!Y1gO!Z(|X~O!Z1jO~O_1lO`%kO'r%kO~O'{#mO'}TO(QUO~O#[$eO$O$eOP(^XZ(^Xn(^X|(^X}(^X!P(^X!Y(^X!h(^X!k(^X!o(^X#j(^X#k(^X#l(^X#m(^X#n(^X#o(^X#p(^X#q(^X#t(^X#v(^X#x(^X#y(^X(X(^X(h(^X(o(^X(p(^X~O#r1oO&T1pO`(^X!i(^X~P$/qO#[$eO#r1oO&T1pO~O`1rO~P%[O`1tO~O&^1wOP&[iQ&[iR&[iX&[i`&[ic&[id&[il&[in&[io&[ip&[iv&[ix&[iz&[i!P&[i!T&[i!U&[i![&[i!f&[i!k&[i!n&[i!o&[i!p&[i!r&[i!t&[i!w&[i!{&[i#s&[i$T&[i%b&[i%d&[i%f&[i%g&[i%h&[i%k&[i%m&[i%p&[i%q&[i%s&[i&P&[i&V&[i&X&[i&Z&[i&]&[i&`&[i&f&[i&l&[i&n&[i&p&[i&r&[i&t&[i'p&[i'{&[i'}&[i(Q&[i(X&[i(g&[i(t&[i!Z&[ia&[i&c&[i~Oa1}O!Z1{O&c1|O~P`O![XO!k2PO~O&j,pOP&eiQ&eiR&eiX&ei`&eic&eid&eil&ein&eio&eip&eiv&eix&eiz&ei!P&ei!T&ei!U&ei![&ei!f&ei!k&ei!n&ei!o&ei!p&ei!r&ei!t&ei!w&ei!{&ei#s&ei$T&ei%b&ei%d&ei%f&ei%g&ei%h&ei%k&ei%m&ei%p&ei%q&ei%s&ei&P&ei&V&ei&X&ei&Z&ei&]&ei&`&ei&f&ei&l&ei&n&ei&p&ei&r&ei&t&ei'p&ei'{&ei'}&ei(Q&ei(X&ei(g&ei(t&ei!Z&ei&^&eia&ei&c&ei~O!V2VO~O!Y!^a!Z!^a~P#C|Oo!nO!P!oO!X2]O([!mO!Y'QX!Z'QX~P@UO!Y-QO!Z(`a~O!Y'WX!Z'WX~P!7lO!Y-TO!Z(na~O!Z2dO~P'_O`%kO#[2mO'r%kO~O`%kO!d#uO#[2mO'r%kO~O`%kO!d#uO!o2qO#[2mO'r%kO(h'kO~O`%kO'r%kO~P!8dO!Y$aOr$ma~O!V'Pi!Y'Pi~P!8dO!Y(PO!V(_i~O!Y(WO!V(li~O!V(mi!Y(mi~P!8dO!Y(ji!j(ji`(ji'r(ji~P!8dO#[2sO!Y(ji!j(ji`(ji'r(ji~O!Y(dO!j(ii~O!P%eO![%fO!{]O#e2xO#f2wO'{%dO~O!P%eO![%fO#f2wO'{%dO~Oj3PO!['ZO%c3OO~Og%VOj3PO!['ZO%c3OO~O#g%ZaP%ZaZ%Za`%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Zar%Za![%Za%c%Za!d%Za~P#L^O#g%]aP%]aZ%]a`%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]ar%]a![%]a%c%]a!d%]a~P#MPO#g%ZaP%ZaZ%Za`%Zan%Za}%Za!Y%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za'r%Za(X%Za(h%Za!j%Za!V%Za'p%Za#[%Zar%Za![%Za%c%Za!d%Za~P#-]O#g%]aP%]aZ%]a`%]an%]a}%]a!Y%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a'r%]a(X%]a(h%]a!j%]a!V%]a'p%]a#[%]ar%]a![%]a%c%]a!d%]a~P#-]O#gyaPyaZya`yanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya'rya(Xya(hya!jya!Vya'pyarya![ya%cya!dya~P$$jO#g$naP$naZ$na`$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na'r$na(X$na(h$na!j$na!V$na'p$nar$na![$na%c$na!d$na~P$%`O#g$paP$paZ$pa`$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa'r$pa(X$pa(h$pa!j$pa!V$pa'p$par$pa![$pa%c$pa!d$pa~P$&RO#g%OaP%OaZ%Oa`%Oan%Oa}%Oa!Y%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa'r%Oa(X%Oa(h%Oa!j%Oa!V%Oa'p%Oa#[%Oar%Oa![%Oa%c%Oa!d%Oa~P#-]O`#_q!Y#_q'r#_q'p#_q!V#_q!j#_qr#_q![#_q%c#_q!d#_q~P!8dOf'RX!Y'RX~P!(SO!Y.iOf(ba~O!X3ZO!Y'SX!j'SX~P%[O!Y.lO!j(ca~O!Y.lO!j(ca~P!8dO!V3^O~O#|!ma!Z!ma~PKOO#|!ea!Y!ea!Z!ea~P#C|O#|!qa!Z!qa~P!:}O#|!sa!Z!sa~P!=hORfO![3pO$a3qO~O!Z3uO~Or3vO~P#-]O`$jq!Y$jq'r$jq'p$jq!V$jq!j$jqr$jq![$jq%c$jq!d$jq~P!8dO!V3wO~P#-]O|)zO!P){O(p%POj'ba(o'ba!Y'ba#['ba~Of'ba#|'ba~P%)eO|)zO!P){Oj'da(o'da(p'da!Y'da#['da~Of'da#|'da~P%*WO(h$ZO~P#-]O!X3zO'{%dO!Y'^X!j'^X~O!Y/cO!j(ua~O!Y/cO!d#uO!j(ua~O!Y/cO!d#uO(h'kO!j(ua~Of$wi!Y$wi#[$wi#|$wi~P!0}O!X4SO'{*]O!V'`X!Y'`X~P!1lO!Y/kO!V(va~O!Y/kO!V(va~P#-]O!d#uO#r4[O~On4_O!d#uO(h'kO~O(o$}Oj%Zi|%Zi!P%Zi(p%Zi!Y%Zi#[%Zi~Of%Zi#|%Zi~P%-jO(p%POj%]i|%]i!P%]i(o%]i!Y%]i#[%]i~Of%]i#|%]i~P%.]Of(Vi!Y(Vi~P!0}O#[4fOf(Vi!Y(Vi~P!0}O!j4iO~O`$kq!Y$kq'r$kq'p$kq!V$kq!j$kqr$kq![$kq%c$kq!d$kq~P!8dO!V4mO~O!Y4nO![(wX~P#-]O!i#wO~P4XO`$uX![$uX%W[X'r$uX!Y$uX~P!/tO%W4pO`kXjkX|kX!PkX![kX'rkX(okX(pkX!YkX~O%W4pO~Oa4vO%d4wO'{+hO'}TO(QUO!Y'mX!Z'mX~O!Y0rO!Z)Oa~OZ4{O~O_4|O~O`%kO'r%kO~P#-]O![$|O~P#-]O!Y5UO#[5WO!Z({X~O!Z5XO~Oo!nO!P5YO!_!xO!`!uO!a!uO!{:dO#P!pO#Q!pO#R!pO#S!pO#T!pO#W5_O#X!yO'|!lO'}TO(QUO([!mO(g!sO~O!Z5^O~P%3nOj5dO![1[O%c5cO~Og%VOj5dO![1[O%c5cO~Oa5kO'{#mO'}TO(QUO!Y'lX!Z'lX~O!Y1gO!Z(|a~O'}TO(QUO([5mO~O_5qO~O#r5tO&T5uO~PMnO!j5vO~P%[O`5xO~O`5xO~P%[Oa1}O!Z5}O&c1|O~P`O!d6PO~O!d6ROg(ai!Y(ai!Z(ai!d(ai!k(ai~O!Y#di!Z#di~P#C|O#[6SO!Y#di!Z#di~O!Y!^i!Z!^i~P#C|O`%kO#[6]O'r%kO~O`%kO!d#uO#[6]O'r%kO~O!Y(jq!j(jq`(jq'r(jq~P!8dO!Y(dO!j(iq~O!P%eO![%fO#f6dO'{%dO~O!['ZO%c6gO~Oj6jO!['ZO%c6gO~O#g'baP'baZ'ba`'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba'r'ba(X'ba(h'ba!j'ba!V'ba'p'bar'ba!['ba%c'ba!d'ba~P%)eO#g'daP'daZ'da`'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da'r'da(X'da(h'da!j'da!V'da'p'dar'da!['da%c'da!d'da~P%*WO#g$wiP$wiZ$wi`$win$wi}$wi!Y$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi'r$wi(X$wi(h$wi!j$wi!V$wi'p$wi#[$wir$wi![$wi%c$wi!d$wi~P#-]O#g%ZiP%ZiZ%Zi`%Zin%Zi}%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi'r%Zi(X%Zi(h%Zi!j%Zi!V%Zi'p%Zir%Zi![%Zi%c%Zi!d%Zi~P%-jO#g%]iP%]iZ%]i`%]in%]i}%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i'r%]i(X%]i(h%]i!j%]i!V%]i'p%]ir%]i![%]i%c%]i!d%]i~P%.]Of'Ra!Y'Ra~P!0}O!Y'Sa!j'Sa~P!8dO!Y.lO!j(ci~O#|#_i!Y#_i!Z#_i~P#C|OP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O(XVOZ#iin#ii!h#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~O#j#ii~P%FnO#j:lO~P%FnOP$]O|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO(XVOZ#ii!h#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~On#ii~P%HyOn:nO~P%HyOP$]On:nO|#yO}#zO!P#{O!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO(XVO#t#ii#v#ii#x#ii#y#ii#|#ii(h#ii(o#ii(p#ii!Y#ii!Z#ii~OZ#ii!h#ii#o#ii#p#ii#q#ii#r#ii~P%KUOZ:zO!h:pO#o:pO#p:pO#q:yO#r:pO~P%KUOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO(p#}O#x#ii#y#ii#|#ii(h#ii(o#ii!Y#ii!Z#ii~O#v:sO~P%MpO#v#ii~P%MpOP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO(XVO#x#ii#y#ii#|#ii(h#ii!Y#ii!Z#ii~O#v#ii(o#ii(p#ii~P& {O#v:sO(o#|O(p#}O~P& {OP$]OZ:zOn:nO|#yO}#zO!P#{O!h:pO!i#wO!k#xO!o$]O#j:lO#k:mO#l:mO#m:mO#n:oO#o:pO#p:pO#q:yO#r:pO#t:qO#v:sO#x:uO(XVO(o#|O(p#}O~O#y#ii#|#ii(h#ii!Y#ii!Z#ii~P&$^O`#zy!Y#zy'r#zy'p#zy!V#zy!j#zyr#zy![#zy%c#zy!d#zy~P!8dOj<gO|)zO!P){O(o$}O(p%PO~OP#iiZ#iin#ii}#ii!h#ii!i#ii!k#ii!o#ii#j#ii#k#ii#l#ii#m#ii#n#ii#o#ii#p#ii#q#ii#r#ii#t#ii#v#ii#x#ii#y#ii#|#ii(X#ii(h#ii!Y#ii!Z#ii~P&'UO!i#wOP(WXZ(WXj(WXn(WX|(WX}(WX!P(WX!h(WX!k(WX!o(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#p(WX#q(WX#r(WX#t(WX#v(WX#x(WX#y(WX#|(WX(X(WX(h(WX(o(WX(p(WX!Y(WX!Z(WX~O#|#}i!Y#}i!Z#}i~P#C|O#|!qi!Z!qi~P$'pO!Z6|O~O!Y']a!Z']a~P#C|O!d#uO(h'kO!Y'^a!j'^a~O!Y/cO!j(ui~O!Y/cO!d#uO!j(ui~Of$wq!Y$wq#[$wq#|$wq~P!0}O!V'`a!Y'`a~P#-]O!d7TO~O!Y/kO!V(vi~P#-]O!Y/kO!V(vi~O!V7XO~O!d#uO#r7^O~On7_O!d#uO(h'kO~O|)zO!P){O(p%POj'ca(o'ca!Y'ca#['ca~Of'ca#|'ca~P&.fO|)zO!P){Oj'ea(o'ea(p'ea!Y'ea#['ea~Of'ea#|'ea~P&/XO!V7aO~Of$yq!Y$yq#[$yq#|$yq~P!0}O`$ky!Y$ky'r$ky'p$ky!V$ky!j$kyr$ky![$ky%c$ky!d$ky~P!8dO!d6RO~O!Y4nO![(wa~O`#_y!Y#_y'r#_y'p#_y!V#_y!j#_yr#_y![#_y%c#_y!d#_y~P!8dOZ7fO~Oa7hO'{+hO'}TO(QUO~O!Y0rO!Z)Oi~O_7lO~O([(xO!Y'iX!Z'iX~O!Y5UO!Z({a~OlkO'{7sO~P.iO!Z7vO~P%3nOo!nO!P7wO'}TO(QUO([!mO(g!sO~O![1[O~O![1[O%c7yO~Oj7|O![1[O%c7yO~OZ8RO!Y'la!Z'la~O!Y1gO!Z(|i~O!j8VO~O!j8WO~O!j8ZO~O!j8ZO~P%[O`8]O~O!d8^O~O!j8_O~O!Y(mi!Z(mi~P#C|O`%kO#[8gO'r%kO~O!Y(jy!j(jy`(jy'r(jy~P!8dO!Y(dO!j(iy~O!['ZO%c8jO~O#g$wqP$wqZ$wq`$wqn$wq}$wq!Y$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq'r$wq(X$wq(h$wq!j$wq!V$wq'p$wq#[$wqr$wq![$wq%c$wq!d$wq~P#-]O#g'caP'caZ'ca`'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca'r'ca(X'ca(h'ca!j'ca!V'ca'p'car'ca!['ca%c'ca!d'ca~P&.fO#g'eaP'eaZ'ea`'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea'r'ea(X'ea(h'ea!j'ea!V'ea'p'ear'ea!['ea%c'ea!d'ea~P&/XO#g$yqP$yqZ$yq`$yqn$yq}$yq!Y$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq'r$yq(X$yq(h$yq!j$yq!V$yq'p$yq#[$yqr$yq![$yq%c$yq!d$yq~P#-]O!Y'Si!j'Si~P!8dO#|#_q!Y#_q!Z#_q~P#C|O(o$}OP%ZaZ%Zan%Za}%Za!h%Za!i%Za!k%Za!o%Za#j%Za#k%Za#l%Za#m%Za#n%Za#o%Za#p%Za#q%Za#r%Za#t%Za#v%Za#x%Za#y%Za#|%Za(X%Za(h%Za!Y%Za!Z%Za~Oj%Za|%Za!P%Za(p%Za~P&@nO(p%POP%]aZ%]an%]a}%]a!h%]a!i%]a!k%]a!o%]a#j%]a#k%]a#l%]a#m%]a#n%]a#o%]a#p%]a#q%]a#r%]a#t%]a#v%]a#x%]a#y%]a#|%]a(X%]a(h%]a!Y%]a!Z%]a~Oj%]a|%]a!P%]a(o%]a~P&BuOj<gO|)zO!P){O(p%PO~P&@nOj<gO|)zO!P){O(o$}O~P&BuO|0ZO}0ZO!P0[OPyaZyajyanya!hya!iya!kya!oya#jya#kya#lya#mya#nya#oya#pya#qya#rya#tya#vya#xya#yya#|ya(Xya(hya(oya(pya!Yya!Zya~O|)zO!P){OP$naZ$naj$nan$na}$na!h$na!i$na!k$na!o$na#j$na#k$na#l$na#m$na#n$na#o$na#p$na#q$na#r$na#t$na#v$na#x$na#y$na#|$na(X$na(h$na(o$na(p$na!Y$na!Z$na~O|)zO!P){OP$paZ$paj$pan$pa}$pa!h$pa!i$pa!k$pa!o$pa#j$pa#k$pa#l$pa#m$pa#n$pa#o$pa#p$pa#q$pa#r$pa#t$pa#v$pa#x$pa#y$pa#|$pa(X$pa(h$pa(o$pa(p$pa!Y$pa!Z$pa~OP%OaZ%Oan%Oa}%Oa!h%Oa!i%Oa!k%Oa!o%Oa#j%Oa#k%Oa#l%Oa#m%Oa#n%Oa#o%Oa#p%Oa#q%Oa#r%Oa#t%Oa#v%Oa#x%Oa#y%Oa#|%Oa(X%Oa(h%Oa!Y%Oa!Z%Oa~P&'UO#|$jq!Y$jq!Z$jq~P#C|O#|$kq!Y$kq!Z$kq~P#C|O!Z8vO~O#|8wO~P!0}O!d#uO!Y'^i!j'^i~O!d#uO(h'kO!Y'^i!j'^i~O!Y/cO!j(uq~O!V'`i!Y'`i~P#-]O!Y/kO!V(vq~O!V8}O~P#-]O!V8}O~Of(Vy!Y(Vy~P!0}O!Y'ga!['ga~P#-]O`%Vq![%Vq'r%Vq!Y%Vq~P#-]OZ9SO~O!Y0rO!Z)Oq~O#[9WO!Y'ia!Z'ia~O!Y5UO!Z({i~P#C|OP[XZ[Xn[X|[X}[X!P[X!V[X!Y[X!h[X!i[X!k[X!o[X#[[X#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!d%TX#r%TX~P'#`O![1[O%c9[O~O'}TO(QUO([9aO~O!Y1gO!Z(|q~O!j9dO~O!j9eO~O!j9fO~O!j9fO~P%[O#[9iO!Y#dy!Z#dy~O!Y#dy!Z#dy~P#C|O!['ZO%c9nO~O#|#zy!Y#zy!Z#zy~P#C|OP$wiZ$win$wi}$wi!h$wi!i$wi!k$wi!o$wi#j$wi#k$wi#l$wi#m$wi#n$wi#o$wi#p$wi#q$wi#r$wi#t$wi#v$wi#x$wi#y$wi#|$wi(X$wi(h$wi!Y$wi!Z$wi~P&'UO|)zO!P){O(p%POP'baZ'baj'ban'ba}'ba!h'ba!i'ba!k'ba!o'ba#j'ba#k'ba#l'ba#m'ba#n'ba#o'ba#p'ba#q'ba#r'ba#t'ba#v'ba#x'ba#y'ba#|'ba(X'ba(h'ba(o'ba!Y'ba!Z'ba~O|)zO!P){OP'daZ'daj'dan'da}'da!h'da!i'da!k'da!o'da#j'da#k'da#l'da#m'da#n'da#o'da#p'da#q'da#r'da#t'da#v'da#x'da#y'da#|'da(X'da(h'da(o'da(p'da!Y'da!Z'da~O(o$}OP%ZiZ%Zij%Zin%Zi|%Zi}%Zi!P%Zi!h%Zi!i%Zi!k%Zi!o%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#p%Zi#q%Zi#r%Zi#t%Zi#v%Zi#x%Zi#y%Zi#|%Zi(X%Zi(h%Zi(p%Zi!Y%Zi!Z%Zi~O(p%POP%]iZ%]ij%]in%]i|%]i}%]i!P%]i!h%]i!i%]i!k%]i!o%]i#j%]i#k%]i#l%]i#m%]i#n%]i#o%]i#p%]i#q%]i#r%]i#t%]i#v%]i#x%]i#y%]i#|%]i(X%]i(h%]i(o%]i!Y%]i!Z%]i~O#|$ky!Y$ky!Z$ky~P#C|O#|#_y!Y#_y!Z#_y~P#C|O!d#uO!Y'^q!j'^q~O!Y/cO!j(uy~O!V'`q!Y'`q~P#-]O!V9wO~P#-]O!Y0rO!Z)Oy~O!Y5UO!Z({q~O![1[O%c:OO~O!j:RO~O!['ZO%c:WO~OP$wqZ$wqn$wq}$wq!h$wq!i$wq!k$wq!o$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#p$wq#q$wq#r$wq#t$wq#v$wq#x$wq#y$wq#|$wq(X$wq(h$wq!Y$wq!Z$wq~P&'UO|)zO!P){O(p%POP'caZ'caj'can'ca}'ca!h'ca!i'ca!k'ca!o'ca#j'ca#k'ca#l'ca#m'ca#n'ca#o'ca#p'ca#q'ca#r'ca#t'ca#v'ca#x'ca#y'ca#|'ca(X'ca(h'ca(o'ca!Y'ca!Z'ca~O|)zO!P){OP'eaZ'eaj'ean'ea}'ea!h'ea!i'ea!k'ea!o'ea#j'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#t'ea#v'ea#x'ea#y'ea#|'ea(X'ea(h'ea(o'ea(p'ea!Y'ea!Z'ea~OP$yqZ$yqn$yq}$yq!h$yq!i$yq!k$yq!o$yq#j$yq#k$yq#l$yq#m$yq#n$yq#o$yq#p$yq#q$yq#r$yq#t$yq#v$yq#x$yq#y$yq#|$yq(X$yq(h$yq!Y$yq!Z$yq~P&'UOf%_!Z!Y%_!Z#[%_!Z#|%_!Z~P!0}O!Y'iq!Z'iq~P#C|O!Y#d!Z!Z#d!Z~P#C|O#g%_!ZP%_!ZZ%_!Z`%_!Zn%_!Z}%_!Z!Y%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z'r%_!Z(X%_!Z(h%_!Z!j%_!Z!V%_!Z'p%_!Z#[%_!Zr%_!Z![%_!Z%c%_!Z!d%_!Z~P#-]OP%_!ZZ%_!Zn%_!Z}%_!Z!h%_!Z!i%_!Z!k%_!Z!o%_!Z#j%_!Z#k%_!Z#l%_!Z#m%_!Z#n%_!Z#o%_!Z#p%_!Z#q%_!Z#r%_!Z#t%_!Z#v%_!Z#x%_!Z#y%_!Z#|%_!Z(X%_!Z(h%_!Z!Y%_!Z!Z%_!Z~P&'UOr(]X~P1qO'|!lO~P!*fO!VeX!YeX#[eX~P'#`OP[XZ[Xn[X|[X}[X!P[X!Y[X!YeX!h[X!i[X!k[X!o[X#[[X#[eX#geX#j[X#k[X#l[X#m[X#n[X#o[X#p[X#q[X#r[X#t[X#v[X#x[X#y[X$O[X(X[X(h[X(o[X(p[X~O!deX!j[X!jeX(heX~P'ASOP:cOQ:cORfOc<[Od!iOlkOn:cOokOpkOvkOx:cOz:cO!PWO!TkO!UkO![XO!f:fO!kZO!n:cO!o:cO!p:cO!r:gO!t:jO!w!hO$T!kO'{)YO'}TO(QUO(XVO(g[O(t<YO~O!Y:wO!Z$ma~Og%VOl%WOn$tOo$sOp$sOv%XOx%YOz;RO!P${O![$|O!f<aO!k$xO#f;XO$T%^O$o;TO$q;VO$t%_O'{(pO'}TO(QUO(X$uO(o$}O(p%PO~O#s)aO~P'ExO!Z[X!ZeX~P'ASO#g:kO~O!d#uO#g:kO~O#[:{O~O#r:pO~O#[;ZO!Y(mX!Z(mX~O#[:{O!Y(kX!Z(kX~O#g;[O~Of;^O~P!0}O#g;cO~O#g;dO~O!d#uO#g;eO~O!d#uO#g;[O~O#|;fO~P#C|O#g;gO~O#g;hO~O#g;mO~O#g;nO~O#g;oO~O#g;pO~O#|;qO~P!0}O#|;rO~P!0}O!i#P#Q#S#T#W#e#f#q(t$o$q$t%W%b%c%d%k%m%p%q%s%u~'vS#k!U't'|#lo#j#mn|'u$Y'u'{$[([~",
137
+ goto: "$2p)SPPPPP)TPP)WP)iP*x.|PPPP5pPP6WPP<S?gP?zP?zPPP?zPAxP?zP?zP?zPA|PPBRPBlPGdPPPGhPPPPGhJiPPPJoKjPGhPMxPPPP!!WGhPPPGhPGhP!$fGhP!'z!(|!)VP!)y!)}!)yPPPPP!-Y!(|PP!-v!.pP!1dGhGh!1i!4s!9Y!9Y!=OPPP!=VGhPPPPPPPPPPP!@dP!AqPPGh!CSPGhPGhGhGhGhPGh!DfP!GnP!JrP!Jv!KQ!KU!KUP!GkP!KY!KYP!N^P!NbGhGh!Nh##k?zP?zP?z?zP#$v?z?z#'O?z#)k?z#+m?z?z#,[#.f#.f#.j#.r#.f#.zP#.fP?z#/d?z#3R?z?z5pPPP#6vPPP#7a#7aP#7aP#7w#7aPP#7}P#7tP#7t#8b#7t#8|#9S5m)W#9V)WP#9^#9^#9^P)WP)WP)WP)WPP)WP#9d#9gP#9g)WP#9kP#9nP)WP)WP)WP)WP)WP)W)WPP#9t#9z#:V#:]#:c#:i#:o#:}#;T#;Z#;e#;k#;u#<U#<[#<|#=`#=f#=l#=z#>a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#Ip#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ&S|Q'P!eS'V%f-TQ+k%{Q,Z&bQ0]*yQ0w+lQ0|+rQ1m,_Q1n,`Q4v0rQ5P1OQ5k1gQ5n1iQ5o1lQ7h4wQ7k4|Q8U5qQ9V7lR9b8RrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR,]&f&v^OPXYstuvwz!Z!`!g!j!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O']'m(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<[<][#[WZ#V#Y'S'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ%sxQ%wyS%||&RQ&Y!TQ'^!hQ'`!iQ(k#rS*V$x*ZS+e%x%yQ+i%{Q,S&]Q,W&_S-a'a'bQ.^(lQ/g*WQ0p+fQ0v+lQ0x+mQ0{+qQ1a,TS1e,X,YQ2i-bQ3y/cQ4u0rQ4y0uQ5O0}Q5j1fQ7Q3zQ7g4wQ7j4{Q9R7fR9y9S!O$zi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c!S%uy!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^Q+_%sQ+x&VQ+{&WQ,V&_Q.](kQ1`,SU1d,W,X,YQ3Q.^Q5e1aS5i1e1fQ8Q5j#W<^#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go<_:y:z:};P;T;V;X;`;b;d;h;j;l;n;rW%Ti%V*r<YS&V!Q&dQ&W!RQ&X!SR+v&T$w%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gT)v$u)wV*v%Z;Q;RU'V!e%f-TS(y#y#zQ+p&OS.V(g(hQ1V+|Q4g0ZR7p5U&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]$i$`c#X#d%n%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.t.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PT#SV#T&}kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q'T!eR2^-Qv!nQ!e!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_S*b$|*hS/t*c*jQ/}*kQ1X,OQ4^/|R4a0PnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&t!^Q'q!wS(m#t:kQ+c%vQ,Q&YQ,R&[Q-_'_Q-l'jS.g(r;[S0`+O;eQ0n+dQ1Z,PQ2O,oQ2Q,pQ2Y,{Q2g-`Q2j-dS4l0a;oQ4q0oS4t0q;pQ6T2[Q6X2hQ6^2oQ7e4rQ8b6VQ8c6YQ8f6_R9h8_$d$_c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(j#o'dU*o%R(q3mS+Y%n.tQ2|0hQ6f2{Q8l6iR9o8m$d$^c#X#d%o%q'|(S(n(u(})O)P)Q)R)S)T)U)V)W)X)Z)^)b)l+Z+o-O-m-r-w-y.h.n.r.u.v/V0_2W2Z2k2r3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3n3o3t4k4s6U6[6a6o6p6y6z7r8a8e8n8t8u9k9{:S:e<PS(i#o'dS({#z$_S+X%n.tS.W(h(jQ.w)]Q0e+YR2y.X&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S#p]:dQ&o!XQ&p!YQ&r![Q&s!]R1v,kQ'[!hQ+[%sQ-]'^S.Y(k+_Q2e-[W2}.].^0g0iQ6W2fU6e2z2|3QS8i6f6hS9m8k8lS:U9l9oQ:^:VR:a:_U!vQ'Z-YT5Z1[5]!Q_OXZ`st!V!Z#c#g%b%j&d&f&m&o&p&r(d,h,m.P1w1z]!pQ!r'Z-Y1[5]T#p]:d%Y{OPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS(y#y#zS.V(g(h!s;v$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Y!tQ'Z-Y1[5]Q'f!rS'p!u!xS'r!y5_S-i'g'hQ-k'iR2p-jQ'o!tS(`#f1qS-h'f'rQ/f*VQ/r*bQ2q-kQ4O/gS4X/s/}Q7P3yS7[4_4aQ8y7QR9Q7_Q#vbQ'n!tS(_#f1qS(a#l*}Q+P%cQ+a%tQ+g%zU-g'f'o'rQ-{(`Q/e*VQ/q*bQ/w*eQ0m+bQ1b,US2n-h-kQ2v.TS3}/f/gS4W/r/}Q4Z/vQ4]/xQ5g1cQ6`2qQ7O3yQ7S4OS7W4X4aQ7]4`Q8O5hS8x7P7QQ8|7XQ9O7[Q9_8PQ9u8yQ9v8}Q9x9QQ:Q9`Q:Y9wQ;y;tQ<U;}R<V<OV!vQ'Z-Y%YaOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gS#vz!j!r;s$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;y<[%YbOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gQ%cj!S%ty!i!t%w%x%y'Q'`'a'b'f'p*b+e+f,}-a-b-i/t0p2b2i2p4^S%zz!jQ+b%uQ,U&_W1c,V,W,X,YU5h1d1e1fS8P5i5jQ9`8Q!r;t$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q;}<ZR<O<[$|eOPXYstuvw!Z!`!g!o#R#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8gY#aWZ#V#Y'}!S%gm#g#h#k%b%e(W(b(c(d+Q+R+T,d,z-x.O.P.Q.S2P2w2x6R6dQ,c&j!p;u$[$m)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]R;x'SS'W!e%fR2`-T%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8g!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q,b&jQ0h+^Q2{.[Q6i3PR8m6j!b$Uc#X%n'|(S(n(u)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!P:r)Z)l-O.t2W2Z3_3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!f$Wc#X%n'|(S(n(u)T)U)W)X)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:e!T:t)Z)l-O.t2W2Z3_3f3g3i3j3n3t6U6p6y6z7r8a8n8t8u9{:S<P!^$[c#X%n'|(S(n(u)^)b+o-m-r-w-y.h.n/V0_2k2r3Y3k4k4s6[6a6o8e9k:eQ3x/az<])Z)l-O.t2W2Z3_3n3t6U6p6y6z7r8a8n8t8u9{:S<PQ<b<dR<c<e&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]S$nh$oR3q.z'TgOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$jf$pQ$hfS)e$k)iR)q$pT$if$pT)g$k)i'ThOPWXYZhstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m$o%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.z.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]T$nh$oQ$qhR)p$o%YjOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&j&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S+^,e,h,m-^-f-t-z.[.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3P3Z5Y5d5t5u5x6]6j7w7|8]8g!s<Z$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]#clOPXZst!Z!`!o#R#c#n#{$m%j&f&i&j&m&o&p&r&v'O'](z)n+S+^,e,h,m-^.[.{0[1_1o1p1r1t1w1z1|3P3p5Y5d5t5u5x6j7w7|8]!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gQ*z%_Q/W)zo3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!O$yi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cQ*[$zS*e$|*hQ*{%`Q/x*f#W;{#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;|:y:z:};P;T;V;X;`;b;d;h;j;l;n;rQ<Q<^Q<R<_Q<S<`R<T<a!O%Ri#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<c#W(q#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<go3m:y:z:};P;T;V;X;`;b;d;h;j;l;n;rnoOXst!Z#c%j&m&o&p&r,h,m1w1zQ*_${Q,v&yQ,w&{R4R/k$v%Si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r<Y<b<c<f<gQ+y&WQ1T+{Q5S1SR7o5TT*g$|*hS*g$|*hT5[1[5]S/v*d5YT4`0O7wQ+a%tQ/w*eQ0m+bQ1b,UQ5g1cQ8O5hQ9_8PR:Q9`!O%Oi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cr)}$v(s*O*n*|/i0U0V3W4P4j6}7`9t;z<W<XS0Q*m0R#W:|#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn:}:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!^;_(o)`*U*^._.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<e`;`3l6q6t6x8o9p9s:bS;i.a3UT;j6s8r!O%Qi#w%O%Q%[%]%a)}*P*Y*p*q.i/j0Q0S0^3x4f8w<Y<b<cv*P$v(s*Q*m*|/]/i0U0V3W4P4b4j6}7`9t;z<W<XS0S*n0T#W;O#u$c$d$x${)u){*R*`+]+`+w+z.Z/Z/k/m1R1U1^3O4S4[4n4p5c6g7T7^7y8j9[9n:O:W:|;O;S;U;W;_;a;c;g;i;k;m;q<f<gn;P:y:z:};P;T;V;X;`;b;d;h;j;l;n;r!b;a(o)`*U*^.`.a.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<ed;b3l6r6s6x8o8p9p9q9s:bS;k.b3VT;l6t8srnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ&a!UR,e&jrnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zR&a!UQ+}&XR1P+vsnOXst!V!Z#c%j&d&m&o&p&r,h,m1w1zQ1],SS5b1`1aU7x5`5a5eS9Z7z7{S9|9Y9]Q:Z9}R:`:[Q&h!VR,^&dR5n1iS%||&RR0x+mQ&m!WR,h&nR,n&sT1x,m1zR,r&tQ,q&tR2R,rQ't!zR-n'tSsOtQ#cXT%ms#cQ!}TR'v!}Q#QUR'x#QQ)w$uR/T)wQ#TVR'z#TQ#WWU(Q#W(R-uQ(R#XR-u(SQ-R'TR2_-RQ.j(sR3X.jQ.m(uS3[.m3]R3].nQ-Y'ZR2c-YY!rQ'Z-Y1[5]R'e!rS#^W%eU(X#^(Y-vQ(Y#_R-v(TQ-U'WR2a-Ut`OXst!V!Z#c%j&d&f&m&o&p&r,h,m1w1zS#gZ%bU#q`#g.PR.P(dQ(e#iQ-|(aW.U(e-|2t6bQ2t-}R6b2uQ)i$kR.|)iQ$ohR)o$oQ$bcU)_$b-q:xQ-q:eR:x)lQ/d*VW3{/d3|7R8zU3|/e/f/gS7R3}4OR8z7S$X)|$v(o(s)`*U*^*m*n*w*x*|.a.b.d.e.f/S/X/]/_/a/i/n0U0V0f1Q1S3R3S3T3W3l4P4Q4U4b4d4j5R5T6k6l6m6n6s6t6v6w6x6}7U7Y7`7b7d8o8p8q8{9P9p9q9r9s9t:X:b;z<W<X<d<eQ/l*^U4T/l4V7VQ4V/nR7V4UQ*h$|R/z*hr*O$v(s*m*n*|/i0U0V3W4P4j6}7`9t;z<W<X!^._(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3T4Q4U5R5T6k6n7U7Y7b7d8{9P:X<d<eU/^*O._6qa6q3l6s6t6x8o9p9s:bQ0R*mQ3U.aU4c0R3U8rR8r6sv*Q$v(s*m*n*|/]/i0U0V3W4P4b4j6}7`9t;z<W<X!b.`(o)`*U*^.a.b.f/S/X/a/n0f1Q1S3R3T4Q4U5R5T6k6l6n7U7Y7b7d8{9P:X<d<eU/`*Q.`6re6r3l6s6t6x8o8p9p9q9s:bQ0T*nQ3V.bU4e0T3V8sR8s6tQ*s%UR0X*sQ4o0fR7c4oQ+U%hR0d+UQ5V1VS7q5V9XR9X7rQ,P&YR1Y,PQ5]1[R7u5]Q1h,ZS5l1h8SR8S5nQ0s+iW4x0s4z7i9TQ4z0vQ7i4yR9T7jQ+n%|R0y+nQ1z,mR5|1zYrOXst#cQ&q!ZQ+W%jQ,g&mQ,i&oQ,j&pQ,l&rQ1u,hS1x,m1zR5{1wQ%lpQ&u!_Q&x!aQ&z!bQ&|!cQ'l!tQ+V%iQ+c%vQ+u&SQ,]&hQ,t&wW-e'f'n'o'rQ-l'jQ/y*gQ0n+dS1k,^,aQ2S,sQ2T,vQ2U,wQ2j-dW2l-g-h-k-mQ4q0oQ4}0|Q5Q1QQ5f1bQ5p1mQ5z1vU6Z2k2n2qQ6^2oQ7e4rQ7m5PQ7n5RQ7t5[Q7}5gQ8T5oS8d6[6`Q8f6_Q9U7kQ9^8OQ9c8UQ9j8eQ9z9VQ:P9_Q:T9kR:]:QQ%vyQ'_!iQ'j!tU+d%w%x%yQ,{'QU-`'`'a'bS-d'f'pQ/p*bS0o+e+fQ2[,}S2h-a-bQ2o-iQ4Y/tQ4r0pQ6V2bQ6Y2iQ6_2pR7Z4^S$wi<YR*t%VU%Ui%V<YR0W*rQ$viS(o#u+`Q(s#wS)`$c$dQ*U$xQ*^${Q*m%OQ*n%QQ*w%[Q*x%]Q*|%aQ.a:|Q.b;OQ.d;SQ.e;UQ.f;WQ/S)uS/X){/ZQ/])}Q/_*PQ/a*RQ/i*YQ/n*`Q0U*pQ0V*qh0f+].Z1^3O5c6g7y8j9[9n:O:WQ1Q+wQ1S+zQ3R;_Q3S;aQ3T;cQ3W.iS3l:y:zQ4P/jQ4Q/kQ4U/mQ4b0QQ4d0SQ4j0^Q5R1RQ5T1UQ6k;gQ6l;iQ6m;kQ6n;mQ6s:}Q6t;PQ6v;TQ6w;VQ6x;XQ6}3xQ7U4SQ7Y4[Q7`4fQ7b4nQ7d4pQ8o;dQ8p;`Q8q;bQ8{7TQ9P7^Q9p;hQ9q;jQ9r;lQ9s;nQ9t8wQ:X;qQ:b;rQ;z<YQ<W<bQ<X<cQ<d<fR<e<gnpOXst!Z#c%j&m&o&p&r,h,m1w1zQ!fPS#eZ#nQ&w!`U'c!o5Y7wQ'y#RQ(|#{Q)m$mS,a&f&iQ,f&jQ,s&vQ,x'OQ-[']Q.p(zQ/Q)nQ0b+SQ0i+^Q1s,eQ2f-^Q2|.[Q3s.{Q4h0[Q5a1_Q5r1oQ5s1pQ5w1rQ5y1tQ6O1|Q6f3PQ6{3pQ7{5dQ8X5tQ8Y5uQ8[5xQ8l6jQ9]7|R9g8]#WcOPXZst!Z!`!o#c#n#{%j&f&i&j&m&o&p&r&v'O'](z+S+^,e,h,m-^.[0[1_1o1p1r1t1w1z1|3P5Y5d5t5u5x6j7w7|8]Q#XWQ#dYQ%nuQ%ovS%qw!gS'|#V(PQ(S#YQ(n#tQ(u#xQ(}$OQ)O$PQ)P$QQ)Q$RQ)R$SQ)S$TQ)T$UQ)U$VQ)V$WQ)W$XQ)X$YQ)Z$[Q)^$aQ)b$eW)l$m)n.{3pQ+Z%pQ+o%}S-O'S2]Q-m'mS-r'}-tQ-w(VQ-y(^Q.h(rQ.n(vQ.r:cQ.t:fQ.u:gQ.v:jQ/V)yQ0_+OQ2W,yQ2Z,|Q2k-fQ2r-zQ3Y.lQ3_:kQ3`:lQ3a:mQ3b:nQ3c:oQ3d:pQ3e:qQ3f:rQ3g:sQ3h:tQ3i:uQ3j:vQ3k.sQ3n:{Q3o;YQ3t:wQ4k0aQ4s0qQ6U;ZQ6[2mQ6a2sQ6o3ZQ6p;[Q6y;^Q6z;eQ7r5WQ8a6SQ8e6]Q8n;fQ8t;oQ8u;pQ9k8gQ9{9WQ:S9iQ:e#RR<P<]R#ZWR'U!eY!tQ'Z-Y1[5]S'Q!e-QQ'f!rS'p!u!xS'r!y5_S,}'R'YS-i'g'hQ-k'iQ2b-WR2p-jR(t#wR(w#xQ!fQT-X'Z-Y]!qQ!r'Z-Y1[5]Q#o]R'd:dT#jZ%bS#iZ%bS%hm,dU(a#g#h#kS-}(b(cQ.R(dQ0c+TQ2u.OU2v.P.Q.SS6c2w2xR8h6d`#]W#V#Y%e'}(W+Q-xr#fZm#g#h#k%b(b(c(d+T.O.P.Q.S2w2x6dQ1q,dQ2X,zQ6Q2PQ8`6RT;w'S+RT#`W%eS#_W%eS(O#V(WS(T#Y+QS-P'S+RT-s'}-xT'X!e%fQ$kfR)s$pT)h$k)iR3r.zT*X$x*ZR*a${Q0g+]Q2z.ZQ5`1^Q6h3OQ7z5cQ8k6gQ9Y7yQ9l8jQ9}9[Q:V9nQ:[:OR:_:WnqOXst!Z#c%j&m&o&p&r,h,m1w1zQ&g!VR,]&dtmOXst!U!V!Z#c%j&d&m&o&p&r,h,m1w1zR,d&jT%im,dR1W+|R,[&bQ&Q|R+t&RR+j%{T&k!W&nT&l!W&nT1y,m1z",
138
+ nodeNames: "⚠ ArithOp ArithOp JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",
139
+ maxTerm: 371,
140
+ context: fO,
141
+ nodeProps: [
142
+ ["isolate", -8, 4, 5, 13, 33, 35, 48, 50, 52, ""],
143
+ ["group", -26, 8, 16, 18, 65, 201, 205, 209, 210, 212, 215, 218, 228, 230, 236, 238, 240, 242, 245, 251, 257, 259, 261, 263, 265, 267, 268, "Statement", -32, 12, 13, 28, 31, 32, 38, 48, 51, 52, 54, 59, 67, 75, 79, 81, 83, 84, 106, 107, 116, 117, 134, 137, 139, 140, 141, 142, 144, 145, 164, 165, 167, "Expression", -23, 27, 29, 33, 37, 39, 41, 168, 170, 172, 173, 175, 176, 177, 179, 180, 181, 183, 184, 185, 195, 197, 199, 200, "Type", -3, 87, 99, 105, "ClassItem"],
144
+ ["openedBy", 22, "<", 34, "InterpolationStart", 53, "[", 57, "{", 72, "(", 157, "JSXStartCloseTag"],
145
+ ["closedBy", 23, ">", 36, "InterpolationEnd", 47, "]", 58, "}", 73, ")", 162, "JSXEndTag"]
146
+ ],
147
+ propSources: [yO],
148
+ skippedNodes: [0, 4, 5, 271],
149
+ repeatNodeCount: 37,
150
+ tokenData: "$Fj(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Ns!`!a$#_!a!b$(l!b!c$,k!c!}Er!}#O$-u#O#P$/P#P#Q$4h#Q#R$5r#R#SEr#S#T$7P#T#o$8Z#o#p$<k#p#q$=a#q#r$>q#r#s$?}#s$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$I|Er$I|$I}$Dd$I}$JO$Dd$JO$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(n%d_$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$f&j(Op(R!b't(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(P#S$f&j'u(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$f&j(Op(R!b'u(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$f&j!o$Ip(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|3l_'}$(n$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$f&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$a`$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$a``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$a`$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(R!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$a`(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k#%|:hh$f&j(Op(R!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__VS$f&j(Op(R!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]VS$f&j(R!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXVS$f&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSVSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWVS(R!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]VS$f&j(OpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWVS(OpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYVS(Op(R!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S#%|C}i$f&j(g!L^(Op(R!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr#%|EoP;=`<%lCr(CSFRk$f&j(Op(R!b$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$f&j(Op(R!b$Y#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv(CSJPP;=`<%lEr%#SJ_`$f&j(Op(R!b#l$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SKl_$f&j$O$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&COLva(p&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SNW`$f&j#x$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|! c_(Q$)`$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$f&j(OpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$f&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$a`$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(OpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$a`(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b(*Q!'t_!k(!b$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'l!)O_!jM|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h!*[b$f&j(Op(R!b'|#)d#m$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S!+o`$f&j(Op(R!b#j$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&-O!,|`$f&j(Op(R!bn&%`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&C[!.Z_!Y&;l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!/ec$f&j(Op(R!b|'<nOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!0ya$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!2Z_!XMt$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!3eg$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!5Vg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!6wc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!8_c$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!9uf$f&j(Op(R!b#k$IdOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpxz!;Zz{#,f{!P!;Z!P!Q#-{!Q!^!;Z!^!_#'Z!_!`#5k!`!a#7Q!a!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(r!;fb$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(Q!<w`$f&j(R!b!USOY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eb!Q!^!<n!^!_!GY!_!}!<n!}#O!Ja#O#P!Dj#P#o!<n#o#p!GY#p;'S!<n;'S;=`!Kj<%lO!<n&n!>Q^$f&j!USOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$f&j!USO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!USOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!US#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$f&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$f&j(R!b!USOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(R!b!USOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(R!b!USOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(R!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$f&j(R!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!<n#Q#o!Ja#o#p!Ic#p;'S!Ja;'S;=`!Kd<%lO!Ja(Q!KgP;=`<%l!Ja(Q!KmP;=`<%l!<n'`!Ky`$f&j(Op!USOY!KpYZ&cZr!Kprs!=ys!P!Kp!P!Q!L{!Q!^!Kp!^!_!Ns!_!}!Kp!}#O##z#O#P!Dj#P#o!Kp#o#p!Ns#p;'S!Kp;'S;=`#%T<%lO!Kp'`!MUi$f&j(Op!USOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#Z(r#Z#[!L{#[#](r#]#^!L{#^#a(r#a#b!L{#b#g(r#g#h!L{#h#i(r#i#j!L{#j#m(r#m#n!L{#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rt!NzZ(Op!USOY!NsZr!Nsrs!@Ys!P!Ns!P!Q# m!Q!}!Ns!}#O#!|#O#P!Bb#P;'S!Ns;'S;=`##t<%lO!Nst# tb(Op!USOY)rZr)rs#O)r#P#Z)r#Z#[# m#[#])r#]#^# m#^#a)r#a#b# m#b#g)r#g#h# m#h#i)r#i#j# m#j#m)r#m#n# m#n;'S)r;'S;=`*Z<%lO)rt##RX(OpOY#!|Zr#!|rs!Acs#O#!|#O#P!A{#P#Q!Ns#Q;'S#!|;'S;=`##n<%lO#!|t##qP;=`<%l#!|t##wP;=`<%l!Ns'`#$R^$f&j(OpOY##zYZ&cZr##zrs!Bws!^##z!^!_#!|!_#O##z#O#P!Cr#P#Q!Kp#Q#o##z#o#p#!|#p;'S##z;'S;=`#$}<%lO##z'`#%QP;=`<%l##z'`#%WP;=`<%l!Kp(r#%fk$f&j(Op(R!b!USOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#Z%Z#Z#[#%Z#[#]%Z#]#^#%Z#^#a%Z#a#b#%Z#b#g%Z#g#h#%Z#h#i%Z#i#j#%Z#j#m%Z#m#n#%Z#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#W#'d](Op(R!b!USOY#'ZZr#'Zrs!GYsw#'Zwx!Nsx!P#'Z!P!Q#(]!Q!}#'Z!}#O#)w#O#P!Bb#P;'S#'Z;'S;=`#*w<%lO#'Z#W#(fe(Op(R!b!USOY*gZr*grs'}sw*gwx)rx#O*g#P#Z*g#Z#[#(]#[#]*g#]#^#(]#^#a*g#a#b#(]#b#g*g#g#h#(]#h#i*g#i#j#(]#j#m*g#m#n#(]#n;'S*g;'S;=`+Z<%lO*g#W#*OZ(Op(R!bOY#)wZr#)wrs!Icsw#)wwx#!|x#O#)w#O#P!A{#P#Q#'Z#Q;'S#)w;'S;=`#*q<%lO#)w#W#*tP;=`<%l#)w#W#*zP;=`<%l#'Z(r#+W`$f&j(Op(R!bOY#*}YZ&cZr#*}rs!Jasw#*}wx##zx!^#*}!^!_#)w!_#O#*}#O#P!Cr#P#Q!;Z#Q#o#*}#o#p#)w#p;'S#*};'S;=`#,Y<%lO#*}(r#,]P;=`<%l#*}(r#,cP;=`<%l!;Z(CS#,sb$f&j(Op(R!b'v(;d!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z(CS#.W_$f&j(Op(R!bS(;dOY#-{YZ&cZr#-{rs#/Vsw#-{wx#2gx!^#-{!^!_#4f!_#O#-{#O#P#0X#P#o#-{#o#p#4f#p;'S#-{;'S;=`#5e<%lO#-{(Bb#/`]$f&j(R!bS(;dOY#/VYZ&cZw#/Vwx#0Xx!^#/V!^!_#1j!_#O#/V#O#P#0X#P#o#/V#o#p#1j#p;'S#/V;'S;=`#2a<%lO#/V(AO#0`X$f&jS(;dOY#0XYZ&cZ!^#0X!^!_#0{!_#o#0X#o#p#0{#p;'S#0X;'S;=`#1d<%lO#0X(;d#1QSS(;dOY#0{Z;'S#0{;'S;=`#1^<%lO#0{(;d#1aP;=`<%l#0{(AO#1gP;=`<%l#0X(<v#1qW(R!bS(;dOY#1jZw#1jwx#0{x#O#1j#O#P#0{#P;'S#1j;'S;=`#2Z<%lO#1j(<v#2^P;=`<%l#1j(Bb#2dP;=`<%l#/V(Ap#2p]$f&j(OpS(;dOY#2gYZ&cZr#2grs#0Xs!^#2g!^!_#3i!_#O#2g#O#P#0X#P#o#2g#o#p#3i#p;'S#2g;'S;=`#4`<%lO#2g(<U#3pW(OpS(;dOY#3iZr#3irs#0{s#O#3i#O#P#0{#P;'S#3i;'S;=`#4Y<%lO#3i(<U#4]P;=`<%l#3i(Ap#4cP;=`<%l#2g(=h#4oY(Op(R!bS(;dOY#4fZr#4frs#1jsw#4fwx#3ix#O#4f#O#P#0{#P;'S#4f;'S;=`#5_<%lO#4f(=h#5bP;=`<%l#4f(CS#5hP;=`<%l#-{%#W#5xb$f&j$O$Id(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z+h#7_b$W#t$f&j(Op(R!b!USOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Kpx!P!;Z!P!Q#%Z!Q!^!;Z!^!_#'Z!_!}!;Z!}#O#*}#O#P!Dj#P#o!;Z#o#p#'Z#p;'S!;Z;'S;=`#,`<%lO!;Z$/l#8rp$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#U%Z#U#V#>Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#d#AY#d#l%Z#l#m#D[#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#;Rk$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#:v![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#:v#S#X%Z#X#Y!4|#Y#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#=R_$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>Zd$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Acc$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Bye$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#Bn!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#Bn#S#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#Deg$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#FXi$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#E|![!^%Z!^!_*g!_!c%Z!c!i#E|!i#O%Z#O#P&c#P#R%Z#R#S#E|#S#T%Z#T#Z#E|#Z#b%Z#b#c#<v#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#HT_!d$b$f&j#|%<f(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#I__`l$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^#Jk^g!*v!h'.r(Op(R!b(tSOY*gZr*grs'}sw*gwx)rx!P*g!P!Q#Kg!Q!^*g!^!_#L]!_!`#M}!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#KpX$h&j(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#LfZ#n$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#MX!`#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#MbX$O$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#NWX#o$Id(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Gh$ Oa#[%?x$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$!T!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#W$!`_#g$Ih$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh$#nafBf#o$Id$c#|$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$$s!`!a$%}!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$%O_#o$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$&Ya#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$'_!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$'j`#n$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h$(wc(h$Ip$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P$*S!P!^%Z!^!_*g!_!a%Z!a!b$+^!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+`$*__}'#p$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$+i`$f&j#y$Id(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&^$,v_!{!Ln$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^$.Q_!P(8n$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/UZ$f&jO!^$/w!^!_$0_!_#i$/w#i#j$0d#j#l$/w#l#m$2V#m#o$/w#o#p$0_#p;'S$/w;'S;=`$4b<%lO$/w(n$0OT^#S$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0dO^#S(n$0i[$f&jO!Q&c!Q![$1_![!^&c!_!c&c!c!i$1_!i#T&c#T#Z$1_#Z#o&c#o#p$3u#p;'S&c;'S;=`&w<%lO&c(n$1dZ$f&jO!Q&c!Q![$2V![!^&c!_!c&c!c!i$2V!i#T&c#T#Z$2V#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2[Z$f&jO!Q&c!Q![$2}![!^&c!_!c&c!c!i$2}!i#T&c#T#Z$2}#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3SZ$f&jO!Q&c!Q![$/w![!^&c!_!c&c!c!i$/w!i#T&c#T#Z$/w#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$3xR!Q![$4R!c!i$4R#T#Z$4R#S$4US!Q![$4R!c!i$4R#T#Z$4R#q#r$0_(n$4eP;=`<%l$/w!2r$4s_!V!+S$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$5}`#v$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&,v$7[_$f&j(Op(R!b(X&%WOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$8jk$f&j(Op(R!b'{&;d$[#t([!LYOY%ZYZ&cZr%Zrs&}st%Ztu$8Zuw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$8Z![!^%Z!^!_*g!_!c%Z!c!}$8Z!}#O%Z#O#P&c#P#R%Z#R#S$8Z#S#T%Z#T#o$8Z#o#p*g#p$g%Z$g;'S$8Z;'S;=`$<e<%lO$8Z+d$:jk$f&j(Op(R!b$[#tOY%ZYZ&cZr%Zrs&}st%Ztu$:_uw%Zwx(rx}%Z}!O$:_!O!Q%Z!Q![$:_![!^%Z!^!_*g!_!c%Z!c!}$:_!}#O%Z#O#P&c#P#R%Z#R#S$:_#S#T%Z#T#o$:_#o#p*g#p$g%Z$g;'S$:_;'S;=`$<_<%lO$:_+d$<bP;=`<%l$:_(CS$<hP;=`<%l$8Z!5p$<tX![!3l(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g&CO$=la(o&;`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+^#q;'S%Z;'S;=`+a<%lO%Z%#`$?O_!Z$I`r`$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(r$@Y_!pS$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$Aj|$f&j(Op(R!b't(;d$Y#t'{&;d([!LYOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(CS$Duk$f&j(Op(R!b'u(;d$Y#t'{&;d([!LYOY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",
151
+ tokenizers: [wO, WO, gO, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, mO, new x("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOt~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!R~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(Z~~", 141, 332), new x("j~RQYZXz{^~^O'x~~aP!P!Qd~iO'y~~", 25, 315)],
152
+ topRules: { Script: [0, 6], SingleExpression: [1, 269], SingleClassItem: [2, 270] },
153
+ dialects: { jsx: 0, ts: 14614 },
154
+ dynamicPrecedences: { 69: 1, 79: 1, 81: 1, 165: 1, 193: 1 },
155
+ specialized: [{ term: 319, get: (O) => jO[O] || -1 }, { term: 334, get: (O) => kO[O] || -1 }, { term: 70, get: (O) => bO[O] || -1 }],
156
+ tokenPrec: 14638
157
+ }), T = [
158
+ /* @__PURE__ */ n("function ${name}(${params}) {\n ${}\n}", {
159
+ label: "function",
160
+ detail: "definition",
161
+ type: "keyword"
162
+ }),
163
+ /* @__PURE__ */ n("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}", {
164
+ label: "for",
165
+ detail: "loop",
166
+ type: "keyword"
167
+ }),
168
+ /* @__PURE__ */ n("for (let ${name} of ${collection}) {\n ${}\n}", {
169
+ label: "for",
170
+ detail: "of loop",
171
+ type: "keyword"
172
+ }),
173
+ /* @__PURE__ */ n("do {\n ${}\n} while (${})", {
174
+ label: "do",
175
+ detail: "loop",
176
+ type: "keyword"
177
+ }),
178
+ /* @__PURE__ */ n("while (${}) {\n ${}\n}", {
179
+ label: "while",
180
+ detail: "loop",
181
+ type: "keyword"
182
+ }),
183
+ /* @__PURE__ */ n(`try {
184
+ \${}
185
+ } catch (\${error}) {
186
+ \${}
187
+ }`, {
188
+ label: "try",
189
+ detail: "/ catch block",
190
+ type: "keyword"
191
+ }),
192
+ /* @__PURE__ */ n("if (${}) {\n ${}\n}", {
193
+ label: "if",
194
+ detail: "block",
195
+ type: "keyword"
196
+ }),
197
+ /* @__PURE__ */ n(`if (\${}) {
198
+ \${}
199
+ } else {
200
+ \${}
201
+ }`, {
202
+ label: "if",
203
+ detail: "/ else block",
204
+ type: "keyword"
205
+ }),
206
+ /* @__PURE__ */ n(`class \${name} {
207
+ constructor(\${params}) {
208
+ \${}
209
+ }
210
+ }`, {
211
+ label: "class",
212
+ detail: "definition",
213
+ type: "keyword"
214
+ }),
215
+ /* @__PURE__ */ n('import {${names}} from "${module}"\n${}', {
216
+ label: "import",
217
+ detail: "named",
218
+ type: "keyword"
219
+ }),
220
+ /* @__PURE__ */ n('import ${name} from "${module}"\n${}', {
221
+ label: "import",
222
+ detail: "default",
223
+ type: "keyword"
224
+ })
225
+ ], hO = /* @__PURE__ */ T.concat([
226
+ /* @__PURE__ */ n("interface ${name} {\n ${}\n}", {
227
+ label: "interface",
228
+ detail: "definition",
229
+ type: "keyword"
230
+ }),
231
+ /* @__PURE__ */ n("type ${name} = ${type}", {
232
+ label: "type",
233
+ detail: "definition",
234
+ type: "keyword"
235
+ }),
236
+ /* @__PURE__ */ n("enum ${name} {\n ${}\n}", {
237
+ label: "enum",
238
+ detail: "definition",
239
+ type: "keyword"
240
+ })
241
+ ]), q = /* @__PURE__ */ new eO(), V = /* @__PURE__ */ new Set([
242
+ "Script",
243
+ "Block",
244
+ "FunctionExpression",
245
+ "FunctionDeclaration",
246
+ "ArrowFunction",
247
+ "MethodDeclaration",
248
+ "ForStatement"
249
+ ]);
250
+ function s(O) {
251
+ return (a, Q) => {
252
+ let e = a.node.getChild("VariableDefinition");
253
+ return e && Q(e, O), !0;
254
+ };
255
+ }
256
+ const qO = ["FunctionDeclaration"], _O = {
257
+ FunctionDeclaration: /* @__PURE__ */ s("function"),
258
+ ClassDeclaration: /* @__PURE__ */ s("class"),
259
+ ClassExpression: () => !0,
260
+ EnumDeclaration: /* @__PURE__ */ s("constant"),
261
+ TypeAliasDeclaration: /* @__PURE__ */ s("type"),
262
+ NamespaceDeclaration: /* @__PURE__ */ s("namespace"),
263
+ VariableDefinition(O, a) {
264
+ O.matchContext(qO) || a(O, "variable");
265
+ },
266
+ TypeDefinition(O, a) {
267
+ a(O, "type");
268
+ },
269
+ __proto__: null
270
+ };
271
+ function U(O, a) {
272
+ let Q = q.get(a);
273
+ if (Q)
274
+ return Q;
275
+ let e = [], $ = !0;
276
+ function r(Z, t) {
277
+ let p = O.sliceString(Z.from, Z.to);
278
+ e.push({ label: p, type: t });
279
+ }
280
+ return a.cursor(QO.IncludeAnonymous).iterate((Z) => {
281
+ if ($)
282
+ $ = !1;
283
+ else if (Z.name) {
284
+ let t = _O[Z.name];
285
+ if (t && t(Z, r) || V.has(Z.name))
286
+ return !1;
287
+ } else if (Z.to - Z.from > 8192) {
288
+ for (let t of U(O, Z.node))
289
+ e.push(t);
290
+ return !1;
291
+ }
292
+ }), q.set(a, e), e;
293
+ }
294
+ const Y = /^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/, k = [
295
+ "TemplateString",
296
+ "String",
297
+ "RegExp",
298
+ "LineComment",
299
+ "BlockComment",
300
+ "VariableDefinition",
301
+ "TypeDefinition",
302
+ "Label",
303
+ "PropertyDefinition",
304
+ "PropertyName",
305
+ "PrivatePropertyDefinition",
306
+ "PrivatePropertyName",
307
+ ".",
308
+ "?."
309
+ ];
310
+ function uO(O) {
311
+ let a = j(O.state).resolveInner(O.pos, -1);
312
+ if (k.indexOf(a.name) > -1)
313
+ return null;
314
+ let Q = a.name == "VariableName" || a.to - a.from < 20 && Y.test(O.state.sliceDoc(a.from, a.to));
315
+ if (!Q && !O.explicit)
316
+ return null;
317
+ let e = [];
318
+ for (let $ = a; $; $ = $.parent)
319
+ V.has($.name) && (e = e.concat(U(O.state.doc, $)));
320
+ return {
321
+ options: e,
322
+ from: Q ? a.from : O.pos,
323
+ validFor: Y
324
+ };
325
+ }
326
+ function W(O, a, Q) {
327
+ var e;
328
+ let $ = [];
329
+ for (; ; ) {
330
+ let r = a.firstChild, Z;
331
+ if ((r == null ? void 0 : r.name) == "VariableName")
332
+ return $.push(O(r)), { path: $.reverse(), name: Q };
333
+ if ((r == null ? void 0 : r.name) == "MemberExpression" && ((e = Z = r.lastChild) === null || e === void 0 ? void 0 : e.name) == "PropertyName")
334
+ $.push(O(Z)), a = r;
335
+ else
336
+ return null;
337
+ }
338
+ }
339
+ function RO(O) {
340
+ let a = (e) => O.state.doc.sliceString(e.from, e.to), Q = j(O.state).resolveInner(O.pos, -1);
341
+ return Q.name == "PropertyName" ? W(a, Q.parent, a(Q)) : (Q.name == "." || Q.name == "?.") && Q.parent.name == "MemberExpression" ? W(a, Q.parent, "") : k.indexOf(Q.name) > -1 ? null : Q.name == "VariableName" || Q.to - Q.from < 20 && Y.test(a(Q)) ? { path: [], name: a(Q) } : Q.name == "MemberExpression" ? W(a, Q, "") : O.explicit ? { path: [], name: "" } : null;
342
+ }
343
+ function GO(O, a) {
344
+ let Q = [], e = /* @__PURE__ */ new Set();
345
+ for (let $ = 0; ; $++) {
346
+ for (let Z of (Object.getOwnPropertyNames || Object.keys)(O)) {
347
+ if (!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(Z) || e.has(Z))
348
+ continue;
349
+ e.add(Z);
350
+ let t;
351
+ try {
352
+ t = O[Z];
353
+ } catch {
354
+ continue;
355
+ }
356
+ Q.push({
357
+ label: Z,
358
+ type: typeof t == "function" ? /^[A-Z]/.test(Z) ? "class" : a ? "function" : "method" : a ? "variable" : "property",
359
+ boost: -$
360
+ });
361
+ }
362
+ let r = Object.getPrototypeOf(O);
363
+ if (!r)
364
+ return Q;
365
+ O = r;
366
+ }
367
+ }
368
+ function NO(O) {
369
+ let a = /* @__PURE__ */ new Map();
370
+ return (Q) => {
371
+ let e = RO(Q);
372
+ if (!e)
373
+ return null;
374
+ let $ = O;
375
+ for (let Z of e.path)
376
+ if ($ = $[Z], !$)
377
+ return null;
378
+ let r = a.get($);
379
+ return r || a.set($, r = GO($, !e.path.length)), {
380
+ from: Q.pos - e.name.length,
381
+ options: r,
382
+ validFor: Y
383
+ };
384
+ };
385
+ }
386
+ const c = /* @__PURE__ */ J.define({
387
+ name: "javascript",
388
+ parser: /* @__PURE__ */ xO.configure({
389
+ props: [
390
+ /* @__PURE__ */ N.add({
391
+ IfStatement: /* @__PURE__ */ m({ except: /^\s*({|else\b)/ }),
392
+ TryStatement: /* @__PURE__ */ m({ except: /^\s*({|catch\b|finally\b)/ }),
393
+ LabeledStatement: D,
394
+ SwitchBody: (O) => {
395
+ let a = O.textAfter, Q = /^\s*\}/.test(a), e = /^\s*(case|default)\b/.test(a);
396
+ return O.baseIndent + (Q ? 0 : e ? 1 : 2) * O.unit;
397
+ },
398
+ Block: /* @__PURE__ */ K({ closing: "}" }),
399
+ ArrowFunction: (O) => O.baseIndent + O.unit,
400
+ "TemplateString BlockComment": () => null,
401
+ "Statement Property": /* @__PURE__ */ m({ except: /^{/ }),
402
+ JSXElement(O) {
403
+ let a = /^\s*<\//.test(O.textAfter);
404
+ return O.lineIndent(O.node.from) + (a ? 0 : O.unit);
405
+ },
406
+ JSXEscape(O) {
407
+ let a = /\s*\}/.test(O.textAfter);
408
+ return O.lineIndent(O.node.from) + (a ? 0 : O.unit);
409
+ },
410
+ "JSXOpenTag JSXSelfClosingTag"(O) {
411
+ return O.column(O.node.from) + O.unit;
412
+ }
413
+ }),
414
+ /* @__PURE__ */ B.add({
415
+ "Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType": L,
416
+ BlockComment(O) {
417
+ return { from: O.from + 2, to: O.to - 2 };
418
+ }
419
+ })
420
+ ]
421
+ }),
422
+ languageData: {
423
+ closeBrackets: { brackets: ["(", "[", "{", "'", '"', "`"] },
424
+ commentTokens: { line: "//", block: { open: "/*", close: "*/" } },
425
+ indentOnInput: /^\s*(?:case |default:|\{|\}|<\/)$/,
426
+ wordChars: "$"
427
+ }
428
+ }), v = {
429
+ test: (O) => /^JSX/.test(O.name),
430
+ facet: /* @__PURE__ */ iO({ commentTokens: { block: { open: "{/*", close: "*/}" } } })
431
+ }, TO = /* @__PURE__ */ c.configure({ dialect: "ts" }, "typescript"), VO = /* @__PURE__ */ c.configure({
432
+ dialect: "jsx",
433
+ props: [/* @__PURE__ */ R.add((O) => O.isTop ? [v] : void 0)]
434
+ }), UO = /* @__PURE__ */ c.configure({
435
+ dialect: "jsx ts",
436
+ props: [/* @__PURE__ */ R.add((O) => O.isTop ? [v] : void 0)]
437
+ }, "typescript");
438
+ let z = (O) => ({ label: O, type: "keyword" });
439
+ const E = /* @__PURE__ */ "break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(z), vO = /* @__PURE__ */ E.concat(/* @__PURE__ */ ["declare", "implements", "private", "protected", "public"].map(z));
440
+ function DO(O = {}) {
441
+ let a = O.jsx ? O.typescript ? UO : VO : O.typescript ? TO : c, Q = O.typescript ? hO.concat(vO) : T.concat(E);
442
+ return new F(a, [
443
+ c.data.of({
444
+ autocomplete: H(k, M(Q))
445
+ }),
446
+ c.data.of({
447
+ autocomplete: uO
448
+ }),
449
+ O.jsx ? CO : []
450
+ ]);
451
+ }
452
+ function zO(O) {
453
+ for (; ; ) {
454
+ if (O.name == "JSXOpenTag" || O.name == "JSXSelfClosingTag" || O.name == "JSXFragmentTag")
455
+ return O;
456
+ if (O.name == "JSXEscape" || !O.parent)
457
+ return null;
458
+ O = O.parent;
459
+ }
460
+ }
461
+ function _(O, a, Q = O.length) {
462
+ for (let e = a == null ? void 0 : a.firstChild; e; e = e.nextSibling)
463
+ if (e.name == "JSXIdentifier" || e.name == "JSXBuiltin" || e.name == "JSXNamespacedName" || e.name == "JSXMemberExpression")
464
+ return O.sliceString(e.from, Math.min(e.to, Q));
465
+ return "";
466
+ }
467
+ const EO = typeof navigator == "object" && /* @__PURE__ */ /Android\b/.test(navigator.userAgent), CO = /* @__PURE__ */ OO.inputHandler.of((O, a, Q, e, $) => {
468
+ if ((EO ? O.composing : O.compositionStarted) || O.state.readOnly || a != Q || e != ">" && e != "/" || !c.isActiveAt(O.state, a, -1))
469
+ return !1;
470
+ let r = $(), { state: Z } = r, t = Z.changeByRange((p) => {
471
+ var S;
472
+ let { head: o } = p, P = j(Z).resolveInner(o - 1, -1), X;
473
+ if (P.name == "JSXStartTag" && (P = P.parent), !(Z.doc.sliceString(o - 1, o) != e || P.name == "JSXAttributeValue" && P.to > o)) {
474
+ if (e == ">" && P.name == "JSXFragmentTag")
475
+ return { range: p, changes: { from: o, insert: "</>" } };
476
+ if (e == "/" && P.name == "JSXStartCloseTag") {
477
+ let l = P.parent, f = l.parent;
478
+ if (f && l.from == o - 2 && ((X = _(Z.doc, f.firstChild, o)) || ((S = f.firstChild) === null || S === void 0 ? void 0 : S.name) == "JSXFragmentTag")) {
479
+ let b = `${X}>`;
480
+ return { range: aO.cursor(o + b.length, -1), changes: { from: o, insert: b } };
481
+ }
482
+ } else if (e == ">") {
483
+ let l = zO(P);
484
+ if (l && !/^\/?>|^<\//.test(Z.doc.sliceString(o, o + 2)) && (X = _(Z.doc, l, o)))
485
+ return { range: p, changes: { from: o, insert: `</${X}>` } };
486
+ }
487
+ }
488
+ return { range: p };
489
+ });
490
+ return t.changes.empty ? !1 : (O.dispatch([
491
+ r,
492
+ Z.update(t, { userEvent: "input.complete", scrollIntoView: !0 })
493
+ ]), !0);
494
+ });
495
+ function KO(O, a) {
496
+ return a || (a = {
497
+ parserOptions: { ecmaVersion: 2019, sourceType: "module" },
498
+ env: { browser: !0, node: !0, es6: !0, es2015: !0, es2017: !0, es2020: !0 },
499
+ rules: {}
500
+ }, O.getRules().forEach((Q, e) => {
501
+ Q.meta.docs.recommended && (a.rules[e] = 2);
502
+ })), (Q) => {
503
+ let { state: e } = Q, $ = [];
504
+ for (let { from: r, to: Z } of c.findRegions(e)) {
505
+ let t = e.doc.lineAt(r), p = { line: t.number - 1, col: r - t.from, pos: r };
506
+ for (let S of O.verify(e.sliceDoc(r, Z), a))
507
+ $.push(IO(S, e.doc, p));
508
+ }
509
+ return $;
510
+ };
511
+ }
512
+ function u(O, a, Q, e) {
513
+ return Q.line(O + e.line).from + a + (O == 1 ? e.col - 1 : -1);
514
+ }
515
+ function IO(O, a, Q) {
516
+ let e = u(O.line, O.column, a, Q), $ = {
517
+ from: e,
518
+ to: O.endLine != null && O.endColumn != 1 ? u(O.endLine, O.endColumn, a, Q) : e,
519
+ message: O.message,
520
+ source: O.ruleId ? "eslint:" + O.ruleId : "eslint",
521
+ severity: O.severity == 1 ? "warning" : "error"
522
+ };
523
+ if (O.fix) {
524
+ let { range: r, text: Z } = O.fix, t = r[0] + Q.pos - e, p = r[1] + Q.pos - e;
525
+ $.actions = [{
526
+ name: "fix",
527
+ apply(S, o) {
528
+ S.dispatch({ changes: { from: o + t, to: o + p, insert: Z }, scrollIntoView: !0 });
529
+ }
530
+ }];
531
+ }
532
+ return $;
533
+ }
534
+ export {
535
+ CO as autoCloseTags,
536
+ RO as completionPath,
537
+ KO as esLint,
538
+ DO as javascript,
539
+ c as javascriptLanguage,
540
+ VO as jsxLanguage,
541
+ uO as localCompletionSource,
542
+ NO as scopeCompletionSource,
543
+ T as snippets,
544
+ UO as tsxLanguage,
545
+ TO as typescriptLanguage,
546
+ hO as typescriptSnippets
547
+ };
src/backend/gradio_highlightedcode/templates/component/index-b2e60ce6.js ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { L as s } from "./index-f4953321.js";
2
+ import { s as n, t as r, L as o, b as P, B as a, f as Q, c as i, e as c } from "./Index-2933bd90.js";
3
+ const g = n({
4
+ String: r.string,
5
+ Number: r.number,
6
+ "True False": r.bool,
7
+ PropertyName: r.propertyName,
8
+ Null: r.null,
9
+ ",": r.separator,
10
+ "[ ]": r.squareBracket,
11
+ "{ }": r.brace
12
+ }), p = s.deserialize({
13
+ version: 14,
14
+ states: "$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#CjOOQO'#Cp'#CpQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CrOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59U,59UO!iQPO,59UOVQPO,59QOqQPO'#CkO!nQPO,59^OOQO1G.k1G.kOVQPO'#ClO!vQPO,59aOOQO1G.p1G.pOOQO1G.l1G.lOOQO,59V,59VOOQO-E6i-E6iOOQO,59W,59WOOQO-E6j-E6j",
15
+ stateData: "#O~OcOS~OQSORSOSSOTSOWQO]ROePO~OVXOeUO~O[[O~PVOg^O~Oh_OVfX~OVaO~OhbO[iX~O[dO~Oh_OVfa~OhbO[ia~O",
16
+ goto: "!kjPPPPPPkPPkqwPPk{!RPPP!XP!ePP!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",
17
+ nodeNames: "⚠ JsonText True False Null Number String } { Object Property PropertyName ] [ Array",
18
+ maxTerm: 25,
19
+ nodeProps: [
20
+ ["isolate", -2, 6, 11, ""],
21
+ ["openedBy", 7, "{", 12, "["],
22
+ ["closedBy", 8, "}", 13, "]"]
23
+ ],
24
+ propSources: [g],
25
+ skippedNodes: [0],
26
+ repeatNodeCount: 2,
27
+ tokenData: "(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oc~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Oe~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zOh~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yOg~~'OO]~~'TO[~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",
28
+ tokenizers: [0],
29
+ topRules: { JsonText: [0, 1] },
30
+ tokenPrec: 0
31
+ }), d = () => (t) => {
32
+ try {
33
+ JSON.parse(t.state.doc.toString());
34
+ } catch (O) {
35
+ if (!(O instanceof SyntaxError))
36
+ throw O;
37
+ const e = u(O, t.state.doc);
38
+ return [{
39
+ from: e,
40
+ message: O.message,
41
+ severity: "error",
42
+ to: e
43
+ }];
44
+ }
45
+ return [];
46
+ };
47
+ function u(t, O) {
48
+ let e;
49
+ return (e = t.message.match(/at position (\d+)/)) ? Math.min(+e[1], O.length) : (e = t.message.match(/at line (\d+) column (\d+)/)) ? Math.min(O.line(+e[1]).from + +e[2] - 1, O.length) : 0;
50
+ }
51
+ const l = /* @__PURE__ */ o.define({
52
+ name: "json",
53
+ parser: /* @__PURE__ */ p.configure({
54
+ props: [
55
+ /* @__PURE__ */ P.add({
56
+ Object: /* @__PURE__ */ a({ except: /^\s*\}/ }),
57
+ Array: /* @__PURE__ */ a({ except: /^\s*\]/ })
58
+ }),
59
+ /* @__PURE__ */ Q.add({
60
+ "Object Array": i
61
+ })
62
+ ]
63
+ }),
64
+ languageData: {
65
+ closeBrackets: { brackets: ["[", "{", '"'] },
66
+ indentOnInput: /^\s*[\}\]]$/
67
+ }
68
+ });
69
+ function h() {
70
+ return new c(l);
71
+ }
72
+ export {
73
+ h as json,
74
+ l as jsonLanguage,
75
+ d as jsonParseLinter
76
+ };
src/backend/gradio_highlightedcode/templates/component/index-bfba6ce4.js ADDED
@@ -0,0 +1,546 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { E as P, C as G, L as k } from "./index-f4953321.js";
2
+ import { s as E, t as i, a as _, i as U, L as z, b as j, d as $, f as A, c as F, e as I, I as N, g as C, N as D, h as S } from "./Index-2933bd90.js";
3
+ const L = 1, m = 206, y = 207, H = 208, c = 209, J = 210, B = 211, M = 212, K = 2, OO = 213, rO = 214, oO = 3, aO = 215, iO = 216, eO = 4, QO = 217, xO = 218, SO = 5, sO = 219, TO = 26, tO = 27, nO = 51, PO = 52, lO = 57, pO = 58, $O = 59, qO = 61, XO = 62, wO = 63, dO = 64, YO = 65, cO = 67, ZO = 256, fO = 74, bO = 275, vO = 120, mO = 138, yO = 159, RO = 160, uO = 163, T = 10, t = 13, d = 32, l = 9, Y = 35, WO = 40, VO = 46, Z = 123, R = 39, u = 34, gO = 92, hO = /* @__PURE__ */ new Set([
4
+ tO,
5
+ nO,
6
+ PO,
7
+ bO,
8
+ cO,
9
+ mO,
10
+ pO,
11
+ $O,
12
+ ZO,
13
+ dO,
14
+ YO,
15
+ fO,
16
+ XO,
17
+ wO,
18
+ yO,
19
+ RO,
20
+ uO,
21
+ vO
22
+ ]);
23
+ function q(O) {
24
+ return O == T || O == t;
25
+ }
26
+ const GO = new P((O, r) => {
27
+ let o;
28
+ if (O.next < 0)
29
+ O.acceptToken(B);
30
+ else if (r.context.depth < 0)
31
+ q(O.next) && O.acceptToken(J, 1);
32
+ else if (((o = O.peek(-1)) < 0 || q(o)) && r.canShift(c)) {
33
+ let a = 0;
34
+ for (; O.next == d || O.next == l; )
35
+ O.advance(), a++;
36
+ (O.next == T || O.next == t || O.next == Y) && O.acceptToken(c, -a);
37
+ } else
38
+ q(O.next) && O.acceptToken(H, 1);
39
+ }, { contextual: !0 }), kO = new P((O, r) => {
40
+ let o = r.context.depth;
41
+ if (o < 0)
42
+ return;
43
+ let a = O.peek(-1);
44
+ if (a == T || a == t) {
45
+ let e = 0, Q = 0;
46
+ for (; ; ) {
47
+ if (O.next == d)
48
+ e++;
49
+ else if (O.next == l)
50
+ e += 8 - e % 8;
51
+ else
52
+ break;
53
+ O.advance(), Q++;
54
+ }
55
+ e != o && O.next != T && O.next != t && O.next != Y && (e < o ? O.acceptToken(y, -Q) : O.acceptToken(m));
56
+ }
57
+ });
58
+ function w(O, r) {
59
+ this.parent = O, this.depth = r, this.hash = (O ? O.hash + O.hash << 8 : 0) + r + (r << 4);
60
+ }
61
+ const EO = new w(null, 0);
62
+ function _O(O) {
63
+ let r = 0;
64
+ for (let o = 0; o < O.length; o++)
65
+ r += O.charCodeAt(o) == l ? 8 - r % 8 : 1;
66
+ return r;
67
+ }
68
+ const UO = new G({
69
+ start: EO,
70
+ reduce(O, r) {
71
+ return O.depth < 0 && hO.has(r) ? O.parent : O;
72
+ },
73
+ shift(O, r, o, a) {
74
+ return r == m ? new w(O, _O(a.read(a.pos, o.pos))) : r == y ? O.parent : r == TO || r == lO || r == qO ? new w(O, -1) : O;
75
+ },
76
+ hash(O) {
77
+ return O.hash;
78
+ }
79
+ }), zO = new P((O) => {
80
+ for (let r = 0; r < 5; r++) {
81
+ if (O.next != "print".charCodeAt(r))
82
+ return;
83
+ O.advance();
84
+ }
85
+ if (!/\w/.test(String.fromCharCode(O.next)))
86
+ for (let r = 0; ; r++) {
87
+ let o = O.peek(r);
88
+ if (!(o == d || o == l)) {
89
+ o != WO && o != VO && o != T && o != t && o != Y && O.acceptToken(L);
90
+ return;
91
+ }
92
+ }
93
+ });
94
+ function p(O, r, o, a, e) {
95
+ return new P((Q) => {
96
+ let x = Q.pos;
97
+ for (; !(Q.next < 0); )
98
+ if (Q.next == Z)
99
+ if (Q.peek(1) == Z)
100
+ Q.advance(2);
101
+ else {
102
+ if (Q.pos == x) {
103
+ Q.acceptToken(a, 1);
104
+ return;
105
+ }
106
+ break;
107
+ }
108
+ else if (Q.next == gO)
109
+ Q.advance(), Q.next >= 0 && Q.advance();
110
+ else if (Q.next == O && (r == 1 || Q.peek(1) == O && Q.peek(2) == O)) {
111
+ if (Q.pos == x) {
112
+ Q.acceptToken(e, r);
113
+ return;
114
+ }
115
+ break;
116
+ } else
117
+ Q.advance();
118
+ Q.pos > x && Q.acceptToken(o);
119
+ });
120
+ }
121
+ const jO = p(R, 1, M, K, OO), AO = p(u, 1, rO, oO, aO), FO = p(R, 3, iO, eO, QO), IO = p(u, 3, xO, SO, sO), NO = E({
122
+ 'async "*" "**" FormatConversion FormatSpec': i.modifier,
123
+ "for while if elif else try except finally return raise break continue with pass assert await yield match case": i.controlKeyword,
124
+ "in not and or is del": i.operatorKeyword,
125
+ "from def class global nonlocal lambda": i.definitionKeyword,
126
+ import: i.moduleKeyword,
127
+ "with as print": i.keyword,
128
+ Boolean: i.bool,
129
+ None: i.null,
130
+ VariableName: i.variableName,
131
+ "CallExpression/VariableName": i.function(i.variableName),
132
+ "FunctionDefinition/VariableName": i.function(i.definition(i.variableName)),
133
+ "ClassDefinition/VariableName": i.definition(i.className),
134
+ PropertyName: i.propertyName,
135
+ "CallExpression/MemberExpression/PropertyName": i.function(i.propertyName),
136
+ Comment: i.lineComment,
137
+ Number: i.number,
138
+ String: i.string,
139
+ FormatString: i.special(i.string),
140
+ UpdateOp: i.updateOperator,
141
+ "ArithOp!": i.arithmeticOperator,
142
+ BitOp: i.bitwiseOperator,
143
+ CompareOp: i.compareOperator,
144
+ AssignOp: i.definitionOperator,
145
+ Ellipsis: i.punctuation,
146
+ At: i.meta,
147
+ "( )": i.paren,
148
+ "[ ]": i.squareBracket,
149
+ "{ }": i.brace,
150
+ ".": i.derefOperator,
151
+ ", ;": i.separator
152
+ }), CO = { __proto__: null, await: 48, or: 58, and: 60, in: 64, not: 66, is: 68, if: 74, else: 76, lambda: 80, yield: 98, from: 100, async: 106, for: 108, None: 178, True: 180, False: 180, del: 194, pass: 198, break: 202, continue: 206, return: 210, raise: 218, import: 222, as: 224, global: 228, nonlocal: 230, assert: 234, type: 239, elif: 252, while: 256, try: 262, except: 264, finally: 266, with: 270, def: 274, class: 284, match: 295, case: 301 }, DO = k.deserialize({
153
+ version: 14,
154
+ states: "#)WO`Q#yOOP$bOSOOO%kQ&nO'#HhOOQS'#Cq'#CqOOQS'#Cr'#CrO'ZQ#xO'#CpO(|Q&nO'#HgOOQS'#Hh'#HhOOQS'#DW'#DWOOQS'#Hg'#HgO)jQ#xO'#DaO)}Q#xO'#DhO*_Q#xO'#DlOOQS'#Dw'#DwO*rO,UO'#DwO*zO7[O'#DwO+SOWO'#DxO+_O`O'#DxO+jOpO'#DxO+uO!bO'#DxO-wQ&nO'#HXOOQS'#HX'#HXO'ZQ#xO'#HWO/ZQ&nO'#HWOOQS'#Ej'#EjO/rQ#xO'#EkOOQS'#HV'#HVO/|Q#xO'#HUOOQV'#HU'#HUO0XQ#xO'#FbOOQS'#Gj'#GjO0^Q#xO'#FaOOQV'#I_'#I_OOQV'#HT'#HTOOQV'#Fy'#FyQ`Q#yOOO'ZQ#xO'#CsO0lQ#xO'#DPO0sQ#xO'#DTO1RQ#xO'#HlO1cQ&nO'#E_O'ZQ#xO'#E`OOQS'#Eb'#EbOOQS'#Ed'#EdOOQS'#Ef'#EfO1wQ#xO'#EhO2_Q#xO'#ElO0XQ#xO'#EnO2rQ&nO'#EnO0XQ#xO'#EqO/rQ#xO'#EtO0XQ#xO'#EvO/rQ#xO'#E|O/rQ#xO'#FPO2}Q#xO'#FRO3UQ#xO'#FWO3aQ#xO'#FSO/rQ#xO'#FWO0XQ#xO'#FYO0XQ#xO'#F_O3fQ#xO'#FdP3mO#xO'#HSPOOO)CBv)CBvOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Ck'#CkOOQS'#Cl'#ClOOQS'#Cn'#CnO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO3xQ#xO'#DqOOQS,5:[,5:[O4]Q#xO'#HvOOQS,5:_,5:_O4jQMlO,5:_O4oQ&nO,59[O0lQ#xO,59dO0lQ#xO,59dO0lQ#xO,59dO7_Q#xO,59dO7dQ#xO,59dO7kQ#xO,59lO7rQ#xO'#HgO8xQ#xO'#HfOOQS'#Hf'#HfOOQS'#D^'#D^O9aQ#xO,59cO'ZQ#xO,59cO9oQ#xO,59cOOQS,59{,59{O9tQ#xO,5:TO'ZQ#xO,5:TOOQS,5:S,5:SO:SQ#xO,5:SO:XQ#xO,5:ZO'ZQ#xO,5:ZO'ZQ#xO,5:XOOQS,5:W,5:WO:jQ#xO,5:WO:oQ#xO,5:YOOOO'#GR'#GRO:tO,UO,5:cOOQS,5:c,5:cOOOO'#GS'#GSO:|O7[O,5:cO;UQ#xO'#DyOOOW'#GT'#GTO;fOWO,5:dOOQS,5:d,5:dO;UQ#xO'#EPOOO`'#GW'#GWO;qO`O,5:dO;UQ#xO'#EROOOp'#GX'#GXO;|OpO,5:dO;UQ#xO'#ETOOO!b'#GY'#GYO<XO!bO,5:dOOQS'#GZ'#GZO<dQ&nO,5:qO?UQ&nO,5=rO?oQ!LUO,5=rO@`Q&nO,5=rOOQS,5;V,5;VO@wQ#yO'#GdOBZQ#xO,5;fOOQV,5=p,5=pOBfQ&nO'#IYOB}Q#xO,5;|OOQS-E:h-E:hOOQV,5;{,5;{O3[Q#xO'#FYOOQV-E9w-E9wOCVQ&nO,59_OE^Q&nO,59kOEwQ#xO'#HiOFSQ#xO'#HiO0XQ#xO'#HiOF_Q#xO'#DVOFgQ#xO,59oOFlQ#xO'#HmO'ZQ#xO'#HmO/rQ#xO,5>WOOQS,5>W,5>WO/rQ#xO'#EZOOQS'#E['#E[OGZQ#xO'#G]OGkQ#xO,59OOGkQ#xO,59OO)pQ#xO,5:wOGyQ&nO'#HoOOQS,5:z,5:zOOQS,5;S,5;SOH^Q#xO,5;WOHoQ#xO,5;YOOQS'#G`'#G`OH}Q&nO,5;YOI]Q#xO,5;YOIbQ#xO'#I]OOQS,5;],5;]OIpQ#xO'#IXOOQS,5;`,5;`OJRQ#xO,5;bO3aQ#xO,5;hO3aQ#xO,5;kOJZQ&nO'#I`O'ZQ#xO'#I`OJeQ#xO,5;mO2}Q#xO,5;mO/rQ#xO,5;rO0XQ#xO,5;tOJjQ#yO'#E}OKvQ#{O,5;nO! [Q#xO'#IaO3aQ#xO,5;rO! gQ#xO,5;tO! oQ#xO,5;yO! zQ&nO,5<OO'ZQ#xO,5<OPOOO,5=n,5=nP!!ROSO,5=nP!!WO#xO,5=nO!${Q&nO1G.lO!%SQ&nO1G.lO!'sQ&nO1G.lO!'}Q&nO1G.lO!*hQ&nO1G.lO!*{Q&nO1G.lO!+`Q#xO'#HuO!+nQ&nO'#HXO/rQ#xO'#HuO!+xQ#xO'#HtOOQS,5:],5:]O!,QQ#xO,5:]O!,VQ#xO'#HwO!,bQ#xO'#HwO!,uQ#xO,5>bOOQS'#Du'#DuOOQS1G/y1G/yOOQS1G/O1G/OO!-uQ&nO1G/OO!-|Q&nO1G/OO0lQ#xO1G/OO!.iQ#xO1G/WOOQS'#D]'#D]O/rQ#xO,59vOOQS1G.}1G.}O!.pQ#xO1G/gO!/QQ#xO1G/gO!/YQ#xO1G/hO'ZQ#xO'#HnO!/_Q#xO'#HnO!/dQ&nO1G.}O!/tQ#xO,59kO!0zQ#xO,5>^O!1[Q#xO,5>^O!1dQ#xO1G/oO!1iQ&nO1G/oOOQS1G/n1G/nO!1yQ#xO,5>XO!2pQ#xO,5>XO/rQ#xO1G/sO!3_Q#xO1G/uO!3dQ&nO1G/uO!3tQ&nO1G/sOOQS1G/r1G/rOOQS1G/t1G/tOOOO-E:P-E:POOQS1G/}1G/}OOOO-E:Q-E:QO!4UQ#xO'#IRO/rQ#xO'#IRO!4gQ#xO,5:eOOOW-E:R-E:ROOQS1G0O1G0OO!4uQ#xO,5:kOOO`-E:U-E:UO!5TQ#xO,5:mOOOp-E:V-E:VO!5cQ#xO,5:oOOO!b-E:W-E:WOOQS-E:X-E:XO!5qQ!LUO1G3^O!6bQ&nO1G3^O'ZQ#xO,5<vOOQS,5<v,5<vOOQS-E:Y-E:YOOQS,5=O,5=OOOQS-E:b-E:bOOQV1G1Q1G1QO0XQ#xO'#G_O!6yQ&nO,5>tOOQS1G1h1G1hO!7bQ#xO1G1hOOQS'#DX'#DXO/rQ#xO,5>TOOQS,5>T,5>TO!7gQ#xO'#FzO!7rQ#xO,59qO!7zQ#xO1G/ZO!8UQ&nO,5>XOOQS1G3r1G3rOOQS,5:u,5:uO!8uQ#xO'#HWOOQS,5<w,5<wOOQS-E:Z-E:ZO!9WQ#xO1G.jOOQS1G0c1G0cO!9fQ#xO,5>ZO!9vQ#xO,5>ZO/rQ#xO1G0rO/rQ#xO1G0rO0XQ#xO1G0tOOQS-E:^-E:^O!:XQ#xO1G0tO!:dQ#xO1G0tO!:iQ#xO,5>wO!:wQ#xO,5>wO!;VQ#xO,5>sO!;mQ#xO,5>sO!<OQ#xO'#ExO/rQ#xO1G0|O!<ZQ#xO1G0|O!<`Q#{O1G1SO!?qQ#{O1G1VO!CPQ#xO,5>zO!CZQ#xO,5>zO!CcQ&nO,5>zO/rQ#xO1G1XO!CmQ#xO1G1XO3aQ#xO1G1^O! gQ#xO1G1`OOQV,5;i,5;iO!CrQ#zO,5;iO!CwQ#{O1G1YO!G]Q#xO'#GgO3aQ#xO1G1YO3aQ#xO1G1YO!GmQ#xO,5>{O!GzQ#xO,5>{O0XQ#xO,5>{OOQV1G1^1G1^O!HSQ#xO'#F[O!HeQMlO1G1`O!HmQ#xO1G1`OOQV1G1e1G1eO3aQ#xO1G1eO!HrQ#xO1G1eO!HzQ#xO'#FfOOQV1G1j1G1jO! zQ&nO1G1jPOOO1G3Y1G3YP!IPOSO1G3YOOQS,5>a,5>aOOQS'#Dr'#DrO/rQ#xO,5>aO!IUQ#xO,5>`O!IiQ#xO,5>`OOQS1G/w1G/wO!IqQ#xO,5>cO!JRQ#xO,5>cO!JZQ#xO,5>cO!JnQ#xO,5>cO!KOQ#xO,5>cOOQS1G3|1G3|OOQS7+$j7+$jO!7zQ#xO7+$rO!LqQ#xO1G/OO!LxQ#xO1G/OOOQS1G/b1G/bOOQS,5<h,5<hO'ZQ#xO,5<hOOQS7+%R7+%RO!MPQ#xO7+%ROOQS-E9z-E9zOOQS7+%S7+%SO!MaQ#xO,5>YO'ZQ#xO,5>YOOQS7+$i7+$iO!MfQ#xO7+%RO!MnQ#xO7+%SO!MsQ#xO1G3xOOQS7+%Z7+%ZO!NTQ#xO1G3xO!N]Q#xO7+%ZOOQS,5<g,5<gO'ZQ#xO,5<gO!NbQ#xO1G3sOOQS-E9y-E9yO# XQ#xO7+%_OOQS7+%a7+%aO# gQ#xO1G3sO#!UQ#xO7+%aO#!ZQ#xO1G3yO#!kQ#xO1G3yO#!sQ#xO7+%_O#!xQ#xO,5>mO##cQ#xO,5>mO##cQ#xO,5>mOOQS'#Dz'#DzO##tO$ISO'#D|O#$PO#tO'#ISOOOW1G0P1G0PO#$UQ#xO1G0PO#$^Q#xO1G0POOQS'#EQ'#EQOOO`1G0V1G0VO#$iQ#xO1G0VO#$qQ#xO1G0VOOQS'#ES'#ESOOOp1G0X1G0XO#$|Q#xO1G0XO#%UQ#xO1G0XOOQS'#EU'#EUOOO!b1G0Z1G0ZO#%aQ#xO1G0ZO#%iQ#xO1G0ZO#%tQ!LUO7+(xO#&eQ&nO1G2bP#'OQ#xO'#G[OOQS,5<y,5<yOOQS-E:]-E:]OOQS7+'S7+'SOOQS1G3o1G3oOOQS,5<f,5<fOOQS-E9x-E9xOOQS7+$u7+$uO#']Q#xO,5=rO#'vQ#xO,5=rO#(XQ&nO,5<iO#(lQ#xO1G3uOOQS-E9{-E9{OOQS7+&^7+&^O#(|Q#xO7+&^OOQS7+&`7+&`O#)[Q#xO'#I[O0XQ#xO'#IZO#)pQ#xO7+&`OOQS,5<|,5<|O#){Q#xO1G4cOOQS-E:`-E:`OOQS,5<x,5<xO#*ZQ#xO1G4_OOQS-E:[-E:[O0XQ#xO'#EyO#*qQ#xO'#EyO#*|Q#xO'#I^O#+UQ#xO,5;dOOQS7+&h7+&hO/rQ#xO7+&hO#+ZQ#{O7+&nO!G`Q#xO'#GeO3aQ#xO7+&nO3aQ#xO7+&qO#.lQ&nO,5=QO'ZQ#xO,5=QO#.vQ#xO1G4fOOQS-E:d-E:dO#/QQ#xO1G4fO3aQ#xO7+&sO/rQ#xO7+&sOOQV7+&x7+&xO!HeQMlO7+&zO!HmQ#xO7+&zO`Q#yO1G1TOOQV-E:e-E:eO3aQ#xO7+&tO3aQ#xO7+&tOOQV,5=R,5=RO#/YQ#xO,5=RO!G`Q#xO,5=ROOQV7+&t7+&tO#/eQ#{O7+&tO#2sQ#xO,5=SO#3OQ#xO1G4gOOQS-E:f-E:fO#3]Q#xO1G4gO#3eQ#xO'#IcO#3sQ#xO'#IcO0XQ#xO'#IcOOQS'#Ic'#IcO#4OQ#xO'#IbOOQS,5;v,5;vO#4WQ#xO,5;vO/rQ#xO'#F^OOQV7+&z7+&zO3aQ#xO7+&zOOQV7+'P7+'PO3aQ#xO7+'PO#4]Q#zO,5<QOOQV7+'U7+'UPOOO7+(t7+(tO#4bQ#xO1G3{OOQS,5<k,5<kO#4pQ#xO1G3zOOQS-E9}-E9}O#5TQ#xO,5<lO#5`Q#xO,5<lO#5sQ#xO1G3}OOQS-E:O-E:OO#6TQ#xO1G3}O#6]Q#xO1G3}O#6mQ#xO1G3}O#6TQ#xO1G3}OOQS<<H^<<H^O#6xQ&nO1G2SOOQS<<Hm<<HmP#7VQ#xO'#F|O7kQ#xO1G3tO#7dQ#xO1G3tO#7iQ#xO<<HmOOQS<<Hn<<HnO#7yQ#xO7+)dOOQS<<Hu<<HuO#8ZQ&nO1G2RP#8zQ#xO'#F{O#9XQ#xO7+)eO#9iQ#xO7+)eO#9qQ#xO<<HyO#9vQ#xO7+)_OOQS<<H{<<H{O#:mQ#xO,5<jO'ZQ#xO,5<jOOQS-E9|-E9|OOQS<<Hy<<HyOOQS,5<p,5<pO/rQ#xO,5<pO#:rQ#xO1G4XOOQS-E:S-E:SO#;]Q#xO1G4XO;UQ#xO'#D}OOOO'#GV'#GVO#;nO$ISO,5:hOOO#l,5>n,5>nOOOW7+%k7+%kO#;yQ#xO7+%kOOO`7+%q7+%qO#<RQ#xO7+%qOOOp7+%s7+%sO#<ZQ#xO7+%sOOO!b7+%u7+%uO#<cQ#xO7+%uO#<kQ#xO1G3^O#=UQ#xO1G3^P'ZQ#xO'#F}O/rQ#xO<<IxO#=gQ#xO,5>vO#=xQ#xO,5>vO0XQ#xO,5>vO#>ZQ#xO,5>uOOQS<<Iz<<IzP0XQ#xO'#GbP/rQ#xO'#G^OOQS,5;e,5;eO#>`Q#xO,5>xO#>nQ#xO,5>xOOQS1G1O1G1OOOQS<<JS<<JSOOQV-E:c-E:cO3aQ#xO<<JYOOQV,5=P,5=PO3aQ#xO,5=POOQV<<JY<<JYOOQV<<J]<<J]O#>vQ&nO1G2lP#?QQ#xO'#GfO#?XQ#xO7+*QO#?cQ#{O<<J_O3aQ#xO<<J_OOQV<<Jf<<JfO3aQ#xO<<JfO!HeQMlO<<JfO#BqQ#{O7+&oOOQV<<J`<<J`O#B{Q#{O<<J`OOQV1G2m1G2mO0XQ#xO1G2mO#FZQ#xO1G2mO3aQ#xO<<J`O0XQ#xO1G2nP/rQ#xO'#GhO#FfQ#xO7+*RO#FsQ#xO7+*ROOQS'#F]'#F]O/rQ#xO,5>}O#F{Q#xO,5>}OOQS,5>},5>}O#GWQ#xO,5>|O#GiQ#xO,5>|OOQS1G1b1G1bOOQS,5;x,5;xOOQV<<Jk<<JkO#GqQ#xO1G1lOOQS7+)g7+)gP#GvQ#xO'#GPO#HWQ#xO1G2WO#HkQ#xO1G2WO#H{Q#xO1G2WP#IWQ#xO'#GQO#IeQ#xO7+)iO#IuQ#xO7+)iO#IuQ#xO7+)iO#I}Q#xO7+)iO#J_Q#xO7+)`O7kQ#xO7+)`OOQSAN>XAN>XO#JxQ#xO<<MPOOQSAN>eAN>eO/rQ#xO1G2UO#KYQ&nO1G2UP#KdQ#xO'#GOOOQS1G2[1G2[P#KqQ#xO'#GUO#LOQ#xO7+)sO#LiQ#xO,5:iOOOO-E:T-E:TOOOW<<IV<<IVOOO`<<I]<<I]OOOp<<I_<<I_OOO!b<<Ia<<IaO#LwQ#xO7+(xOOQSAN?dAN?dO#MbQ#xO,5<{O#MvQ#xO1G4bOOQS-E:_-E:_O#NXQ#xO1G4bOOQS1G4a1G4aOOQS,5<},5<}O#NjQ#xO1G4dOOQS-E:a-E:aOOQVAN?tAN?tOOQV1G2k1G2kO3aQ#xOAN?yO#NxQ#{OAN?yOOQVAN@QAN@QO3aQ#xOAN@QOOQV<<JZ<<JZO3aQ#xOAN?zO3aQ#xO7+(XOOQV7+(X7+(XO0XQ#xO7+(XOOQVAN?zAN?zOOQS7+(Y7+(YO$$WQ#xO<<MmOOQS1G4i1G4iO/rQ#xO1G4iOOQS,5=T,5=TO$$eQ#xO1G4hOOQS-E:g-E:gOOQU'#Gk'#GkO$$vQ#zO7+'WO$%RQ#xO'#FgO$%yQ#xO7+'rO$&ZQ#xO7+'rOOQS7+'r7+'rO$&fQ#xO<<MTO$&vQ#xO<<MTO$&vQ#xO<<MTO$'OQ#xO'#HpOOQS<<Lz<<LzO$'YQ#xO<<LzOOQS7+'p7+'pOOQS'#EO'#EOOOOO1G0T1G0TO$'sQ#xO1G0TO$'{Q#xO1G0TO0XQ#xO1G2gP0XQ#xO'#GaO$(WQ#xO7+)|O$(iQ#xO7+)|P!<OQ#xO'#GcOOQVG25eG25eO3aQ#xOG25eOOQVG25lG25lOOQVG25fG25fOOQV<<Ks<<KsO3aQ#xO<<KsOOQS7+*T7+*TP$(zQ#xO'#GiOOQU-E:i-E:iOOQV<<Jr<<JrO$)nQ&nO'#FiOOQS'#Fk'#FkO$*OQ#xO'#FjO$*pQ#xO'#FjOOQS'#Fj'#FjO$*uQ#xO'#IeO$%RQ#xO'#FqO$%RQ#xO'#FqO$+^Q#xO'#FrO$%RQ#xO'#FsO$+eQ#xO'#IfOOQS'#If'#IfO$,SQ#xO,5<ROOQS<<K^<<K^O$,[Q#xO<<K^O$,lQ#xOANBoO$,|Q#xOANBoO$-UQ#xO'#HqOOQS'#Hq'#HqO0sQ#xO'#DeO$-oQ#xO,5>[OOQSANBfANBfOOOO7+%o7+%oO$.WQ#xO7+%oOOQS7+(R7+(RO$.`Q#xO<<MhOOQVLD+PLD+POOQVANA_ANA_O4jQMlO'#GmO$.qQ&nO,5<[O$%RQ#xO'#FuOOQS,5<`,5<`OOQS'#Fl'#FlO$/cQ#xO,5<UO$/hQ#xO,5<UOOQS'#Fo'#FoO$%RQ#xO'#GlO$0YQ#xO,5<YO$0tQ#xO,5?PO$1UQ#xO,5?PO0XQ#xO,5<XO$1gQ#xO,5<]O$1lQ#xO,5<]O$%RQ#xO'#IgO$1qQ#xO'#IgO$1vQ#xO,5<^OOQS,5<_,5<_O'ZQ#xO'#FxOOQU1G1m1G1mO3aQ#xO1G1mOOQSAN@xAN@xO$1{Q#xOG28ZO$2]Q#xO,5:POOQS1G3v1G3vOOOO<<IZ<<IZOOQS,5=X,5=XOOQS-E:k-E:kO$2bQ&nO'#FiO$2iQ#xO'#IhO$2wQ#xO'#IhO$3PQ#xO,5<aOOQS1G1p1G1pO$3UQ#xO1G1pO$3ZQ#xO,5=WOOQS-E:j-E:jO$3uQ#xO,5=[O$4^Q#xO1G4kOOQS-E:n-E:nOOQS1G1s1G1sOOQS1G1w1G1wO$4nQ#xO,5?RO$%RQ#xO,5?ROOQS1G1x1G1xO$4|Q&nO,5<dOOQU7+'X7+'XO$'OQ#xO1G/kO$%RQ#xO,5<bO$5TQ#xO,5?SO$5[Q#xO,5?SOOQS1G1{1G1{OOQS7+'[7+'[P$%RQ#xO'#GpO$5dQ#xO1G4mO$5nQ#xO1G4mO$5vQ#xO1G4mOOQS7+%V7+%VO$6UQ#xO1G1|O$6dQ&nO'#FiO$6kQ#xO,5=ZOOQS,5=Z,5=ZO$6yQ#xO1G4nOOQS-E:m-E:mO$%RQ#xO,5=YO$7QQ#xO,5=YO$7VQ#xO7+*XOOQS-E:l-E:lO$7aQ#xO7+*XO$%RQ#xO,5<cP$%RQ#xO'#GoO$7iQ#xO1G2tO$%RQ#xO1G2tP$7wQ#xO'#GnO$8OQ#xO<<MsO$8YQ#xO1G1}O$8hQ#xO7+(`O7kQ#xO'#DPO7kQ#xO,59dO7kQ#xO,59dO7kQ#xO,59dO$8vQ&nO,5=rO7kQ#xO1G/OO/rQ#xO1G/ZO/rQ#xO7+$rP$9ZQ#xO'#G[O'ZQ#xO'#HWO$9hQ#xO,59dO$9mQ#xO,59dO$9tQ#xO,59oO$9yQ#xO1G/WO0sQ#xO'#DTO7kQ#xO,59l",
155
+ stateData: "$:[~O%uOS%jOSUOS%iPQ~OPiOXfOhtOjYOquOu!UOxvO!RwO!S!QO!V!XO!W!WO!ZZO!_[O!jeO!zeO!{eO!|eO#TyO#VzO#X{O#Z|O#]}O#a!OO#c!PO#f!RO#g!RO#i!SO#k!TO#t!VO#w!YO#{!ZO#}![O$S!]O$VmO$X!^O&RRO&SRO&WSO&XWO&m]O&n^O&q_O&t`O&xaO&ybO&zcO~O%i!_O~OX!fOa!fOc!gOj!nO!Z!pO!h!rO%|!aO%}!bO&O!cO&P!dO&Q!dO&R!eO&S!eO&T!fO&U!fO&V!fO~Om&[Xn&[Xo&[Xp&[Xq&[Xr&[Xu&[X|&[X}&[X#Q&[X#o&[X%h&[X%k&[X&^&[Xi&[X!V&[X!W&[X&_&[X!Y&[X!^&[X!S&[X#d&[Xv&[X!o&[X~P$gOhtOjYO!ZZO!_[O!jeO!zeO!{eO!|eO&RRO&SRO&WSO&XWO&m]O&n^O&q_O&t`O&xaO&ybO&zcO~O|&ZX}&ZX#o&ZX%h&ZX%k&ZX&^&ZX~Om!uOn!vOo!tOp!tOq!wOr!xOu!yO#Q&ZX~P(hOX#POi#ROq1`Ox1nO!RwO~P'ZOX#TOq1`Ox1nO!Y#UO~P'ZOX#XOc#YOq1`Ox1nO!^#ZO~P'ZO&o#^O&p#`O~O&r#aO&s#`O~OQ#cO%l#dO%m#fO~OR#gO%n#hO%o#fO~OS#jO%p#kO%q#fO~OT#mO%r#nO%s#fO~OX%{Xa%{Xc%{Xj%{Xm%{Xn%{Xo%{Xp%{Xq%{Xr%{Xu%{X|%{X!Z%{X!h%{X%|%{X%}%{X&O%{X&P%{X&Q%{X&R%{X&S%{X&T%{X&U%{X&V%{Xi%{X!V%{X!W%{X~O&m]O&n^O&q_O&t`O&xaO&ybO&zcO}%{X#Q%{X#o%{X%h%{X%k%{X&^%{X&_%{X!Y%{X!^%{X!S%{X#d%{Xv%{X!o%{X~P,QO|#sO}%zX#Q%zX#o%zX%h%zX%k%zX&^%zX~Oq1`Ox1nO~P'ZO#o#vO%h#xO%k#xO~O&XWO~O!V#}O#}![O$S!]O$VmO~OquO~P'ZOX$SOc$TO&XWO}yP~OX$XOq1`Ox1nO!S$YO~P'ZO}$[O#Q$aO&^$]O#o#RX%h#RX%k#RX~OX$XOq1`Ox1nO#o#[X%h#[X%k#[X~P'ZOq1`Ox1nO#o#`X%h#`X%k#`X~P'ZO!h$gO!z$gO&XWO~OX$rO~P'ZO!W$tO#{$uO#}$vO~O}$wO~OX%OO~P'ZOU%QO%h%PO%u%RO~OX%[Oc%[Oi%^Oq1`Ox1nO~P'ZOq1`Ox1nO}%aO~P'ZO&l%cO~Oc!gOj!nO!Z!pO!h!rOXdaadamdandaodapdaqdardauda|da}da#Qda#oda%hda%kda%|da%}da&Oda&Pda&Qda&Rda&Sda&Tda&Uda&Vda&^daida!Vda!Wda&_da!Yda!^da!Sda#ddavda!oda~Op%hO~Oq%hO~P'ZOq1`O~P'ZOm1bOn1cOo1aOp1aOq1jOr1kOu1oOi&ZX!V&ZX!W&ZX&_&ZX!Y&ZX!^&ZX!S&ZX#d&ZX!o&ZX~P(hO&_%jOi&YX|&YX!V&YX!W&YX!Y&YX}&YX~Oi%lO|%mO!V%qO!W%pO~Oi%lO~O|%tO!V%qO!W%pO!Y&fX~O!Y%xO~O|%yO}%{O!V%qO!W%pO!^&aX~O!^&PO~O!^&QO~O&o#^O&p&SO~O&r#aO&s&SO~OX&VOq1`Ox1nO!RwO~P'ZOQ#cO%l#dO%m&YO~OR#gO%n#hO%o&YO~OS#jO%p#kO%q&YO~OT#mO%r#nO%s&YO~OX!yaa!yac!yaj!yam!yan!yao!yap!yaq!yar!yau!ya|!ya}!ya!Z!ya!h!ya#Q!ya#o!ya%h!ya%k!ya%|!ya%}!ya&O!ya&P!ya&Q!ya&R!ya&S!ya&T!ya&U!ya&V!ya&^!yai!ya!V!ya!W!ya&_!ya!Y!ya!^!ya!S!ya#d!yav!ya!o!ya~P#yO|&bO}%za#Q%za#o%za%h%za%k%za&^%za~P$gOX&dOquOxvO}%za#Q%za#o%za%h%za%k%za&^%za~P'ZO|&bO}%za#Q%za#o%za%h%za%k%za&^%za~OPiOXfOquOxvO!RwO!S!QO#TyO#VzO#X{O#Z|O#]}O#a!OO#c!PO#f!RO#g!RO#i!SO#k!TO#o%WX%h%WX%k%WX~P'ZO#o#vO%h&iO%k&iO~O!h&jOj&|X%h&|X#d&|X#o&|X%k&|X#c&|X~Oj!nO%h&lO~Omgangaogapgaqgargauga|ga}ga#Qga#oga%hga%kga&^gaiga!Vga!Wga&_ga!Yga!^ga!Sga#dgavga!oga~P$gOusa|sa}sa#osa%hsa%ksa&^sa~Om!uOn!vOo!tOp!tOq!wOr!xO#Qsa~PDuO&^&nO|&]X}&]X~O&XWO|&]X}&]X~O|&qO}yX~O}&sO~O|%yO#o&aX%h&aX%k&aXi&aX}&aX!^&aX!o&aX&^&aX~OX1iOq1`Ox1nO!RwO~P'ZO&^$]O#oWa%hWa%kWa~O|&|O#o&cX%h&cX%k&cXp&cX~P$gO|'PO!S'OO#o#`a%h#`a%k#`a~O#d'QO#o#ba%h#ba%k#ba~O!h$gO!z$gO#c'SO&XWO~O#c'SO~O|'UO#o'PX%h'PX%k'PX~O|'WO#o&{X%h&{X%k&{X}&{X~O!Z'YO&^'ZO~O|'_Op'SX~P$gOp'bO~OPiOXfOquOxvO!RwO!S!QO#TyO#VzO#X{O#Z|O#]}O#a!OO#c!PO#f!RO#g!RO#i!SO#k!TO%h'gO~P'ZOv'kO#x'iO#y'jOP#vaX#vah#vaj#vaq#vau#vax#va!R#va!S#va!V#va!W#va!Z#va!_#va!j#va!z#va!{#va!|#va#T#va#V#va#X#va#Z#va#]#va#a#va#c#va#f#va#g#va#i#va#k#va#t#va#w#va#{#va#}#va$S#va$V#va$X#va%e#va&R#va&S#va&W#va&X#va&m#va&n#va&q#va&t#va&x#va&y#va&z#va%g#va%k#va~O|'lO#d'nO}'TX~Oj'pO!Z'YO~Oj!nO}$wO!Z'YO~O}'vO~P$gO%h'yO~OU'zO%h'yO~OX!fOa!fOc!gOj!nO!Z!pO!h!rO&O!cO&P!dO&Q!dO&R!eO&S!eO&T!fO&U!fO&V!fOmYinYioYipYiqYirYiuYi|Yi}Yi#QYi#oYi%hYi%kYi%|Yi&^YiiYi!VYi!WYi&_Yi!YYi!^Yi!SYi#dYivYi!oYi~O%}!bO~P!!`O%}Yi~P!!`OX!fOa!fOc!gOj!nO!Z!pO!h!rO&R!eO&S!eO&T!fO&U!fO&V!fOmYinYioYipYiqYirYiuYi|Yi}Yi#QYi#oYi%hYi%kYi%|Yi%}Yi&OYi&^YiiYi!VYi!WYi&_Yi!YYi!^Yi!SYi#dYivYi!oYi~O&P!dO&Q!dO~P!%ZO&PYi&QYi~P!%ZOc!gOj!nO!Z!pO!h!rOmYinYioYipYiqYirYiuYi|Yi}Yi#QYi#oYi%hYi%kYi%|Yi%}Yi&OYi&PYi&QYi&RYi&SYi&^YiiYi!VYi!WYi&_Yi!YYi!^Yi!SYi#dYivYi!oYi~OX!fOa!fO&T!fO&U!fO&V!fO~P!(XOXYiaYi&TYi&UYi&VYi~P!(XO!V%qO!W%pOi&iX|&iX~O&^'|O&_'|O~P,QO|(OOi&hX~Oi(QO~O|(RO}(TO!Y&kX~Oq1`Ox1nO|(RO}(UO!Y&kX~P'ZO!Y(WO~Oo!tOp!tOq!wOr!xOmliuli|li}li#Qli#oli%hli%kli&^li~On!vO~P!,zOnli~P!,zOm1bOn1cOo1aOp1aOq1jOr1kO~Ov(YO~P!.TOX(_Oi(`Oq1`Ox1nO~P'ZOi(`O|(aO~Oi(cO~O!W(eO~Oi(fO|(aO!V%qO!W%pO~P$gOm1bOn1cOo1aOp1aOq1jOr1kOisa!Vsa!Wsa&_sa!Ysa!^sa!Ssa#dsavsa!osa~PDuOX(_Oq1`Ox1nO!Y&fa~P'ZO|(iO!Y&fa~O!Y(jO~O|(iO!V%qO!W%pO!Y&fa~P$gOX(nOq1`Ox1nO!^&aa#o&aa%h&aa%k&aai&aa}&aa!o&aa&^&aa~P'ZO|(oO!^&aa#o&aa%h&aa%k&aai&aa}&aa!o&aa&^&aa~O!^(rO~O|(oO!V%qO!W%pO!^&aa~P$gO|(uO!V%qO!W%pO!^&ga~P$gO|(xO}&uX!^&uX!o&uX&^&uX~O}(|O!^)OO!o)PO&^({O~O}(|O!^)SO!o)TO&^)RO~O}(|O!^)WO!o)XO&^)VO~O}(|O!^)[O!o)]O&^)ZO~OX&dOquOxvO}%zi#Q%zi#o%zi%h%zi%k%zi&^%zi~P'ZO|)_O}%zi#Q%zi#o%zi%h%zi%k%zi&^%zi~O!h&jOj&|a%h&|a#d&|a#o&|a%k&|a#c&|a~O%h)dO~OX$SOc$TO&XWO~O|&qO}ya~OquOxvO~P'ZO|(oO#o&aa%h&aa%k&aai&aa}&aa!^&aa!o&aa&^&aa~P$gO|)iO#o%zX%h%zX%k%zX&^%zX~O&^$]O#oWi%hWi%kWi~O#o&ca%h&ca%k&cap&ca~P'ZO|)lO#o&ca%h&ca%k&cap&ca~OX)pOj)rO&XWO~O#c)sO~O&XWO#o'Pa%h'Pa%k'Pa~O|)uO#o'Pa%h'Pa%k'Pa~Oq1`Ox1nO#o&{a%h&{a%k&{a}&{a~P'ZO|)xO#o&{a%h&{a%k&{a}&{a~OX)zOc)zO&XWO~O&^*PO~Ov*SO#r*ROP#piX#pih#pij#piq#piu#pix#pi!R#pi!S#pi!V#pi!W#pi!Z#pi!_#pi!j#pi!z#pi!{#pi!|#pi#T#pi#V#pi#X#pi#Z#pi#]#pi#a#pi#c#pi#f#pi#g#pi#i#pi#k#pi#t#pi#w#pi#{#pi#}#pi$S#pi$V#pi$X#pi%e#pi&R#pi&S#pi&W#pi&X#pi&m#pi&n#pi&q#pi&t#pi&x#pi&y#pi&z#pi%g#pi%k#pi~Ov*TOP#siX#sih#sij#siq#siu#six#si!R#si!S#si!V#si!W#si!Z#si!_#si!j#si!z#si!{#si!|#si#T#si#V#si#X#si#Z#si#]#si#a#si#c#si#f#si#g#si#i#si#k#si#t#si#w#si#{#si#}#si$S#si$V#si$X#si%e#si&R#si&S#si&W#si&X#si&m#si&n#si&q#si&t#si&x#si&y#si&z#si%g#si%k#si~OX*VOp'Sa~P'ZO|*WOp'Sa~O|*WOp'Sa~P$gOp*[O~O%f*`O~Ov*cO#x'iO#y*bOP#viX#vih#vij#viq#viu#vix#vi!R#vi!S#vi!V#vi!W#vi!Z#vi!_#vi!j#vi!z#vi!{#vi!|#vi#T#vi#V#vi#X#vi#Z#vi#]#vi#a#vi#c#vi#f#vi#g#vi#i#vi#k#vi#t#vi#w#vi#{#vi#}#vi$S#vi$V#vi$X#vi%e#vi&R#vi&S#vi&W#vi&X#vi&m#vi&n#vi&q#vi&t#vi&x#vi&y#vi&z#vi%g#vi%k#vi~OX*fOq1`Ox1nO}$wO~P'ZOq1`Ox1nO}'Ta~P'ZO|*jO}'Ta~OX*nOc*oOi*rO&T*pO&XWO~O}$wO'W*tO~Oj'pO~Oj!nO}$wO~O%h*yO~O%h*{O~OX%[Oc%[Oq1`Ox1nOi&ha~P'ZO|+OOi&ha~Oq1`Ox1nO}+RO!Y&ka~P'ZO|+SO!Y&ka~Oq1`Ox1nO|+SO}+VO!Y&ka~P'ZOq1`Ox1nO|+SO!Y&ka~P'ZO|+SO}+VO!Y&ka~Oo1aOp1aOq1jOr1kOilimliuli|li!Vli!Wli&_li!Yli}li!^li#oli%hli%kli!Sli#dlivli!oli&^li~On1cO~P!KZOnli~P!KZOX(_Oi+[Oq1`Ox1nO~P'ZOp+^O~Oi+[O|+`O~Oi+aO~OX(_Oq1`Ox1nO!Y&fi~P'ZO|+bO!Y&fi~O!Y+cO~OX(nOq1`Ox1nO!^&ai#o&ai%h&ai%k&aii&ai}&ai!o&ai&^&ai~P'ZO|+fO!V%qO!W%pO!^&gi~O|+iO!^&ai#o&ai%h&ai%k&aii&ai}&ai!o&ai&^&ai~O!^+jO~Oc+lOq1`Ox1nO!^&gi~P'ZO|+fO!^&gi~O!^+nO~OX+pOq1`Ox1nO}&ua!^&ua!o&ua&^&ua~P'ZO|+qO}&ua!^&ua!o&ua&^&ua~O!_+tO&w+uO!^!pX~O!^+wO~O}(|O!^+xO~O}(|O!^+xO!o+yO~O}(|O!^+zO~O}(|O!^+zO!o+{O~O}(|O!^+|O~O}(|O!^+|O!o+}O~O}(|O!^,OO~O}(|O!^,OO!o,PO~OX&dOquOxvO}%zq#Q%zq#o%zq%h%zq%k%zq&^%zq~P'ZO|%Oi}%Oi#Q%Oi#o%Oi%h%Oi%k%Oi&^%Oi~P$gOX&dOquOxvO~P'ZOX&dOq1`Ox1nO#o%za%h%za%k%za&^%za~P'ZO|,QO#o%za%h%za%k%za&^%za~O|$qa#o$qa%h$qa%k$qap$qa~P$gO#o&ci%h&ci%k&cip&ci~P'ZO|,TO#o#`q%h#`q%k#`q~O|,UO#d,WO#o'OX%h'OX%k'OXi'OX~OX,YOj)rO&XWO~O&XWO#o'Pi%h'Pi%k'Pi~Oq1`Ox1nO#o&{i%h&{i%k&{i}&{i~P'ZO}$[O|#mX!Y#mX~O|,^O!Y'QX~O!Y,`O~Ov,cO#r*ROP#pqX#pqh#pqj#pqq#pqu#pqx#pq!R#pq!S#pq!V#pq!W#pq!Z#pq!_#pq!j#pq!z#pq!{#pq!|#pq#T#pq#V#pq#X#pq#Z#pq#]#pq#a#pq#c#pq#f#pq#g#pq#i#pq#k#pq#t#pq#w#pq#{#pq#}#pq$S#pq$V#pq$X#pq%e#pq&R#pq&S#pq&W#pq&X#pq&m#pq&n#pq&q#pq&t#pq&x#pq&y#pq&z#pq%g#pq%k#pq~Op%Ya|%Ya~P$gOX*VOp'Si~P'ZO|,jOp'Si~O|,tO}$wO#d,tO~O#y,vOP#vqX#vqh#vqj#vqq#vqu#vqx#vq!R#vq!S#vq!V#vq!W#vq!Z#vq!_#vq!j#vq!z#vq!{#vq!|#vq#T#vq#V#vq#X#vq#Z#vq#]#vq#a#vq#c#vq#f#vq#g#vq#i#vq#k#vq#t#vq#w#vq#{#vq#}#vq$S#vq$V#vq$X#vq%e#vq&R#vq&S#vq&W#vq&X#vq&m#vq&n#vq&q#vq&t#vq&x#vq&y#vq&z#vq%g#vq%k#vq~O#d,wO|%[a}%[a~Oq1`Ox1nO}'Ti~P'ZO|,yO}'Ti~O}$[O&^,{Oi'VX|'VX~O&XWOi'VX|'VX~O|-POi'UX~Oi-RO~O%f-UO~O!V%qO!W%pOi&ii|&ii~OX%[Oc%[Oq1`Ox1nOi&hi~P'ZO}-XO|$ta!Y$ta~Oq1`Ox1nO}-YO|$ta!Y$ta~P'ZOq1`Ox1nO}+RO!Y&ki~P'ZO|-]O!Y&ki~Oq1`Ox1nO|-]O!Y&ki~P'ZO|-]O}-`O!Y&ki~Oi$pi|$pi!Y$pi~P$gOX(_Oq1`Ox1nO~P'ZOp-bO~OX(_Oi-cOq1`Ox1nO~P'ZOX(_Oq1`Ox1nO!Y&fq~P'ZO|$oi!^$oi#o$oi%h$oi%k$oii$oi}$oi!o$oi&^$oi~P$gOX(nOq1`Ox1nO~P'ZOc+lOq1`Ox1nO!^&gq~P'ZO|-dO!^&gq~O!^-eO~OX(nOq1`Ox1nO!^&aq#o&aq%h&aq%k&aqi&aq}&aq!o&aq&^&aq~P'ZO}-fO~OX+pOq1`Ox1nO}&ui!^&ui!o&ui&^&ui~P'ZO|-kO}&ui!^&ui!o&ui&^&ui~O!_+tO&w+uO!^!pa~O}(|O!^-nO~O}(|O!^-oO~O}(|O!^-pO~O}(|O!^-qO~OX&dOq1`Ox1nO#o%zi%h%zi%k%zi&^%zi~P'ZO|-rO#o%zi%h%zi%k%zi&^%zi~O&XWO#o'Oa%h'Oa%k'Oai'Oa~O|-uO#o'Oa%h'Oa%k'Oai'Oa~Oi-xO~OX)zOc)zO&XWO!Y'Qa~O|-zO!Y'Qa~Op%Yi|%Yi~P$gOX*VO~P'ZOX*VOp'Sq~P'ZOv.OOP#uyX#uyh#uyj#uyq#uyu#uyx#uy!R#uy!S#uy!V#uy!W#uy!Z#uy!_#uy!j#uy!z#uy!{#uy!|#uy#T#uy#V#uy#X#uy#Z#uy#]#uy#a#uy#c#uy#f#uy#g#uy#i#uy#k#uy#t#uy#w#uy#{#uy#}#uy$S#uy$V#uy$X#uy%e#uy&R#uy&S#uy&W#uy&X#uy&m#uy&n#uy&q#uy&t#uy&x#uy&y#uy&z#uy%g#uy%k#uy~O%g.SO%k.SO~P`O#y.TOP#vyX#vyh#vyj#vyq#vyu#vyx#vy!R#vy!S#vy!V#vy!W#vy!Z#vy!_#vy!j#vy!z#vy!{#vy!|#vy#T#vy#V#vy#X#vy#Z#vy#]#vy#a#vy#c#vy#f#vy#g#vy#i#vy#k#vy#t#vy#w#vy#{#vy#}#vy$S#vy$V#vy$X#vy%e#vy&R#vy&S#vy&W#vy&X#vy&m#vy&n#vy&q#vy&t#vy&x#vy&y#vy&z#vy%g#vy%k#vy~O|.WO}$wO#d.WO~Oq1`Ox1nO}'Tq~P'ZO|.ZO}'Tq~O&^,{Oi'Va|'Va~OX*nOc*oO&T*pO&XWOi'Ua~O|._Oi'Ua~O$[.cO~OX%[Oc%[Oq1`Ox1nO~P'ZOq1`Ox1nO}.dO|$ti!Y$ti~P'ZOq1`Ox1nO|$ti!Y$ti~P'ZO}.dO|$ti!Y$ti~Oq1`Ox1nO}+RO~P'ZOq1`Ox1nO}+RO!Y&kq~P'ZO|.gO!Y&kq~Oq1`Ox1nO|.gO!Y&kq~P'ZOu.jO!V%qO!W%pOi&bq!Y&bq!^&bq|&bq~P!.TOc+lOq1`Ox1nO!^&gy~P'ZO|$ri!^$ri~P$gOc+lOq1`Ox1nO~P'ZOX+pOq1`Ox1nO~P'ZOX+pOq1`Ox1nO}&uq!^&uq!o&uq&^&uq~P'ZO}(|O!^.oO!o.pO&^.nO~OX&dOq1`Ox1nO#o%zq%h%zq%k%zq&^%zq~P'ZO#d.rO|%Ta#o%Ta%h%Ta%k%Tai%Ta~O&XWO#o'Oi%h'Oi%k'Oii'Oi~O|.tO#o'Oi%h'Oi%k'Oii'Oi~OX)zOc)zO&XWO!Y'Qi~Ov.xOP#u!RX#u!Rh#u!Rj#u!Rq#u!Ru#u!Rx#u!R!R#u!R!S#u!R!V#u!R!W#u!R!Z#u!R!_#u!R!j#u!R!z#u!R!{#u!R!|#u!R#T#u!R#V#u!R#X#u!R#Z#u!R#]#u!R#a#u!R#c#u!R#f#u!R#g#u!R#i#u!R#k#u!R#t#u!R#w#u!R#{#u!R#}#u!R$S#u!R$V#u!R$X#u!R%e#u!R&R#u!R&S#u!R&W#u!R&X#u!R&m#u!R&n#u!R&q#u!R&t#u!R&x#u!R&y#u!R&z#u!R%g#u!R%k#u!R~Oq1`Ox1nO}'Ty~P'ZOX*nOc*oO&T*pO&XWOi'Ui~O$[.cO%g/QO%k/QO~OX/[Oj/YO!Z/XO!_/ZO!j/TO!{/VO!|/VO&S/SO&XWO&m]O&n^O&q_O~Oq1`Ox1nO|$tq!Y$tq~P'ZO}/aO|$tq!Y$tq~Oq1`Ox1nO}+RO!Y&ky~P'ZO|/bO!Y&ky~Oq1`Ox/fO~P'ZOu.jO!V%qO!W%pOi&by!Y&by!^&by|&by~P!.TO}(|O!^/iO~O}(|O!^/iO!o/jO~O&XWO#o'Oq%h'Oq%k'Oqi'Oq~O|/lO#o'Oq%h'Oq%k'Oqi'Oq~OX*nOc*oO&T*pO&XWO~Oj/qO!h/oO|$]X#d$]X%|$]Xi$]X~Ou$]X}$]X!Y$]X!^$]X~P$)YO&R/sO&S/sOu$^X|$^X}$^X#d$^X%|$^X!Y$^Xi$^X!^$^X~O!j/uO~O|/yO#d/{O%|/vOu'XX}'XX!Y'XXi'XX~Oc0OO~P$%_Oj/qOu'YX|'YX}'YX#d'YX%|'YX!Y'YXi'YX!^'YX~Ou0SO}$wO~Oq1`Ox1nO|$ty!Y$ty~P'ZOq1`Ox1nO}+RO!Y&k!R~P'ZO|0WO!Y&k!R~Oi&eXu&eX!V&eX!W&eX!Y&eX!^&eX|&eX~P!.TOu.jO!V%qO!W%pOi&da!Y&da!^&da|&da~O}(|O!^0ZO~O&XWO#o'Oy%h'Oy%k'Oyi'Oy~O!h/oOj$dau$da|$da}$da#d$da%|$da!Y$dai$da!^$da~O!j0bO~O&R/sO&S/sOu$^a|$^a}$^a#d$^a%|$^a!Y$^ai$^a!^$^a~O%|/vOu$ba|$ba}$ba#d$ba!Y$bai$ba!^$ba~Ou'Xa}'Xa!Y'Xai'Xa~P$%RO|0gOu'Xa}'Xa!Y'Xai'Xa~O!Y0jO~Oi0jO~O}0lO~O!^0mO~Oq1`Ox1nO}+RO!Y&k!Z~P'ZO}0pO~O&^0qO~P$)YO|0rO#d/{O%|/vOi'[X~O|0rOi'[X~Oi0tO~O!j0uO~O#d/{Ou%`a|%`a}%`a%|%`a!Y%`ai%`a!^%`a~O#d/{O%|/vOu%da|%da}%da!Y%dai%da~Ou'Xi}'Xi!Y'Xii'Xi~P$%RO|0wO#d/{O%|/vO!^'Za~O}$la~P$gOi'[a~P$%RO|1POi'[a~Oc1RO!^'Zi~P$%_O|1TO!^'Zi~O|1TO#d/{O%|/vO!^'Zi~O#d/{O%|/vOi$ji|$ji~O&^1WO~P$)YO#d/{O%|/vOi%ca|%ca~Oi'[i~P$%RO}1ZO~Oc1RO!^'Zq~P$%_O|1]O!^'Zq~O#d/{O%|/vO|%bi!^%bi~Oc1RO~P$%_Oc1RO!^'Zy~P$%_O#d/{O%|/vOi$ki|$ki~O#d/{O%|/vO|%bq!^%bq~O|,QO#o%za%h%za%k%za&^%za~P$gOX&dOq1`Ox1nO~P'ZOp1eO~Oq1eO~P'ZO}1fO~Ov1gO~P!.TO&n&q&y&z&m&t&x&X&m~",
156
+ goto: "!@f']PPPPPPPP'^P'f+R+k,U,p-]-yP.hP'f/X/X'fPPP'f2tPPPPPP2t5kPP5kP8O8X>kPP>n?`?cPP'f'fPP?{PP'f'fPP'f'f'f'f'f@P@y'fP@|PASE^H}IRPIUIlIpIsIwIzJOJRJV'fPPPJYJc'^P'^'^P'^P'^P'^P'^P'^'^'^P'^PP'^PP'^P'^PJiJuJ}PKUK[PKUPKUKUPPPKUPMjPMsM}NTMjPKUN^PKUPNeNkPNo! T! r!!]NoNo!!c!!pNoNoNoNo!#U!#[!#_!#d!#g!#q!#w!$T!$g!$m!$w!$}!%k!%q!%w!%}!&X!&_!&e!&k!&q!&w!'Z!'e!'k!'q!'w!(R!(X!(_!(e!(k!(u!({!)V!)]!)f!)l!){!*T!*_!*fPPPPPPPPPPPPPPPPP!*l!*o!*u!+O!+Y!+ePPPPPPPPPPPP!0[!1p!5s!9WPP!9`!9r!9{!:t!:k!:}!;T!;W!;Z!;^!;f!<VPPPPPPPPP!<Y!<iPPPP!=m!=y!>V!>]!>f!>i!>l!>r!>x!?O!?RP!?Z!?d!@`!@c]jOs#v$w*`,p(TeOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1o}!hQ#r$P$b$q$}%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!P!iQ#r$P$b$q$}%S%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!R!jQ#r$P$b$q$}%S%T%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!T!kQ#r$P$b$q$}%S%T%U%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!V!lQ#r$P$b$q$}%S%T%U%V%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!X!mQ#r$P$b$q$}%S%T%U%V%W%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!]!mQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d(TTOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1o&iVOYZ[isuw}!O!S!U!V!Z!n!p!t!u!v!x!y#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%h%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)_)a)i)x*P*R*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+p+q+t,Q,T,[,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0W0p1`1a1b1c1e1f1g1h1k1o%sXOYZ[isw}!O!S!U!V!Z!n!p#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)_)a)i)x*P*R*[*`*f*j*t+O+R+S+V+]+`+b+e+f+i+p+q+t,Q,T,[,p,x,y,|-W-X-Y-[-]-`-d-f-h-j-k-r.Z.].d.g/a/b0W1f1g1hQ$VvQ0X/fR1l1n'zeOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1oW#ym!P!Q$hW$Rv&q/f1nQ$j!RQ$n!TQ${![Q$|!]W%Z!n(O+O-WS&p$S$TQ'e$vQ)b&jQ)p'QU)q'S)r)sU)t'U)u,ZW){'Y,^-z.vQ*l'nW*m'p-P._/OQ,])zS-O*n*oY-t,U-u.s.t/lQ-w,WQ.U,tQ.Y,wQ.|.Wl/R.c/X/Y/[/w/y0O0g0l0q0v1R1W1ZQ/k.rQ0P/ZQ0^/qQ0i/{U0|0r1P1XX1S0w1T1[1]R&o$R!_!|YZ!U!V!p%a%m%t(R(T(U(a(i*R+R+S+V+]+`+b-X-Y-[-]-`.d.g/a/b0WR%k!{Q#QYQ&W#cQ&Z#gQ&]#jQ&_#mQ&x$^Q&{$aR-l+tT/e.j0p![!oQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1dQ&m#zQ't$|R*x'uR'}%ZQ%d!rR0[/o(SdOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1oS#pd#q!P/V.c/X/Y/Z/[/q/w/y0O0g0l0q0r0v0w1P1R1T1W1X1Z1[1](SdOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1oT#pd#qT#d`#eR)Q&Wy(}&W&Z&]&_)P)Q)T)U)X)Y)])^+y+{+},P-l.p.q/jT+u(|+vR.q-lT#ha#iR)U&ZT#kb#lR)Y&]T#nc#oR)^&_Q$`xQ,]){R,}*mX$^x$_$`&zQ'[$nQ'r${Q'u$|R*_'eQ)|'YV-y,^-z.vZlOs$w*`,pXpOs*`,pQ$x!YQ']$oQ'^$pQ'o$zQ's$|Q*]'dQ*d'iQ*g'jQ*h'kQ*u'qS*w't'uQ,d*RQ,f*SQ,g*TQ,k*ZS,m*^*vQ,q*bQ,r*cS,s*e*fQ-T*xQ-|,cQ-},eQ.P,lS.Q,n,oQ.V,uQ.X,vQ.w.OQ.y.RQ.z.TQ.{.UQ/m.xQ/n.|Q0T/_R0o0UWpOs*`,pR#|oQ'q${S*^'e'rR,o*_Q,|*mR.],}Q*v'qQ,n*^R.R,oZnOos*`,pQ'w$}R*z'xT.a-U.bu/^.c/X/Y/[/q/w/y0O0g0l0q0r0v1P1R1W1X1Zt/^.c/X/Y/[/q/w/y0O0g0l0q0r0v1P1R1W1X1ZQ0P/ZX1S0w1T1[1]!P/U.c/X/Y/Z/[/q/w/y0O0g0l0q0r0v0w1P1R1T1W1X1Z1[1]Q/t/TR0c/ug/w/W/x0_0f0k0y0{0}1Y1^1_u/].c/X/Y/[/q/w/y0O0g0l0q0r0v1P1R1W1X1ZX/r/R/]0^0|R0`/qV1O0r1P1XR0U/_QsOS$Os,pR,p*`Q&r$UR)g&rS%z#W$WS(p%z(sT(s%}&tQ%n#OQ%u#SW(b%n%u(g(kQ(g%rR(k%wQ&}$bR)m&}Q(v&OQ+g(qT+m(v+gQ(P%]R+P(PS(S%`%aY+T(S+U-^.h/cU+U(T(U(VU-^+V+W+XS.h-_-`R/c.iQ#_^R&R#_Q#b_R&T#bQ#e`R&X#eQ(y&US+r(y+sR+s(zQ+v(|R-m+vQ#iaR&[#iQ#lbR&^#lQ#ocR&`#oQ#qdR&a#qQ#tgQ&c#rW&f#t&c)j,RQ)j&wR,R1dQ$_xS&y$_&zR&z$`Q'X$lR)y'XQ&k#yR)c&kQ$h!QR'R$hQ,V)qS-v,V.uR.u-wQ'V$jR)v'VQ,_)|R-{,_Q#wkR&h#wQ*Q']R,b*QQ'`$qS*X'`*YR*Y'aQ'h$xR*a'hQ'm$yS*k'm,zR,z*lQ-Q*qR.`-QWoOs*`,pR#{oQ.b-UR/P.bd/x/W0_0f0k0y0{0}1Y1^1_R0e/xU/p/R0^0|R0]/pQ0x0kS1U0x1VR1V0yS0s0_0`R1Q0sQ/z/WR0h/zR!`PXrOs*`,pWqOs*`,pR'f$wYkOs$w*`,pR&g#v[xOs#v$w*`,pR&x$^&hQOYZ[isuw}!O!S!U!V!Z!n!p!t!u!v!x!y#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%h%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)_)a)i)x*P*R*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+p+q+t,Q,T,[,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0W0p1`1a1b1c1e1f1g1h1k1oQ!sTQ#rfQ$PtU$by%p(eS$q!W$tQ$}!^Q%S!hQ%T!iQ%U!jQ%V!kQ%W!lQ%X!mQ%r#PQ%w#TQ%}#XQ&O#YQ&t$XQ'a$rQ'x%OQ)`&dU)k&|)l,SW*U'_*W,i,jQ+Z(_Q+d(nQ,h*VQ-g+lQ0n0SR1d1iQ#OYQ#SZQ$o!UQ$p!VQ%`!pQ(V%a^(^%m%t(a(i+]+`+b^+Q(R+S-[-].g/b0WQ+W(TQ+X(UQ,e*RQ-Z+RQ-_+VQ.e-XQ.f-YQ.i-`Q/`.dR0V/a[gOs#v$w*`,p!^!{YZ!U!V!p%a%m%t(R(T(U(a(i*R+R+S+V+]+`+b-X-Y-[-]-`.d.g/a/b0WQ#W[Q#uiS$Ww}Q$e!OW$l!S$a'b*[S$y!Z$uW%Y!n(O+O-WY&U#c#g#j#m+t`&e#s&b)_)a)i,Q-r1hQ&u$YQ&v$[Q&w$^Q'{%[Q(]%kW(m%y(o+e+iQ(q%{Q(z&VQ)e&oS)h&s1fQ)n'OQ)o'PU)w'W)x,[Q*O'ZQ*e'iY*i'l*j,x,y.ZQ*|'}S+Y(Y1gW+k(u+f-d-hW+o(x+q-j-kQ,a*PQ,u*fQ-S*tQ-i+pQ-s,TQ.[,|Q.m-fR.}.]hUOs#s#v$w&b&s(Y)_)a*`,p%Y!zYZ[iw}!O!S!U!V!Z!n!p#c#g#j#m$Y$[$^$a$u%[%a%k%m%t%y%{&V&o'O'P'W'Z'b'i'l'}(O(R(T(U(a(i(o(u(x)i)x*P*R*[*f*j*t+O+R+S+V+]+`+b+e+f+i+p+q+t,Q,T,[,x,y,|-W-X-Y-[-]-`-d-f-h-j-k-r.Z.].d.g/a/b0W1f1g1hQ$QuW%e!t!x1a1kQ%f!uQ%g!vQ%i!yQ%s1`S(X%h1eQ(Z1bQ([1cQ-a+^Q.l-bS/d.j0pR1m1oU$Uv/f1nR)f&q[hOs#v$w*`,pa!}Y#c#g#j#m$^$a+tQ#][Q$ZwR$d}Q%o#OQ%v#SQ%|#WQ'{%YQ(h%rQ(l%wQ(t%}Q(w&OQ+h(qQ-V*|Q.k-aQ/h.lR0Y/gQ$cyQ(d%pR+_(eQ/g.jR0z0pR#VZR#[[R%_!nQ%]!nV*}(O+O-W!]!qQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1dR%b!pQ&W#cQ&Z#gQ&]#jQ&_#mR-l+tQ)O&WQ)S&ZQ)W&]Q)[&_S+x)P)QS+z)T)US+|)X)YS,O)])^Q-n+yQ-o+{Q-p+}Q-q,PQ.o-lS/i.p.qR0Z/jQ$m!SQ&{$aQ*Z'bR,l*[Q#zmQ$f!PQ$i!QR'T$hQ)p'SR,Y)sQ)p'SQ,X)rR,Y)sR$k!RR)}'YXqOs*`,pQ$s!WR'c$tQ$z!ZR'd$uR*s'pQ*q'pV.^-P._/OQ/_.cQ/|/XR/}/YU/W.c/X/YQ0R/[Q0_/qQ0d/wU0f/y0g0vQ0k0OQ0y0lQ0{0qU0}0r1P1XQ1Y1RQ1^1WR1_1ZR0Q/ZR0a/q",
157
+ nodeNames: "⚠ print { { { { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc FormatReplacement FormatSelfDoc FormatReplacement FormatSelfDoc FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",
158
+ maxTerm: 288,
159
+ context: UO,
160
+ nodeProps: [
161
+ ["isolate", -8, 6, 73, 74, 75, 79, 81, 83, 85, ""],
162
+ ["group", -15, 8, 93, 95, 96, 98, 100, 102, 104, 106, 107, 108, 110, 113, 116, 118, "Statement Statement", -22, 10, 20, 23, 27, 42, 51, 52, 58, 59, 62, 63, 64, 65, 66, 69, 72, 73, 74, 87, 88, 89, 90, "Expression", -10, 122, 124, 127, 129, 130, 134, 136, 141, 143, 146, "Statement", -9, 151, 152, 155, 156, 158, 159, 160, 161, 162, "Pattern"],
163
+ ["openedBy", 25, "(", 56, "[", 60, "{"],
164
+ ["closedBy", 26, ")", 57, "]", 61, "}"]
165
+ ],
166
+ propSources: [NO],
167
+ skippedNodes: [0, 6],
168
+ repeatNodeCount: 38,
169
+ tokenData: "%-W#sR!`OX%TXY=|Y[%T[]=|]p%Tpq=|qr@_rsDOst!+|tu%Tuv!Nnvw#!|wx#$Wxy#:Uyz#;Yz{#<^{|#>x|}#@S}!O#AW!O!P#Ci!P!Q#N_!Q!R$!y!R![$&w![!]$1e!]!^$3s!^!_$4w!_!`$7c!`!a$8m!a!b%T!b!c$;U!c!d$<b!d!e$>W!e!h$<b!h!i$H[!i!t$<b!t!u%#r!u!w$<b!w!x$Fl!x!}$<b!}#O%%z#O#P?d#P#Q%'O#Q#R%(S#R#S$<b#S#T%T#T#U$<b#U#V$>W#V#Y$<b#Y#Z$H[#Z#f$<b#f#g%#r#g#i$<b#i#j$Fl#j#o$<b#o#p%)^#p#q%*S#q#r%+^#r#s%,S#s$g%T$g;'S$<b;'S;=`$>Q<%lO$<b!n%^]&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!n&^]&w!b&oSOr%Trs'Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!n'^]&w!b&oSOr%Trs(Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!f(^Z&w!b&oSOw(Vwx)Px#O(V#O#P+Z#P#o(V#o#p+x#p#q(V#q#r+x#r;'S(V;'S;=`/R<%lO(V!f)UZ&w!bOw(Vwx)wx#O(V#O#P+Z#P#o(V#o#p+x#p#q(V#q#r+x#r;'S(V;'S;=`/R<%lO(V!f)|Z&w!bOw(Vwx*ox#O(V#O#P+Z#P#o(V#o#p+x#p#q(V#q#r+x#r;'S(V;'S;=`/R<%lO(V!b*tT&w!bO#o*o#p#q*o#r;'S*o;'S;=`+T<%lO*o!b+WP;=`<%l*o!f+`W&w!bO#o(V#o#p+x#p#q(V#q#r+x#r;'S(V;'S;=`.d;=`<%l+x<%lO(VS+}V&oSOw+xwx,dx#O+x#O#P-c#P;'S+x;'S;=`.^<%lO+xS,gVOw+xwx,|x#O+x#O#P-c#P;'S+x;'S;=`.^<%lO+xS-PUOw+xx#O+x#O#P-c#P;'S+x;'S;=`.^<%lO+xS-fRO;'S+x;'S;=`-o;=`O+xS-tW&oSOw+xwx,dx#O+x#O#P-c#P;'S+x;'S;=`.^;=`<%l+x<%lO+xS.aP;=`<%l+x!f.iW&oSOw+xwx,dx#O+x#O#P-c#P;'S+x;'S;=`.^;=`<%l(V<%lO+x!f/UP;=`<%l(V!n/`]&w!b&rWOr%Trs&Vsw%Twx0Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!n0`]&w!b&rWOr%Trs&Vsw%Twx1Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!j1`Z&w!b&rWOr1Xrs2Rs#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X!j2WZ&w!bOr1Xrs2ys#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X!j3OZ&w!bOr1Xrs*os#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X!j3vW&w!bO#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`6z;=`<%l4`<%lO1XW4eV&rWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t<%lO4`W4}VOr4`rs5ds#O4`#O#P5y#P;'S4`;'S;=`6t<%lO4`W5gUOr4`s#O4`#O#P5y#P;'S4`;'S;=`6t<%lO4`W5|RO;'S4`;'S;=`6V;=`O4`W6[W&rWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t;=`<%l4`<%lO4`W6wP;=`<%l4`!j7PW&rWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t;=`<%l1X<%lO4`!j7lP;=`<%l1X!n7tW&w!bO#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=P;=`<%l8^<%lO%T[8eX&oS&rWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^[9VX&oSOr8^rs9rsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^[9wX&oSOr8^rs+xsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^[:iX&rWOr8^rs9Qsw8^wx;Ux#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^[;ZX&rWOr8^rs9Qsw8^wx4`x#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^[;yRO;'S8^;'S;=`<S;=`O8^[<ZY&oS&rWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y;=`<%l8^<%lO8^[<|P;=`<%l8^!n=WY&oS&rWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y;=`<%l%T<%lO8^!n=yP;=`<%l%T#s>Xc&w!b&oS&rW%u!TOX%TXY=|Y[%T[]=|]p%Tpq=|qr%Trs&Vsw%Twx/Xx#O%T#O#P?d#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#s?i[&w!bOY%TYZ=|Z]%T]^=|^#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=P;=`<%l8^<%lO%T!q@hd&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`Av!`#O%T#O#P7o#P#T%T#T#UBz#U#f%T#f#gBz#g#hBz#h#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!qBR]oR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!qCV]!oR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#cDXa&w!b&oS&msOYE^YZ%TZ]E^]^%T^rE^rs!)|swE^wxGpx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cEia&w!b&oS&rW&msOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxGpx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cFw]&w!b&oS&msOr%Trs'Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#cGya&w!b&rW&msOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxIOx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cIXa&w!b&rW&msOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxJ^x#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#_Jg_&w!b&rW&msOYJ^YZ1XZ]J^]^1X^rJ^rsKfs#OJ^#O#PL`#P#oJ^#o#pL}#p#qJ^#q#rL}#r;'SJ^;'S;=`!!o<%lOJ^#_KmZ&w!b&msOr1Xrs2ys#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X#_LeW&w!bO#oJ^#o#pL}#p#qJ^#q#rL}#r;'SJ^;'S;=`! r;=`<%lL}<%lOJ^{MUZ&rW&msOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l<%lOL}{M|V&msOr4`rs5ds#O4`#O#P5y#P;'S4`;'S;=`6t<%lO4`{NfRO;'SL};'S;=`No;=`OL}{Nv[&rW&msOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l;=`<%lL}<%lOL}{! oP;=`<%lL}#_! y[&rW&msOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l;=`<%lJ^<%lOL}#_!!rP;=`<%lJ^#c!!zW&w!bO#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!(q;=`<%l!#d<%lOE^!P!#m]&oS&rW&msOY!#dYZ8^Z]!#d]^8^^r!#drs!$fsw!#dwx!%Yx#O!#d#O#P!'Y#P;'S!#d;'S;=`!(k<%lO!#d!P!$mX&oS&msOr8^rs9rsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^!P!%a]&rW&msOY!#dYZ8^Z]!#d]^8^^r!#drs!$fsw!#dwx!&Yx#O!#d#O#P!'Y#P;'S!#d;'S;=`!(k<%lO!#d!P!&a]&rW&msOY!#dYZ8^Z]!#d]^8^^r!#drs!$fsw!#dwxL}x#O!#d#O#P!'Y#P;'S!#d;'S;=`!(k<%lO!#d!P!']RO;'S!#d;'S;=`!'f;=`O!#d!P!'o^&oS&rW&msOY!#dYZ8^Z]!#d]^8^^r!#drs!$fsw!#dwx!%Yx#O!#d#O#P!'Y#P;'S!#d;'S;=`!(k;=`<%l!#d<%lO!#d!P!(nP;=`<%l!#d#c!(z^&oS&rW&msOY!#dYZ8^Z]!#d]^8^^r!#drs!$fsw!#dwx!%Yx#O!#d#O#P!'Y#P;'S!#d;'S;=`!(k;=`<%lE^<%lO!#d#c!)yP;=`<%lE^#c!*V]&w!b&oS&msOr%Trs!+Osw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c!+ZZ&sW&w!b&oS&qsOw(Vwx)Px#O(V#O#P+Z#P#o(V#o#p+x#p#q(V#q#r+x#r;'S(V;'S;=`/R<%lO(V#s!,XaU!T&w!b&oS&rWOY!+|YZ%TZ]!+|]^%T^r!+|rs!-^sw!+|wx!:hx#O!+|#O#P!FW#P#o!+|#o#p!GT#p#q!+|#q#r!GT#r;'S!+|;'S;=`!Nh<%lO!+|#s!-gaU!T&w!b&oSOY!+|YZ%TZ]!+|]^%T^r!+|rs!.lsw!+|wx!:hx#O!+|#O#P!FW#P#o!+|#o#p!GT#p#q!+|#q#r!GT#r;'S!+|;'S;=`!Nh<%lO!+|#s!.uaU!T&w!b&oSOY!+|YZ%TZ]!+|]^%T^r!+|rs!/zsw!+|wx!:hx#O!+|#O#P!FW#P#o!+|#o#p!GT#p#q!+|#q#r!GT#r;'S!+|;'S;=`!Nh<%lO!+|#k!0T_U!T&w!b&oSOY!/zYZ(VZ]!/z]^(V^w!/zwx!1Sx#O!/z#O#P!4z#P#o!/z#o#p!5w#p#q!/z#q#r!5w#r;'S!/z;'S;=`!:b<%lO!/z#k!1Z_U!T&w!bOY!/zYZ(VZ]!/z]^(V^w!/zwx!2Yx#O!/z#O#P!4z#P#o!/z#o#p!5w#p#q!/z#q#r!5w#r;'S!/z;'S;=`!:b<%lO!/z#k!2a_U!T&w!bOY!/zYZ(VZ]!/z]^(V^w!/zwx!3`x#O!/z#O#P!4z#P#o!/z#o#p!5w#p#q!/z#q#r!5w#r;'S!/z;'S;=`!:b<%lO!/z#g!3gZU!T&w!bOY!3`YZ*oZ]!3`]^*o^#o!3`#o#p!4Y#p#q!3`#q#r!4Y#r;'S!3`;'S;=`!4t<%lO!3`!T!4_TU!TOY!4YZ]!4Y^;'S!4Y;'S;=`!4n<%lO!4Y!T!4qP;=`<%l!4Y#g!4wP;=`<%l!3`#k!5R[U!T&w!bOY!/zYZ(VZ]!/z]^(V^#o!/z#o#p!5w#p#q!/z#q#r!5w#r;'S!/z;'S;=`!9s;=`<%l+x<%lO!/z!X!6OZU!T&oSOY!5wYZ+xZ]!5w]^+x^w!5wwx!6qx#O!5w#O#P!8a#P;'S!5w;'S;=`!9m<%lO!5w!X!6vZU!TOY!5wYZ+xZ]!5w]^+x^w!5wwx!7ix#O!5w#O#P!8a#P;'S!5w;'S;=`!9m<%lO!5w!X!7nZU!TOY!5wYZ+xZ]!5w]^+x^w!5wwx!4Yx#O!5w#O#P!8a#P;'S!5w;'S;=`!9m<%lO!5w!X!8fWU!TOY!5wYZ+xZ]!5w]^+x^;'S!5w;'S;=`!9O;=`<%l+x<%lO!5w!X!9TW&oSOw+xwx,dx#O+x#O#P-c#P;'S+x;'S;=`.^;=`<%l!5w<%lO+x!X!9pP;=`<%l!5w#k!9xW&oSOw+xwx,dx#O+x#O#P-c#P;'S+x;'S;=`.^;=`<%l!/z<%lO+x#k!:eP;=`<%l!/z#s!:qaU!T&w!b&rWOY!+|YZ%TZ]!+|]^%T^r!+|rs!-^sw!+|wx!;vx#O!+|#O#P!FW#P#o!+|#o#p!GT#p#q!+|#q#r!GT#r;'S!+|;'S;=`!Nh<%lO!+|#s!<PaU!T&w!b&rWOY!+|YZ%TZ]!+|]^%T^r!+|rs!-^sw!+|wx!=Ux#O!+|#O#P!FW#P#o!+|#o#p!GT#p#q!+|#q#r!GT#r;'S!+|;'S;=`!Nh<%lO!+|#o!=__U!T&w!b&rWOY!=UYZ1XZ]!=U]^1X^r!=Urs!>^s#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!>e_U!T&w!bOY!=UYZ1XZ]!=U]^1X^r!=Urs!?ds#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!?k_U!T&w!bOY!=UYZ1XZ]!=U]^1X^r!=Urs!3`s#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!@q[U!T&w!bOY!=UYZ1XZ]!=U]^1X^#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!Ec;=`<%l4`<%lO!=U!]!AnZU!T&rWOY!AgYZ4`Z]!Ag]^4`^r!Agrs!Bas#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!BfZU!TOY!AgYZ4`Z]!Ag]^4`^r!Agrs!CXs#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!C^ZU!TOY!AgYZ4`Z]!Ag]^4`^r!Agrs!4Ys#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!DUWU!TOY!AgYZ4`Z]!Ag]^4`^;'S!Ag;'S;=`!Dn;=`<%l4`<%lO!Ag!]!DsW&rWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t;=`<%l!Ag<%lO4`!]!E`P;=`<%l!Ag#o!EhW&rWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t;=`<%l!=U<%lO4`#o!FTP;=`<%l!=U#s!F_[U!T&w!bOY!+|YZ%TZ]!+|]^%T^#o!+|#o#p!GT#p#q!+|#q#r!GT#r;'S!+|;'S;=`!Mq;=`<%l8^<%lO!+|!a!G^]U!T&oS&rWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!H^]U!T&oSOY!GTYZ8^Z]!GT]^8^^r!GTrs!IVsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!I^]U!T&oSOY!GTYZ8^Z]!GT]^8^^r!GTrs!5wsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!J^]U!T&rWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!KVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!K^]U!T&rWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!Agx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!L[WU!TOY!GTYZ8^Z]!GT]^8^^;'S!GT;'S;=`!Lt;=`<%l8^<%lO!GT!a!L{Y&oS&rWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y;=`<%l!GT<%lO8^!a!MnP;=`<%l!GT#s!MxY&oS&rWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y;=`<%l!+|<%lO8^#s!NkP;=`<%l!+|#b!Ny_&UQ&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#b#!T]#Qr&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#b##X_&OQ&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#$aa&w!b&rW&msOY#%fYZ%TZ]#%f]^%T^r#%frs#&vsw#%fwx#8Ux#O#%f#O#P#0}#P#o#%f#o#p#1l#p#q#%f#q#r#1l#r;'S#%f;'S;=`#8O<%lO#%f#c#%qa&w!b&oS&rW&msOY#%fYZ%TZ]#%f]^%T^r#%frs#&vsw#%fwx#/{x#O#%f#O#P#0}#P#o#%f#o#p#1l#p#q#%f#q#r#1l#r;'S#%f;'S;=`#8O<%lO#%f#c#'Pa&w!b&oS&msOY#%fYZ%TZ]#%f]^%T^r#%frs#(Usw#%fwx#/{x#O#%f#O#P#0}#P#o#%f#o#p#1l#p#q#%f#q#r#1l#r;'S#%f;'S;=`#8O<%lO#%f#c#(_a&w!b&oS&msOY#%fYZ%TZ]#%f]^%T^r#%frs#)dsw#%fwx#/{x#O#%f#O#P#0}#P#o#%f#o#p#1l#p#q#%f#q#r#1l#r;'S#%f;'S;=`#8O<%lO#%f#Z#)m_&w!b&oS&msOY#)dYZ(VZ]#)d]^(V^w#)dwx#*lx#O#)d#O#P#+f#P#o#)d#o#p#,T#p#q#)d#q#r#,T#r;'S#)d;'S;=`#/u<%lO#)d#Z#*sZ&w!b&msOw(Vwx)wx#O(V#O#P+Z#P#o(V#o#p+x#p#q(V#q#r+x#r;'S(V;'S;=`/R<%lO(V#Z#+kW&w!bO#o#)d#o#p#,T#p#q#)d#q#r#,T#r;'S#)d;'S;=`#.x;=`<%l#,T<%lO#)dw#,[Z&oS&msOY#,TYZ+xZ]#,T]^+x^w#,Twx#,}x#O#,T#O#P#-i#P;'S#,T;'S;=`#.r<%lO#,Tw#-SV&msOw+xwx,|x#O+x#O#P-c#P;'S+x;'S;=`.^<%lO+xw#-lRO;'S#,T;'S;=`#-u;=`O#,Tw#-|[&oS&msOY#,TYZ+xZ]#,T]^+x^w#,Twx#,}x#O#,T#O#P#-i#P;'S#,T;'S;=`#.r;=`<%l#,T<%lO#,Tw#.uP;=`<%l#,T#Z#/P[&oS&msOY#,TYZ+xZ]#,T]^+x^w#,Twx#,}x#O#,T#O#P#-i#P;'S#,T;'S;=`#.r;=`<%l#)d<%lO#,T#Z#/xP;=`<%l#)d#c#0U]&w!b&rW&msOr%Trs&Vsw%Twx0Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#1SW&w!bO#o#%f#o#p#1l#p#q#%f#q#r#1l#r;'S#%f;'S;=`#6y;=`<%l#1l<%lO#%f!P#1u]&oS&rW&msOY#1lYZ8^Z]#1l]^8^^r#1lrs#2nsw#1lwx#4nx#O#1l#O#P#5b#P;'S#1l;'S;=`#6s<%lO#1l!P#2u]&oS&msOY#1lYZ8^Z]#1l]^8^^r#1lrs#3nsw#1lwx#4nx#O#1l#O#P#5b#P;'S#1l;'S;=`#6s<%lO#1l!P#3u]&oS&msOY#1lYZ8^Z]#1l]^8^^r#1lrs#,Tsw#1lwx#4nx#O#1l#O#P#5b#P;'S#1l;'S;=`#6s<%lO#1l!P#4uX&rW&msOr8^rs9Qsw8^wx;Ux#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^!P#5eRO;'S#1l;'S;=`#5n;=`O#1l!P#5w^&oS&rW&msOY#1lYZ8^Z]#1l]^8^^r#1lrs#2nsw#1lwx#4nx#O#1l#O#P#5b#P;'S#1l;'S;=`#6s;=`<%l#1l<%lO#1l!P#6vP;=`<%l#1l#c#7S^&oS&rW&msOY#1lYZ8^Z]#1l]^8^^r#1lrs#2nsw#1lwx#4nx#O#1l#O#P#5b#P;'S#1l;'S;=`#6s;=`<%l#%f<%lO#1l#c#8RP;=`<%l#%f#c#8_]&w!b&rW&msOr%Trs&Vsw%Twx#9Wx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#9cZ&pS&w!b&rW&nsOr1Xrs2Rs#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X#c#:a]js&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!q#;e]iR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#<iaXs&w!b&oS&rWOr%Trs&Vsw%Twx/Xxz%Tz{#=n{!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#=y_cR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#?T_&Rs&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!q#@_]|R&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#s#Ac`&Ss&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`!a#Be!a#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#O#Bp]'W`&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#Cta!hQ&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!O%T!O!P#Dy!P!Q%T!Q![#GV![#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#ES_&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!O%T!O!P#FR!P#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#F^]!zs&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a#Gbi!jq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q![#GV![!g%T!g!h#IP!h!l%T!l!m#MZ!m#O%T#O#P7o#P#R%T#R#S#GV#S#X%T#X#Y#IP#Y#^%T#^#_#MZ#_#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a#IYc&w!b&oS&rWOr%Trs&Vsw%Twx/Xx{%T{|#Je|}%T}!O#Je!O!Q%T!Q![#Km![#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a#Jn_&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q![#Km![#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a#Kxe!jq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q![#Km![!l%T!l!m#MZ!m#O%T#O#P7o#P#R%T#R#S#Km#S#^%T#^#_#MZ#_#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a#Mf]!jq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c#Nja&TR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!P%T!P!Q$ o!Q!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#b$ z_&VQ&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$#Uw!jq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!O%T!O!P$%o!P!Q%T!Q![$&w![!d%T!d!e$(w!e!g%T!g!h#IP!h!l%T!l!m#MZ!m!q%T!q!r$+m!r!z%T!z!{$.]!{#O%T#O#P7o#P#R%T#R#S$&w#S#U%T#U#V$(w#V#X%T#X#Y#IP#Y#^%T#^#_#MZ#_#c%T#c#d$+m#d#l%T#l#m$.]#m#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$%x_&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q![#GV![#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$'Sk!jq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!O%T!O!P$%o!P!Q%T!Q![$&w![!g%T!g!h#IP!h!l%T!l!m#MZ!m#O%T#O#P7o#P#R%T#R#S$&w#S#X%T#X#Y#IP#Y#^%T#^#_#MZ#_#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$)Qb&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q!R$*Y!R!S$*Y!S#O%T#O#P7o#P#R%T#R#S$*Y#S#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$*eb!jq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q!R$*Y!R!S$*Y!S#O%T#O#P7o#P#R%T#R#S$*Y#S#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$+va&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q!Y$,{!Y#O%T#O#P7o#P#R%T#R#S$,{#S#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$-Wa!jq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q!Y$,{!Y#O%T#O#P7o#P#R%T#R#S$,{#S#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$.fe&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q![$/w![!c%T!c!i$/w!i#O%T#O#P7o#P#R%T#R#S$/w#S#T%T#T#Z$/w#Z#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a$0Se!jq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!Q%T!Q![$/w![!c%T!c!i$/w!i#O%T#O#P7o#P#R%T#R#S$/w#S#T%T#T#Z$/w#Z#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#s$1p_}!T&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`$2o!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!q$2z]&_R&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c$4O]#os&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c$5SaoR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!^%T!^!_$6X!_!`Av!`!aAv!a#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#b$6d_&PQ&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c$7n_&^s&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`Av!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c$8x`oR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`Av!`!a$9z!a#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#b$:V_&QQ&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c$;c_aQ$VP&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#s$<oe&w!b&oS&rW&l`&XsOr%Trs&Vsw%Twx/Xx!Q%T!Q![$<b![!c%T!c!}$<b!}#O%T#O#P7o#P#R%T#R#S$<b#S#T%T#T#o$<b#o#p8^#p#q%T#q#r8^#r$g%T$g;'S$<b;'S;=`$>Q<%lO$<b#s$>TP;=`<%l$<b#s$>ei&w!b&oS&rW&l`&XsOr%Trs$@Ssw%Twx$C`x!Q%T!Q![$<b![!c%T!c!t$<b!t!u$Fl!u!}$<b!}#O%T#O#P7o#P#R%T#R#S$<b#S#T%T#T#f$<b#f#g$Fl#g#o$<b#o#p8^#p#q%T#q#r8^#r$g%T$g;'S$<b;'S;=`$>Q<%lO$<b#c$@]a&w!b&oS&msOYE^YZ%TZ]E^]^%T^rE^rs$AbswE^wxGpx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#c$Ak]&w!b&oS&msOr%Trs$Bdsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#Z$BmZ&w!b&oS&qsOw(Vwx)Px#O(V#O#P+Z#P#o(V#o#p+x#p#q(V#q#r+x#r;'S(V;'S;=`/R<%lO(V#c$Cia&w!b&rW&msOY#%fYZ%TZ]#%f]^%T^r#%frs#&vsw#%fwx$Dnx#O#%f#O#P#0}#P#o#%f#o#p#1l#p#q#%f#q#r#1l#r;'S#%f;'S;=`#8O<%lO#%f#c$Dw]&w!b&rW&msOr%Trs&Vsw%Twx$Epx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#_$EyZ&w!b&rW&nsOr1Xrs2Rs#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X#s$Fye&w!b&oS&rW&l`&XsOr%Trs$@Ssw%Twx$C`x!Q%T!Q![$<b![!c%T!c!}$<b!}#O%T#O#P7o#P#R%T#R#S$<b#S#T%T#T#o$<b#o#p8^#p#q%T#q#r8^#r$g%T$g;'S$<b;'S;=`$>Q<%lO$<b#s$Hii&w!b&oS&rW&l`&XsOr%Trs$JWsw%Twx$MUx!Q%T!Q![$<b![!c%T!c!t$<b!t!u%!S!u!}$<b!}#O%T#O#P7o#P#R%T#R#S$<b#S#T%T#T#f$<b#f#g%!S#g#o$<b#o#p8^#p#q%T#q#r8^#r$g%T$g;'S$<b;'S;=`$>Q<%lO$<b#c$Ja]&w!b&oS&xsOr%Trs$KYsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c$Ka]&w!b&oSOr%Trs$LYsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#Z$LcZ&w!b&oS&zsOw(Vwx)Px#O(V#O#P+Z#P#o(V#o#p+x#p#q(V#q#r+x#r;'S(V;'S;=`/R<%lO(V#c$M_]&w!b&rW&tsOr%Trs&Vsw%Twx$NWx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#c$N_]&w!b&rWOr%Trs&Vsw%Twx% Wx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#_% aZ&w!b&rW&ysOr1Xrs2Rs#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X#s%!ae&w!b&oS&rW&l`&XsOr%Trs$JWsw%Twx$MUx!Q%T!Q![$<b![!c%T!c!}$<b!}#O%T#O#P7o#P#R%T#R#S$<b#S#T%T#T#o$<b#o#p8^#p#q%T#q#r8^#r$g%T$g;'S$<b;'S;=`$>Q<%lO$<b#s%$Pm&w!b&oS&rW&l`&XsOr%Trs$@Ssw%Twx$C`x!Q%T!Q![$<b![!c%T!c!h$<b!h!i%!S!i!t$<b!t!u$Fl!u!}$<b!}#O%T#O#P7o#P#R%T#R#S$<b#S#T%T#T#U$<b#U#V$Fl#V#Y$<b#Y#Z%!S#Z#o$<b#o#p8^#p#q%T#q#r8^#r$g%T$g;'S$<b;'S;=`$>Q<%lO$<b#c%&V]!Zs&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!q%'Z]!YR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#b%(__%}Q&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#a%)gX!_#T&oS&rWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^#c%*__%|R&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`# x!`#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!q%+gX!^!e&oS&rWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`<y<%lO8^#a%,_]&Wq&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T",
170
+ tokenizers: [zO, kO, GO, jO, AO, FO, IO, 0, 1, 2, 3, 4, 5, 6],
171
+ topRules: { Script: [0, 7] },
172
+ specialized: [{ term: 239, get: (O) => CO[O] || -1 }],
173
+ tokenPrec: 7500
174
+ }), f = /* @__PURE__ */ new D(), W = /* @__PURE__ */ new Set([
175
+ "Script",
176
+ "Body",
177
+ "FunctionDefinition",
178
+ "ClassDefinition",
179
+ "LambdaExpression",
180
+ "ForStatement",
181
+ "MatchClause"
182
+ ]);
183
+ function n(O) {
184
+ return (r, o, a) => {
185
+ if (a)
186
+ return !1;
187
+ let e = r.node.getChild("VariableName");
188
+ return e && o(e, O), !0;
189
+ };
190
+ }
191
+ const LO = {
192
+ FunctionDefinition: /* @__PURE__ */ n("function"),
193
+ ClassDefinition: /* @__PURE__ */ n("class"),
194
+ ForStatement(O, r, o) {
195
+ if (o) {
196
+ for (let a = O.node.firstChild; a; a = a.nextSibling)
197
+ if (a.name == "VariableName")
198
+ r(a, "variable");
199
+ else if (a.name == "in")
200
+ break;
201
+ }
202
+ },
203
+ ImportStatement(O, r) {
204
+ var o, a;
205
+ let { node: e } = O, Q = ((o = e.firstChild) === null || o === void 0 ? void 0 : o.name) == "from";
206
+ for (let x = e.getChild("import"); x; x = x.nextSibling)
207
+ x.name == "VariableName" && ((a = x.nextSibling) === null || a === void 0 ? void 0 : a.name) != "as" && r(x, Q ? "variable" : "namespace");
208
+ },
209
+ AssignStatement(O, r) {
210
+ for (let o = O.node.firstChild; o; o = o.nextSibling)
211
+ if (o.name == "VariableName")
212
+ r(o, "variable");
213
+ else if (o.name == ":" || o.name == "AssignOp")
214
+ break;
215
+ },
216
+ ParamList(O, r) {
217
+ for (let o = null, a = O.node.firstChild; a; a = a.nextSibling)
218
+ a.name == "VariableName" && (!o || !/\*|AssignOp/.test(o.name)) && r(a, "variable"), o = a;
219
+ },
220
+ CapturePattern: /* @__PURE__ */ n("variable"),
221
+ AsPattern: /* @__PURE__ */ n("variable"),
222
+ __proto__: null
223
+ };
224
+ function V(O, r) {
225
+ let o = f.get(r);
226
+ if (o)
227
+ return o;
228
+ let a = [], e = !0;
229
+ function Q(x, s) {
230
+ let h = O.sliceString(x.from, x.to);
231
+ a.push({ label: h, type: s });
232
+ }
233
+ return r.cursor(N.IncludeAnonymous).iterate((x) => {
234
+ if (x.name) {
235
+ let s = LO[x.name];
236
+ if (s && s(x, Q, e) || !e && W.has(x.name))
237
+ return !1;
238
+ e = !1;
239
+ } else if (x.to - x.from > 8192) {
240
+ for (let s of V(O, x.node))
241
+ a.push(s);
242
+ return !1;
243
+ }
244
+ }), f.set(r, a), a;
245
+ }
246
+ const b = /^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/, g = ["String", "FormatString", "Comment", "PropertyName"];
247
+ function HO(O) {
248
+ let r = _(O.state).resolveInner(O.pos, -1);
249
+ if (g.indexOf(r.name) > -1)
250
+ return null;
251
+ let o = r.name == "VariableName" || r.to - r.from < 20 && b.test(O.state.sliceDoc(r.from, r.to));
252
+ if (!o && !O.explicit)
253
+ return null;
254
+ let a = [];
255
+ for (let e = r; e; e = e.parent)
256
+ W.has(e.name) && (a = a.concat(V(O.state.doc, e)));
257
+ return {
258
+ options: a,
259
+ from: o ? r.from : O.pos,
260
+ validFor: b
261
+ };
262
+ }
263
+ const JO = /* @__PURE__ */ [
264
+ "__annotations__",
265
+ "__builtins__",
266
+ "__debug__",
267
+ "__doc__",
268
+ "__import__",
269
+ "__name__",
270
+ "__loader__",
271
+ "__package__",
272
+ "__spec__",
273
+ "False",
274
+ "None",
275
+ "True"
276
+ ].map((O) => ({ label: O, type: "constant" })).concat(/* @__PURE__ */ [
277
+ "ArithmeticError",
278
+ "AssertionError",
279
+ "AttributeError",
280
+ "BaseException",
281
+ "BlockingIOError",
282
+ "BrokenPipeError",
283
+ "BufferError",
284
+ "BytesWarning",
285
+ "ChildProcessError",
286
+ "ConnectionAbortedError",
287
+ "ConnectionError",
288
+ "ConnectionRefusedError",
289
+ "ConnectionResetError",
290
+ "DeprecationWarning",
291
+ "EOFError",
292
+ "Ellipsis",
293
+ "EncodingWarning",
294
+ "EnvironmentError",
295
+ "Exception",
296
+ "FileExistsError",
297
+ "FileNotFoundError",
298
+ "FloatingPointError",
299
+ "FutureWarning",
300
+ "GeneratorExit",
301
+ "IOError",
302
+ "ImportError",
303
+ "ImportWarning",
304
+ "IndentationError",
305
+ "IndexError",
306
+ "InterruptedError",
307
+ "IsADirectoryError",
308
+ "KeyError",
309
+ "KeyboardInterrupt",
310
+ "LookupError",
311
+ "MemoryError",
312
+ "ModuleNotFoundError",
313
+ "NameError",
314
+ "NotADirectoryError",
315
+ "NotImplemented",
316
+ "NotImplementedError",
317
+ "OSError",
318
+ "OverflowError",
319
+ "PendingDeprecationWarning",
320
+ "PermissionError",
321
+ "ProcessLookupError",
322
+ "RecursionError",
323
+ "ReferenceError",
324
+ "ResourceWarning",
325
+ "RuntimeError",
326
+ "RuntimeWarning",
327
+ "StopAsyncIteration",
328
+ "StopIteration",
329
+ "SyntaxError",
330
+ "SyntaxWarning",
331
+ "SystemError",
332
+ "SystemExit",
333
+ "TabError",
334
+ "TimeoutError",
335
+ "TypeError",
336
+ "UnboundLocalError",
337
+ "UnicodeDecodeError",
338
+ "UnicodeEncodeError",
339
+ "UnicodeError",
340
+ "UnicodeTranslateError",
341
+ "UnicodeWarning",
342
+ "UserWarning",
343
+ "ValueError",
344
+ "Warning",
345
+ "ZeroDivisionError"
346
+ ].map((O) => ({ label: O, type: "type" }))).concat(/* @__PURE__ */ [
347
+ "bool",
348
+ "bytearray",
349
+ "bytes",
350
+ "classmethod",
351
+ "complex",
352
+ "float",
353
+ "frozenset",
354
+ "int",
355
+ "list",
356
+ "map",
357
+ "memoryview",
358
+ "object",
359
+ "range",
360
+ "set",
361
+ "staticmethod",
362
+ "str",
363
+ "super",
364
+ "tuple",
365
+ "type"
366
+ ].map((O) => ({ label: O, type: "class" }))).concat(/* @__PURE__ */ [
367
+ "abs",
368
+ "aiter",
369
+ "all",
370
+ "anext",
371
+ "any",
372
+ "ascii",
373
+ "bin",
374
+ "breakpoint",
375
+ "callable",
376
+ "chr",
377
+ "compile",
378
+ "delattr",
379
+ "dict",
380
+ "dir",
381
+ "divmod",
382
+ "enumerate",
383
+ "eval",
384
+ "exec",
385
+ "exit",
386
+ "filter",
387
+ "format",
388
+ "getattr",
389
+ "globals",
390
+ "hasattr",
391
+ "hash",
392
+ "help",
393
+ "hex",
394
+ "id",
395
+ "input",
396
+ "isinstance",
397
+ "issubclass",
398
+ "iter",
399
+ "len",
400
+ "license",
401
+ "locals",
402
+ "max",
403
+ "min",
404
+ "next",
405
+ "oct",
406
+ "open",
407
+ "ord",
408
+ "pow",
409
+ "print",
410
+ "property",
411
+ "quit",
412
+ "repr",
413
+ "reversed",
414
+ "round",
415
+ "setattr",
416
+ "slice",
417
+ "sorted",
418
+ "sum",
419
+ "vars",
420
+ "zip"
421
+ ].map((O) => ({ label: O, type: "function" }))), BO = [
422
+ /* @__PURE__ */ S("def ${name}(${params}):\n ${}", {
423
+ label: "def",
424
+ detail: "function",
425
+ type: "keyword"
426
+ }),
427
+ /* @__PURE__ */ S("for ${name} in ${collection}:\n ${}", {
428
+ label: "for",
429
+ detail: "loop",
430
+ type: "keyword"
431
+ }),
432
+ /* @__PURE__ */ S("while ${}:\n ${}", {
433
+ label: "while",
434
+ detail: "loop",
435
+ type: "keyword"
436
+ }),
437
+ /* @__PURE__ */ S("try:\n ${}\nexcept ${error}:\n ${}", {
438
+ label: "try",
439
+ detail: "/ except block",
440
+ type: "keyword"
441
+ }),
442
+ /* @__PURE__ */ S(`if \${}:
443
+
444
+ `, {
445
+ label: "if",
446
+ detail: "block",
447
+ type: "keyword"
448
+ }),
449
+ /* @__PURE__ */ S("if ${}:\n ${}\nelse:\n ${}", {
450
+ label: "if",
451
+ detail: "/ else block",
452
+ type: "keyword"
453
+ }),
454
+ /* @__PURE__ */ S("class ${name}:\n def __init__(self, ${params}):\n ${}", {
455
+ label: "class",
456
+ detail: "definition",
457
+ type: "keyword"
458
+ }),
459
+ /* @__PURE__ */ S("import ${module}", {
460
+ label: "import",
461
+ detail: "statement",
462
+ type: "keyword"
463
+ }),
464
+ /* @__PURE__ */ S("from ${module} import ${names}", {
465
+ label: "from",
466
+ detail: "import",
467
+ type: "keyword"
468
+ })
469
+ ], MO = /* @__PURE__ */ U(g, /* @__PURE__ */ C(/* @__PURE__ */ JO.concat(BO)));
470
+ function v(O, r) {
471
+ let o = O.baseIndentFor(r), a = O.lineAt(O.pos, -1), e = a.from + a.text.length;
472
+ return /^\s*($|#)/.test(a.text) && O.node.to < e + 100 && !/\S/.test(O.state.sliceDoc(e, O.node.to)) && O.lineIndent(O.pos, -1) <= o || /^\s*(else:|elif |except |finally:)/.test(O.textAfter) && O.lineIndent(O.pos, -1) > o ? null : o + O.unit;
473
+ }
474
+ const X = /* @__PURE__ */ z.define({
475
+ name: "python",
476
+ parser: /* @__PURE__ */ DO.configure({
477
+ props: [
478
+ /* @__PURE__ */ j.add({
479
+ Body: (O) => {
480
+ var r;
481
+ return (r = v(O, O.node)) !== null && r !== void 0 ? r : O.continue();
482
+ },
483
+ IfStatement: (O) => /^\s*(else:|elif )/.test(O.textAfter) ? O.baseIndent : O.continue(),
484
+ TryStatement: (O) => /^\s*(except |finally:|else:)/.test(O.textAfter) ? O.baseIndent : O.continue(),
485
+ "TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression": /* @__PURE__ */ $({ closing: ")" }),
486
+ "DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression": /* @__PURE__ */ $({ closing: "}" }),
487
+ "ArrayExpression ArrayComprehensionExpression": /* @__PURE__ */ $({ closing: "]" }),
488
+ "String FormatString": () => null,
489
+ Script: (O) => {
490
+ if (O.pos + /\s*/.exec(O.textAfter)[0].length >= O.node.to) {
491
+ let r = null;
492
+ for (let o = O.node, a = o.to; o = o.lastChild, !(!o || o.to != a); )
493
+ o.type.name == "Body" && (r = o);
494
+ if (r) {
495
+ let o = v(O, r);
496
+ if (o != null)
497
+ return o;
498
+ }
499
+ }
500
+ return O.continue();
501
+ }
502
+ }),
503
+ /* @__PURE__ */ A.add({
504
+ "ArrayExpression DictionaryExpression SetExpression TupleExpression": F,
505
+ Body: (O, r) => ({ from: O.from + 1, to: O.to - (O.to == r.doc.length ? 0 : 1) })
506
+ })
507
+ ]
508
+ }),
509
+ languageData: {
510
+ closeBrackets: {
511
+ brackets: ["(", "[", "{", "'", '"', "'''", '"""'],
512
+ stringPrefixes: [
513
+ "f",
514
+ "fr",
515
+ "rf",
516
+ "r",
517
+ "u",
518
+ "b",
519
+ "br",
520
+ "rb",
521
+ "F",
522
+ "FR",
523
+ "RF",
524
+ "R",
525
+ "U",
526
+ "B",
527
+ "BR",
528
+ "RB"
529
+ ]
530
+ },
531
+ commentTokens: { line: "#" },
532
+ indentOnInput: /^\s*([\}\]\)]|else:|elif |except |finally:)$/
533
+ }
534
+ });
535
+ function rr() {
536
+ return new I(X, [
537
+ X.data.of({ autocomplete: HO }),
538
+ X.data.of({ autocomplete: MO })
539
+ ]);
540
+ }
541
+ export {
542
+ MO as globalCompletion,
543
+ HO as localCompletionSource,
544
+ rr as python,
545
+ X as pythonLanguage
546
+ };
src/backend/gradio_highlightedcode/templates/component/index-d8995119.js ADDED
@@ -0,0 +1,923 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { E as m, L as w, a as v } from "./index-f4953321.js";
2
+ import { s as z, t as o, a as k, L as x, b as T, B as W, f as R, c as U, e as Y, I as q, N as _ } from "./Index-2933bd90.js";
3
+ const E = 99, S = 1, Z = 100, C = 101, g = 2, y = [
4
+ 9,
5
+ 10,
6
+ 11,
7
+ 12,
8
+ 13,
9
+ 32,
10
+ 133,
11
+ 160,
12
+ 5760,
13
+ 8192,
14
+ 8193,
15
+ 8194,
16
+ 8195,
17
+ 8196,
18
+ 8197,
19
+ 8198,
20
+ 8199,
21
+ 8200,
22
+ 8201,
23
+ 8202,
24
+ 8232,
25
+ 8233,
26
+ 8239,
27
+ 8287,
28
+ 12288
29
+ ], G = 58, N = 40, P = 95, V = 91, Q = 45, j = 46, D = 35, I = 37, B = 38, F = 92, K = 10;
30
+ function d(e) {
31
+ return e >= 65 && e <= 90 || e >= 97 && e <= 122 || e >= 161;
32
+ }
33
+ function L(e) {
34
+ return e >= 48 && e <= 57;
35
+ }
36
+ const A = new m((e, t) => {
37
+ for (let l = !1, a = 0, O = 0; ; O++) {
38
+ let { next: r } = e;
39
+ if (d(r) || r == Q || r == P || l && L(r))
40
+ !l && (r != Q || O > 0) && (l = !0), a === O && r == Q && a++, e.advance();
41
+ else if (r == F && e.peek(1) != K)
42
+ e.advance(), e.next > -1 && e.advance(), l = !0;
43
+ else {
44
+ l && e.acceptToken(r == N ? Z : a == 2 && t.canShift(g) ? g : C);
45
+ break;
46
+ }
47
+ }
48
+ }), J = new m((e) => {
49
+ if (y.includes(e.peek(-1))) {
50
+ let { next: t } = e;
51
+ (d(t) || t == P || t == D || t == j || t == V || t == G && d(e.peek(1)) || t == Q || t == B) && e.acceptToken(E);
52
+ }
53
+ }), H = new m((e) => {
54
+ if (!y.includes(e.peek(-1))) {
55
+ let { next: t } = e;
56
+ if (t == I && (e.advance(), e.acceptToken(S)), d(t)) {
57
+ do
58
+ e.advance();
59
+ while (d(e.next));
60
+ e.acceptToken(S);
61
+ }
62
+ }
63
+ }), M = z({
64
+ "AtKeyword import charset namespace keyframes media supports": o.definitionKeyword,
65
+ "from to selector": o.keyword,
66
+ NamespaceName: o.namespace,
67
+ KeyframeName: o.labelName,
68
+ KeyframeRangeName: o.operatorKeyword,
69
+ TagName: o.tagName,
70
+ ClassName: o.className,
71
+ PseudoClassName: o.constant(o.className),
72
+ IdName: o.labelName,
73
+ "FeatureName PropertyName": o.propertyName,
74
+ AttributeName: o.attributeName,
75
+ NumberLiteral: o.number,
76
+ KeywordQuery: o.keyword,
77
+ UnaryQueryOp: o.operatorKeyword,
78
+ "CallTag ValueName": o.atom,
79
+ VariableName: o.variableName,
80
+ Callee: o.operatorKeyword,
81
+ Unit: o.unit,
82
+ "UniversalSelector NestingSelector": o.definitionOperator,
83
+ MatchOp: o.compareOperator,
84
+ "ChildOp SiblingOp, LogicOp": o.logicOperator,
85
+ BinOp: o.arithmeticOperator,
86
+ Important: o.modifier,
87
+ Comment: o.blockComment,
88
+ ColorLiteral: o.color,
89
+ "ParenthesizedContent StringLiteral": o.string,
90
+ ":": o.punctuation,
91
+ "PseudoOp #": o.derefOperator,
92
+ "; ,": o.separator,
93
+ "( )": o.paren,
94
+ "[ ]": o.squareBracket,
95
+ "{ }": o.brace
96
+ }), ee = { __proto__: null, lang: 32, "nth-child": 32, "nth-last-child": 32, "nth-of-type": 32, "nth-last-of-type": 32, dir: 32, "host-context": 32, url: 60, "url-prefix": 60, domain: 60, regexp: 60, selector: 138 }, Oe = { __proto__: null, "@import": 118, "@media": 142, "@charset": 146, "@namespace": 150, "@keyframes": 156, "@supports": 168 }, ae = { __proto__: null, not: 132, only: 132 }, te = w.deserialize({
97
+ version: 14,
98
+ states: ":^QYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DTO$vQ[O'#DWOOQP'#Em'#EmO${QdO'#DgO%jQ[O'#DtO${QdO'#DvO%{Q[O'#DxO&WQ[O'#D{O&`Q[O'#ERO&nQ[O'#ETOOQS'#El'#ElOOQS'#EW'#EWQYQ[OOO&uQXO'#CdO'jQWO'#DcO'oQWO'#EsO'zQ[O'#EsQOQWOOP(UO#tO'#C_POOO)C@[)C@[OOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(aQ[O'#E[O({QWO,58{O)TQ[O,59SO$qQ[O,59oO$vQ[O,59rO(aQ[O,59uO(aQ[O,59wO(aQ[O,59xO)`Q[O'#DbOOQS,58{,58{OOQP'#Ck'#CkOOQO'#DR'#DROOQP,59S,59SO)gQWO,59SO)lQWO,59SOOQP'#DV'#DVOOQP,59o,59oOOQO'#DX'#DXO)qQ`O,59rOOQS'#Cp'#CpO${QdO'#CqO)yQvO'#CsO+ZQtO,5:ROOQO'#Cx'#CxO)lQWO'#CwO+oQWO'#CyO+tQ[O'#DOOOQS'#Ep'#EpOOQO'#Dj'#DjO+|Q[O'#DqO,[QWO'#EtO&`Q[O'#DoO,jQWO'#DrOOQO'#Eu'#EuO)OQWO,5:`O,oQpO,5:bOOQS'#Dz'#DzO,wQWO,5:dO,|Q[O,5:dOOQO'#D}'#D}O-UQWO,5:gO-ZQWO,5:mO-cQWO,5:oOOQS-E8U-E8UO${QdO,59}O-kQ[O'#E^O-xQWO,5;_O-xQWO,5;_POOO'#EV'#EVP.TO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.zQXO,5:vOOQO-E8Y-E8YOOQS1G.g1G.gOOQP1G.n1G.nO)gQWO1G.nO)lQWO1G.nOOQP1G/Z1G/ZO/XQ`O1G/^O/rQXO1G/aO0YQXO1G/cO0pQXO1G/dO1WQWO,59|O1]Q[O'#DSO1dQdO'#CoOOQP1G/^1G/^O${QdO1G/^O1kQpO,59]OOQS,59_,59_O${QdO,59aO1sQWO1G/mOOQS,59c,59cO1xQ!bO,59eOOQS'#DP'#DPOOQS'#EY'#EYO2QQ[O,59jOOQS,59j,59jO2YQWO'#DjO2eQWO,5:VO2jQWO,5:]O&`Q[O,5:XO&`Q[O'#E_O2rQWO,5;`O2}QWO,5:ZO(aQ[O,5:^OOQS1G/z1G/zOOQS1G/|1G/|OOQS1G0O1G0OO3`QWO1G0OO3eQdO'#EOOOQS1G0R1G0ROOQS1G0X1G0XOOQS1G0Z1G0ZO3pQtO1G/iOOQO,5:x,5:xO4WQ[O,5:xOOQO-E8[-E8[O4eQWO1G0yPOOO-E8T-E8TPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$x7+$xO${QdO7+$xOOQS1G/h1G/hO4pQXO'#ErO4wQWO,59nO4|QtO'#EXO5tQdO'#EoO6OQWO,59ZO6TQpO7+$xOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%X7+%XO6]QWO1G/POOQS-E8W-E8WOOQS1G/U1G/UO${QdO1G/qOOQO1G/w1G/wOOQO1G/s1G/sO6bQWO,5:yOOQO-E8]-E8]O6pQXO1G/xOOQS7+%j7+%jO6wQYO'#CsOOQO'#EQ'#EQO7SQ`O'#EPOOQO'#EP'#EPO7_QWO'#E`O7gQdO,5:jOOQS,5:j,5:jO7rQtO'#E]O${QdO'#E]O8sQdO7+%TOOQO7+%T7+%TOOQO1G0d1G0dO9WQpO<<HdO9`QWO,5;^OOQP1G/Y1G/YOOQS-E8V-E8VO${QdO'#EZO9hQWO,5;ZOOQT1G.u1G.uOOQP<<Hd<<HdOOQS7+$k7+$kO9pQdO7+%]OOQO7+%d7+%dOOQO,5:k,5:kO3hQdO'#EaO7_QWO,5:zOOQS,5:z,5:zOOQS-E8^-E8^OOQS1G0U1G0UO9wQtO,5:wOOQS-E8Z-E8ZOOQO<<Ho<<HoOOQPAN>OAN>OO:xQdO,5:uOOQO-E8X-E8XOOQO<<Hw<<HwOOQO,5:{,5:{OOQO-E8_-E8_OOQS1G0f1G0f",
99
+ stateData: ";[~O#ZOS#[QQ~OUYOXYO]VO^VOqXOxWO![aO!]ZO!i[O!k]O!m^O!p_O!v`O#XRO#bTO~OQfOUYOXYO]VO^VOqXOxWO![aO!]ZO!i[O!k]O!m^O!p_O!v`O#XeO#bTO~O#U#gP~P!ZO#[jO~O#XlO~O]qO^qOqsOtoOxrO!OtO!RvO#VuO#bnO~O!TwO~P#pO`}O#WzO#XyO~O#X!OO~O#X!QO~OQ![Ob!TOf![Oh![On!YOq!ZO#W!WO#X!SO#e!UO~Ob!^O!d!`O!g!aO#X!]O!T#hP~Oh!fOn!YO#X!eO~Oh!hO#X!hO~Ob!^O!d!`O!g!aO#X!]O~O!Y#hP~P%jO]WX]!WX^WXqWXtWXxWX!OWX!RWX!TWX#VWX#bWX~O]!mO~O!Y!nO#U#gX!S#gX~O#U#gX!S#gX~P!ZO#]!qO#^!qO#_!sO~OUYOXYO]VO^VOqXOxWO#XRO#bTO~OtoO!TwO~O`!zO#WzO#XyO~O!S#gP~P!ZOb#RO~Ob#SO~Op#TO|#UO~OP#WObgXjgX!YgX!dgX!ggX#XgXagXQgXfgXhgXngXqgXtgX!XgX#UgX#WgX#egXpgX!SgX~Ob!^Oj#XO!d!`O!g!aO#X!]O!Y#hP~Ob#[O~Op#`O#X#]O~Ob!^O!d!`O!g!aO#X#aO~Ot#eO!b#dO!T#hX!Y#hX~Ob#hO~Oj#XO!Y#jO~O!Y#kO~Oh#lOn!YO~O!T#mO~O!TwO!b#dO~O!TwO!Y#pO~O!Y#QX#U#QX!S#QX~P!ZO!Y!nO#U#ga!S#ga~O#]!qO#^!qO#_#wO~O]qO^qOqsOxrO!OtO!RvO#VuO#bnO~Ot#Oa!T#Oaa#Oa~P.`Op#yO|#zO~O]qO^qOqsOxrO#bnO~Ot}i!O}i!R}i!T}i#V}ia}i~P/aOt!Pi!O!Pi!R!Pi!T!Pi#V!Pia!Pi~P/aOt!Qi!O!Qi!R!Qi!T!Qi#V!Qia!Qi~P/aO!S#{O~Oa#fP~P(aOa#cP~P${Oa$SOj#XO~O!Y$UO~Oh$VOo$VO~Op$XO#X#]O~O]!`Xa!^X!b!^X~O]$YO~Oa$ZO!b#dO~Ot#eO!T#ha!Y#ha~O!b#dOt!ca!T!ca!Y!caa!ca~O!Y$`O~O!S$gO#X$bO#e$aO~Oj#XOt$iO!X$kO!Y!Vi#U!Vi!S!Vi~P${O!Y#Qa#U#Qa!S#Qa~P!ZO!Y!nO#U#gi!S#gi~Oa#fX~P#pOa$oO~Oj#XOQ!{Xa!{Xb!{Xf!{Xh!{Xn!{Xq!{Xt!{X#W!{X#X!{X#e!{X~Ot$qOa#cX~P${Oa$sO~Oj#XOp$tO~Oa$uO~O!b#dOt#Ra!T#Ra!Y#Ra~Oa$wO~P.`OP#WOtgX!TgX~O#e$aOt!sX!T!sX~Ot$yO!TwO~O!S$}O#X$bO#e$aO~Oj#XOQ#PXb#PXf#PXh#PXn#PXq#PXt#PX!X#PX!Y#PX#U#PX#W#PX#X#PX#e#PX!S#PX~Ot$iO!X%QO!Y!Vq#U!Vq!S!Vq~P${Oj#XOp%RO~OtoOa#fa~Ot$qOa#ca~Oa%UO~P${Oj#XOQ#Pab#Paf#Pah#Pan#Paq#Pat#Pa!X#Pa!Y#Pa#U#Pa#W#Pa#X#Pa#e#Pa!S#Pa~Oa!}at!}a~P${O#Zo#[#ej!R#e~",
100
+ goto: "-g#jPPP#kP#nP#w$WP#w$g#wPP$mPPP$s$|$|P%`P$|P$|%z&^PPPP$|&vP&z'Q#wP'W#w'^P#wP#w#wPPP'd'y(WPP#nPP(_(_(i(_P(_P(_(_P#nP#nP#nP(l#nP(o(r(u(|#nP#nP)R)X)h)v)|*S*^*d*n*t*zPPPPPPPPPP+Q+ZP+v+yP,o,r,x-RRkQ_bOPdhw!n#skYOPdhotuvw!n#R#h#skSOPdhotuvw!n#R#h#sQmTR!tnQ{VR!xqQ!x}Q#Z!XR#x!zq![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%Sp![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%SU$d#m$f$yR$x$cq!XZ]!T!m#S#U#X#q#z$P$Y$i$j$q$v%Sp![Z]!T!m#S#U#X#q#z$P$Y$i$j$q$v%SQ!f^R#l!gT#^!Z#_Q|VR!yqQ!x|R#x!yQ!PWR!{rQ!RXR!|sQxUQ!wpQ#i!cQ#o!jQ#p!kQ${$eR%X$zSgPwQ!phQ#r!nR$l#sZfPhw!n#sa!b[`a!V!^!`#d#eR#b!^R!g^R!i_R#n!iS$e#m$fR%V$yV$c#m$f$yQ!rjR#v!rQdOShPwU!ldh#sR#s!nQ$P#SU$p$P$v%SQ$v$YR%S$qQ#_!ZR$W#_Q$r$PR%T$rQpUS!vp$nR$n#|Q$j#qR%P$jQ!ogS#t!o#uR#u!pQ#f!_R$^#fQ$f#mR$|$fQ$z$eR%W$z_cOPdhw!n#s^UOPdhw!n#sQ!uoQ!}tQ#OuQ#PvQ#|#RR$_#hR$Q#SQ!VZQ!d]Q#V!TQ#q!m[$O#S$P$Y$q$v%SQ$R#UQ$T#XS$h#q$jQ$m#zR%O$iR#}#RQiPR#QwQ!c[Q!kaR#Y!VU!_[a!VQ!j`Q#c!^Q#g!`Q$[#dR$]#e",
101
+ nodeNames: "⚠ Unit VariableName Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee CallLiteral CallTag ParenthesizedContent ] [ LineNames LineName , PseudoClassName ArgList IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp } { Block Declaration PropertyName Important ; ImportStatement AtKeyword import KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports AtRule Styles",
102
+ maxTerm: 117,
103
+ nodeProps: [
104
+ ["isolate", -2, 3, 24, ""],
105
+ ["openedBy", 17, "(", 32, "[", 50, "{"],
106
+ ["closedBy", 18, ")", 33, "]", 51, "}"]
107
+ ],
108
+ propSources: [M],
109
+ skippedNodes: [0, 3, 87],
110
+ repeatNodeCount: 11,
111
+ tokenData: "J^~R!^OX$}X^%u^p$}pq%uqr)Xrs.Rst/utu6duv$}vw7^wx7oxy9^yz9oz{9t{|:_|}?Q}!O?c!O!P@Q!P!Q@i!Q![Ab![!]B]!]!^CX!^!_$}!_!`Cj!`!aC{!a!b$}!b!cDw!c!}$}!}#OFa#O#P$}#P#QFr#Q#R6d#R#T$}#T#UGT#U#c$}#c#dHf#d#o$}#o#pH{#p#q6d#q#rI^#r#sIo#s#y$}#y#z%u#z$f$}$f$g%u$g#BY$}#BY#BZ%u#BZ$IS$}$IS$I_%u$I_$I|$}$I|$JO%u$JO$JT$}$JT$JU%u$JU$KV$}$KV$KW%u$KW&FU$}&FU&FV%u&FV;'S$};'S;=`JW<%lO$}`%QSOy%^z;'S%^;'S;=`%o<%lO%^`%cSo`Oy%^z;'S%^;'S;=`%o<%lO%^`%rP;=`<%l%^~%zh#Z~OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^~'mh#Z~o`OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^l)[UOy%^z#]%^#]#^)n#^;'S%^;'S;=`%o<%lO%^l)sUo`Oy%^z#a%^#a#b*V#b;'S%^;'S;=`%o<%lO%^l*[Uo`Oy%^z#d%^#d#e*n#e;'S%^;'S;=`%o<%lO%^l*sUo`Oy%^z#c%^#c#d+V#d;'S%^;'S;=`%o<%lO%^l+[Uo`Oy%^z#f%^#f#g+n#g;'S%^;'S;=`%o<%lO%^l+sUo`Oy%^z#h%^#h#i,V#i;'S%^;'S;=`%o<%lO%^l,[Uo`Oy%^z#T%^#T#U,n#U;'S%^;'S;=`%o<%lO%^l,sUo`Oy%^z#b%^#b#c-V#c;'S%^;'S;=`%o<%lO%^l-[Uo`Oy%^z#h%^#h#i-n#i;'S%^;'S;=`%o<%lO%^l-uS!X[o`Oy%^z;'S%^;'S;=`%o<%lO%^~.UWOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o<%lO.R~.sOh~~.vRO;'S.R;'S;=`/P;=`O.R~/SXOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o;=`<%l.R<%lO.R~/rP;=`<%l.Rn/zYxQOy%^z!Q%^!Q![0j![!c%^!c!i0j!i#T%^#T#Z0j#Z;'S%^;'S;=`%o<%lO%^l0oYo`Oy%^z!Q%^!Q![1_![!c%^!c!i1_!i#T%^#T#Z1_#Z;'S%^;'S;=`%o<%lO%^l1dYo`Oy%^z!Q%^!Q![2S![!c%^!c!i2S!i#T%^#T#Z2S#Z;'S%^;'S;=`%o<%lO%^l2ZYf[o`Oy%^z!Q%^!Q![2y![!c%^!c!i2y!i#T%^#T#Z2y#Z;'S%^;'S;=`%o<%lO%^l3QYf[o`Oy%^z!Q%^!Q![3p![!c%^!c!i3p!i#T%^#T#Z3p#Z;'S%^;'S;=`%o<%lO%^l3uYo`Oy%^z!Q%^!Q![4e![!c%^!c!i4e!i#T%^#T#Z4e#Z;'S%^;'S;=`%o<%lO%^l4lYf[o`Oy%^z!Q%^!Q![5[![!c%^!c!i5[!i#T%^#T#Z5[#Z;'S%^;'S;=`%o<%lO%^l5aYo`Oy%^z!Q%^!Q![6P![!c%^!c!i6P!i#T%^#T#Z6P#Z;'S%^;'S;=`%o<%lO%^l6WSf[o`Oy%^z;'S%^;'S;=`%o<%lO%^d6gUOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^d7QS|So`Oy%^z;'S%^;'S;=`%o<%lO%^b7cSXQOy%^z;'S%^;'S;=`%o<%lO%^~7rWOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W<%lO7o~8_RO;'S7o;'S;=`8h;=`O7o~8kXOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W;=`<%l7o<%lO7o~9ZP;=`<%l7on9cSb^Oy%^z;'S%^;'S;=`%o<%lO%^~9tOa~n9{UUQjWOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^n:fWjW!RQOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#e[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l<cYo`Oy%^z{%^{|=R|}%^}!O=R!O!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l=WUo`Oy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l=qUo`#e[Oy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^l>[[o`#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSt^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#bQOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#[~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!Y^Oy%^z;'S%^;'S;=`%o<%lO%^dCoS|SOy%^z;'S%^;'S;=`%o<%lO%^bDQU!OQOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS!OQo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[![Qo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^nFfSq^Oy%^z;'S%^;'S;=`%o<%lO%^nFwSp^Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!bQo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!TUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!S^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!RQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",
112
+ tokenizers: [J, H, A, 1, 2, 3, 4, new v("m~RRYZ[z{a~~g~aO#^~~dP!P!Qg~lO#_~~", 28, 105)],
113
+ topRules: { StyleSheet: [0, 4], Styles: [1, 86] },
114
+ specialized: [{ term: 100, get: (e) => ee[e] || -1 }, { term: 58, get: (e) => Oe[e] || -1 }, { term: 101, get: (e) => ae[e] || -1 }],
115
+ tokenPrec: 1200
116
+ });
117
+ let p = null;
118
+ function u() {
119
+ if (!p && typeof document == "object" && document.body) {
120
+ let { style: e } = document.body, t = [], l = /* @__PURE__ */ new Set();
121
+ for (let a in e)
122
+ a != "cssText" && a != "cssFloat" && typeof e[a] == "string" && (/[A-Z]/.test(a) && (a = a.replace(/[A-Z]/g, (O) => "-" + O.toLowerCase())), l.has(a) || (t.push(a), l.add(a)));
123
+ p = t.sort().map((a) => ({ type: "property", label: a }));
124
+ }
125
+ return p || [];
126
+ }
127
+ const f = /* @__PURE__ */ [
128
+ "active",
129
+ "after",
130
+ "any-link",
131
+ "autofill",
132
+ "backdrop",
133
+ "before",
134
+ "checked",
135
+ "cue",
136
+ "default",
137
+ "defined",
138
+ "disabled",
139
+ "empty",
140
+ "enabled",
141
+ "file-selector-button",
142
+ "first",
143
+ "first-child",
144
+ "first-letter",
145
+ "first-line",
146
+ "first-of-type",
147
+ "focus",
148
+ "focus-visible",
149
+ "focus-within",
150
+ "fullscreen",
151
+ "has",
152
+ "host",
153
+ "host-context",
154
+ "hover",
155
+ "in-range",
156
+ "indeterminate",
157
+ "invalid",
158
+ "is",
159
+ "lang",
160
+ "last-child",
161
+ "last-of-type",
162
+ "left",
163
+ "link",
164
+ "marker",
165
+ "modal",
166
+ "not",
167
+ "nth-child",
168
+ "nth-last-child",
169
+ "nth-last-of-type",
170
+ "nth-of-type",
171
+ "only-child",
172
+ "only-of-type",
173
+ "optional",
174
+ "out-of-range",
175
+ "part",
176
+ "placeholder",
177
+ "placeholder-shown",
178
+ "read-only",
179
+ "read-write",
180
+ "required",
181
+ "right",
182
+ "root",
183
+ "scope",
184
+ "selection",
185
+ "slotted",
186
+ "target",
187
+ "target-text",
188
+ "valid",
189
+ "visited",
190
+ "where"
191
+ ].map((e) => ({ type: "class", label: e })), h = /* @__PURE__ */ [
192
+ "above",
193
+ "absolute",
194
+ "activeborder",
195
+ "additive",
196
+ "activecaption",
197
+ "after-white-space",
198
+ "ahead",
199
+ "alias",
200
+ "all",
201
+ "all-scroll",
202
+ "alphabetic",
203
+ "alternate",
204
+ "always",
205
+ "antialiased",
206
+ "appworkspace",
207
+ "asterisks",
208
+ "attr",
209
+ "auto",
210
+ "auto-flow",
211
+ "avoid",
212
+ "avoid-column",
213
+ "avoid-page",
214
+ "avoid-region",
215
+ "axis-pan",
216
+ "background",
217
+ "backwards",
218
+ "baseline",
219
+ "below",
220
+ "bidi-override",
221
+ "blink",
222
+ "block",
223
+ "block-axis",
224
+ "bold",
225
+ "bolder",
226
+ "border",
227
+ "border-box",
228
+ "both",
229
+ "bottom",
230
+ "break",
231
+ "break-all",
232
+ "break-word",
233
+ "bullets",
234
+ "button",
235
+ "button-bevel",
236
+ "buttonface",
237
+ "buttonhighlight",
238
+ "buttonshadow",
239
+ "buttontext",
240
+ "calc",
241
+ "capitalize",
242
+ "caps-lock-indicator",
243
+ "caption",
244
+ "captiontext",
245
+ "caret",
246
+ "cell",
247
+ "center",
248
+ "checkbox",
249
+ "circle",
250
+ "cjk-decimal",
251
+ "clear",
252
+ "clip",
253
+ "close-quote",
254
+ "col-resize",
255
+ "collapse",
256
+ "color",
257
+ "color-burn",
258
+ "color-dodge",
259
+ "column",
260
+ "column-reverse",
261
+ "compact",
262
+ "condensed",
263
+ "contain",
264
+ "content",
265
+ "contents",
266
+ "content-box",
267
+ "context-menu",
268
+ "continuous",
269
+ "copy",
270
+ "counter",
271
+ "counters",
272
+ "cover",
273
+ "crop",
274
+ "cross",
275
+ "crosshair",
276
+ "currentcolor",
277
+ "cursive",
278
+ "cyclic",
279
+ "darken",
280
+ "dashed",
281
+ "decimal",
282
+ "decimal-leading-zero",
283
+ "default",
284
+ "default-button",
285
+ "dense",
286
+ "destination-atop",
287
+ "destination-in",
288
+ "destination-out",
289
+ "destination-over",
290
+ "difference",
291
+ "disc",
292
+ "discard",
293
+ "disclosure-closed",
294
+ "disclosure-open",
295
+ "document",
296
+ "dot-dash",
297
+ "dot-dot-dash",
298
+ "dotted",
299
+ "double",
300
+ "down",
301
+ "e-resize",
302
+ "ease",
303
+ "ease-in",
304
+ "ease-in-out",
305
+ "ease-out",
306
+ "element",
307
+ "ellipse",
308
+ "ellipsis",
309
+ "embed",
310
+ "end",
311
+ "ethiopic-abegede-gez",
312
+ "ethiopic-halehame-aa-er",
313
+ "ethiopic-halehame-gez",
314
+ "ew-resize",
315
+ "exclusion",
316
+ "expanded",
317
+ "extends",
318
+ "extra-condensed",
319
+ "extra-expanded",
320
+ "fantasy",
321
+ "fast",
322
+ "fill",
323
+ "fill-box",
324
+ "fixed",
325
+ "flat",
326
+ "flex",
327
+ "flex-end",
328
+ "flex-start",
329
+ "footnotes",
330
+ "forwards",
331
+ "from",
332
+ "geometricPrecision",
333
+ "graytext",
334
+ "grid",
335
+ "groove",
336
+ "hand",
337
+ "hard-light",
338
+ "help",
339
+ "hidden",
340
+ "hide",
341
+ "higher",
342
+ "highlight",
343
+ "highlighttext",
344
+ "horizontal",
345
+ "hsl",
346
+ "hsla",
347
+ "hue",
348
+ "icon",
349
+ "ignore",
350
+ "inactiveborder",
351
+ "inactivecaption",
352
+ "inactivecaptiontext",
353
+ "infinite",
354
+ "infobackground",
355
+ "infotext",
356
+ "inherit",
357
+ "initial",
358
+ "inline",
359
+ "inline-axis",
360
+ "inline-block",
361
+ "inline-flex",
362
+ "inline-grid",
363
+ "inline-table",
364
+ "inset",
365
+ "inside",
366
+ "intrinsic",
367
+ "invert",
368
+ "italic",
369
+ "justify",
370
+ "keep-all",
371
+ "landscape",
372
+ "large",
373
+ "larger",
374
+ "left",
375
+ "level",
376
+ "lighter",
377
+ "lighten",
378
+ "line-through",
379
+ "linear",
380
+ "linear-gradient",
381
+ "lines",
382
+ "list-item",
383
+ "listbox",
384
+ "listitem",
385
+ "local",
386
+ "logical",
387
+ "loud",
388
+ "lower",
389
+ "lower-hexadecimal",
390
+ "lower-latin",
391
+ "lower-norwegian",
392
+ "lowercase",
393
+ "ltr",
394
+ "luminosity",
395
+ "manipulation",
396
+ "match",
397
+ "matrix",
398
+ "matrix3d",
399
+ "medium",
400
+ "menu",
401
+ "menutext",
402
+ "message-box",
403
+ "middle",
404
+ "min-intrinsic",
405
+ "mix",
406
+ "monospace",
407
+ "move",
408
+ "multiple",
409
+ "multiple_mask_images",
410
+ "multiply",
411
+ "n-resize",
412
+ "narrower",
413
+ "ne-resize",
414
+ "nesw-resize",
415
+ "no-close-quote",
416
+ "no-drop",
417
+ "no-open-quote",
418
+ "no-repeat",
419
+ "none",
420
+ "normal",
421
+ "not-allowed",
422
+ "nowrap",
423
+ "ns-resize",
424
+ "numbers",
425
+ "numeric",
426
+ "nw-resize",
427
+ "nwse-resize",
428
+ "oblique",
429
+ "opacity",
430
+ "open-quote",
431
+ "optimizeLegibility",
432
+ "optimizeSpeed",
433
+ "outset",
434
+ "outside",
435
+ "outside-shape",
436
+ "overlay",
437
+ "overline",
438
+ "padding",
439
+ "padding-box",
440
+ "painted",
441
+ "page",
442
+ "paused",
443
+ "perspective",
444
+ "pinch-zoom",
445
+ "plus-darker",
446
+ "plus-lighter",
447
+ "pointer",
448
+ "polygon",
449
+ "portrait",
450
+ "pre",
451
+ "pre-line",
452
+ "pre-wrap",
453
+ "preserve-3d",
454
+ "progress",
455
+ "push-button",
456
+ "radial-gradient",
457
+ "radio",
458
+ "read-only",
459
+ "read-write",
460
+ "read-write-plaintext-only",
461
+ "rectangle",
462
+ "region",
463
+ "relative",
464
+ "repeat",
465
+ "repeating-linear-gradient",
466
+ "repeating-radial-gradient",
467
+ "repeat-x",
468
+ "repeat-y",
469
+ "reset",
470
+ "reverse",
471
+ "rgb",
472
+ "rgba",
473
+ "ridge",
474
+ "right",
475
+ "rotate",
476
+ "rotate3d",
477
+ "rotateX",
478
+ "rotateY",
479
+ "rotateZ",
480
+ "round",
481
+ "row",
482
+ "row-resize",
483
+ "row-reverse",
484
+ "rtl",
485
+ "run-in",
486
+ "running",
487
+ "s-resize",
488
+ "sans-serif",
489
+ "saturation",
490
+ "scale",
491
+ "scale3d",
492
+ "scaleX",
493
+ "scaleY",
494
+ "scaleZ",
495
+ "screen",
496
+ "scroll",
497
+ "scrollbar",
498
+ "scroll-position",
499
+ "se-resize",
500
+ "self-start",
501
+ "self-end",
502
+ "semi-condensed",
503
+ "semi-expanded",
504
+ "separate",
505
+ "serif",
506
+ "show",
507
+ "single",
508
+ "skew",
509
+ "skewX",
510
+ "skewY",
511
+ "skip-white-space",
512
+ "slide",
513
+ "slider-horizontal",
514
+ "slider-vertical",
515
+ "sliderthumb-horizontal",
516
+ "sliderthumb-vertical",
517
+ "slow",
518
+ "small",
519
+ "small-caps",
520
+ "small-caption",
521
+ "smaller",
522
+ "soft-light",
523
+ "solid",
524
+ "source-atop",
525
+ "source-in",
526
+ "source-out",
527
+ "source-over",
528
+ "space",
529
+ "space-around",
530
+ "space-between",
531
+ "space-evenly",
532
+ "spell-out",
533
+ "square",
534
+ "start",
535
+ "static",
536
+ "status-bar",
537
+ "stretch",
538
+ "stroke",
539
+ "stroke-box",
540
+ "sub",
541
+ "subpixel-antialiased",
542
+ "svg_masks",
543
+ "super",
544
+ "sw-resize",
545
+ "symbolic",
546
+ "symbols",
547
+ "system-ui",
548
+ "table",
549
+ "table-caption",
550
+ "table-cell",
551
+ "table-column",
552
+ "table-column-group",
553
+ "table-footer-group",
554
+ "table-header-group",
555
+ "table-row",
556
+ "table-row-group",
557
+ "text",
558
+ "text-bottom",
559
+ "text-top",
560
+ "textarea",
561
+ "textfield",
562
+ "thick",
563
+ "thin",
564
+ "threeddarkshadow",
565
+ "threedface",
566
+ "threedhighlight",
567
+ "threedlightshadow",
568
+ "threedshadow",
569
+ "to",
570
+ "top",
571
+ "transform",
572
+ "translate",
573
+ "translate3d",
574
+ "translateX",
575
+ "translateY",
576
+ "translateZ",
577
+ "transparent",
578
+ "ultra-condensed",
579
+ "ultra-expanded",
580
+ "underline",
581
+ "unidirectional-pan",
582
+ "unset",
583
+ "up",
584
+ "upper-latin",
585
+ "uppercase",
586
+ "url",
587
+ "var",
588
+ "vertical",
589
+ "vertical-text",
590
+ "view-box",
591
+ "visible",
592
+ "visibleFill",
593
+ "visiblePainted",
594
+ "visibleStroke",
595
+ "visual",
596
+ "w-resize",
597
+ "wait",
598
+ "wave",
599
+ "wider",
600
+ "window",
601
+ "windowframe",
602
+ "windowtext",
603
+ "words",
604
+ "wrap",
605
+ "wrap-reverse",
606
+ "x-large",
607
+ "x-small",
608
+ "xor",
609
+ "xx-large",
610
+ "xx-small"
611
+ ].map((e) => ({ type: "keyword", label: e })).concat(/* @__PURE__ */ [
612
+ "aliceblue",
613
+ "antiquewhite",
614
+ "aqua",
615
+ "aquamarine",
616
+ "azure",
617
+ "beige",
618
+ "bisque",
619
+ "black",
620
+ "blanchedalmond",
621
+ "blue",
622
+ "blueviolet",
623
+ "brown",
624
+ "burlywood",
625
+ "cadetblue",
626
+ "chartreuse",
627
+ "chocolate",
628
+ "coral",
629
+ "cornflowerblue",
630
+ "cornsilk",
631
+ "crimson",
632
+ "cyan",
633
+ "darkblue",
634
+ "darkcyan",
635
+ "darkgoldenrod",
636
+ "darkgray",
637
+ "darkgreen",
638
+ "darkkhaki",
639
+ "darkmagenta",
640
+ "darkolivegreen",
641
+ "darkorange",
642
+ "darkorchid",
643
+ "darkred",
644
+ "darksalmon",
645
+ "darkseagreen",
646
+ "darkslateblue",
647
+ "darkslategray",
648
+ "darkturquoise",
649
+ "darkviolet",
650
+ "deeppink",
651
+ "deepskyblue",
652
+ "dimgray",
653
+ "dodgerblue",
654
+ "firebrick",
655
+ "floralwhite",
656
+ "forestgreen",
657
+ "fuchsia",
658
+ "gainsboro",
659
+ "ghostwhite",
660
+ "gold",
661
+ "goldenrod",
662
+ "gray",
663
+ "grey",
664
+ "green",
665
+ "greenyellow",
666
+ "honeydew",
667
+ "hotpink",
668
+ "indianred",
669
+ "indigo",
670
+ "ivory",
671
+ "khaki",
672
+ "lavender",
673
+ "lavenderblush",
674
+ "lawngreen",
675
+ "lemonchiffon",
676
+ "lightblue",
677
+ "lightcoral",
678
+ "lightcyan",
679
+ "lightgoldenrodyellow",
680
+ "lightgray",
681
+ "lightgreen",
682
+ "lightpink",
683
+ "lightsalmon",
684
+ "lightseagreen",
685
+ "lightskyblue",
686
+ "lightslategray",
687
+ "lightsteelblue",
688
+ "lightyellow",
689
+ "lime",
690
+ "limegreen",
691
+ "linen",
692
+ "magenta",
693
+ "maroon",
694
+ "mediumaquamarine",
695
+ "mediumblue",
696
+ "mediumorchid",
697
+ "mediumpurple",
698
+ "mediumseagreen",
699
+ "mediumslateblue",
700
+ "mediumspringgreen",
701
+ "mediumturquoise",
702
+ "mediumvioletred",
703
+ "midnightblue",
704
+ "mintcream",
705
+ "mistyrose",
706
+ "moccasin",
707
+ "navajowhite",
708
+ "navy",
709
+ "oldlace",
710
+ "olive",
711
+ "olivedrab",
712
+ "orange",
713
+ "orangered",
714
+ "orchid",
715
+ "palegoldenrod",
716
+ "palegreen",
717
+ "paleturquoise",
718
+ "palevioletred",
719
+ "papayawhip",
720
+ "peachpuff",
721
+ "peru",
722
+ "pink",
723
+ "plum",
724
+ "powderblue",
725
+ "purple",
726
+ "rebeccapurple",
727
+ "red",
728
+ "rosybrown",
729
+ "royalblue",
730
+ "saddlebrown",
731
+ "salmon",
732
+ "sandybrown",
733
+ "seagreen",
734
+ "seashell",
735
+ "sienna",
736
+ "silver",
737
+ "skyblue",
738
+ "slateblue",
739
+ "slategray",
740
+ "snow",
741
+ "springgreen",
742
+ "steelblue",
743
+ "tan",
744
+ "teal",
745
+ "thistle",
746
+ "tomato",
747
+ "turquoise",
748
+ "violet",
749
+ "wheat",
750
+ "white",
751
+ "whitesmoke",
752
+ "yellow",
753
+ "yellowgreen"
754
+ ].map((e) => ({ type: "constant", label: e }))), oe = /* @__PURE__ */ [
755
+ "a",
756
+ "abbr",
757
+ "address",
758
+ "article",
759
+ "aside",
760
+ "b",
761
+ "bdi",
762
+ "bdo",
763
+ "blockquote",
764
+ "body",
765
+ "br",
766
+ "button",
767
+ "canvas",
768
+ "caption",
769
+ "cite",
770
+ "code",
771
+ "col",
772
+ "colgroup",
773
+ "dd",
774
+ "del",
775
+ "details",
776
+ "dfn",
777
+ "dialog",
778
+ "div",
779
+ "dl",
780
+ "dt",
781
+ "em",
782
+ "figcaption",
783
+ "figure",
784
+ "footer",
785
+ "form",
786
+ "header",
787
+ "hgroup",
788
+ "h1",
789
+ "h2",
790
+ "h3",
791
+ "h4",
792
+ "h5",
793
+ "h6",
794
+ "hr",
795
+ "html",
796
+ "i",
797
+ "iframe",
798
+ "img",
799
+ "input",
800
+ "ins",
801
+ "kbd",
802
+ "label",
803
+ "legend",
804
+ "li",
805
+ "main",
806
+ "meter",
807
+ "nav",
808
+ "ol",
809
+ "output",
810
+ "p",
811
+ "pre",
812
+ "ruby",
813
+ "section",
814
+ "select",
815
+ "small",
816
+ "source",
817
+ "span",
818
+ "strong",
819
+ "sub",
820
+ "summary",
821
+ "sup",
822
+ "table",
823
+ "tbody",
824
+ "td",
825
+ "template",
826
+ "textarea",
827
+ "tfoot",
828
+ "th",
829
+ "thead",
830
+ "tr",
831
+ "u",
832
+ "ul"
833
+ ].map((e) => ({ type: "type", label: e })), s = /^(\w[\w-]*|-\w[\w-]*|)$/, re = /^-(-[\w-]*)?$/;
834
+ function le(e, t) {
835
+ var l;
836
+ if ((e.name == "(" || e.type.isError) && (e = e.parent || e), e.name != "ArgList")
837
+ return !1;
838
+ let a = (l = e.parent) === null || l === void 0 ? void 0 : l.firstChild;
839
+ return (a == null ? void 0 : a.name) != "Callee" ? !1 : t.sliceString(a.from, a.to) == "var";
840
+ }
841
+ const b = /* @__PURE__ */ new _(), ie = ["Declaration"];
842
+ function ne(e) {
843
+ for (let t = e; ; ) {
844
+ if (t.type.isTop)
845
+ return t;
846
+ if (!(t = t.parent))
847
+ return e;
848
+ }
849
+ }
850
+ function X(e, t, l) {
851
+ if (t.to - t.from > 4096) {
852
+ let a = b.get(t);
853
+ if (a)
854
+ return a;
855
+ let O = [], r = /* @__PURE__ */ new Set(), i = t.cursor(q.IncludeAnonymous);
856
+ if (i.firstChild())
857
+ do
858
+ for (let n of X(e, i.node, l))
859
+ r.has(n.label) || (r.add(n.label), O.push(n));
860
+ while (i.nextSibling());
861
+ return b.set(t, O), O;
862
+ } else {
863
+ let a = [], O = /* @__PURE__ */ new Set();
864
+ return t.cursor().iterate((r) => {
865
+ var i;
866
+ if (l(r) && r.matchContext(ie) && ((i = r.node.nextSibling) === null || i === void 0 ? void 0 : i.name) == ":") {
867
+ let n = e.sliceString(r.from, r.to);
868
+ O.has(n) || (O.add(n), a.push({ label: n, type: "variable" }));
869
+ }
870
+ }), a;
871
+ }
872
+ }
873
+ const se = (e) => (t) => {
874
+ let { state: l, pos: a } = t, O = k(l).resolveInner(a, -1), r = O.type.isError && O.from == O.to - 1 && l.doc.sliceString(O.from, O.to) == "-";
875
+ if (O.name == "PropertyName" || (r || O.name == "TagName") && /^(Block|Styles)$/.test(O.resolve(O.to).name))
876
+ return { from: O.from, options: u(), validFor: s };
877
+ if (O.name == "ValueName")
878
+ return { from: O.from, options: h, validFor: s };
879
+ if (O.name == "PseudoClassName")
880
+ return { from: O.from, options: f, validFor: s };
881
+ if (e(O) || (t.explicit || r) && le(O, l.doc))
882
+ return {
883
+ from: e(O) || r ? O.from : a,
884
+ options: X(l.doc, ne(O), e),
885
+ validFor: re
886
+ };
887
+ if (O.name == "TagName") {
888
+ for (let { parent: c } = O; c; c = c.parent)
889
+ if (c.name == "Block")
890
+ return { from: O.from, options: u(), validFor: s };
891
+ return { from: O.from, options: oe, validFor: s };
892
+ }
893
+ if (!t.explicit)
894
+ return null;
895
+ let i = O.resolve(a), n = i.childBefore(a);
896
+ return n && n.name == ":" && i.name == "PseudoClassSelector" ? { from: a, options: f, validFor: s } : n && n.name == ":" && i.name == "Declaration" || i.name == "ArgList" ? { from: a, options: h, validFor: s } : i.name == "Block" || i.name == "Styles" ? { from: a, options: u(), validFor: s } : null;
897
+ }, de = /* @__PURE__ */ se((e) => e.name == "VariableName"), $ = /* @__PURE__ */ x.define({
898
+ name: "css",
899
+ parser: /* @__PURE__ */ te.configure({
900
+ props: [
901
+ /* @__PURE__ */ T.add({
902
+ Declaration: /* @__PURE__ */ W()
903
+ }),
904
+ /* @__PURE__ */ R.add({
905
+ "Block KeyframeList": U
906
+ })
907
+ ]
908
+ }),
909
+ languageData: {
910
+ commentTokens: { block: { open: "/*", close: "*/" } },
911
+ indentOnInput: /^\s*\}$/,
912
+ wordChars: "-"
913
+ }
914
+ });
915
+ function pe() {
916
+ return new Y($, $.data.of({ autocomplete: de }));
917
+ }
918
+ export {
919
+ pe as css,
920
+ de as cssCompletionSource,
921
+ $ as cssLanguage,
922
+ se as defineCSSCompletionSource
923
+ };
src/backend/gradio_highlightedcode/templates/component/index-f4953321.js ADDED
@@ -0,0 +1,1301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { P as L, l as M, j as $, J as E, k as y, m as S, I as j } from "./Index-2933bd90.js";
2
+ class v {
3
+ /**
4
+ @internal
5
+ */
6
+ constructor(t, e, s, i, h, r, n, o, a, u = 0, f) {
7
+ this.p = t, this.stack = e, this.state = s, this.reducePos = i, this.pos = h, this.score = r, this.buffer = n, this.bufferBase = o, this.curContext = a, this.lookAhead = u, this.parent = f;
8
+ }
9
+ /**
10
+ @internal
11
+ */
12
+ toString() {
13
+ return `[${this.stack.filter((t, e) => e % 3 == 0).concat(this.state)}]@${this.pos}${this.score ? "!" + this.score : ""}`;
14
+ }
15
+ // Start an empty stack
16
+ /**
17
+ @internal
18
+ */
19
+ static start(t, e, s = 0) {
20
+ let i = t.parser.context;
21
+ return new v(t, [], e, s, s, 0, [], 0, i ? new N(i, i.start) : null, 0, null);
22
+ }
23
+ /**
24
+ The stack's current [context](#lr.ContextTracker) value, if
25
+ any. Its type will depend on the context tracker's type
26
+ parameter, or it will be `null` if there is no context
27
+ tracker.
28
+ */
29
+ get context() {
30
+ return this.curContext ? this.curContext.context : null;
31
+ }
32
+ // Push a state onto the stack, tracking its start position as well
33
+ // as the buffer base at that point.
34
+ /**
35
+ @internal
36
+ */
37
+ pushState(t, e) {
38
+ this.stack.push(this.state, e, this.bufferBase + this.buffer.length), this.state = t;
39
+ }
40
+ // Apply a reduce action
41
+ /**
42
+ @internal
43
+ */
44
+ reduce(t) {
45
+ var e;
46
+ let s = t >> 19, i = t & 65535, { parser: h } = this.p, r = h.dynamicPrecedence(i);
47
+ if (r && (this.score += r), s == 0) {
48
+ this.pushState(h.getGoto(this.state, i, !0), this.reducePos), i < h.minRepeatTerm && this.storeNode(i, this.reducePos, this.reducePos, 4, !0), this.reduceContext(i, this.reducePos);
49
+ return;
50
+ }
51
+ let n = this.stack.length - (s - 1) * 3 - (t & 262144 ? 6 : 0), o = n ? this.stack[n - 2] : this.p.ranges[0].from, a = this.reducePos - o;
52
+ a >= 2e3 && !(!((e = this.p.parser.nodeSet.types[i]) === null || e === void 0) && e.isAnonymous) && (o == this.p.lastBigReductionStart ? (this.p.bigReductionCount++, this.p.lastBigReductionSize = a) : this.p.lastBigReductionSize < a && (this.p.bigReductionCount = 1, this.p.lastBigReductionStart = o, this.p.lastBigReductionSize = a));
53
+ let u = n ? this.stack[n - 1] : 0, f = this.bufferBase + this.buffer.length - u;
54
+ if (i < h.minRepeatTerm || t & 131072) {
55
+ let c = h.stateFlag(
56
+ this.state,
57
+ 1
58
+ /* StateFlag.Skipped */
59
+ ) ? this.pos : this.reducePos;
60
+ this.storeNode(i, o, c, f + 4, !0);
61
+ }
62
+ if (t & 262144)
63
+ this.state = this.stack[n];
64
+ else {
65
+ let c = this.stack[n - 3];
66
+ this.state = h.getGoto(c, i, !0);
67
+ }
68
+ for (; this.stack.length > n; )
69
+ this.stack.pop();
70
+ this.reduceContext(i, o);
71
+ }
72
+ // Shift a value into the buffer
73
+ /**
74
+ @internal
75
+ */
76
+ storeNode(t, e, s, i = 4, h = !1) {
77
+ if (t == 0 && (!this.stack.length || this.stack[this.stack.length - 1] < this.buffer.length + this.bufferBase)) {
78
+ let r = this, n = this.buffer.length;
79
+ if (n == 0 && r.parent && (n = r.bufferBase - r.parent.bufferBase, r = r.parent), n > 0 && r.buffer[n - 4] == 0 && r.buffer[n - 1] > -1) {
80
+ if (e == s)
81
+ return;
82
+ if (r.buffer[n - 2] >= e) {
83
+ r.buffer[n - 2] = s;
84
+ return;
85
+ }
86
+ }
87
+ }
88
+ if (!h || this.pos == s)
89
+ this.buffer.push(t, e, s, i);
90
+ else {
91
+ let r = this.buffer.length;
92
+ if (r > 0 && this.buffer[r - 4] != 0)
93
+ for (; r > 0 && this.buffer[r - 2] > s; )
94
+ this.buffer[r] = this.buffer[r - 4], this.buffer[r + 1] = this.buffer[r - 3], this.buffer[r + 2] = this.buffer[r - 2], this.buffer[r + 3] = this.buffer[r - 1], r -= 4, i > 4 && (i -= 4);
95
+ this.buffer[r] = t, this.buffer[r + 1] = e, this.buffer[r + 2] = s, this.buffer[r + 3] = i;
96
+ }
97
+ }
98
+ // Apply a shift action
99
+ /**
100
+ @internal
101
+ */
102
+ shift(t, e, s, i) {
103
+ if (t & 131072)
104
+ this.pushState(t & 65535, this.pos);
105
+ else if (t & 262144)
106
+ this.pos = i, this.shiftContext(e, s), e <= this.p.parser.maxNode && this.buffer.push(e, s, i, 4);
107
+ else {
108
+ let h = t, { parser: r } = this.p;
109
+ (i > this.pos || e <= r.maxNode) && (this.pos = i, r.stateFlag(
110
+ h,
111
+ 1
112
+ /* StateFlag.Skipped */
113
+ ) || (this.reducePos = i)), this.pushState(h, s), this.shiftContext(e, s), e <= r.maxNode && this.buffer.push(e, s, i, 4);
114
+ }
115
+ }
116
+ // Apply an action
117
+ /**
118
+ @internal
119
+ */
120
+ apply(t, e, s, i) {
121
+ t & 65536 ? this.reduce(t) : this.shift(t, e, s, i);
122
+ }
123
+ // Add a prebuilt (reused) node into the buffer.
124
+ /**
125
+ @internal
126
+ */
127
+ useNode(t, e) {
128
+ let s = this.p.reused.length - 1;
129
+ (s < 0 || this.p.reused[s] != t) && (this.p.reused.push(t), s++);
130
+ let i = this.pos;
131
+ this.reducePos = this.pos = i + t.length, this.pushState(e, i), this.buffer.push(
132
+ s,
133
+ i,
134
+ this.reducePos,
135
+ -1
136
+ /* size == -1 means this is a reused value */
137
+ ), this.curContext && this.updateContext(this.curContext.tracker.reuse(this.curContext.context, t, this, this.p.stream.reset(this.pos - t.length)));
138
+ }
139
+ // Split the stack. Due to the buffer sharing and the fact
140
+ // that `this.stack` tends to stay quite shallow, this isn't very
141
+ // expensive.
142
+ /**
143
+ @internal
144
+ */
145
+ split() {
146
+ let t = this, e = t.buffer.length;
147
+ for (; e > 0 && t.buffer[e - 2] > t.reducePos; )
148
+ e -= 4;
149
+ let s = t.buffer.slice(e), i = t.bufferBase + e;
150
+ for (; t && i == t.bufferBase; )
151
+ t = t.parent;
152
+ return new v(this.p, this.stack.slice(), this.state, this.reducePos, this.pos, this.score, s, i, this.curContext, this.lookAhead, t);
153
+ }
154
+ // Try to recover from an error by 'deleting' (ignoring) one token.
155
+ /**
156
+ @internal
157
+ */
158
+ recoverByDelete(t, e) {
159
+ let s = t <= this.p.parser.maxNode;
160
+ s && this.storeNode(t, this.pos, e, 4), this.storeNode(0, this.pos, e, s ? 8 : 4), this.pos = this.reducePos = e, this.score -= 190;
161
+ }
162
+ /**
163
+ Check if the given term would be able to be shifted (optionally
164
+ after some reductions) on this stack. This can be useful for
165
+ external tokenizers that want to make sure they only provide a
166
+ given token when it applies.
167
+ */
168
+ canShift(t) {
169
+ for (let e = new G(this); ; ) {
170
+ let s = this.p.parser.stateSlot(
171
+ e.state,
172
+ 4
173
+ /* ParseState.DefaultReduce */
174
+ ) || this.p.parser.hasAction(e.state, t);
175
+ if (s == 0)
176
+ return !1;
177
+ if (!(s & 65536))
178
+ return !0;
179
+ e.reduce(s);
180
+ }
181
+ }
182
+ // Apply up to Recover.MaxNext recovery actions that conceptually
183
+ // inserts some missing token or rule.
184
+ /**
185
+ @internal
186
+ */
187
+ recoverByInsert(t) {
188
+ if (this.stack.length >= 300)
189
+ return [];
190
+ let e = this.p.parser.nextStates(this.state);
191
+ if (e.length > 8 || this.stack.length >= 120) {
192
+ let i = [];
193
+ for (let h = 0, r; h < e.length; h += 2)
194
+ (r = e[h + 1]) != this.state && this.p.parser.hasAction(r, t) && i.push(e[h], r);
195
+ if (this.stack.length < 120)
196
+ for (let h = 0; i.length < 8 && h < e.length; h += 2) {
197
+ let r = e[h + 1];
198
+ i.some((n, o) => o & 1 && n == r) || i.push(e[h], r);
199
+ }
200
+ e = i;
201
+ }
202
+ let s = [];
203
+ for (let i = 0; i < e.length && s.length < 4; i += 2) {
204
+ let h = e[i + 1];
205
+ if (h == this.state)
206
+ continue;
207
+ let r = this.split();
208
+ r.pushState(h, this.pos), r.storeNode(0, r.pos, r.pos, 4, !0), r.shiftContext(e[i], this.pos), r.reducePos = this.pos, r.score -= 200, s.push(r);
209
+ }
210
+ return s;
211
+ }
212
+ // Force a reduce, if possible. Return false if that can't
213
+ // be done.
214
+ /**
215
+ @internal
216
+ */
217
+ forceReduce() {
218
+ let { parser: t } = this.p, e = t.stateSlot(
219
+ this.state,
220
+ 5
221
+ /* ParseState.ForcedReduce */
222
+ );
223
+ if (!(e & 65536))
224
+ return !1;
225
+ if (!t.validAction(this.state, e)) {
226
+ let s = e >> 19, i = e & 65535, h = this.stack.length - s * 3;
227
+ if (h < 0 || t.getGoto(this.stack[h], i, !1) < 0) {
228
+ let r = this.findForcedReduction();
229
+ if (r == null)
230
+ return !1;
231
+ e = r;
232
+ }
233
+ this.storeNode(0, this.pos, this.pos, 4, !0), this.score -= 100;
234
+ }
235
+ return this.reducePos = this.pos, this.reduce(e), !0;
236
+ }
237
+ /**
238
+ Try to scan through the automaton to find some kind of reduction
239
+ that can be applied. Used when the regular ForcedReduce field
240
+ isn't a valid action. @internal
241
+ */
242
+ findForcedReduction() {
243
+ let { parser: t } = this.p, e = [], s = (i, h) => {
244
+ if (!e.includes(i))
245
+ return e.push(i), t.allActions(i, (r) => {
246
+ if (!(r & 393216))
247
+ if (r & 65536) {
248
+ let n = (r >> 19) - h;
249
+ if (n > 1) {
250
+ let o = r & 65535, a = this.stack.length - n * 3;
251
+ if (a >= 0 && t.getGoto(this.stack[a], o, !1) >= 0)
252
+ return n << 19 | 65536 | o;
253
+ }
254
+ } else {
255
+ let n = s(r, h + 1);
256
+ if (n != null)
257
+ return n;
258
+ }
259
+ });
260
+ };
261
+ return s(this.state, 0);
262
+ }
263
+ /**
264
+ @internal
265
+ */
266
+ forceAll() {
267
+ for (; !this.p.parser.stateFlag(
268
+ this.state,
269
+ 2
270
+ /* StateFlag.Accepting */
271
+ ); )
272
+ if (!this.forceReduce()) {
273
+ this.storeNode(0, this.pos, this.pos, 4, !0);
274
+ break;
275
+ }
276
+ return this;
277
+ }
278
+ /**
279
+ Check whether this state has no further actions (assumed to be a direct descendant of the
280
+ top state, since any other states must be able to continue
281
+ somehow). @internal
282
+ */
283
+ get deadEnd() {
284
+ if (this.stack.length != 3)
285
+ return !1;
286
+ let { parser: t } = this.p;
287
+ return t.data[t.stateSlot(
288
+ this.state,
289
+ 1
290
+ /* ParseState.Actions */
291
+ )] == 65535 && !t.stateSlot(
292
+ this.state,
293
+ 4
294
+ /* ParseState.DefaultReduce */
295
+ );
296
+ }
297
+ /**
298
+ Restart the stack (put it back in its start state). Only safe
299
+ when this.stack.length == 3 (state is directly below the top
300
+ state). @internal
301
+ */
302
+ restart() {
303
+ this.storeNode(0, this.pos, this.pos, 4, !0), this.state = this.stack[0], this.stack.length = 0;
304
+ }
305
+ /**
306
+ @internal
307
+ */
308
+ sameState(t) {
309
+ if (this.state != t.state || this.stack.length != t.stack.length)
310
+ return !1;
311
+ for (let e = 0; e < this.stack.length; e += 3)
312
+ if (this.stack[e] != t.stack[e])
313
+ return !1;
314
+ return !0;
315
+ }
316
+ /**
317
+ Get the parser used by this stack.
318
+ */
319
+ get parser() {
320
+ return this.p.parser;
321
+ }
322
+ /**
323
+ Test whether a given dialect (by numeric ID, as exported from
324
+ the terms file) is enabled.
325
+ */
326
+ dialectEnabled(t) {
327
+ return this.p.parser.dialect.flags[t];
328
+ }
329
+ shiftContext(t, e) {
330
+ this.curContext && this.updateContext(this.curContext.tracker.shift(this.curContext.context, t, this, this.p.stream.reset(e)));
331
+ }
332
+ reduceContext(t, e) {
333
+ this.curContext && this.updateContext(this.curContext.tracker.reduce(this.curContext.context, t, this, this.p.stream.reset(e)));
334
+ }
335
+ /**
336
+ @internal
337
+ */
338
+ emitContext() {
339
+ let t = this.buffer.length - 1;
340
+ (t < 0 || this.buffer[t] != -3) && this.buffer.push(this.curContext.hash, this.pos, this.pos, -3);
341
+ }
342
+ /**
343
+ @internal
344
+ */
345
+ emitLookAhead() {
346
+ let t = this.buffer.length - 1;
347
+ (t < 0 || this.buffer[t] != -4) && this.buffer.push(this.lookAhead, this.pos, this.pos, -4);
348
+ }
349
+ updateContext(t) {
350
+ if (t != this.curContext.context) {
351
+ let e = new N(this.curContext.tracker, t);
352
+ e.hash != this.curContext.hash && this.emitContext(), this.curContext = e;
353
+ }
354
+ }
355
+ /**
356
+ @internal
357
+ */
358
+ setLookAhead(t) {
359
+ t > this.lookAhead && (this.emitLookAhead(), this.lookAhead = t);
360
+ }
361
+ /**
362
+ @internal
363
+ */
364
+ close() {
365
+ this.curContext && this.curContext.tracker.strict && this.emitContext(), this.lookAhead > 0 && this.emitLookAhead();
366
+ }
367
+ }
368
+ class N {
369
+ constructor(t, e) {
370
+ this.tracker = t, this.context = e, this.hash = t.strict ? t.hash(e) : 0;
371
+ }
372
+ }
373
+ class G {
374
+ constructor(t) {
375
+ this.start = t, this.state = t.state, this.stack = t.stack, this.base = this.stack.length;
376
+ }
377
+ reduce(t) {
378
+ let e = t & 65535, s = t >> 19;
379
+ s == 0 ? (this.stack == this.start.stack && (this.stack = this.stack.slice()), this.stack.push(this.state, 0, 0), this.base += 3) : this.base -= (s - 1) * 3;
380
+ let i = this.start.p.parser.getGoto(this.stack[this.base - 3], e, !0);
381
+ this.state = i;
382
+ }
383
+ }
384
+ class A {
385
+ constructor(t, e, s) {
386
+ this.stack = t, this.pos = e, this.index = s, this.buffer = t.buffer, this.index == 0 && this.maybeNext();
387
+ }
388
+ static create(t, e = t.bufferBase + t.buffer.length) {
389
+ return new A(t, e, e - t.bufferBase);
390
+ }
391
+ maybeNext() {
392
+ let t = this.stack.parent;
393
+ t != null && (this.index = this.stack.bufferBase - t.bufferBase, this.stack = t, this.buffer = t.buffer);
394
+ }
395
+ get id() {
396
+ return this.buffer[this.index - 4];
397
+ }
398
+ get start() {
399
+ return this.buffer[this.index - 3];
400
+ }
401
+ get end() {
402
+ return this.buffer[this.index - 2];
403
+ }
404
+ get size() {
405
+ return this.buffer[this.index - 1];
406
+ }
407
+ next() {
408
+ this.index -= 4, this.pos -= 4, this.index == 0 && this.maybeNext();
409
+ }
410
+ fork() {
411
+ return new A(this.stack, this.pos, this.index);
412
+ }
413
+ }
414
+ function x(l, t = Uint16Array) {
415
+ if (typeof l != "string")
416
+ return l;
417
+ let e = null;
418
+ for (let s = 0, i = 0; s < l.length; ) {
419
+ let h = 0;
420
+ for (; ; ) {
421
+ let r = l.charCodeAt(s++), n = !1;
422
+ if (r == 126) {
423
+ h = 65535;
424
+ break;
425
+ }
426
+ r >= 92 && r--, r >= 34 && r--;
427
+ let o = r - 32;
428
+ if (o >= 46 && (o -= 46, n = !0), h += o, n)
429
+ break;
430
+ h *= 46;
431
+ }
432
+ e ? e[i++] = h : e = new t(h);
433
+ }
434
+ return e;
435
+ }
436
+ class P {
437
+ constructor() {
438
+ this.start = -1, this.value = -1, this.end = -1, this.extended = -1, this.lookAhead = 0, this.mask = 0, this.context = 0;
439
+ }
440
+ }
441
+ const R = new P();
442
+ class U {
443
+ /**
444
+ @internal
445
+ */
446
+ constructor(t, e) {
447
+ this.input = t, this.ranges = e, this.chunk = "", this.chunkOff = 0, this.chunk2 = "", this.chunk2Pos = 0, this.next = -1, this.token = R, this.rangeIndex = 0, this.pos = this.chunkPos = e[0].from, this.range = e[0], this.end = e[e.length - 1].to, this.readNext();
448
+ }
449
+ /**
450
+ @internal
451
+ */
452
+ resolveOffset(t, e) {
453
+ let s = this.range, i = this.rangeIndex, h = this.pos + t;
454
+ for (; h < s.from; ) {
455
+ if (!i)
456
+ return null;
457
+ let r = this.ranges[--i];
458
+ h -= s.from - r.to, s = r;
459
+ }
460
+ for (; e < 0 ? h > s.to : h >= s.to; ) {
461
+ if (i == this.ranges.length - 1)
462
+ return null;
463
+ let r = this.ranges[++i];
464
+ h += r.from - s.to, s = r;
465
+ }
466
+ return h;
467
+ }
468
+ /**
469
+ @internal
470
+ */
471
+ clipPos(t) {
472
+ if (t >= this.range.from && t < this.range.to)
473
+ return t;
474
+ for (let e of this.ranges)
475
+ if (e.to > t)
476
+ return Math.max(t, e.from);
477
+ return this.end;
478
+ }
479
+ /**
480
+ Look at a code unit near the stream position. `.peek(0)` equals
481
+ `.next`, `.peek(-1)` gives you the previous character, and so
482
+ on.
483
+
484
+ Note that looking around during tokenizing creates dependencies
485
+ on potentially far-away content, which may reduce the
486
+ effectiveness incremental parsing—when looking forward—or even
487
+ cause invalid reparses when looking backward more than 25 code
488
+ units, since the library does not track lookbehind.
489
+ */
490
+ peek(t) {
491
+ let e = this.chunkOff + t, s, i;
492
+ if (e >= 0 && e < this.chunk.length)
493
+ s = this.pos + t, i = this.chunk.charCodeAt(e);
494
+ else {
495
+ let h = this.resolveOffset(t, 1);
496
+ if (h == null)
497
+ return -1;
498
+ if (s = h, s >= this.chunk2Pos && s < this.chunk2Pos + this.chunk2.length)
499
+ i = this.chunk2.charCodeAt(s - this.chunk2Pos);
500
+ else {
501
+ let r = this.rangeIndex, n = this.range;
502
+ for (; n.to <= s; )
503
+ n = this.ranges[++r];
504
+ this.chunk2 = this.input.chunk(this.chunk2Pos = s), s + this.chunk2.length > n.to && (this.chunk2 = this.chunk2.slice(0, n.to - s)), i = this.chunk2.charCodeAt(0);
505
+ }
506
+ }
507
+ return s >= this.token.lookAhead && (this.token.lookAhead = s + 1), i;
508
+ }
509
+ /**
510
+ Accept a token. By default, the end of the token is set to the
511
+ current stream position, but you can pass an offset (relative to
512
+ the stream position) to change that.
513
+ */
514
+ acceptToken(t, e = 0) {
515
+ let s = e ? this.resolveOffset(e, -1) : this.pos;
516
+ if (s == null || s < this.token.start)
517
+ throw new RangeError("Token end out of bounds");
518
+ this.token.value = t, this.token.end = s;
519
+ }
520
+ /**
521
+ Accept a token ending at a specific given position.
522
+ */
523
+ acceptTokenTo(t, e) {
524
+ this.token.value = t, this.token.end = e;
525
+ }
526
+ getChunk() {
527
+ if (this.pos >= this.chunk2Pos && this.pos < this.chunk2Pos + this.chunk2.length) {
528
+ let { chunk: t, chunkPos: e } = this;
529
+ this.chunk = this.chunk2, this.chunkPos = this.chunk2Pos, this.chunk2 = t, this.chunk2Pos = e, this.chunkOff = this.pos - this.chunkPos;
530
+ } else {
531
+ this.chunk2 = this.chunk, this.chunk2Pos = this.chunkPos;
532
+ let t = this.input.chunk(this.pos), e = this.pos + t.length;
533
+ this.chunk = e > this.range.to ? t.slice(0, this.range.to - this.pos) : t, this.chunkPos = this.pos, this.chunkOff = 0;
534
+ }
535
+ }
536
+ readNext() {
537
+ return this.chunkOff >= this.chunk.length && (this.getChunk(), this.chunkOff == this.chunk.length) ? this.next = -1 : this.next = this.chunk.charCodeAt(this.chunkOff);
538
+ }
539
+ /**
540
+ Move the stream forward N (defaults to 1) code units. Returns
541
+ the new value of [`next`](#lr.InputStream.next).
542
+ */
543
+ advance(t = 1) {
544
+ for (this.chunkOff += t; this.pos + t >= this.range.to; ) {
545
+ if (this.rangeIndex == this.ranges.length - 1)
546
+ return this.setDone();
547
+ t -= this.range.to - this.pos, this.range = this.ranges[++this.rangeIndex], this.pos = this.range.from;
548
+ }
549
+ return this.pos += t, this.pos >= this.token.lookAhead && (this.token.lookAhead = this.pos + 1), this.readNext();
550
+ }
551
+ setDone() {
552
+ return this.pos = this.chunkPos = this.end, this.range = this.ranges[this.rangeIndex = this.ranges.length - 1], this.chunk = "", this.next = -1;
553
+ }
554
+ /**
555
+ @internal
556
+ */
557
+ reset(t, e) {
558
+ if (e ? (this.token = e, e.start = t, e.lookAhead = t + 1, e.value = e.extended = -1) : this.token = R, this.pos != t) {
559
+ if (this.pos = t, t == this.end)
560
+ return this.setDone(), this;
561
+ for (; t < this.range.from; )
562
+ this.range = this.ranges[--this.rangeIndex];
563
+ for (; t >= this.range.to; )
564
+ this.range = this.ranges[++this.rangeIndex];
565
+ t >= this.chunkPos && t < this.chunkPos + this.chunk.length ? this.chunkOff = t - this.chunkPos : (this.chunk = "", this.chunkOff = 0), this.readNext();
566
+ }
567
+ return this;
568
+ }
569
+ /**
570
+ @internal
571
+ */
572
+ read(t, e) {
573
+ if (t >= this.chunkPos && e <= this.chunkPos + this.chunk.length)
574
+ return this.chunk.slice(t - this.chunkPos, e - this.chunkPos);
575
+ if (t >= this.chunk2Pos && e <= this.chunk2Pos + this.chunk2.length)
576
+ return this.chunk2.slice(t - this.chunk2Pos, e - this.chunk2Pos);
577
+ if (t >= this.range.from && e <= this.range.to)
578
+ return this.input.read(t, e);
579
+ let s = "";
580
+ for (let i of this.ranges) {
581
+ if (i.from >= e)
582
+ break;
583
+ i.to > t && (s += this.input.read(Math.max(i.from, t), Math.min(i.to, e)));
584
+ }
585
+ return s;
586
+ }
587
+ }
588
+ class m {
589
+ constructor(t, e) {
590
+ this.data = t, this.id = e;
591
+ }
592
+ token(t, e) {
593
+ let { parser: s } = e.p;
594
+ F(this.data, t, e, this.id, s.data, s.tokenPrecTable);
595
+ }
596
+ }
597
+ m.prototype.contextual = m.prototype.fallback = m.prototype.extend = !1;
598
+ class H {
599
+ constructor(t, e, s) {
600
+ this.precTable = e, this.elseToken = s, this.data = typeof t == "string" ? x(t) : t;
601
+ }
602
+ token(t, e) {
603
+ let s = t.pos, i = 0;
604
+ for (; ; ) {
605
+ let h = t.next < 0, r = t.resolveOffset(1, 1);
606
+ if (F(this.data, t, e, 0, this.data, this.precTable), t.token.value > -1)
607
+ break;
608
+ if (this.elseToken == null)
609
+ return;
610
+ if (h || i++, r == null)
611
+ break;
612
+ t.reset(r, t.token);
613
+ }
614
+ i && (t.reset(s, t.token), t.acceptToken(this.elseToken, i));
615
+ }
616
+ }
617
+ H.prototype.contextual = m.prototype.fallback = m.prototype.extend = !1;
618
+ class Y {
619
+ /**
620
+ Create a tokenizer. The first argument is the function that,
621
+ given an input stream, scans for the types of tokens it
622
+ recognizes at the stream's position, and calls
623
+ [`acceptToken`](#lr.InputStream.acceptToken) when it finds
624
+ one.
625
+ */
626
+ constructor(t, e = {}) {
627
+ this.token = t, this.contextual = !!e.contextual, this.fallback = !!e.fallback, this.extend = !!e.extend;
628
+ }
629
+ }
630
+ function F(l, t, e, s, i, h) {
631
+ let r = 0, n = 1 << s, { dialect: o } = e.p.parser;
632
+ t:
633
+ for (; n & l[r]; ) {
634
+ let a = l[r + 1];
635
+ for (let p = r + 3; p < a; p += 2)
636
+ if ((l[p + 1] & n) > 0) {
637
+ let d = l[p];
638
+ if (o.allows(d) && (t.token.value == -1 || t.token.value == d || W(d, t.token.value, i, h))) {
639
+ t.acceptToken(d);
640
+ break;
641
+ }
642
+ }
643
+ let u = t.next, f = 0, c = l[r + 2];
644
+ if (t.next < 0 && c > f && l[a + c * 3 - 3] == 65535) {
645
+ r = l[a + c * 3 - 1];
646
+ continue t;
647
+ }
648
+ for (; f < c; ) {
649
+ let p = f + c >> 1, d = a + p + (p << 1), b = l[d], O = l[d + 1] || 65536;
650
+ if (u < b)
651
+ c = p;
652
+ else if (u >= O)
653
+ f = p + 1;
654
+ else {
655
+ r = l[d + 2], t.advance();
656
+ continue t;
657
+ }
658
+ }
659
+ break;
660
+ }
661
+ }
662
+ function z(l, t, e) {
663
+ for (let s = t, i; (i = l[s]) != 65535; s++)
664
+ if (i == e)
665
+ return s - t;
666
+ return -1;
667
+ }
668
+ function W(l, t, e, s) {
669
+ let i = z(e, s, t);
670
+ return i < 0 || z(e, s, l) < i;
671
+ }
672
+ const g = typeof process < "u" && process.env && /\bparse\b/.test(process.env.LOG);
673
+ let T = null;
674
+ function I(l, t, e) {
675
+ let s = l.cursor(j.IncludeAnonymous);
676
+ for (s.moveTo(t); ; )
677
+ if (!(e < 0 ? s.childBefore(t) : s.childAfter(t)))
678
+ for (; ; ) {
679
+ if ((e < 0 ? s.to < t : s.from > t) && !s.type.isError)
680
+ return e < 0 ? Math.max(0, Math.min(
681
+ s.to - 1,
682
+ t - 25
683
+ /* Safety.Margin */
684
+ )) : Math.min(l.length, Math.max(
685
+ s.from + 1,
686
+ t + 25
687
+ /* Safety.Margin */
688
+ ));
689
+ if (e < 0 ? s.prevSibling() : s.nextSibling())
690
+ break;
691
+ if (!s.parent())
692
+ return e < 0 ? 0 : l.length;
693
+ }
694
+ }
695
+ class J {
696
+ constructor(t, e) {
697
+ this.fragments = t, this.nodeSet = e, this.i = 0, this.fragment = null, this.safeFrom = -1, this.safeTo = -1, this.trees = [], this.start = [], this.index = [], this.nextFragment();
698
+ }
699
+ nextFragment() {
700
+ let t = this.fragment = this.i == this.fragments.length ? null : this.fragments[this.i++];
701
+ if (t) {
702
+ for (this.safeFrom = t.openStart ? I(t.tree, t.from + t.offset, 1) - t.offset : t.from, this.safeTo = t.openEnd ? I(t.tree, t.to + t.offset, -1) - t.offset : t.to; this.trees.length; )
703
+ this.trees.pop(), this.start.pop(), this.index.pop();
704
+ this.trees.push(t.tree), this.start.push(-t.offset), this.index.push(0), this.nextStart = this.safeFrom;
705
+ } else
706
+ this.nextStart = 1e9;
707
+ }
708
+ // `pos` must be >= any previously given `pos` for this cursor
709
+ nodeAt(t) {
710
+ if (t < this.nextStart)
711
+ return null;
712
+ for (; this.fragment && this.safeTo <= t; )
713
+ this.nextFragment();
714
+ if (!this.fragment)
715
+ return null;
716
+ for (; ; ) {
717
+ let e = this.trees.length - 1;
718
+ if (e < 0)
719
+ return this.nextFragment(), null;
720
+ let s = this.trees[e], i = this.index[e];
721
+ if (i == s.children.length) {
722
+ this.trees.pop(), this.start.pop(), this.index.pop();
723
+ continue;
724
+ }
725
+ let h = s.children[i], r = this.start[e] + s.positions[i];
726
+ if (r > t)
727
+ return this.nextStart = r, null;
728
+ if (h instanceof S) {
729
+ if (r == t) {
730
+ if (r < this.safeFrom)
731
+ return null;
732
+ let n = r + h.length;
733
+ if (n <= this.safeTo) {
734
+ let o = h.prop(y.lookAhead);
735
+ if (!o || n + o < this.fragment.to)
736
+ return h;
737
+ }
738
+ }
739
+ this.index[e]++, r + h.length >= Math.max(this.safeFrom, t) && (this.trees.push(h), this.start.push(r), this.index.push(0));
740
+ } else
741
+ this.index[e]++, this.nextStart = r + h.length;
742
+ }
743
+ }
744
+ }
745
+ class q {
746
+ constructor(t, e) {
747
+ this.stream = e, this.tokens = [], this.mainToken = null, this.actions = [], this.tokens = t.tokenizers.map((s) => new P());
748
+ }
749
+ getActions(t) {
750
+ let e = 0, s = null, { parser: i } = t.p, { tokenizers: h } = i, r = i.stateSlot(
751
+ t.state,
752
+ 3
753
+ /* ParseState.TokenizerMask */
754
+ ), n = t.curContext ? t.curContext.hash : 0, o = 0;
755
+ for (let a = 0; a < h.length; a++) {
756
+ if (!(1 << a & r))
757
+ continue;
758
+ let u = h[a], f = this.tokens[a];
759
+ if (!(s && !u.fallback) && ((u.contextual || f.start != t.pos || f.mask != r || f.context != n) && (this.updateCachedToken(f, u, t), f.mask = r, f.context = n), f.lookAhead > f.end + 25 && (o = Math.max(f.lookAhead, o)), f.value != 0)) {
760
+ let c = e;
761
+ if (f.extended > -1 && (e = this.addActions(t, f.extended, f.end, e)), e = this.addActions(t, f.value, f.end, e), !u.extend && (s = f, e > c))
762
+ break;
763
+ }
764
+ }
765
+ for (; this.actions.length > e; )
766
+ this.actions.pop();
767
+ return o && t.setLookAhead(o), !s && t.pos == this.stream.end && (s = new P(), s.value = t.p.parser.eofTerm, s.start = s.end = t.pos, e = this.addActions(t, s.value, s.end, e)), this.mainToken = s, this.actions;
768
+ }
769
+ getMainToken(t) {
770
+ if (this.mainToken)
771
+ return this.mainToken;
772
+ let e = new P(), { pos: s, p: i } = t;
773
+ return e.start = s, e.end = Math.min(s + 1, i.stream.end), e.value = s == i.stream.end ? i.parser.eofTerm : 0, e;
774
+ }
775
+ updateCachedToken(t, e, s) {
776
+ let i = this.stream.clipPos(s.pos);
777
+ if (e.token(this.stream.reset(i, t), s), t.value > -1) {
778
+ let { parser: h } = s.p;
779
+ for (let r = 0; r < h.specialized.length; r++)
780
+ if (h.specialized[r] == t.value) {
781
+ let n = h.specializers[r](this.stream.read(t.start, t.end), s);
782
+ if (n >= 0 && s.p.parser.dialect.allows(n >> 1)) {
783
+ n & 1 ? t.extended = n >> 1 : t.value = n >> 1;
784
+ break;
785
+ }
786
+ }
787
+ } else
788
+ t.value = 0, t.end = this.stream.clipPos(i + 1);
789
+ }
790
+ putAction(t, e, s, i) {
791
+ for (let h = 0; h < i; h += 3)
792
+ if (this.actions[h] == t)
793
+ return i;
794
+ return this.actions[i++] = t, this.actions[i++] = e, this.actions[i++] = s, i;
795
+ }
796
+ addActions(t, e, s, i) {
797
+ let { state: h } = t, { parser: r } = t.p, { data: n } = r;
798
+ for (let o = 0; o < 2; o++)
799
+ for (let a = r.stateSlot(
800
+ h,
801
+ o ? 2 : 1
802
+ /* ParseState.Actions */
803
+ ); ; a += 3) {
804
+ if (n[a] == 65535)
805
+ if (n[a + 1] == 1)
806
+ a = k(n, a + 2);
807
+ else {
808
+ i == 0 && n[a + 1] == 2 && (i = this.putAction(k(n, a + 2), e, s, i));
809
+ break;
810
+ }
811
+ n[a] == e && (i = this.putAction(k(n, a + 1), e, s, i));
812
+ }
813
+ return i;
814
+ }
815
+ }
816
+ class K {
817
+ constructor(t, e, s, i) {
818
+ this.parser = t, this.input = e, this.ranges = i, this.recovering = 0, this.nextStackID = 9812, this.minStackPos = 0, this.reused = [], this.stoppedAt = null, this.lastBigReductionStart = -1, this.lastBigReductionSize = 0, this.bigReductionCount = 0, this.stream = new U(e, i), this.tokens = new q(t, this.stream), this.topTerm = t.top[1];
819
+ let { from: h } = i[0];
820
+ this.stacks = [v.start(this, t.top[0], h)], this.fragments = s.length && this.stream.end - h > t.bufferLength * 4 ? new J(s, t.nodeSet) : null;
821
+ }
822
+ get parsedPos() {
823
+ return this.minStackPos;
824
+ }
825
+ // Move the parser forward. This will process all parse stacks at
826
+ // `this.pos` and try to advance them to a further position. If no
827
+ // stack for such a position is found, it'll start error-recovery.
828
+ //
829
+ // When the parse is finished, this will return a syntax tree. When
830
+ // not, it returns `null`.
831
+ advance() {
832
+ let t = this.stacks, e = this.minStackPos, s = this.stacks = [], i, h;
833
+ if (this.bigReductionCount > 300 && t.length == 1) {
834
+ let [r] = t;
835
+ for (; r.forceReduce() && r.stack.length && r.stack[r.stack.length - 2] >= this.lastBigReductionStart; )
836
+ ;
837
+ this.bigReductionCount = this.lastBigReductionSize = 0;
838
+ }
839
+ for (let r = 0; r < t.length; r++) {
840
+ let n = t[r];
841
+ for (; ; ) {
842
+ if (this.tokens.mainToken = null, n.pos > e)
843
+ s.push(n);
844
+ else {
845
+ if (this.advanceStack(n, s, t))
846
+ continue;
847
+ {
848
+ i || (i = [], h = []), i.push(n);
849
+ let o = this.tokens.getMainToken(n);
850
+ h.push(o.value, o.end);
851
+ }
852
+ }
853
+ break;
854
+ }
855
+ }
856
+ if (!s.length) {
857
+ let r = i && V(i);
858
+ if (r)
859
+ return g && console.log("Finish with " + this.stackID(r)), this.stackToTree(r);
860
+ if (this.parser.strict)
861
+ throw g && i && console.log("Stuck with token " + (this.tokens.mainToken ? this.parser.getName(this.tokens.mainToken.value) : "none")), new SyntaxError("No parse at " + e);
862
+ this.recovering || (this.recovering = 5);
863
+ }
864
+ if (this.recovering && i) {
865
+ let r = this.stoppedAt != null && i[0].pos > this.stoppedAt ? i[0] : this.runRecovery(i, h, s);
866
+ if (r)
867
+ return g && console.log("Force-finish " + this.stackID(r)), this.stackToTree(r.forceAll());
868
+ }
869
+ if (this.recovering) {
870
+ let r = this.recovering == 1 ? 1 : this.recovering * 3;
871
+ if (s.length > r)
872
+ for (s.sort((n, o) => o.score - n.score); s.length > r; )
873
+ s.pop();
874
+ s.some((n) => n.reducePos > e) && this.recovering--;
875
+ } else if (s.length > 1) {
876
+ t:
877
+ for (let r = 0; r < s.length - 1; r++) {
878
+ let n = s[r];
879
+ for (let o = r + 1; o < s.length; o++) {
880
+ let a = s[o];
881
+ if (n.sameState(a) || n.buffer.length > 500 && a.buffer.length > 500)
882
+ if ((n.score - a.score || n.buffer.length - a.buffer.length) > 0)
883
+ s.splice(o--, 1);
884
+ else {
885
+ s.splice(r--, 1);
886
+ continue t;
887
+ }
888
+ }
889
+ }
890
+ s.length > 12 && s.splice(
891
+ 12,
892
+ s.length - 12
893
+ /* Rec.MaxStackCount */
894
+ );
895
+ }
896
+ this.minStackPos = s[0].pos;
897
+ for (let r = 1; r < s.length; r++)
898
+ s[r].pos < this.minStackPos && (this.minStackPos = s[r].pos);
899
+ return null;
900
+ }
901
+ stopAt(t) {
902
+ if (this.stoppedAt != null && this.stoppedAt < t)
903
+ throw new RangeError("Can't move stoppedAt forward");
904
+ this.stoppedAt = t;
905
+ }
906
+ // Returns an updated version of the given stack, or null if the
907
+ // stack can't advance normally. When `split` and `stacks` are
908
+ // given, stacks split off by ambiguous operations will be pushed to
909
+ // `split`, or added to `stacks` if they move `pos` forward.
910
+ advanceStack(t, e, s) {
911
+ let i = t.pos, { parser: h } = this, r = g ? this.stackID(t) + " -> " : "";
912
+ if (this.stoppedAt != null && i > this.stoppedAt)
913
+ return t.forceReduce() ? t : null;
914
+ if (this.fragments) {
915
+ let a = t.curContext && t.curContext.tracker.strict, u = a ? t.curContext.hash : 0;
916
+ for (let f = this.fragments.nodeAt(i); f; ) {
917
+ let c = this.parser.nodeSet.types[f.type.id] == f.type ? h.getGoto(t.state, f.type.id) : -1;
918
+ if (c > -1 && f.length && (!a || (f.prop(y.contextHash) || 0) == u))
919
+ return t.useNode(f, c), g && console.log(r + this.stackID(t) + ` (via reuse of ${h.getName(f.type.id)})`), !0;
920
+ if (!(f instanceof S) || f.children.length == 0 || f.positions[0] > 0)
921
+ break;
922
+ let p = f.children[0];
923
+ if (p instanceof S && f.positions[0] == 0)
924
+ f = p;
925
+ else
926
+ break;
927
+ }
928
+ }
929
+ let n = h.stateSlot(
930
+ t.state,
931
+ 4
932
+ /* ParseState.DefaultReduce */
933
+ );
934
+ if (n > 0)
935
+ return t.reduce(n), g && console.log(r + this.stackID(t) + ` (via always-reduce ${h.getName(
936
+ n & 65535
937
+ /* Action.ValueMask */
938
+ )})`), !0;
939
+ if (t.stack.length >= 8400)
940
+ for (; t.stack.length > 6e3 && t.forceReduce(); )
941
+ ;
942
+ let o = this.tokens.getActions(t);
943
+ for (let a = 0; a < o.length; ) {
944
+ let u = o[a++], f = o[a++], c = o[a++], p = a == o.length || !s, d = p ? t : t.split(), b = this.tokens.mainToken;
945
+ if (d.apply(u, f, b ? b.start : d.pos, c), g && console.log(r + this.stackID(d) + ` (via ${u & 65536 ? `reduce of ${h.getName(
946
+ u & 65535
947
+ /* Action.ValueMask */
948
+ )}` : "shift"} for ${h.getName(f)} @ ${i}${d == t ? "" : ", split"})`), p)
949
+ return !0;
950
+ d.pos > i ? e.push(d) : s.push(d);
951
+ }
952
+ return !1;
953
+ }
954
+ // Advance a given stack forward as far as it will go. Returns the
955
+ // (possibly updated) stack if it got stuck, or null if it moved
956
+ // forward and was given to `pushStackDedup`.
957
+ advanceFully(t, e) {
958
+ let s = t.pos;
959
+ for (; ; ) {
960
+ if (!this.advanceStack(t, null, null))
961
+ return !1;
962
+ if (t.pos > s)
963
+ return D(t, e), !0;
964
+ }
965
+ }
966
+ runRecovery(t, e, s) {
967
+ let i = null, h = !1;
968
+ for (let r = 0; r < t.length; r++) {
969
+ let n = t[r], o = e[r << 1], a = e[(r << 1) + 1], u = g ? this.stackID(n) + " -> " : "";
970
+ if (n.deadEnd && (h || (h = !0, n.restart(), g && console.log(u + this.stackID(n) + " (restarted)"), this.advanceFully(n, s))))
971
+ continue;
972
+ let f = n.split(), c = u;
973
+ for (let p = 0; f.forceReduce() && p < 10 && (g && console.log(c + this.stackID(f) + " (via force-reduce)"), !this.advanceFully(f, s)); p++)
974
+ g && (c = this.stackID(f) + " -> ");
975
+ for (let p of n.recoverByInsert(o))
976
+ g && console.log(u + this.stackID(p) + " (via recover-insert)"), this.advanceFully(p, s);
977
+ this.stream.end > n.pos ? (a == n.pos && (a++, o = 0), n.recoverByDelete(o, a), g && console.log(u + this.stackID(n) + ` (via recover-delete ${this.parser.getName(o)})`), D(n, s)) : (!i || i.score < n.score) && (i = n);
978
+ }
979
+ return i;
980
+ }
981
+ // Convert the stack's buffer to a syntax tree.
982
+ stackToTree(t) {
983
+ return t.close(), S.build({
984
+ buffer: A.create(t),
985
+ nodeSet: this.parser.nodeSet,
986
+ topID: this.topTerm,
987
+ maxBufferLength: this.parser.bufferLength,
988
+ reused: this.reused,
989
+ start: this.ranges[0].from,
990
+ length: t.pos - this.ranges[0].from,
991
+ minRepeatType: this.parser.minRepeatTerm
992
+ });
993
+ }
994
+ stackID(t) {
995
+ let e = (T || (T = /* @__PURE__ */ new WeakMap())).get(t);
996
+ return e || T.set(t, e = String.fromCodePoint(this.nextStackID++)), e + t;
997
+ }
998
+ }
999
+ function D(l, t) {
1000
+ for (let e = 0; e < t.length; e++) {
1001
+ let s = t[e];
1002
+ if (s.pos == l.pos && s.sameState(l)) {
1003
+ t[e].score < l.score && (t[e] = l);
1004
+ return;
1005
+ }
1006
+ }
1007
+ t.push(l);
1008
+ }
1009
+ class Q {
1010
+ constructor(t, e, s) {
1011
+ this.source = t, this.flags = e, this.disabled = s;
1012
+ }
1013
+ allows(t) {
1014
+ return !this.disabled || this.disabled[t] == 0;
1015
+ }
1016
+ }
1017
+ const C = (l) => l;
1018
+ class Z {
1019
+ /**
1020
+ Define a context tracker.
1021
+ */
1022
+ constructor(t) {
1023
+ this.start = t.start, this.shift = t.shift || C, this.reduce = t.reduce || C, this.reuse = t.reuse || C, this.hash = t.hash || (() => 0), this.strict = t.strict !== !1;
1024
+ }
1025
+ }
1026
+ class w extends L {
1027
+ /**
1028
+ @internal
1029
+ */
1030
+ constructor(t) {
1031
+ if (super(), this.wrappers = [], t.version != 14)
1032
+ throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);
1033
+ let e = t.nodeNames.split(" ");
1034
+ this.minRepeatTerm = e.length;
1035
+ for (let n = 0; n < t.repeatNodeCount; n++)
1036
+ e.push("");
1037
+ let s = Object.keys(t.topRules).map((n) => t.topRules[n][1]), i = [];
1038
+ for (let n = 0; n < e.length; n++)
1039
+ i.push([]);
1040
+ function h(n, o, a) {
1041
+ i[n].push([o, o.deserialize(String(a))]);
1042
+ }
1043
+ if (t.nodeProps)
1044
+ for (let n of t.nodeProps) {
1045
+ let o = n[0];
1046
+ typeof o == "string" && (o = y[o]);
1047
+ for (let a = 1; a < n.length; ) {
1048
+ let u = n[a++];
1049
+ if (u >= 0)
1050
+ h(u, o, n[a++]);
1051
+ else {
1052
+ let f = n[a + -u];
1053
+ for (let c = -u; c > 0; c--)
1054
+ h(n[a++], o, f);
1055
+ a++;
1056
+ }
1057
+ }
1058
+ }
1059
+ this.nodeSet = new M(e.map((n, o) => $.define({
1060
+ name: o >= this.minRepeatTerm ? void 0 : n,
1061
+ id: o,
1062
+ props: i[o],
1063
+ top: s.indexOf(o) > -1,
1064
+ error: o == 0,
1065
+ skipped: t.skippedNodes && t.skippedNodes.indexOf(o) > -1
1066
+ }))), t.propSources && (this.nodeSet = this.nodeSet.extend(...t.propSources)), this.strict = !1, this.bufferLength = E;
1067
+ let r = x(t.tokenData);
1068
+ this.context = t.context, this.specializerSpecs = t.specialized || [], this.specialized = new Uint16Array(this.specializerSpecs.length);
1069
+ for (let n = 0; n < this.specializerSpecs.length; n++)
1070
+ this.specialized[n] = this.specializerSpecs[n].term;
1071
+ this.specializers = this.specializerSpecs.map(B), this.states = x(t.states, Uint32Array), this.data = x(t.stateData), this.goto = x(t.goto), this.maxTerm = t.maxTerm, this.tokenizers = t.tokenizers.map((n) => typeof n == "number" ? new m(r, n) : n), this.topRules = t.topRules, this.dialects = t.dialects || {}, this.dynamicPrecedences = t.dynamicPrecedences || null, this.tokenPrecTable = t.tokenPrec, this.termNames = t.termNames || null, this.maxNode = this.nodeSet.types.length - 1, this.dialect = this.parseDialect(), this.top = this.topRules[Object.keys(this.topRules)[0]];
1072
+ }
1073
+ createParse(t, e, s) {
1074
+ let i = new K(this, t, e, s);
1075
+ for (let h of this.wrappers)
1076
+ i = h(i, t, e, s);
1077
+ return i;
1078
+ }
1079
+ /**
1080
+ Get a goto table entry @internal
1081
+ */
1082
+ getGoto(t, e, s = !1) {
1083
+ let i = this.goto;
1084
+ if (e >= i[0])
1085
+ return -1;
1086
+ for (let h = i[e + 1]; ; ) {
1087
+ let r = i[h++], n = r & 1, o = i[h++];
1088
+ if (n && s)
1089
+ return o;
1090
+ for (let a = h + (r >> 1); h < a; h++)
1091
+ if (i[h] == t)
1092
+ return o;
1093
+ if (n)
1094
+ return -1;
1095
+ }
1096
+ }
1097
+ /**
1098
+ Check if this state has an action for a given terminal @internal
1099
+ */
1100
+ hasAction(t, e) {
1101
+ let s = this.data;
1102
+ for (let i = 0; i < 2; i++)
1103
+ for (let h = this.stateSlot(
1104
+ t,
1105
+ i ? 2 : 1
1106
+ /* ParseState.Actions */
1107
+ ), r; ; h += 3) {
1108
+ if ((r = s[h]) == 65535)
1109
+ if (s[h + 1] == 1)
1110
+ r = s[h = k(s, h + 2)];
1111
+ else {
1112
+ if (s[h + 1] == 2)
1113
+ return k(s, h + 2);
1114
+ break;
1115
+ }
1116
+ if (r == e || r == 0)
1117
+ return k(s, h + 1);
1118
+ }
1119
+ return 0;
1120
+ }
1121
+ /**
1122
+ @internal
1123
+ */
1124
+ stateSlot(t, e) {
1125
+ return this.states[t * 6 + e];
1126
+ }
1127
+ /**
1128
+ @internal
1129
+ */
1130
+ stateFlag(t, e) {
1131
+ return (this.stateSlot(
1132
+ t,
1133
+ 0
1134
+ /* ParseState.Flags */
1135
+ ) & e) > 0;
1136
+ }
1137
+ /**
1138
+ @internal
1139
+ */
1140
+ validAction(t, e) {
1141
+ return !!this.allActions(t, (s) => s == e ? !0 : null);
1142
+ }
1143
+ /**
1144
+ @internal
1145
+ */
1146
+ allActions(t, e) {
1147
+ let s = this.stateSlot(
1148
+ t,
1149
+ 4
1150
+ /* ParseState.DefaultReduce */
1151
+ ), i = s ? e(s) : void 0;
1152
+ for (let h = this.stateSlot(
1153
+ t,
1154
+ 1
1155
+ /* ParseState.Actions */
1156
+ ); i == null; h += 3) {
1157
+ if (this.data[h] == 65535)
1158
+ if (this.data[h + 1] == 1)
1159
+ h = k(this.data, h + 2);
1160
+ else
1161
+ break;
1162
+ i = e(k(this.data, h + 1));
1163
+ }
1164
+ return i;
1165
+ }
1166
+ /**
1167
+ Get the states that can follow this one through shift actions or
1168
+ goto jumps. @internal
1169
+ */
1170
+ nextStates(t) {
1171
+ let e = [];
1172
+ for (let s = this.stateSlot(
1173
+ t,
1174
+ 1
1175
+ /* ParseState.Actions */
1176
+ ); ; s += 3) {
1177
+ if (this.data[s] == 65535)
1178
+ if (this.data[s + 1] == 1)
1179
+ s = k(this.data, s + 2);
1180
+ else
1181
+ break;
1182
+ if (!(this.data[s + 2] & 1)) {
1183
+ let i = this.data[s + 1];
1184
+ e.some((h, r) => r & 1 && h == i) || e.push(this.data[s], i);
1185
+ }
1186
+ }
1187
+ return e;
1188
+ }
1189
+ /**
1190
+ Configure the parser. Returns a new parser instance that has the
1191
+ given settings modified. Settings not provided in `config` are
1192
+ kept from the original parser.
1193
+ */
1194
+ configure(t) {
1195
+ let e = Object.assign(Object.create(w.prototype), this);
1196
+ if (t.props && (e.nodeSet = this.nodeSet.extend(...t.props)), t.top) {
1197
+ let s = this.topRules[t.top];
1198
+ if (!s)
1199
+ throw new RangeError(`Invalid top rule name ${t.top}`);
1200
+ e.top = s;
1201
+ }
1202
+ return t.tokenizers && (e.tokenizers = this.tokenizers.map((s) => {
1203
+ let i = t.tokenizers.find((h) => h.from == s);
1204
+ return i ? i.to : s;
1205
+ })), t.specializers && (e.specializers = this.specializers.slice(), e.specializerSpecs = this.specializerSpecs.map((s, i) => {
1206
+ let h = t.specializers.find((n) => n.from == s.external);
1207
+ if (!h)
1208
+ return s;
1209
+ let r = Object.assign(Object.assign({}, s), { external: h.to });
1210
+ return e.specializers[i] = B(r), r;
1211
+ })), t.contextTracker && (e.context = t.contextTracker), t.dialect && (e.dialect = this.parseDialect(t.dialect)), t.strict != null && (e.strict = t.strict), t.wrap && (e.wrappers = e.wrappers.concat(t.wrap)), t.bufferLength != null && (e.bufferLength = t.bufferLength), e;
1212
+ }
1213
+ /**
1214
+ Tells you whether any [parse wrappers](#lr.ParserConfig.wrap)
1215
+ are registered for this parser.
1216
+ */
1217
+ hasWrappers() {
1218
+ return this.wrappers.length > 0;
1219
+ }
1220
+ /**
1221
+ Returns the name associated with a given term. This will only
1222
+ work for all terms when the parser was generated with the
1223
+ `--names` option. By default, only the names of tagged terms are
1224
+ stored.
1225
+ */
1226
+ getName(t) {
1227
+ return this.termNames ? this.termNames[t] : String(t <= this.maxNode && this.nodeSet.types[t].name || t);
1228
+ }
1229
+ /**
1230
+ The eof term id is always allocated directly after the node
1231
+ types. @internal
1232
+ */
1233
+ get eofTerm() {
1234
+ return this.maxNode + 1;
1235
+ }
1236
+ /**
1237
+ The type of top node produced by the parser.
1238
+ */
1239
+ get topNode() {
1240
+ return this.nodeSet.types[this.top[1]];
1241
+ }
1242
+ /**
1243
+ @internal
1244
+ */
1245
+ dynamicPrecedence(t) {
1246
+ let e = this.dynamicPrecedences;
1247
+ return e == null ? 0 : e[t] || 0;
1248
+ }
1249
+ /**
1250
+ @internal
1251
+ */
1252
+ parseDialect(t) {
1253
+ let e = Object.keys(this.dialects), s = e.map(() => !1);
1254
+ if (t)
1255
+ for (let h of t.split(" ")) {
1256
+ let r = e.indexOf(h);
1257
+ r >= 0 && (s[r] = !0);
1258
+ }
1259
+ let i = null;
1260
+ for (let h = 0; h < e.length; h++)
1261
+ if (!s[h])
1262
+ for (let r = this.dialects[e[h]], n; (n = this.data[r++]) != 65535; )
1263
+ (i || (i = new Uint8Array(this.maxTerm + 1)))[n] = 1;
1264
+ return new Q(t, s, i);
1265
+ }
1266
+ /**
1267
+ Used by the output of the parser generator. Not available to
1268
+ user code. @hide
1269
+ */
1270
+ static deserialize(t) {
1271
+ return new w(t);
1272
+ }
1273
+ }
1274
+ function k(l, t) {
1275
+ return l[t] | l[t + 1] << 16;
1276
+ }
1277
+ function V(l) {
1278
+ let t = null;
1279
+ for (let e of l) {
1280
+ let s = e.p.stoppedAt;
1281
+ (e.pos == e.p.stream.end || s != null && e.pos > s) && e.p.parser.stateFlag(
1282
+ e.state,
1283
+ 2
1284
+ /* StateFlag.Accepting */
1285
+ ) && (!t || t.score < e.score) && (t = e);
1286
+ }
1287
+ return t;
1288
+ }
1289
+ function B(l) {
1290
+ if (l.external) {
1291
+ let t = l.extend ? 1 : 0;
1292
+ return (e, s) => l.external(e, s) << 1 | t;
1293
+ }
1294
+ return l.get;
1295
+ }
1296
+ export {
1297
+ Z as C,
1298
+ Y as E,
1299
+ w as L,
1300
+ H as a
1301
+ };
src/backend/gradio_highlightedcode/templates/component/index-f8c771ea.js ADDED
@@ -0,0 +1,979 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { C as be, E as k, L as Pe } from "./index-f4953321.js";
2
+ import { s as xe, t as h, p as Te, L as Ve, b as we, f as ye, D as ve, e as Xe, F as ke, a as K, E as $e } from "./Index-2933bd90.js";
3
+ import { cssLanguage as J, css as _e } from "./index-d8995119.js";
4
+ import { typescriptLanguage as qe, jsxLanguage as Ce, tsxLanguage as Ae, javascriptLanguage as M, javascript as Qe } from "./index-5dd45a26.js";
5
+ const Ye = 54, Me = 1, Re = 55, Ee = 2, Ze = 56, Be = 3, W = 4, We = 5, v = 6, ee = 7, te = 8, ae = 9, le = 10, ze = 11, De = 12, Ne = 13, $ = 57, Ge = 14, z = 58, re = 20, je = 22, ne = 23, Ie = 24, Q = 26, se = 27, Ue = 28, Le = 31, Fe = 34, He = 36, Ke = 37, Je = 0, et = 1, tt = {
6
+ area: !0,
7
+ base: !0,
8
+ br: !0,
9
+ col: !0,
10
+ command: !0,
11
+ embed: !0,
12
+ frame: !0,
13
+ hr: !0,
14
+ img: !0,
15
+ input: !0,
16
+ keygen: !0,
17
+ link: !0,
18
+ meta: !0,
19
+ param: !0,
20
+ source: !0,
21
+ track: !0,
22
+ wbr: !0,
23
+ menuitem: !0
24
+ }, at = {
25
+ dd: !0,
26
+ li: !0,
27
+ optgroup: !0,
28
+ option: !0,
29
+ p: !0,
30
+ rp: !0,
31
+ rt: !0,
32
+ tbody: !0,
33
+ td: !0,
34
+ tfoot: !0,
35
+ th: !0,
36
+ tr: !0
37
+ }, D = {
38
+ dd: { dd: !0, dt: !0 },
39
+ dt: { dd: !0, dt: !0 },
40
+ li: { li: !0 },
41
+ option: { option: !0, optgroup: !0 },
42
+ optgroup: { optgroup: !0 },
43
+ p: {
44
+ address: !0,
45
+ article: !0,
46
+ aside: !0,
47
+ blockquote: !0,
48
+ dir: !0,
49
+ div: !0,
50
+ dl: !0,
51
+ fieldset: !0,
52
+ footer: !0,
53
+ form: !0,
54
+ h1: !0,
55
+ h2: !0,
56
+ h3: !0,
57
+ h4: !0,
58
+ h5: !0,
59
+ h6: !0,
60
+ header: !0,
61
+ hgroup: !0,
62
+ hr: !0,
63
+ menu: !0,
64
+ nav: !0,
65
+ ol: !0,
66
+ p: !0,
67
+ pre: !0,
68
+ section: !0,
69
+ table: !0,
70
+ ul: !0
71
+ },
72
+ rp: { rp: !0, rt: !0 },
73
+ rt: { rp: !0, rt: !0 },
74
+ tbody: { tbody: !0, tfoot: !0 },
75
+ td: { td: !0, th: !0 },
76
+ tfoot: { tbody: !0 },
77
+ th: { td: !0, th: !0 },
78
+ thead: { tbody: !0, tfoot: !0 },
79
+ tr: { tr: !0 }
80
+ };
81
+ function lt(e) {
82
+ return e == 45 || e == 46 || e == 58 || e >= 65 && e <= 90 || e == 95 || e >= 97 && e <= 122 || e >= 161;
83
+ }
84
+ function oe(e) {
85
+ return e == 9 || e == 10 || e == 13 || e == 32;
86
+ }
87
+ let N = null, G = null, j = 0;
88
+ function Y(e, a) {
89
+ let r = e.pos + a;
90
+ if (j == r && G == e)
91
+ return N;
92
+ let l = e.peek(a);
93
+ for (; oe(l); )
94
+ l = e.peek(++a);
95
+ let t = "";
96
+ for (; lt(l); )
97
+ t += String.fromCharCode(l), l = e.peek(++a);
98
+ return G = e, j = r, N = t ? t.toLowerCase() : l == rt || l == nt ? void 0 : null;
99
+ }
100
+ const ue = 60, X = 62, R = 47, rt = 63, nt = 33, st = 45;
101
+ function I(e, a) {
102
+ this.name = e, this.parent = a, this.hash = a ? a.hash : 0;
103
+ for (let r = 0; r < e.length; r++)
104
+ this.hash += (this.hash << 4) + e.charCodeAt(r) + (e.charCodeAt(r) << 8);
105
+ }
106
+ const ot = [v, le, ee, te, ae], ut = new be({
107
+ start: null,
108
+ shift(e, a, r, l) {
109
+ return ot.indexOf(a) > -1 ? new I(Y(l, 1) || "", e) : e;
110
+ },
111
+ reduce(e, a) {
112
+ return a == re && e ? e.parent : e;
113
+ },
114
+ reuse(e, a, r, l) {
115
+ let t = a.type.id;
116
+ return t == v || t == He ? new I(Y(l, 1) || "", e) : e;
117
+ },
118
+ hash(e) {
119
+ return e ? e.hash : 0;
120
+ },
121
+ strict: !1
122
+ }), it = new k((e, a) => {
123
+ if (e.next != ue) {
124
+ e.next < 0 && a.context && e.acceptToken($);
125
+ return;
126
+ }
127
+ e.advance();
128
+ let r = e.next == R;
129
+ r && e.advance();
130
+ let l = Y(e, 0);
131
+ if (l === void 0)
132
+ return;
133
+ if (!l)
134
+ return e.acceptToken(r ? Ge : v);
135
+ let t = a.context ? a.context.name : null;
136
+ if (r) {
137
+ if (l == t)
138
+ return e.acceptToken(ze);
139
+ if (t && at[t])
140
+ return e.acceptToken($, -2);
141
+ if (a.dialectEnabled(Je))
142
+ return e.acceptToken(De);
143
+ for (let s = a.context; s; s = s.parent)
144
+ if (s.name == l)
145
+ return;
146
+ e.acceptToken(Ne);
147
+ } else {
148
+ if (l == "script")
149
+ return e.acceptToken(ee);
150
+ if (l == "style")
151
+ return e.acceptToken(te);
152
+ if (l == "textarea")
153
+ return e.acceptToken(ae);
154
+ if (tt.hasOwnProperty(l))
155
+ return e.acceptToken(le);
156
+ t && D[t] && D[t][l] ? e.acceptToken($, -1) : e.acceptToken(v);
157
+ }
158
+ }, { contextual: !0 }), Ot = new k((e) => {
159
+ for (let a = 0, r = 0; ; r++) {
160
+ if (e.next < 0) {
161
+ r && e.acceptToken(z);
162
+ break;
163
+ }
164
+ if (e.next == st)
165
+ a++;
166
+ else if (e.next == X && a >= 2) {
167
+ r >= 3 && e.acceptToken(z, -2);
168
+ break;
169
+ } else
170
+ a = 0;
171
+ e.advance();
172
+ }
173
+ });
174
+ function ct(e) {
175
+ for (; e; e = e.parent)
176
+ if (e.name == "svg" || e.name == "math")
177
+ return !0;
178
+ return !1;
179
+ }
180
+ const dt = new k((e, a) => {
181
+ if (e.next == R && e.peek(1) == X) {
182
+ let r = a.dialectEnabled(et) || ct(a.context);
183
+ e.acceptToken(r ? We : W, 2);
184
+ } else
185
+ e.next == X && e.acceptToken(W, 1);
186
+ });
187
+ function E(e, a, r) {
188
+ let l = 2 + e.length;
189
+ return new k((t) => {
190
+ for (let s = 0, o = 0, u = 0; ; u++) {
191
+ if (t.next < 0) {
192
+ u && t.acceptToken(a);
193
+ break;
194
+ }
195
+ if (s == 0 && t.next == ue || s == 1 && t.next == R || s >= 2 && s < l && t.next == e.charCodeAt(s - 2))
196
+ s++, o++;
197
+ else if ((s == 2 || s == l) && oe(t.next))
198
+ o++;
199
+ else if (s == l && t.next == X) {
200
+ u > o ? t.acceptToken(a, -o) : t.acceptToken(r, -(o - 2));
201
+ break;
202
+ } else if ((t.next == 10 || t.next == 13) && u) {
203
+ t.acceptToken(a, 1);
204
+ break;
205
+ } else
206
+ s = o = 0;
207
+ t.advance();
208
+ }
209
+ });
210
+ }
211
+ const pt = E("script", Ye, Me), mt = E("style", Re, Ee), ft = E("textarea", Ze, Be), St = xe({
212
+ "Text RawText": h.content,
213
+ "StartTag StartCloseTag SelfClosingEndTag EndTag": h.angleBracket,
214
+ TagName: h.tagName,
215
+ "MismatchedCloseTag/TagName": [h.tagName, h.invalid],
216
+ AttributeName: h.attributeName,
217
+ "AttributeValue UnquotedAttributeValue": h.attributeValue,
218
+ Is: h.definitionOperator,
219
+ "EntityReference CharacterReference": h.character,
220
+ Comment: h.blockComment,
221
+ ProcessingInst: h.processingInstruction,
222
+ DoctypeDecl: h.documentMeta
223
+ }), gt = Pe.deserialize({
224
+ version: 14,
225
+ states: ",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",
226
+ stateData: "+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",
227
+ goto: "%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",
228
+ nodeNames: "⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",
229
+ maxTerm: 67,
230
+ context: ut,
231
+ nodeProps: [
232
+ ["closedBy", -10, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13, "EndTag", 6, "EndTag SelfClosingEndTag", -4, 21, 30, 33, 36, "CloseTag"],
233
+ ["openedBy", 4, "StartTag StartCloseTag", 5, "StartTag", -4, 29, 32, 35, 37, "OpenTag"],
234
+ ["group", -9, 14, 17, 18, 19, 20, 39, 40, 41, 42, "Entity", 16, "Entity TextContent", -3, 28, 31, 34, "TextContent Entity"],
235
+ ["isolate", -11, 21, 29, 30, 32, 33, 35, 36, 37, 38, 41, 42, "ltr", -3, 26, 27, 39, ""]
236
+ ],
237
+ propSources: [St],
238
+ skippedNodes: [0],
239
+ repeatNodeCount: 9,
240
+ tokenData: "!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebhSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXhSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vchS`P!a`!cpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WihSkWc!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QchSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",
241
+ tokenizers: [pt, mt, ft, dt, it, Ot, 0, 1, 2, 3, 4, 5],
242
+ topRules: { Document: [0, 15] },
243
+ dialects: { noMatch: 0, selfClosing: 485 },
244
+ tokenPrec: 487
245
+ });
246
+ function ie(e, a) {
247
+ let r = /* @__PURE__ */ Object.create(null);
248
+ for (let l of e.getChildren(ne)) {
249
+ let t = l.getChild(Ie), s = l.getChild(Q) || l.getChild(se);
250
+ t && (r[a.read(t.from, t.to)] = s ? s.type.id == Q ? a.read(s.from + 1, s.to - 1) : a.read(s.from, s.to) : "");
251
+ }
252
+ return r;
253
+ }
254
+ function U(e, a) {
255
+ let r = e.getChild(je);
256
+ return r ? a.read(r.from, r.to) : " ";
257
+ }
258
+ function _(e, a, r) {
259
+ let l;
260
+ for (let t of r)
261
+ if (!t.attrs || t.attrs(l || (l = ie(e.node.parent.firstChild, a))))
262
+ return { parser: t.parser };
263
+ return null;
264
+ }
265
+ function Oe(e = [], a = []) {
266
+ let r = [], l = [], t = [], s = [];
267
+ for (let u of e)
268
+ (u.tag == "script" ? r : u.tag == "style" ? l : u.tag == "textarea" ? t : s).push(u);
269
+ let o = a.length ? /* @__PURE__ */ Object.create(null) : null;
270
+ for (let u of a)
271
+ (o[u.name] || (o[u.name] = [])).push(u);
272
+ return Te((u, i) => {
273
+ let f = u.type.id;
274
+ if (f == Ue)
275
+ return _(u, i, r);
276
+ if (f == Le)
277
+ return _(u, i, l);
278
+ if (f == Fe)
279
+ return _(u, i, t);
280
+ if (f == re && s.length) {
281
+ let p = u.node, d = p.firstChild, m = d && U(d, i), c;
282
+ if (m) {
283
+ for (let O of s)
284
+ if (O.tag == m && (!O.attrs || O.attrs(c || (c = ie(p, i))))) {
285
+ let g = p.lastChild, b = g.type.id == Ke ? g.from : p.to;
286
+ if (b > d.to)
287
+ return { parser: O.parser, overlay: [{ from: d.to, to: b }] };
288
+ }
289
+ }
290
+ }
291
+ if (o && f == ne) {
292
+ let p = u.node, d;
293
+ if (d = p.firstChild) {
294
+ let m = o[i.read(d.from, d.to)];
295
+ if (m)
296
+ for (let c of m) {
297
+ if (c.tagName && c.tagName != U(p.parent, i))
298
+ continue;
299
+ let O = p.lastChild;
300
+ if (O.type.id == Q) {
301
+ let g = O.from + 1, b = O.lastChild, P = O.to - (b && b.isError ? 0 : 1);
302
+ if (P > g)
303
+ return { parser: c.parser, overlay: [{ from: g, to: P }] };
304
+ } else if (O.type.id == se)
305
+ return { parser: c.parser, overlay: [{ from: O.from, to: O.to }] };
306
+ }
307
+ }
308
+ }
309
+ return null;
310
+ });
311
+ }
312
+ const V = ["_blank", "_self", "_top", "_parent"], q = ["ascii", "utf-8", "utf-16", "latin1", "latin1"], C = ["get", "post", "put", "delete"], A = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"], S = ["true", "false"], n = {}, ht = {
313
+ a: {
314
+ attrs: {
315
+ href: null,
316
+ ping: null,
317
+ type: null,
318
+ media: null,
319
+ target: V,
320
+ hreflang: null
321
+ }
322
+ },
323
+ abbr: n,
324
+ address: n,
325
+ area: {
326
+ attrs: {
327
+ alt: null,
328
+ coords: null,
329
+ href: null,
330
+ target: null,
331
+ ping: null,
332
+ media: null,
333
+ hreflang: null,
334
+ type: null,
335
+ shape: ["default", "rect", "circle", "poly"]
336
+ }
337
+ },
338
+ article: n,
339
+ aside: n,
340
+ audio: {
341
+ attrs: {
342
+ src: null,
343
+ mediagroup: null,
344
+ crossorigin: ["anonymous", "use-credentials"],
345
+ preload: ["none", "metadata", "auto"],
346
+ autoplay: ["autoplay"],
347
+ loop: ["loop"],
348
+ controls: ["controls"]
349
+ }
350
+ },
351
+ b: n,
352
+ base: { attrs: { href: null, target: V } },
353
+ bdi: n,
354
+ bdo: n,
355
+ blockquote: { attrs: { cite: null } },
356
+ body: n,
357
+ br: n,
358
+ button: {
359
+ attrs: {
360
+ form: null,
361
+ formaction: null,
362
+ name: null,
363
+ value: null,
364
+ autofocus: ["autofocus"],
365
+ disabled: ["autofocus"],
366
+ formenctype: A,
367
+ formmethod: C,
368
+ formnovalidate: ["novalidate"],
369
+ formtarget: V,
370
+ type: ["submit", "reset", "button"]
371
+ }
372
+ },
373
+ canvas: { attrs: { width: null, height: null } },
374
+ caption: n,
375
+ center: n,
376
+ cite: n,
377
+ code: n,
378
+ col: { attrs: { span: null } },
379
+ colgroup: { attrs: { span: null } },
380
+ command: {
381
+ attrs: {
382
+ type: ["command", "checkbox", "radio"],
383
+ label: null,
384
+ icon: null,
385
+ radiogroup: null,
386
+ command: null,
387
+ title: null,
388
+ disabled: ["disabled"],
389
+ checked: ["checked"]
390
+ }
391
+ },
392
+ data: { attrs: { value: null } },
393
+ datagrid: { attrs: { disabled: ["disabled"], multiple: ["multiple"] } },
394
+ datalist: { attrs: { data: null } },
395
+ dd: n,
396
+ del: { attrs: { cite: null, datetime: null } },
397
+ details: { attrs: { open: ["open"] } },
398
+ dfn: n,
399
+ div: n,
400
+ dl: n,
401
+ dt: n,
402
+ em: n,
403
+ embed: { attrs: { src: null, type: null, width: null, height: null } },
404
+ eventsource: { attrs: { src: null } },
405
+ fieldset: { attrs: { disabled: ["disabled"], form: null, name: null } },
406
+ figcaption: n,
407
+ figure: n,
408
+ footer: n,
409
+ form: {
410
+ attrs: {
411
+ action: null,
412
+ name: null,
413
+ "accept-charset": q,
414
+ autocomplete: ["on", "off"],
415
+ enctype: A,
416
+ method: C,
417
+ novalidate: ["novalidate"],
418
+ target: V
419
+ }
420
+ },
421
+ h1: n,
422
+ h2: n,
423
+ h3: n,
424
+ h4: n,
425
+ h5: n,
426
+ h6: n,
427
+ head: {
428
+ children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"]
429
+ },
430
+ header: n,
431
+ hgroup: n,
432
+ hr: n,
433
+ html: {
434
+ attrs: { manifest: null }
435
+ },
436
+ i: n,
437
+ iframe: {
438
+ attrs: {
439
+ src: null,
440
+ srcdoc: null,
441
+ name: null,
442
+ width: null,
443
+ height: null,
444
+ sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"],
445
+ seamless: ["seamless"]
446
+ }
447
+ },
448
+ img: {
449
+ attrs: {
450
+ alt: null,
451
+ src: null,
452
+ ismap: null,
453
+ usemap: null,
454
+ width: null,
455
+ height: null,
456
+ crossorigin: ["anonymous", "use-credentials"]
457
+ }
458
+ },
459
+ input: {
460
+ attrs: {
461
+ alt: null,
462
+ dirname: null,
463
+ form: null,
464
+ formaction: null,
465
+ height: null,
466
+ list: null,
467
+ max: null,
468
+ maxlength: null,
469
+ min: null,
470
+ name: null,
471
+ pattern: null,
472
+ placeholder: null,
473
+ size: null,
474
+ src: null,
475
+ step: null,
476
+ value: null,
477
+ width: null,
478
+ accept: ["audio/*", "video/*", "image/*"],
479
+ autocomplete: ["on", "off"],
480
+ autofocus: ["autofocus"],
481
+ checked: ["checked"],
482
+ disabled: ["disabled"],
483
+ formenctype: A,
484
+ formmethod: C,
485
+ formnovalidate: ["novalidate"],
486
+ formtarget: V,
487
+ multiple: ["multiple"],
488
+ readonly: ["readonly"],
489
+ required: ["required"],
490
+ type: [
491
+ "hidden",
492
+ "text",
493
+ "search",
494
+ "tel",
495
+ "url",
496
+ "email",
497
+ "password",
498
+ "datetime",
499
+ "date",
500
+ "month",
501
+ "week",
502
+ "time",
503
+ "datetime-local",
504
+ "number",
505
+ "range",
506
+ "color",
507
+ "checkbox",
508
+ "radio",
509
+ "file",
510
+ "submit",
511
+ "image",
512
+ "reset",
513
+ "button"
514
+ ]
515
+ }
516
+ },
517
+ ins: { attrs: { cite: null, datetime: null } },
518
+ kbd: n,
519
+ keygen: {
520
+ attrs: {
521
+ challenge: null,
522
+ form: null,
523
+ name: null,
524
+ autofocus: ["autofocus"],
525
+ disabled: ["disabled"],
526
+ keytype: ["RSA"]
527
+ }
528
+ },
529
+ label: { attrs: { for: null, form: null } },
530
+ legend: n,
531
+ li: { attrs: { value: null } },
532
+ link: {
533
+ attrs: {
534
+ href: null,
535
+ type: null,
536
+ hreflang: null,
537
+ media: null,
538
+ sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"]
539
+ }
540
+ },
541
+ map: { attrs: { name: null } },
542
+ mark: n,
543
+ menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } },
544
+ meta: {
545
+ attrs: {
546
+ content: null,
547
+ charset: q,
548
+ name: ["viewport", "application-name", "author", "description", "generator", "keywords"],
549
+ "http-equiv": ["content-language", "content-type", "default-style", "refresh"]
550
+ }
551
+ },
552
+ meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },
553
+ nav: n,
554
+ noscript: n,
555
+ object: {
556
+ attrs: {
557
+ data: null,
558
+ type: null,
559
+ name: null,
560
+ usemap: null,
561
+ form: null,
562
+ width: null,
563
+ height: null,
564
+ typemustmatch: ["typemustmatch"]
565
+ }
566
+ },
567
+ ol: {
568
+ attrs: { reversed: ["reversed"], start: null, type: ["1", "a", "A", "i", "I"] },
569
+ children: ["li", "script", "template", "ul", "ol"]
570
+ },
571
+ optgroup: { attrs: { disabled: ["disabled"], label: null } },
572
+ option: { attrs: { disabled: ["disabled"], label: null, selected: ["selected"], value: null } },
573
+ output: { attrs: { for: null, form: null, name: null } },
574
+ p: n,
575
+ param: { attrs: { name: null, value: null } },
576
+ pre: n,
577
+ progress: { attrs: { value: null, max: null } },
578
+ q: { attrs: { cite: null } },
579
+ rp: n,
580
+ rt: n,
581
+ ruby: n,
582
+ samp: n,
583
+ script: {
584
+ attrs: {
585
+ type: ["text/javascript"],
586
+ src: null,
587
+ async: ["async"],
588
+ defer: ["defer"],
589
+ charset: q
590
+ }
591
+ },
592
+ section: n,
593
+ select: {
594
+ attrs: {
595
+ form: null,
596
+ name: null,
597
+ size: null,
598
+ autofocus: ["autofocus"],
599
+ disabled: ["disabled"],
600
+ multiple: ["multiple"]
601
+ }
602
+ },
603
+ slot: { attrs: { name: null } },
604
+ small: n,
605
+ source: { attrs: { src: null, type: null, media: null } },
606
+ span: n,
607
+ strong: n,
608
+ style: {
609
+ attrs: {
610
+ type: ["text/css"],
611
+ media: null,
612
+ scoped: null
613
+ }
614
+ },
615
+ sub: n,
616
+ summary: n,
617
+ sup: n,
618
+ table: n,
619
+ tbody: n,
620
+ td: { attrs: { colspan: null, rowspan: null, headers: null } },
621
+ template: n,
622
+ textarea: {
623
+ attrs: {
624
+ dirname: null,
625
+ form: null,
626
+ maxlength: null,
627
+ name: null,
628
+ placeholder: null,
629
+ rows: null,
630
+ cols: null,
631
+ autofocus: ["autofocus"],
632
+ disabled: ["disabled"],
633
+ readonly: ["readonly"],
634
+ required: ["required"],
635
+ wrap: ["soft", "hard"]
636
+ }
637
+ },
638
+ tfoot: n,
639
+ th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } },
640
+ thead: n,
641
+ time: { attrs: { datetime: null } },
642
+ title: n,
643
+ tr: n,
644
+ track: {
645
+ attrs: {
646
+ src: null,
647
+ label: null,
648
+ default: null,
649
+ kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"],
650
+ srclang: null
651
+ }
652
+ },
653
+ ul: { children: ["li", "script", "template", "ul", "ol"] },
654
+ var: n,
655
+ video: {
656
+ attrs: {
657
+ src: null,
658
+ poster: null,
659
+ width: null,
660
+ height: null,
661
+ crossorigin: ["anonymous", "use-credentials"],
662
+ preload: ["auto", "metadata", "none"],
663
+ autoplay: ["autoplay"],
664
+ mediagroup: ["movie"],
665
+ muted: ["muted"],
666
+ controls: ["controls"]
667
+ }
668
+ },
669
+ wbr: n
670
+ }, ce = {
671
+ accesskey: null,
672
+ class: null,
673
+ contenteditable: S,
674
+ contextmenu: null,
675
+ dir: ["ltr", "rtl", "auto"],
676
+ draggable: ["true", "false", "auto"],
677
+ dropzone: ["copy", "move", "link", "string:", "file:"],
678
+ hidden: ["hidden"],
679
+ id: null,
680
+ inert: ["inert"],
681
+ itemid: null,
682
+ itemprop: null,
683
+ itemref: null,
684
+ itemscope: ["itemscope"],
685
+ itemtype: null,
686
+ lang: ["ar", "bn", "de", "en-GB", "en-US", "es", "fr", "hi", "id", "ja", "pa", "pt", "ru", "tr", "zh"],
687
+ spellcheck: S,
688
+ autocorrect: S,
689
+ autocapitalize: S,
690
+ style: null,
691
+ tabindex: null,
692
+ title: null,
693
+ translate: ["yes", "no"],
694
+ rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"],
695
+ role: /* @__PURE__ */ "alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),
696
+ "aria-activedescendant": null,
697
+ "aria-atomic": S,
698
+ "aria-autocomplete": ["inline", "list", "both", "none"],
699
+ "aria-busy": S,
700
+ "aria-checked": ["true", "false", "mixed", "undefined"],
701
+ "aria-controls": null,
702
+ "aria-describedby": null,
703
+ "aria-disabled": S,
704
+ "aria-dropeffect": null,
705
+ "aria-expanded": ["true", "false", "undefined"],
706
+ "aria-flowto": null,
707
+ "aria-grabbed": ["true", "false", "undefined"],
708
+ "aria-haspopup": S,
709
+ "aria-hidden": S,
710
+ "aria-invalid": ["true", "false", "grammar", "spelling"],
711
+ "aria-label": null,
712
+ "aria-labelledby": null,
713
+ "aria-level": null,
714
+ "aria-live": ["off", "polite", "assertive"],
715
+ "aria-multiline": S,
716
+ "aria-multiselectable": S,
717
+ "aria-owns": null,
718
+ "aria-posinset": null,
719
+ "aria-pressed": ["true", "false", "mixed", "undefined"],
720
+ "aria-readonly": S,
721
+ "aria-relevant": null,
722
+ "aria-required": S,
723
+ "aria-selected": ["true", "false", "undefined"],
724
+ "aria-setsize": null,
725
+ "aria-sort": ["ascending", "descending", "none", "other"],
726
+ "aria-valuemax": null,
727
+ "aria-valuemin": null,
728
+ "aria-valuenow": null,
729
+ "aria-valuetext": null
730
+ }, de = /* @__PURE__ */ "beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map((e) => "on" + e);
731
+ for (let e of de)
732
+ ce[e] = null;
733
+ class w {
734
+ constructor(a, r) {
735
+ this.tags = Object.assign(Object.assign({}, ht), a), this.globalAttrs = Object.assign(Object.assign({}, ce), r), this.allTags = Object.keys(this.tags), this.globalAttrNames = Object.keys(this.globalAttrs);
736
+ }
737
+ }
738
+ w.default = /* @__PURE__ */ new w();
739
+ function x(e, a, r = e.length) {
740
+ if (!a)
741
+ return "";
742
+ let l = a.firstChild, t = l && l.getChild("TagName");
743
+ return t ? e.sliceString(t.from, Math.min(t.to, r)) : "";
744
+ }
745
+ function T(e, a = !1) {
746
+ for (; e; e = e.parent)
747
+ if (e.name == "Element")
748
+ if (a)
749
+ a = !1;
750
+ else
751
+ return e;
752
+ return null;
753
+ }
754
+ function pe(e, a, r) {
755
+ let l = r.tags[x(e, T(a))];
756
+ return (l == null ? void 0 : l.children) || r.allTags;
757
+ }
758
+ function Z(e, a) {
759
+ let r = [];
760
+ for (let l = T(a); l && !l.type.isTop; l = T(l.parent)) {
761
+ let t = x(e, l);
762
+ if (t && l.lastChild.name == "CloseTag")
763
+ break;
764
+ t && r.indexOf(t) < 0 && (a.name == "EndTag" || a.from >= l.firstChild.to) && r.push(t);
765
+ }
766
+ return r;
767
+ }
768
+ const me = /^[:\-\.\w\u00b7-\uffff]*$/;
769
+ function L(e, a, r, l, t) {
770
+ let s = /\s*>/.test(e.sliceDoc(t, t + 5)) ? "" : ">", o = T(r, !0);
771
+ return {
772
+ from: l,
773
+ to: t,
774
+ options: pe(e.doc, o, a).map((u) => ({ label: u, type: "type" })).concat(Z(e.doc, r).map((u, i) => ({
775
+ label: "/" + u,
776
+ apply: "/" + u + s,
777
+ type: "type",
778
+ boost: 99 - i
779
+ }))),
780
+ validFor: /^\/?[:\-\.\w\u00b7-\uffff]*$/
781
+ };
782
+ }
783
+ function F(e, a, r, l) {
784
+ let t = /\s*>/.test(e.sliceDoc(l, l + 5)) ? "" : ">";
785
+ return {
786
+ from: r,
787
+ to: l,
788
+ options: Z(e.doc, a).map((s, o) => ({ label: s, apply: s + t, type: "type", boost: 99 - o })),
789
+ validFor: me
790
+ };
791
+ }
792
+ function bt(e, a, r, l) {
793
+ let t = [], s = 0;
794
+ for (let o of pe(e.doc, r, a))
795
+ t.push({ label: "<" + o, type: "type" });
796
+ for (let o of Z(e.doc, r))
797
+ t.push({ label: "</" + o + ">", type: "type", boost: 99 - s++ });
798
+ return { from: l, to: l, options: t, validFor: /^<\/?[:\-\.\w\u00b7-\uffff]*$/ };
799
+ }
800
+ function Pt(e, a, r, l, t) {
801
+ let s = T(r), o = s ? a.tags[x(e.doc, s)] : null, u = o && o.attrs ? Object.keys(o.attrs) : [], i = o && o.globalAttrs === !1 ? u : u.length ? u.concat(a.globalAttrNames) : a.globalAttrNames;
802
+ return {
803
+ from: l,
804
+ to: t,
805
+ options: i.map((f) => ({ label: f, type: "property" })),
806
+ validFor: me
807
+ };
808
+ }
809
+ function xt(e, a, r, l, t) {
810
+ var s;
811
+ let o = (s = r.parent) === null || s === void 0 ? void 0 : s.getChild("AttributeName"), u = [], i;
812
+ if (o) {
813
+ let f = e.sliceDoc(o.from, o.to), p = a.globalAttrs[f];
814
+ if (!p) {
815
+ let d = T(r), m = d ? a.tags[x(e.doc, d)] : null;
816
+ p = (m == null ? void 0 : m.attrs) && m.attrs[f];
817
+ }
818
+ if (p) {
819
+ let d = e.sliceDoc(l, t).toLowerCase(), m = '"', c = '"';
820
+ /^['"]/.test(d) ? (i = d[0] == '"' ? /^[^"]*$/ : /^[^']*$/, m = "", c = e.sliceDoc(t, t + 1) == d[0] ? "" : d[0], d = d.slice(1), l++) : i = /^[^\s<>='"]*$/;
821
+ for (let O of p)
822
+ u.push({ label: O, apply: m + O + c, type: "constant" });
823
+ }
824
+ }
825
+ return { from: l, to: t, options: u, validFor: i };
826
+ }
827
+ function fe(e, a) {
828
+ let { state: r, pos: l } = a, t = K(r).resolveInner(l, -1), s = t.resolve(l);
829
+ for (let o = l, u; s == t && (u = t.childBefore(o)); ) {
830
+ let i = u.lastChild;
831
+ if (!i || !i.type.isError || i.from < i.to)
832
+ break;
833
+ s = t = u, o = i.from;
834
+ }
835
+ return t.name == "TagName" ? t.parent && /CloseTag$/.test(t.parent.name) ? F(r, t, t.from, l) : L(r, e, t, t.from, l) : t.name == "StartTag" ? L(r, e, t, l, l) : t.name == "StartCloseTag" || t.name == "IncompleteCloseTag" ? F(r, t, l, l) : t.name == "OpenTag" || t.name == "SelfClosingTag" || t.name == "AttributeName" ? Pt(r, e, t, t.name == "AttributeName" ? t.from : l, l) : t.name == "Is" || t.name == "AttributeValue" || t.name == "UnquotedAttributeValue" ? xt(r, e, t, t.name == "Is" ? l : t.from, l) : a.explicit && (s.name == "Element" || s.name == "Text" || s.name == "Document") ? bt(r, e, t, l) : null;
836
+ }
837
+ function $t(e) {
838
+ return fe(w.default, e);
839
+ }
840
+ function Tt(e) {
841
+ let { extraTags: a, extraGlobalAttributes: r } = e, l = r || a ? new w(a, r) : w.default;
842
+ return (t) => fe(l, t);
843
+ }
844
+ const Vt = /* @__PURE__ */ M.parser.configure({ top: "SingleExpression" }), Se = [
845
+ {
846
+ tag: "script",
847
+ attrs: (e) => e.type == "text/typescript" || e.lang == "ts",
848
+ parser: qe.parser
849
+ },
850
+ {
851
+ tag: "script",
852
+ attrs: (e) => e.type == "text/babel" || e.type == "text/jsx",
853
+ parser: Ce.parser
854
+ },
855
+ {
856
+ tag: "script",
857
+ attrs: (e) => e.type == "text/typescript-jsx",
858
+ parser: Ae.parser
859
+ },
860
+ {
861
+ tag: "script",
862
+ attrs(e) {
863
+ return /^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type);
864
+ },
865
+ parser: Vt
866
+ },
867
+ {
868
+ tag: "script",
869
+ attrs(e) {
870
+ return !e.type || /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type);
871
+ },
872
+ parser: M.parser
873
+ },
874
+ {
875
+ tag: "style",
876
+ attrs(e) {
877
+ return (!e.lang || e.lang == "css") && (!e.type || /^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type));
878
+ },
879
+ parser: J.parser
880
+ }
881
+ ], ge = /* @__PURE__ */ [
882
+ {
883
+ name: "style",
884
+ parser: /* @__PURE__ */ J.parser.configure({ top: "Styles" })
885
+ }
886
+ ].concat(/* @__PURE__ */ de.map((e) => ({ name: e, parser: M.parser }))), he = /* @__PURE__ */ Ve.define({
887
+ name: "html",
888
+ parser: /* @__PURE__ */ gt.configure({
889
+ props: [
890
+ /* @__PURE__ */ we.add({
891
+ Element(e) {
892
+ let a = /^(\s*)(<\/)?/.exec(e.textAfter);
893
+ return e.node.to <= e.pos + a[0].length ? e.continue() : e.lineIndent(e.node.from) + (a[2] ? 0 : e.unit);
894
+ },
895
+ "OpenTag CloseTag SelfClosingTag"(e) {
896
+ return e.column(e.node.from) + e.unit;
897
+ },
898
+ Document(e) {
899
+ if (e.pos + /\s*/.exec(e.textAfter)[0].length < e.node.to)
900
+ return e.continue();
901
+ let a = null, r;
902
+ for (let l = e.node; ; ) {
903
+ let t = l.lastChild;
904
+ if (!t || t.name != "Element" || t.to != l.to)
905
+ break;
906
+ a = l = t;
907
+ }
908
+ return a && !((r = a.lastChild) && (r.name == "CloseTag" || r.name == "SelfClosingTag")) ? e.lineIndent(a.from) + e.unit : null;
909
+ }
910
+ }),
911
+ /* @__PURE__ */ ye.add({
912
+ Element(e) {
913
+ let a = e.firstChild, r = e.lastChild;
914
+ return !a || a.name != "OpenTag" ? null : { from: a.to, to: r.name == "CloseTag" ? r.from : e.to };
915
+ }
916
+ }),
917
+ /* @__PURE__ */ ve.add({
918
+ "OpenTag CloseTag": (e) => e.getChild("TagName")
919
+ })
920
+ ]
921
+ }),
922
+ languageData: {
923
+ commentTokens: { block: { open: "<!--", close: "-->" } },
924
+ indentOnInput: /^\s*<\/\w+\W$/,
925
+ wordChars: "-._"
926
+ }
927
+ }), y = /* @__PURE__ */ he.configure({
928
+ wrap: /* @__PURE__ */ Oe(Se, ge)
929
+ });
930
+ function _t(e = {}) {
931
+ let a = "", r;
932
+ e.matchClosingTags === !1 && (a = "noMatch"), e.selfClosingTags === !0 && (a = (a ? a + " " : "") + "selfClosing"), (e.nestedLanguages && e.nestedLanguages.length || e.nestedAttributes && e.nestedAttributes.length) && (r = Oe((e.nestedLanguages || []).concat(Se), (e.nestedAttributes || []).concat(ge)));
933
+ let l = r ? he.configure({ wrap: r, dialect: a }) : a ? y.configure({ dialect: a }) : y;
934
+ return new Xe(l, [
935
+ y.data.of({ autocomplete: Tt(e) }),
936
+ e.autoCloseTags !== !1 ? wt : [],
937
+ Qe().support,
938
+ _e().support
939
+ ]);
940
+ }
941
+ const H = /* @__PURE__ */ new Set(/* @__PURE__ */ "area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")), wt = /* @__PURE__ */ ke.inputHandler.of((e, a, r, l, t) => {
942
+ if (e.composing || e.state.readOnly || a != r || l != ">" && l != "/" || !y.isActiveAt(e.state, a, -1))
943
+ return !1;
944
+ let s = t(), { state: o } = s, u = o.changeByRange((i) => {
945
+ var f, p, d;
946
+ let m = o.doc.sliceString(i.from - 1, i.to) == l, { head: c } = i, O = K(o).resolveInner(c - 1, -1), g;
947
+ if ((O.name == "TagName" || O.name == "StartTag") && (O = O.parent), m && l == ">" && O.name == "OpenTag") {
948
+ if (((p = (f = O.parent) === null || f === void 0 ? void 0 : f.lastChild) === null || p === void 0 ? void 0 : p.name) != "CloseTag" && (g = x(o.doc, O.parent, c)) && !H.has(g)) {
949
+ let b = c + (o.doc.sliceString(c, c + 1) === ">" ? 1 : 0), P = `</${g}>`;
950
+ return { range: i, changes: { from: c, to: b, insert: P } };
951
+ }
952
+ } else if (m && l == "/" && O.name == "IncompleteCloseTag") {
953
+ let b = O.parent;
954
+ if (O.from == c - 2 && ((d = b.lastChild) === null || d === void 0 ? void 0 : d.name) != "CloseTag" && (g = x(o.doc, b, c)) && !H.has(g)) {
955
+ let P = c + (o.doc.sliceString(c, c + 1) === ">" ? 1 : 0), B = `${g}>`;
956
+ return {
957
+ range: $e.cursor(c + B.length, -1),
958
+ changes: { from: c, to: P, insert: B }
959
+ };
960
+ }
961
+ }
962
+ return { range: i };
963
+ });
964
+ return u.changes.empty ? !1 : (e.dispatch([
965
+ s,
966
+ o.update(u, {
967
+ userEvent: "input.complete",
968
+ scrollIntoView: !0
969
+ })
970
+ ]), !0);
971
+ });
972
+ export {
973
+ wt as autoCloseTags,
974
+ _t as html,
975
+ $t as htmlCompletionSource,
976
+ Tt as htmlCompletionSourceWith,
977
+ y as htmlLanguage,
978
+ he as htmlPlain
979
+ };
src/backend/gradio_highlightedcode/templates/component/index.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import { R as e, Q as o, O as B, M as d, W as l, K as p } from "./Index-2933bd90.js";
2
+ export {
3
+ e as BaseCode,
4
+ o as BaseCopy,
5
+ B as BaseDownload,
6
+ d as BaseExample,
7
+ l as BaseWidget,
8
+ p as default
9
+ };
src/backend/gradio_highlightedcode/templates/component/r-1df568be.js ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function f(e) {
2
+ for (var n = {}, r = 0; r < e.length; ++r)
3
+ n[e[r]] = !0;
4
+ return n;
5
+ }
6
+ var b = ["NULL", "NA", "Inf", "NaN", "NA_integer_", "NA_real_", "NA_complex_", "NA_character_", "TRUE", "FALSE"], g = ["list", "quote", "bquote", "eval", "return", "call", "parse", "deparse"], s = ["if", "else", "repeat", "while", "function", "for", "in", "next", "break"], y = ["if", "else", "repeat", "while", "function", "for"], h = f(b), m = f(g), N = f(s), A = f(y), k = /[+\-*\/^<>=!&|~$:]/, t;
7
+ function p(e, n) {
8
+ t = null;
9
+ var r = e.next();
10
+ if (r == "#")
11
+ return e.skipToEnd(), "comment";
12
+ if (r == "0" && e.eat("x"))
13
+ return e.eatWhile(/[\da-f]/i), "number";
14
+ if (r == "." && e.eat(/\d/))
15
+ return e.match(/\d*(?:e[+\-]?\d+)?/), "number";
16
+ if (/\d/.test(r))
17
+ return e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/), "number";
18
+ if (r == "'" || r == '"')
19
+ return n.tokenize = E(r), "string";
20
+ if (r == "`")
21
+ return e.match(/[^`]+`/), "string.special";
22
+ if (r == "." && e.match(/.(?:[.]|\d+)/))
23
+ return "keyword";
24
+ if (/[a-zA-Z\.]/.test(r)) {
25
+ e.eatWhile(/[\w\.]/);
26
+ var i = e.current();
27
+ return h.propertyIsEnumerable(i) ? "atom" : N.propertyIsEnumerable(i) ? (A.propertyIsEnumerable(i) && !e.match(/\s*if(\s+|$)/, !1) && (t = "block"), "keyword") : m.propertyIsEnumerable(i) ? "builtin" : "variable";
28
+ } else
29
+ return r == "%" ? (e.skipTo("%") && e.next(), "variableName.special") : r == "<" && e.eat("-") || r == "<" && e.match("<-") || r == "-" && e.match(/>>?/) || r == "=" && n.ctx.argList ? "operator" : k.test(r) ? (r == "$" || e.eatWhile(k), "operator") : /[\(\){}\[\];]/.test(r) ? (t = r, r == ";" ? "punctuation" : null) : null;
30
+ }
31
+ function E(e) {
32
+ return function(n, r) {
33
+ if (n.eat("\\")) {
34
+ var i = n.next();
35
+ return i == "x" ? n.match(/^[a-f0-9]{2}/i) : (i == "u" || i == "U") && n.eat("{") && n.skipTo("}") ? n.next() : i == "u" ? n.match(/^[a-f0-9]{4}/i) : i == "U" ? n.match(/^[a-f0-9]{8}/i) : /[0-7]/.test(i) && n.match(/^[0-7]{1,2}/), "string.special";
36
+ } else {
37
+ for (var l; (l = n.next()) != null; ) {
38
+ if (l == e) {
39
+ r.tokenize = p;
40
+ break;
41
+ }
42
+ if (l == "\\") {
43
+ n.backUp(1);
44
+ break;
45
+ }
46
+ }
47
+ return "string";
48
+ }
49
+ };
50
+ }
51
+ var v = 1, u = 2, c = 4;
52
+ function o(e, n, r) {
53
+ e.ctx = {
54
+ type: n,
55
+ indent: e.indent,
56
+ flags: 0,
57
+ column: r.column(),
58
+ prev: e.ctx
59
+ };
60
+ }
61
+ function x(e, n) {
62
+ var r = e.ctx;
63
+ e.ctx = {
64
+ type: r.type,
65
+ indent: r.indent,
66
+ flags: r.flags | n,
67
+ column: r.column,
68
+ prev: r.prev
69
+ };
70
+ }
71
+ function a(e) {
72
+ e.indent = e.ctx.indent, e.ctx = e.ctx.prev;
73
+ }
74
+ const I = {
75
+ name: "r",
76
+ startState: function(e) {
77
+ return {
78
+ tokenize: p,
79
+ ctx: {
80
+ type: "top",
81
+ indent: -e,
82
+ flags: u
83
+ },
84
+ indent: 0,
85
+ afterIdent: !1
86
+ };
87
+ },
88
+ token: function(e, n) {
89
+ if (e.sol() && (n.ctx.flags & 3 || (n.ctx.flags |= u), n.ctx.flags & c && a(n), n.indent = e.indentation()), e.eatSpace())
90
+ return null;
91
+ var r = n.tokenize(e, n);
92
+ return r != "comment" && !(n.ctx.flags & u) && x(n, v), (t == ";" || t == "{" || t == "}") && n.ctx.type == "block" && a(n), t == "{" ? o(n, "}", e) : t == "(" ? (o(n, ")", e), n.afterIdent && (n.ctx.argList = !0)) : t == "[" ? o(n, "]", e) : t == "block" ? o(n, "block", e) : t == n.ctx.type ? a(n) : n.ctx.type == "block" && r != "comment" && x(n, c), n.afterIdent = r == "variable" || r == "keyword", r;
93
+ },
94
+ indent: function(e, n, r) {
95
+ if (e.tokenize != p)
96
+ return 0;
97
+ var i = n && n.charAt(0), l = e.ctx, d = i == l.type;
98
+ return l.flags & c && (l = l.prev), l.type == "block" ? l.indent + (i == "{" ? 0 : r.unit) : l.flags & v ? l.column + (d ? 0 : 1) : l.indent + (d ? 0 : r.unit);
99
+ },
100
+ languageData: {
101
+ wordChars: ".",
102
+ commentTokens: { line: "#" },
103
+ autocomplete: b.concat(g, s)
104
+ }
105
+ };
106
+ export {
107
+ I as r
108
+ };
src/backend/gradio_highlightedcode/templates/component/shell-9b920301.js ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var c = {};
2
+ function s(n, e) {
3
+ for (var i = 0; i < e.length; i++)
4
+ c[e[i]] = n;
5
+ }
6
+ var k = ["true", "false"], h = [
7
+ "if",
8
+ "then",
9
+ "do",
10
+ "else",
11
+ "elif",
12
+ "while",
13
+ "until",
14
+ "for",
15
+ "in",
16
+ "esac",
17
+ "fi",
18
+ "fin",
19
+ "fil",
20
+ "done",
21
+ "exit",
22
+ "set",
23
+ "unset",
24
+ "export",
25
+ "function"
26
+ ], p = [
27
+ "ab",
28
+ "awk",
29
+ "bash",
30
+ "beep",
31
+ "cat",
32
+ "cc",
33
+ "cd",
34
+ "chown",
35
+ "chmod",
36
+ "chroot",
37
+ "clear",
38
+ "cp",
39
+ "curl",
40
+ "cut",
41
+ "diff",
42
+ "echo",
43
+ "find",
44
+ "gawk",
45
+ "gcc",
46
+ "get",
47
+ "git",
48
+ "grep",
49
+ "hg",
50
+ "kill",
51
+ "killall",
52
+ "ln",
53
+ "ls",
54
+ "make",
55
+ "mkdir",
56
+ "openssl",
57
+ "mv",
58
+ "nc",
59
+ "nl",
60
+ "node",
61
+ "npm",
62
+ "ping",
63
+ "ps",
64
+ "restart",
65
+ "rm",
66
+ "rmdir",
67
+ "sed",
68
+ "service",
69
+ "sh",
70
+ "shopt",
71
+ "shred",
72
+ "source",
73
+ "sort",
74
+ "sleep",
75
+ "ssh",
76
+ "start",
77
+ "stop",
78
+ "su",
79
+ "sudo",
80
+ "svn",
81
+ "tee",
82
+ "telnet",
83
+ "top",
84
+ "touch",
85
+ "vi",
86
+ "vim",
87
+ "wall",
88
+ "wc",
89
+ "wget",
90
+ "who",
91
+ "write",
92
+ "yes",
93
+ "zsh"
94
+ ];
95
+ s("atom", k);
96
+ s("keyword", h);
97
+ s("builtin", p);
98
+ function d(n, e) {
99
+ if (n.eatSpace())
100
+ return null;
101
+ var i = n.sol(), t = n.next();
102
+ if (t === "\\")
103
+ return n.next(), null;
104
+ if (t === "'" || t === '"' || t === "`")
105
+ return e.tokens.unshift(l(t, t === "`" ? "quote" : "string")), u(n, e);
106
+ if (t === "#")
107
+ return i && n.eat("!") ? (n.skipToEnd(), "meta") : (n.skipToEnd(), "comment");
108
+ if (t === "$")
109
+ return e.tokens.unshift(a), u(n, e);
110
+ if (t === "+" || t === "=")
111
+ return "operator";
112
+ if (t === "-")
113
+ return n.eat("-"), n.eatWhile(/\w/), "attribute";
114
+ if (t == "<") {
115
+ if (n.match("<<"))
116
+ return "operator";
117
+ var o = n.match(/^<-?\s*(?:['"]([^'"]*)['"]|([^'"\s]*))/);
118
+ if (o)
119
+ return e.tokens.unshift(w(o[1] || o[2])), "string.special";
120
+ }
121
+ if (/\d/.test(t) && (n.eatWhile(/\d/), n.eol() || !/\w/.test(n.peek())))
122
+ return "number";
123
+ n.eatWhile(/[\w-]/);
124
+ var r = n.current();
125
+ return n.peek() === "=" && /\w+/.test(r) ? "def" : c.hasOwnProperty(r) ? c[r] : null;
126
+ }
127
+ function l(n, e) {
128
+ var i = n == "(" ? ")" : n == "{" ? "}" : n;
129
+ return function(t, o) {
130
+ for (var r, f = !1; (r = t.next()) != null; ) {
131
+ if (r === i && !f) {
132
+ o.tokens.shift();
133
+ break;
134
+ } else if (r === "$" && !f && n !== "'" && t.peek() != i) {
135
+ f = !0, t.backUp(1), o.tokens.unshift(a);
136
+ break;
137
+ } else {
138
+ if (!f && n !== i && r === n)
139
+ return o.tokens.unshift(l(n, e)), u(t, o);
140
+ if (!f && /['"]/.test(r) && !/['"]/.test(n)) {
141
+ o.tokens.unshift(g(r, "string")), t.backUp(1);
142
+ break;
143
+ }
144
+ }
145
+ f = !f && r === "\\";
146
+ }
147
+ return e;
148
+ };
149
+ }
150
+ function g(n, e) {
151
+ return function(i, t) {
152
+ return t.tokens[0] = l(n, e), i.next(), u(i, t);
153
+ };
154
+ }
155
+ var a = function(n, e) {
156
+ e.tokens.length > 1 && n.eat("$");
157
+ var i = n.next();
158
+ return /['"({]/.test(i) ? (e.tokens[0] = l(i, i == "(" ? "quote" : i == "{" ? "def" : "string"), u(n, e)) : (/\d/.test(i) || n.eatWhile(/\w/), e.tokens.shift(), "def");
159
+ };
160
+ function w(n) {
161
+ return function(e, i) {
162
+ return e.sol() && e.string == n && i.tokens.shift(), e.skipToEnd(), "string.special";
163
+ };
164
+ }
165
+ function u(n, e) {
166
+ return (e.tokens[0] || d)(n, e);
167
+ }
168
+ const v = {
169
+ name: "shell",
170
+ startState: function() {
171
+ return { tokens: [] };
172
+ },
173
+ token: function(n, e) {
174
+ return u(n, e);
175
+ },
176
+ languageData: {
177
+ autocomplete: k.concat(h, p),
178
+ closeBrackets: { brackets: ["(", "[", "{", "'", '"', "`"] },
179
+ commentTokens: { line: "#" }
180
+ }
181
+ };
182
+ export {
183
+ v as shell
184
+ };
src/backend/gradio_highlightedcode/templates/component/style.css ADDED
@@ -0,0 +1 @@
 
 
1
+ .wrap.svelte-1f1hlu0{display:flex;flex-direction:column;flex-flow:column;margin:0;padding:0;height:100%}.codemirror-wrapper.svelte-1f1hlu0{height:100%;overflow:auto}.cm-editor{height:100%}.cm-selectionBackground{background-color:#b9d2ff30!important}.cm-focused{outline:none!important}.dropdown-arrow.svelte-145leq6{fill:currentColor}button.svelte-qjb524{position:relative;cursor:pointer;padding:5px;width:22px;height:22px}.check.svelte-qjb524{position:absolute;top:0;right:0;z-index:var(--layer-top);background:var(--background-fill-primary);padding:var(--size-1);width:100%;height:100%;color:var(--body-text-color)}.container.svelte-peh06t{position:relative;cursor:pointer;padding:5px;width:22px;height:22px}.check.svelte-peh06t{position:absolute;top:0;right:0;z-index:var(--layer-top);background:var(--background-fill-primary);padding:var(--size-1);width:100%;height:100%;color:var(--body-text-color)}div.svelte-1bqqv16{display:flex;position:absolute;top:var(--block-label-margin);right:var(--block-label-margin);align-items:center;z-index:var(--layer-2);transition:.15s;box-shadow:var(--shadow-drop);border:1px solid var(--border-color-primary);border-top:none;border-right:none;border-radius:var(--block-label-right-radius);background:var(--block-label-background-fill);overflow:hidden;color:var(--block-label-text-color);font:var(--font);font-size:var(--button-small-text-size)}svg.svelte-43sxxs.svelte-43sxxs{width:var(--size-20);height:var(--size-20)}svg.svelte-43sxxs path.svelte-43sxxs{fill:var(--loader-color)}div.svelte-43sxxs.svelte-43sxxs{z-index:var(--layer-2)}.margin.svelte-43sxxs.svelte-43sxxs{margin:var(--size-4)}.wrap.svelte-1txqlrd.svelte-1txqlrd{display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:var(--layer-top);transition:opacity .1s ease-in-out;border-radius:var(--block-radius);background:var(--block-background-fill);padding:0 var(--size-6);max-height:var(--size-screen-h);overflow:hidden;pointer-events:none}.wrap.center.svelte-1txqlrd.svelte-1txqlrd{top:0;right:0;left:0}.wrap.default.svelte-1txqlrd.svelte-1txqlrd{top:0;right:0;bottom:0;left:0}.hide.svelte-1txqlrd.svelte-1txqlrd{opacity:0;pointer-events:none}.generating.svelte-1txqlrd.svelte-1txqlrd{animation:svelte-1txqlrd-pulse 2s cubic-bezier(.4,0,.6,1) infinite;border:2px solid var(--color-accent);background:transparent}.translucent.svelte-1txqlrd.svelte-1txqlrd{background:none}@keyframes svelte-1txqlrd-pulse{0%,to{opacity:1}50%{opacity:.5}}.loading.svelte-1txqlrd.svelte-1txqlrd{z-index:var(--layer-2);color:var(--body-text-color)}.eta-bar.svelte-1txqlrd.svelte-1txqlrd{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left;opacity:.8;z-index:var(--layer-1);transition:10ms;background:var(--background-fill-secondary)}.progress-bar-wrap.svelte-1txqlrd.svelte-1txqlrd{border:1px solid var(--border-color-primary);background:var(--background-fill-primary);width:55.5%;height:var(--size-4)}.progress-bar.svelte-1txqlrd.svelte-1txqlrd{transform-origin:left;background-color:var(--loader-color);width:var(--size-full);height:var(--size-full)}.progress-level.svelte-1txqlrd.svelte-1txqlrd{display:flex;flex-direction:column;align-items:center;gap:1;z-index:var(--layer-2);width:var(--size-full)}.progress-level-inner.svelte-1txqlrd.svelte-1txqlrd{margin:var(--size-2) auto;color:var(--body-text-color);font-size:var(--text-sm);font-family:var(--font-mono)}.meta-text.svelte-1txqlrd.svelte-1txqlrd{position:absolute;top:0;right:0;z-index:var(--layer-2);padding:var(--size-1) var(--size-2);font-size:var(--text-sm);font-family:var(--font-mono)}.meta-text-center.svelte-1txqlrd.svelte-1txqlrd{display:flex;position:absolute;top:0;right:0;justify-content:center;align-items:center;transform:translateY(var(--size-6));z-index:var(--layer-2);padding:var(--size-1) var(--size-2);font-size:var(--text-sm);font-family:var(--font-mono);text-align:center}.error.svelte-1txqlrd.svelte-1txqlrd{box-shadow:var(--shadow-drop);border:solid 1px var(--error-border-color);border-radius:var(--radius-full);background:var(--error-background-fill);padding-right:var(--size-4);padding-left:var(--size-4);color:var(--error-text-color);font-weight:var(--weight-semibold);font-size:var(--text-lg);line-height:var(--line-lg);font-family:var(--font)}.minimal.svelte-1txqlrd .progress-text.svelte-1txqlrd{background:var(--block-background-fill)}.border.svelte-1txqlrd.svelte-1txqlrd{border:1px solid var(--border-color-primary)}.toast-body.svelte-solcu7{display:flex;position:relative;right:0;left:0;align-items:center;margin:var(--size-6) var(--size-4);margin:auto;border-radius:var(--container-radius);overflow:hidden;pointer-events:auto}.toast-body.error.svelte-solcu7{border:1px solid var(--color-red-700);background:var(--color-red-50)}.dark .toast-body.error.svelte-solcu7{border:1px solid var(--color-red-500);background-color:var(--color-grey-950)}.toast-body.warning.svelte-solcu7{border:1px solid var(--color-yellow-700);background:var(--color-yellow-50)}.dark .toast-body.warning.svelte-solcu7{border:1px solid var(--color-yellow-500);background-color:var(--color-grey-950)}.toast-body.info.svelte-solcu7{border:1px solid var(--color-grey-700);background:var(--color-grey-50)}.dark .toast-body.info.svelte-solcu7{border:1px solid var(--color-grey-500);background-color:var(--color-grey-950)}.toast-title.svelte-solcu7{display:flex;align-items:center;font-weight:var(--weight-bold);font-size:var(--text-lg);line-height:var(--line-sm);text-transform:capitalize}.toast-title.error.svelte-solcu7{color:var(--color-red-700)}.dark .toast-title.error.svelte-solcu7{color:var(--color-red-50)}.toast-title.warning.svelte-solcu7{color:var(--color-yellow-700)}.dark .toast-title.warning.svelte-solcu7{color:var(--color-yellow-50)}.toast-title.info.svelte-solcu7{color:var(--color-grey-700)}.dark .toast-title.info.svelte-solcu7{color:var(--color-grey-50)}.toast-close.svelte-solcu7{margin:0 var(--size-3);border-radius:var(--size-3);padding:0px var(--size-1-5);font-size:var(--size-5);line-height:var(--size-5)}.toast-close.error.svelte-solcu7{color:var(--color-red-700)}.dark .toast-close.error.svelte-solcu7{color:var(--color-red-500)}.toast-close.warning.svelte-solcu7{color:var(--color-yellow-700)}.dark .toast-close.warning.svelte-solcu7{color:var(--color-yellow-500)}.toast-close.info.svelte-solcu7{color:var(--color-grey-700)}.dark .toast-close.info.svelte-solcu7{color:var(--color-grey-500)}.toast-text.svelte-solcu7{font-size:var(--text-lg)}.toast-text.error.svelte-solcu7{color:var(--color-red-700)}.dark .toast-text.error.svelte-solcu7{color:var(--color-red-50)}.toast-text.warning.svelte-solcu7{color:var(--color-yellow-700)}.dark .toast-text.warning.svelte-solcu7{color:var(--color-yellow-50)}.toast-text.info.svelte-solcu7{color:var(--color-grey-700)}.dark .toast-text.info.svelte-solcu7{color:var(--color-grey-50)}.toast-details.svelte-solcu7{margin:var(--size-3) var(--size-3) var(--size-3) 0;width:100%}.toast-icon.svelte-solcu7{display:flex;position:absolute;position:relative;flex-shrink:0;justify-content:center;align-items:center;margin:var(--size-2);border-radius:var(--radius-full);padding:var(--size-1);padding-left:calc(var(--size-1) - 1px);width:35px;height:35px}.toast-icon.error.svelte-solcu7{color:var(--color-red-700)}.dark .toast-icon.error.svelte-solcu7{color:var(--color-red-500)}.toast-icon.warning.svelte-solcu7{color:var(--color-yellow-700)}.dark .toast-icon.warning.svelte-solcu7{color:var(--color-yellow-500)}.toast-icon.info.svelte-solcu7{color:var(--color-grey-700)}.dark .toast-icon.info.svelte-solcu7{color:var(--color-grey-500)}@keyframes svelte-solcu7-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.timer.svelte-solcu7{position:absolute;bottom:0;left:0;transform-origin:0 0;animation:svelte-solcu7-countdown 10s linear forwards;width:100%;height:var(--size-1)}.timer.error.svelte-solcu7{background:var(--color-red-700)}.dark .timer.error.svelte-solcu7{background:var(--color-red-500)}.timer.warning.svelte-solcu7{background:var(--color-yellow-700)}.dark .timer.warning.svelte-solcu7{background:var(--color-yellow-500)}.timer.info.svelte-solcu7{background:var(--color-grey-700)}.dark .timer.info.svelte-solcu7{background:var(--color-grey-500)}.toast-wrap.svelte-gatr8h{display:flex;position:fixed;top:var(--size-4);right:var(--size-4);flex-direction:column;align-items:end;gap:var(--size-2);z-index:var(--layer-top);width:calc(100% - var(--size-8))}@media (--screen-sm){.toast-wrap.svelte-gatr8h{width:calc(var(--size-96) + var(--size-10))}}.block.svelte-1t38q2d{position:relative;margin:0;box-shadow:var(--block-shadow);border-width:var(--block-border-width);border-color:var(--block-border-color);border-radius:var(--block-radius);background:var(--block-background-fill);width:100%;line-height:var(--line-sm)}.block.border_focus.svelte-1t38q2d{border-color:var(--color-accent)}.padded.svelte-1t38q2d{padding:var(--block-padding)}.hidden.svelte-1t38q2d{display:none}.hide-container.svelte-1t38q2d{margin:0;box-shadow:none;--block-border-width:0;background:transparent;padding:0;overflow:visible}div.svelte-1hnfib2{margin-bottom:var(--spacing-lg);color:var(--block-info-text-color);font-weight:var(--block-info-text-weight);font-size:var(--block-info-text-size);line-height:var(--line-sm)}span.has-info.svelte-22c38v{margin-bottom:var(--spacing-xs)}span.svelte-22c38v:not(.has-info){margin-bottom:var(--spacing-lg)}span.svelte-22c38v{display:inline-block;position:relative;z-index:var(--layer-4);border:solid var(--block-title-border-width) var(--block-title-border-color);border-radius:var(--block-title-radius);background:var(--block-title-background-fill);padding:var(--block-title-padding);color:var(--block-title-text-color);font-weight:var(--block-title-text-weight);font-size:var(--block-title-text-size);line-height:var(--line-sm)}.hide.svelte-22c38v{margin:0;height:0}label.svelte-9gxdi0{display:inline-flex;align-items:center;z-index:var(--layer-2);box-shadow:var(--block-label-shadow);border:var(--block-label-border-width) solid var(--border-color-primary);border-top:none;border-left:none;border-radius:var(--block-label-radius);background:var(--block-label-background-fill);padding:var(--block-label-padding);pointer-events:none;color:var(--block-label-text-color);font-weight:var(--block-label-text-weight);font-size:var(--block-label-text-size);line-height:var(--line-sm)}.gr-group label.svelte-9gxdi0{border-top-left-radius:0}label.float.svelte-9gxdi0{position:absolute;top:var(--block-label-margin);left:var(--block-label-margin)}label.svelte-9gxdi0:not(.float){position:static;margin-top:var(--block-label-margin);margin-left:var(--block-label-margin)}.hide.svelte-9gxdi0{height:0}span.svelte-9gxdi0{opacity:.8;margin-right:var(--size-2);width:calc(var(--block-label-text-size) - 1px);height:calc(var(--block-label-text-size) - 1px)}.hide-label.svelte-9gxdi0{box-shadow:none;border-width:0;background:transparent;overflow:visible}button.svelte-lpi64a{display:flex;justify-content:center;align-items:center;gap:1px;z-index:var(--layer-2);border-radius:var(--radius-sm);color:var(--block-label-text-color);border:1px solid transparent}button[disabled].svelte-lpi64a{opacity:.5;box-shadow:none}button[disabled].svelte-lpi64a:hover{cursor:not-allowed}.padded.svelte-lpi64a{padding:2px;background:var(--bg-color);box-shadow:var(--shadow-drop);border:1px solid var(--button-secondary-border-color)}button.svelte-lpi64a:hover,button.highlight.svelte-lpi64a{cursor:pointer;color:var(--color-accent)}.padded.svelte-lpi64a:hover{border:2px solid var(--button-secondary-border-color-hover);padding:1px;color:var(--block-label-text-color)}span.svelte-lpi64a{padding:0 1px;font-size:10px}div.svelte-lpi64a{padding:2px;display:flex;align-items:flex-end}.small.svelte-lpi64a{width:14px;height:14px}.large.svelte-lpi64a{width:22px;height:22px}.pending.svelte-lpi64a{animation:svelte-lpi64a-flash .5s infinite}@keyframes svelte-lpi64a-flash{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.transparent.svelte-lpi64a{background:transparent;border:none;box-shadow:none}.empty.svelte-3w3rth{display:flex;justify-content:center;align-items:center;margin-top:calc(0px - var(--size-6));height:var(--size-full)}.icon.svelte-3w3rth{opacity:.5;height:var(--size-5);color:var(--body-text-color)}.small.svelte-3w3rth{min-height:calc(var(--size-32) - 20px)}.large.svelte-3w3rth{min-height:calc(var(--size-64) - 20px)}.unpadded_box.svelte-3w3rth{margin-top:0}.small_parent.svelte-3w3rth{min-height:100%!important}.wrap.svelte-kzcjhc{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:var(--size-60);color:var(--block-label-text-color);line-height:var(--line-md);height:100%;padding-top:var(--size-3)}.or.svelte-kzcjhc{color:var(--body-text-color-subdued);display:flex}.icon-wrap.svelte-kzcjhc{width:30px;margin-bottom:var(--spacing-lg)}@media (--screen-md){.wrap.svelte-kzcjhc{font-size:var(--text-lg)}}.hovered.svelte-kzcjhc{color:var(--color-accent)}div.svelte-ipfyu7{border-top:1px solid transparent;display:flex;max-height:100%;justify-content:center;gap:var(--spacing-sm);height:auto;align-items:flex-end;padding-bottom:var(--spacing-xl);color:var(--block-label-text-color);flex-shrink:0;width:95%}.show_border.svelte-ipfyu7{border-top:1px solid var(--block-border-color);margin-top:var(--spacing-xxl);box-shadow:var(--shadow-drop)}.source-selection.svelte-1jp3vgd{display:flex;align-items:center;justify-content:center;border-top:1px solid var(--border-color-primary);width:95%;bottom:0;left:0;right:0;margin-left:auto;margin-right:auto}.icon.svelte-1jp3vgd{width:22px;height:22px;margin:var(--spacing-lg) var(--spacing-xs);padding:var(--spacing-xs);color:var(--neutral-400);border-radius:var(--radius-md)}.selected.svelte-1jp3vgd{color:var(--color-accent)}.icon.svelte-1jp3vgd:hover,.icon.svelte-1jp3vgd:focus{color:var(--color-accent)}pre.svelte-1ioyqn2{text-align:left}.gallery.svelte-1ioyqn2{padding:var(--size-1) var(--size-2)}
src/backend/gradio_highlightedcode/templates/component/yaml-cef3802d.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var l = ["true", "false", "on", "off", "yes", "no"], f = new RegExp("\\b((" + l.join(")|(") + "))$", "i");
2
+ const a = {
3
+ name: "yaml",
4
+ token: function(n, i) {
5
+ var r = n.peek(), e = i.escaped;
6
+ if (i.escaped = !1, r == "#" && (n.pos == 0 || /\s/.test(n.string.charAt(n.pos - 1))))
7
+ return n.skipToEnd(), "comment";
8
+ if (n.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))
9
+ return "string";
10
+ if (i.literal && n.indentation() > i.keyCol)
11
+ return n.skipToEnd(), "string";
12
+ if (i.literal && (i.literal = !1), n.sol()) {
13
+ if (i.keyCol = 0, i.pair = !1, i.pairStart = !1, n.match("---") || n.match("..."))
14
+ return "def";
15
+ if (n.match(/^\s*-\s+/))
16
+ return "meta";
17
+ }
18
+ if (n.match(/^(\{|\}|\[|\])/))
19
+ return r == "{" ? i.inlinePairs++ : r == "}" ? i.inlinePairs-- : r == "[" ? i.inlineList++ : i.inlineList--, "meta";
20
+ if (i.inlineList > 0 && !e && r == ",")
21
+ return n.next(), "meta";
22
+ if (i.inlinePairs > 0 && !e && r == ",")
23
+ return i.keyCol = 0, i.pair = !1, i.pairStart = !1, n.next(), "meta";
24
+ if (i.pairStart) {
25
+ if (n.match(/^\s*(\||\>)\s*/))
26
+ return i.literal = !0, "meta";
27
+ if (n.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))
28
+ return "variable";
29
+ if (i.inlinePairs == 0 && n.match(/^\s*-?[0-9\.\,]+\s?$/) || i.inlinePairs > 0 && n.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))
30
+ return "number";
31
+ if (n.match(f))
32
+ return "keyword";
33
+ }
34
+ return !i.pair && n.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/) ? (i.pair = !0, i.keyCol = n.indentation(), "atom") : i.pair && n.match(/^:\s*/) ? (i.pairStart = !0, "meta") : (i.pairStart = !1, i.escaped = r == "\\", n.next(), null);
35
+ },
36
+ startState: function() {
37
+ return {
38
+ pair: !1,
39
+ pairStart: !1,
40
+ keyCol: 0,
41
+ inlinePairs: 0,
42
+ inlineList: 0,
43
+ literal: !1,
44
+ escaped: !1
45
+ };
46
+ },
47
+ languageData: {
48
+ commentTokens: { line: "#" }
49
+ }
50
+ };
51
+ export {
52
+ a as yaml
53
+ };
src/backend/gradio_highlightedcode/templates/example/index.js ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const {
2
+ SvelteComponent: u,
3
+ append: c,
4
+ attr: o,
5
+ detach: r,
6
+ element: d,
7
+ init: g,
8
+ insert: v,
9
+ noop: f,
10
+ safe_not_equal: y,
11
+ set_data: m,
12
+ text: b,
13
+ toggle_class: i
14
+ } = window.__gradio__svelte__internal;
15
+ function h(a) {
16
+ let e, n = (
17
+ /*value*/
18
+ (a[0] ? (
19
+ /*value*/
20
+ a[0]
21
+ ) : "") + ""
22
+ ), s;
23
+ return {
24
+ c() {
25
+ e = d("pre"), s = b(n), o(e, "class", "svelte-1ioyqn2"), i(
26
+ e,
27
+ "table",
28
+ /*type*/
29
+ a[1] === "table"
30
+ ), i(
31
+ e,
32
+ "gallery",
33
+ /*type*/
34
+ a[1] === "gallery"
35
+ ), i(
36
+ e,
37
+ "selected",
38
+ /*selected*/
39
+ a[2]
40
+ );
41
+ },
42
+ m(t, l) {
43
+ v(t, e, l), c(e, s);
44
+ },
45
+ p(t, [l]) {
46
+ l & /*value*/
47
+ 1 && n !== (n = /*value*/
48
+ (t[0] ? (
49
+ /*value*/
50
+ t[0]
51
+ ) : "") + "") && m(s, n), l & /*type*/
52
+ 2 && i(
53
+ e,
54
+ "table",
55
+ /*type*/
56
+ t[1] === "table"
57
+ ), l & /*type*/
58
+ 2 && i(
59
+ e,
60
+ "gallery",
61
+ /*type*/
62
+ t[1] === "gallery"
63
+ ), l & /*selected*/
64
+ 4 && i(
65
+ e,
66
+ "selected",
67
+ /*selected*/
68
+ t[2]
69
+ );
70
+ },
71
+ i: f,
72
+ o: f,
73
+ d(t) {
74
+ t && r(e);
75
+ }
76
+ };
77
+ }
78
+ function p(a, e, n) {
79
+ let { value: s } = e, { type: t } = e, { selected: l = !1 } = e;
80
+ return a.$$set = (_) => {
81
+ "value" in _ && n(0, s = _.value), "type" in _ && n(1, t = _.type), "selected" in _ && n(2, l = _.selected);
82
+ }, [s, t, l];
83
+ }
84
+ class q extends u {
85
+ constructor(e) {
86
+ super(), g(this, e, p, h, y, { value: 0, type: 1, selected: 2 });
87
+ }
88
+ }
89
+ export {
90
+ q as default
91
+ };
src/backend/gradio_highlightedcode/templates/example/style.css ADDED
@@ -0,0 +1 @@
 
 
1
+ pre.svelte-1ioyqn2{text-align:left}.gallery.svelte-1ioyqn2{padding:var(--size-1) var(--size-2)}
src/demo/__init__.py ADDED
File without changes
src/demo/app.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import gradio as gr
3
+ from gradio_highlightedcode import HighlightedCode
4
+
5
+
6
+ example = HighlightedCode().example_inputs()
7
+
8
+ demo = gr.Interface(
9
+ lambda x:x,
10
+ HighlightedCode(), # interactive version of your component
11
+ HighlightedCode(), # static version of your component
12
+ # examples=[[example]], # uncomment this line to view the "example version" of your component
13
+ )
14
+
15
+
16
+ if __name__ == "__main__":
17
+ demo.launch()
src/demo/css.css ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ html {
2
+ font-family: Inter;
3
+ font-size: 16px;
4
+ font-weight: 400;
5
+ line-height: 1.5;
6
+ -webkit-text-size-adjust: 100%;
7
+ background: #fff;
8
+ color: #323232;
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+ text-rendering: optimizeLegibility;
12
+ }
13
+
14
+ :root {
15
+ --space: 1;
16
+ --vspace: calc(var(--space) * 1rem);
17
+ --vspace-0: calc(3 * var(--space) * 1rem);
18
+ --vspace-1: calc(2 * var(--space) * 1rem);
19
+ --vspace-2: calc(1.5 * var(--space) * 1rem);
20
+ --vspace-3: calc(0.5 * var(--space) * 1rem);
21
+ }
22
+
23
+ .app {
24
+ max-width: 748px !important;
25
+ }
26
+
27
+ .prose p {
28
+ margin: var(--vspace) 0;
29
+ line-height: var(--vspace * 2);
30
+ font-size: 1rem;
31
+ }
32
+
33
+ code {
34
+ font-family: "Inconsolata", sans-serif;
35
+ font-size: 16px;
36
+ }
37
+
38
+ h1,
39
+ h1 code {
40
+ font-weight: 400;
41
+ line-height: calc(2.5 / var(--space) * var(--vspace));
42
+ }
43
+
44
+ h1 code {
45
+ background: none;
46
+ border: none;
47
+ letter-spacing: 0.05em;
48
+ padding-bottom: 5px;
49
+ position: relative;
50
+ padding: 0;
51
+ }
52
+
53
+ h2 {
54
+ margin: var(--vspace-1) 0 var(--vspace-2) 0;
55
+ line-height: 1em;
56
+ }
57
+
58
+ h3,
59
+ h3 code {
60
+ margin: var(--vspace-1) 0 var(--vspace-2) 0;
61
+ line-height: 1em;
62
+ }
63
+
64
+ h4,
65
+ h5,
66
+ h6 {
67
+ margin: var(--vspace-3) 0 var(--vspace-3) 0;
68
+ line-height: var(--vspace);
69
+ }
70
+
71
+ .bigtitle,
72
+ h1,
73
+ h1 code {
74
+ font-size: calc(8px * 4.5);
75
+ word-break: break-word;
76
+ }
77
+
78
+ .title,
79
+ h2,
80
+ h2 code {
81
+ font-size: calc(8px * 3.375);
82
+ font-weight: lighter;
83
+ word-break: break-word;
84
+ border: none;
85
+ background: none;
86
+ }
87
+
88
+ .subheading1,
89
+ h3,
90
+ h3 code {
91
+ font-size: calc(8px * 1.8);
92
+ font-weight: 600;
93
+ border: none;
94
+ background: none;
95
+ letter-spacing: 0.1em;
96
+ text-transform: uppercase;
97
+ }
98
+
99
+ h2 code {
100
+ padding: 0;
101
+ position: relative;
102
+ letter-spacing: 0.05em;
103
+ }
104
+
105
+ blockquote {
106
+ font-size: calc(8px * 1.1667);
107
+ font-style: italic;
108
+ line-height: calc(1.1667 * var(--vspace));
109
+ margin: var(--vspace-2) var(--vspace-2);
110
+ }
111
+
112
+ .subheading2,
113
+ h4 {
114
+ font-size: calc(8px * 1.4292);
115
+ text-transform: uppercase;
116
+ font-weight: 600;
117
+ }
118
+
119
+ .subheading3,
120
+ h5 {
121
+ font-size: calc(8px * 1.2917);
122
+ line-height: calc(1.2917 * var(--vspace));
123
+
124
+ font-weight: lighter;
125
+ text-transform: uppercase;
126
+ letter-spacing: 0.15em;
127
+ }
128
+
129
+ h6 {
130
+ font-size: calc(8px * 1.1667);
131
+ font-size: 1.1667em;
132
+ font-weight: normal;
133
+ font-style: italic;
134
+ font-family: "le-monde-livre-classic-byol", serif !important;
135
+ letter-spacing: 0px !important;
136
+ }
137
+
138
+ #start .md > *:first-child {
139
+ margin-top: 0;
140
+ }
141
+
142
+ h2 + h3 {
143
+ margin-top: 0;
144
+ }
145
+
146
+ .md hr {
147
+ border: none;
148
+ border-top: 1px solid var(--block-border-color);
149
+ margin: var(--vspace-2) 0 var(--vspace-2) 0;
150
+ }
151
+ .prose ul {
152
+ margin: var(--vspace-2) 0 var(--vspace-1) 0;
153
+ }
154
+
155
+ .gap {
156
+ gap: 0;
157
+ }
src/demo/space.py ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import gradio as gr
3
+ from app import demo as app
4
+ import os
5
+
6
+ _docs = {'HighlightedCode': {'description': 'Creates a code editor for viewing code (as an ouptut component), or for entering and editing code (as an input component).', 'members': {'__init__': {'value': {'type': 'str | tuple[str] | None', 'default': 'None', 'description': 'Default value to show in the code editor. If callable, the function will be called whenever the app loads to set the initial value of the component.'}, 'language': {'type': '"python"\n | "markdown"\n | "json"\n | "html"\n | "css"\n | "javascript"\n | "typescript"\n | "yaml"\n | "dockerfile"\n | "shell"\n | "r"\n | None', 'default': 'None', 'description': 'The language to display the code as. Supported languages listed in `gr.Code.languages`.'}, 'highlights': {'type': 'list[tuple[int, str]] | None', 'default': 'None', 'description': 'A list of tuples indicating lines to highlight. The first element of the tuple is the starting line number (1-indexed) and the second element is the highlight color (as a CSS hex string). The highlights are applied in order, with later highlights taking precedence over earlier ones.'}, 'every': {'type': 'float | None', 'default': 'None', 'description': "If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute."}, 'lines': {'type': 'int', 'default': '5', 'description': None}, 'label': {'type': 'str | None', 'default': 'None', 'description': 'The label for this component. Appears above the component and is also used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component is assigned to.'}, 'interactive': {'type': 'bool | None', 'default': 'None', 'description': 'Whether user should be able to enter code or only view it.'}, 'show_label': {'type': 'bool | None', 'default': 'None', 'description': 'if True, will display label.'}, 'container': {'type': 'bool', 'default': 'True', 'description': 'If True, will place the component in a container - providing some extra padding around the border.'}, 'scale': {'type': 'int | None', 'default': 'None', 'description': 'relative width compared to adjacent Components in a Row. For example, if Component A has scale=2, and Component B has scale=1, A will be twice as wide as B. Should be an integer.'}, 'min_width': {'type': 'int', 'default': '160', 'description': 'minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first.'}, 'visible': {'type': 'bool', 'default': 'True', 'description': 'If False, component will be hidden.'}, 'elem_id': {'type': 'str | None', 'default': 'None', 'description': 'An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles.'}, 'elem_classes': {'type': 'list[str] | str | None', 'default': 'None', 'description': 'An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles.'}, 'render': {'type': 'bool', 'default': 'True', 'description': 'If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later.'}}, 'postprocess': {'value': {'type': 'tuple[str] | str | None', 'description': 'Expects a `str` of code or a single-element `tuple`: (filepath,) with the `str` path to a file containing the code.'}}, 'preprocess': {'return': {'type': 'str | None', 'description': 'Passes the code entered as a `str`.'}, 'value': None}}, 'events': {'change': {'type': None, 'default': None, 'description': 'Triggered when the value of the HighlightedCode changes either because of user input (e.g. a user types in a textbox) OR because of a function update (e.g. an image receives a value from the output of an event trigger). See `.input()` for a listener that is only triggered by user input.'}, 'input': {'type': None, 'default': None, 'description': 'This listener is triggered when the user changes the value of the HighlightedCode.'}, 'focus': {'type': None, 'default': None, 'description': 'This listener is triggered when the HighlightedCode is focused.'}, 'blur': {'type': None, 'default': None, 'description': 'This listener is triggered when the HighlightedCode is unfocused/blurred.'}}}, '__meta__': {'additional_interfaces': {}, 'user_fn_refs': {'HighlightedCode': []}}}
7
+
8
+ abs_path = os.path.join(os.path.dirname(__file__), "css.css")
9
+
10
+ with gr.Blocks(
11
+ css=abs_path,
12
+ theme=gr.themes.Default(
13
+ font_mono=[
14
+ gr.themes.GoogleFont("Inconsolata"),
15
+ "monospace",
16
+ ],
17
+ ),
18
+ ) as demo:
19
+ gr.Markdown(
20
+ """
21
+ # `gradio_highlightedcode`
22
+
23
+ <div style="display: flex; gap: 7px;">
24
+ <img alt="Static Badge" src="https://img.shields.io/badge/version%20-%200.0.1%20-%20orange">
25
+ </div>
26
+
27
+ A variant of the Code component that supports highlighting lines of code.
28
+ """, elem_classes=["md-custom"], header_links=True)
29
+ app.render()
30
+ gr.Markdown(
31
+ """
32
+ ## Installation
33
+
34
+ ```bash
35
+ pip install gradio_highlightedcode
36
+ ```
37
+
38
+ ## Usage
39
+
40
+ ```python
41
+
42
+ import gradio as gr
43
+ from gradio_highlightedcode import HighlightedCode
44
+
45
+
46
+ example = HighlightedCode().example_inputs()
47
+
48
+ demo = gr.Interface(
49
+ lambda x:x,
50
+ HighlightedCode(), # interactive version of your component
51
+ HighlightedCode(), # static version of your component
52
+ # examples=[[example]], # uncomment this line to view the "example version" of your component
53
+ )
54
+
55
+
56
+ if __name__ == "__main__":
57
+ demo.launch()
58
+
59
+ ```
60
+ """, elem_classes=["md-custom"], header_links=True)
61
+
62
+
63
+ gr.Markdown("""
64
+ ## `HighlightedCode`
65
+
66
+ ### Initialization
67
+ """, elem_classes=["md-custom"], header_links=True)
68
+
69
+ gr.ParamViewer(value=_docs["HighlightedCode"]["members"]["__init__"], linkify=[])
70
+
71
+
72
+ gr.Markdown("### Events")
73
+ gr.ParamViewer(value=_docs["HighlightedCode"]["events"], linkify=['Event'])
74
+
75
+
76
+
77
+
78
+ gr.Markdown("""
79
+
80
+ ### User function
81
+
82
+ The impact on the users predict function varies depending on whether the component is used as an input or output for an event (or both).
83
+
84
+ - When used as an Input, the component only impacts the input signature of the user function.
85
+ - When used as an output, the component only impacts the return signature of the user function.
86
+
87
+ The code snippet below is accurate in cases where the component is used as both an input and an output.
88
+
89
+ - **As input:** Is passed, passes the code entered as a `str`.
90
+ - **As output:** Should return, expects a `str` of code or a single-element `tuple`: (filepath,) with the `str` path to a file containing the code.
91
+
92
+ ```python
93
+ def predict(
94
+ value: str | None
95
+ ) -> tuple[str] | str | None:
96
+ return value
97
+ ```
98
+ """, elem_classes=["md-custom", "HighlightedCode-user-fn"], header_links=True)
99
+
100
+
101
+
102
+
103
+ demo.load(None, js=r"""function() {
104
+ const refs = {};
105
+ const user_fn_refs = {
106
+ HighlightedCode: [], };
107
+ requestAnimationFrame(() => {
108
+
109
+ Object.entries(user_fn_refs).forEach(([key, refs]) => {
110
+ if (refs.length > 0) {
111
+ const el = document.querySelector(`.${key}-user-fn`);
112
+ if (!el) return;
113
+ refs.forEach(ref => {
114
+ el.innerHTML = el.innerHTML.replace(
115
+ new RegExp("\\b"+ref+"\\b", "g"),
116
+ `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
117
+ );
118
+ })
119
+ }
120
+ })
121
+
122
+ Object.entries(refs).forEach(([key, refs]) => {
123
+ if (refs.length > 0) {
124
+ const el = document.querySelector(`.${key}`);
125
+ if (!el) return;
126
+ refs.forEach(ref => {
127
+ el.innerHTML = el.innerHTML.replace(
128
+ new RegExp("\\b"+ref+"\\b", "g"),
129
+ `<a href="#h-${ref.toLowerCase()}">${ref}</a>`
130
+ );
131
+ })
132
+ }
133
+ })
134
+ })
135
+ }
136
+
137
+ """)
138
+
139
+ demo.launch()
src/frontend/Example.svelte ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ export let value: string | null;
3
+ export let type: "gallery" | "table";
4
+ export let selected = false;
5
+ </script>
6
+
7
+ <pre
8
+ class:table={type === "table"}
9
+ class:gallery={type === "gallery"}
10
+ class:selected>{value ? value : ""}</pre>
11
+
12
+ <style>
13
+ pre {
14
+ text-align: left;
15
+ }
16
+ .gallery {
17
+ padding: var(--size-1) var(--size-2);
18
+ }
19
+ </style>
src/frontend/Index.svelte ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script context="module" lang="ts">
2
+ export { default as BaseCode } from "./shared/Code.svelte";
3
+ export { default as BaseCopy } from "./shared/Copy.svelte";
4
+ export { default as BaseDownload } from "./shared/Download.svelte";
5
+ export { default as BaseWidget } from "./shared/Widgets.svelte";
6
+ export { default as BaseExample } from "./Example.svelte";
7
+ </script>
8
+
9
+ <script lang="ts">
10
+ import type { Gradio } from "@gradio/utils";
11
+ import { afterUpdate } from "svelte";
12
+
13
+ import type { LoadingStatus } from "@gradio/statustracker";
14
+
15
+ import Code from "./shared/Code.svelte";
16
+ import Widget from "./shared/Widgets.svelte";
17
+ import { StatusTracker } from "@gradio/statustracker";
18
+ import { Block, BlockLabel, Empty } from "@gradio/atoms";
19
+ import { Code as CodeIcon } from "@gradio/icons";
20
+
21
+ export let gradio: Gradio<{
22
+ change: typeof value;
23
+ input: never;
24
+ blur: never;
25
+ focus: never;
26
+ }>;
27
+ export let value = "";
28
+ export let value_is_output = false;
29
+ export let language = "";
30
+ export let lines = 5;
31
+ export let target: HTMLElement;
32
+ export let elem_id = "";
33
+ export let elem_classes: string[] = [];
34
+ export let visible = true;
35
+ export let label = gradio.i18n("code.code");
36
+ export let show_label = true;
37
+ export let loading_status: LoadingStatus;
38
+ export let scale: number | null = null;
39
+
40
+ export let interactive: boolean;
41
+
42
+ let dark_mode = target.classList.contains("dark");
43
+
44
+ function handle_change(): void {
45
+ gradio.dispatch("change", value);
46
+ if (!value_is_output) {
47
+ gradio.dispatch("input");
48
+ }
49
+ }
50
+ afterUpdate(() => {
51
+ value_is_output = false;
52
+ });
53
+ $: value, handle_change();
54
+ </script>
55
+
56
+ <Block
57
+ variant={"solid"}
58
+ padding={false}
59
+ {elem_id}
60
+ {elem_classes}
61
+ {visible}
62
+ {scale}
63
+ >
64
+ <StatusTracker
65
+ autoscroll={gradio.autoscroll}
66
+ i18n={gradio.i18n}
67
+ {...loading_status}
68
+ />
69
+
70
+ <BlockLabel Icon={CodeIcon} {show_label} {label} float={false} />
71
+
72
+ {#if !value && !interactive}
73
+ <Empty unpadded_box={true} size="large">
74
+ <CodeIcon />
75
+ </Empty>
76
+ {:else}
77
+ <Widget {language} {value} />
78
+
79
+ <Code
80
+ bind:value
81
+ {language}
82
+ {lines}
83
+ {dark_mode}
84
+ readonly={!interactive}
85
+ on:blur={() => gradio.dispatch("blur")}
86
+ on:focus={() => gradio.dispatch("focus")}
87
+ />
88
+ {/if}
89
+ </Block>
src/frontend/package-lock.json ADDED
@@ -0,0 +1,1342 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "gradio_highlightedcode",
3
+ "version": "0.3.8",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "gradio_highlightedcode",
9
+ "version": "0.3.8",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "@codemirror/autocomplete": "^6.3.0",
13
+ "@codemirror/commands": "^6.1.2",
14
+ "@codemirror/lang-css": "^6.1.0",
15
+ "@codemirror/lang-html": "^6.4.2",
16
+ "@codemirror/lang-javascript": "^6.1.4",
17
+ "@codemirror/lang-json": "^6.0.1",
18
+ "@codemirror/lang-markdown": "^6.1.0",
19
+ "@codemirror/lang-python": "^6.0.4",
20
+ "@codemirror/language": "^6.6.0",
21
+ "@codemirror/legacy-modes": "^6.3.1",
22
+ "@codemirror/lint": "^6.0.0",
23
+ "@codemirror/search": "^6.2.2",
24
+ "@codemirror/state": "^6.1.2",
25
+ "@codemirror/view": "^6.4.1",
26
+ "@gradio/atoms": "0.5.0",
27
+ "@gradio/icons": "0.3.2",
28
+ "@gradio/statustracker": "0.4.4",
29
+ "@gradio/upload": "0.7.0",
30
+ "@gradio/utils": "0.2.1",
31
+ "@gradio/wasm": "0.5.1",
32
+ "@lezer/common": "^1.0.2",
33
+ "@lezer/highlight": "^1.1.3",
34
+ "@lezer/markdown": "^1.0.2",
35
+ "cm6-theme-basic-dark": "^0.2.0",
36
+ "cm6-theme-basic-light": "^0.2.0",
37
+ "codemirror": "^6.0.1"
38
+ }
39
+ },
40
+ "node_modules/@ampproject/remapping": {
41
+ "version": "2.2.1",
42
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
43
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
44
+ "peer": true,
45
+ "dependencies": {
46
+ "@jridgewell/gen-mapping": "^0.3.0",
47
+ "@jridgewell/trace-mapping": "^0.3.9"
48
+ },
49
+ "engines": {
50
+ "node": ">=6.0.0"
51
+ }
52
+ },
53
+ "node_modules/@codemirror/autocomplete": {
54
+ "version": "6.12.0",
55
+ "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.12.0.tgz",
56
+ "integrity": "sha512-r4IjdYFthwbCQyvqnSlx0WBHRHi8nBvU+WjJxFUij81qsBfhNudf/XKKmmC2j3m0LaOYUQTf3qiEK1J8lO1sdg==",
57
+ "dependencies": {
58
+ "@codemirror/language": "^6.0.0",
59
+ "@codemirror/state": "^6.0.0",
60
+ "@codemirror/view": "^6.17.0",
61
+ "@lezer/common": "^1.0.0"
62
+ },
63
+ "peerDependencies": {
64
+ "@codemirror/language": "^6.0.0",
65
+ "@codemirror/state": "^6.0.0",
66
+ "@codemirror/view": "^6.0.0",
67
+ "@lezer/common": "^1.0.0"
68
+ }
69
+ },
70
+ "node_modules/@codemirror/commands": {
71
+ "version": "6.3.3",
72
+ "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.3.tgz",
73
+ "integrity": "sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==",
74
+ "dependencies": {
75
+ "@codemirror/language": "^6.0.0",
76
+ "@codemirror/state": "^6.4.0",
77
+ "@codemirror/view": "^6.0.0",
78
+ "@lezer/common": "^1.1.0"
79
+ }
80
+ },
81
+ "node_modules/@codemirror/lang-css": {
82
+ "version": "6.2.1",
83
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz",
84
+ "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==",
85
+ "dependencies": {
86
+ "@codemirror/autocomplete": "^6.0.0",
87
+ "@codemirror/language": "^6.0.0",
88
+ "@codemirror/state": "^6.0.0",
89
+ "@lezer/common": "^1.0.2",
90
+ "@lezer/css": "^1.0.0"
91
+ }
92
+ },
93
+ "node_modules/@codemirror/lang-html": {
94
+ "version": "6.4.8",
95
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.8.tgz",
96
+ "integrity": "sha512-tE2YK7wDlb9ZpAH6mpTPiYm6rhfdQKVDa5r9IwIFlwwgvVaKsCfuKKZoJGWsmMZIf3FQAuJ5CHMPLymOtg1hXw==",
97
+ "dependencies": {
98
+ "@codemirror/autocomplete": "^6.0.0",
99
+ "@codemirror/lang-css": "^6.0.0",
100
+ "@codemirror/lang-javascript": "^6.0.0",
101
+ "@codemirror/language": "^6.4.0",
102
+ "@codemirror/state": "^6.0.0",
103
+ "@codemirror/view": "^6.17.0",
104
+ "@lezer/common": "^1.0.0",
105
+ "@lezer/css": "^1.1.0",
106
+ "@lezer/html": "^1.3.0"
107
+ }
108
+ },
109
+ "node_modules/@codemirror/lang-javascript": {
110
+ "version": "6.2.1",
111
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.1.tgz",
112
+ "integrity": "sha512-jlFOXTejVyiQCW3EQwvKH0m99bUYIw40oPmFjSX2VS78yzfe0HELZ+NEo9Yfo1MkGRpGlj3Gnu4rdxV1EnAs5A==",
113
+ "dependencies": {
114
+ "@codemirror/autocomplete": "^6.0.0",
115
+ "@codemirror/language": "^6.6.0",
116
+ "@codemirror/lint": "^6.0.0",
117
+ "@codemirror/state": "^6.0.0",
118
+ "@codemirror/view": "^6.17.0",
119
+ "@lezer/common": "^1.0.0",
120
+ "@lezer/javascript": "^1.0.0"
121
+ }
122
+ },
123
+ "node_modules/@codemirror/lang-json": {
124
+ "version": "6.0.1",
125
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.1.tgz",
126
+ "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==",
127
+ "dependencies": {
128
+ "@codemirror/language": "^6.0.0",
129
+ "@lezer/json": "^1.0.0"
130
+ }
131
+ },
132
+ "node_modules/@codemirror/lang-markdown": {
133
+ "version": "6.2.4",
134
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.4.tgz",
135
+ "integrity": "sha512-UghkA1vSMs8bT7RSZM6vsIocigyah2bV00eRQuZy76401UmFZdsTsbQNBGdyxRQDOLeEvF5iFwap0BM8LKyd+g==",
136
+ "dependencies": {
137
+ "@codemirror/autocomplete": "^6.7.1",
138
+ "@codemirror/lang-html": "^6.0.0",
139
+ "@codemirror/language": "^6.3.0",
140
+ "@codemirror/state": "^6.0.0",
141
+ "@codemirror/view": "^6.0.0",
142
+ "@lezer/common": "^1.2.1",
143
+ "@lezer/markdown": "^1.0.0"
144
+ }
145
+ },
146
+ "node_modules/@codemirror/lang-python": {
147
+ "version": "6.1.3",
148
+ "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.3.tgz",
149
+ "integrity": "sha512-S9w2Jl74hFlD5nqtUMIaXAq9t5WlM0acCkyuQWUUSvZclk1sV+UfnpFiZzuZSG+hfEaOmxKR5UxY/Uxswn7EhQ==",
150
+ "dependencies": {
151
+ "@codemirror/autocomplete": "^6.3.2",
152
+ "@codemirror/language": "^6.8.0",
153
+ "@lezer/python": "^1.1.4"
154
+ }
155
+ },
156
+ "node_modules/@codemirror/language": {
157
+ "version": "6.10.0",
158
+ "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.0.tgz",
159
+ "integrity": "sha512-2vaNn9aPGCRFKWcHPFksctzJ8yS5p7YoaT+jHpc0UGKzNuAIx4qy6R5wiqbP+heEEdyaABA582mNqSHzSoYdmg==",
160
+ "dependencies": {
161
+ "@codemirror/state": "^6.0.0",
162
+ "@codemirror/view": "^6.23.0",
163
+ "@lezer/common": "^1.1.0",
164
+ "@lezer/highlight": "^1.0.0",
165
+ "@lezer/lr": "^1.0.0",
166
+ "style-mod": "^4.0.0"
167
+ }
168
+ },
169
+ "node_modules/@codemirror/legacy-modes": {
170
+ "version": "6.3.3",
171
+ "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.3.3.tgz",
172
+ "integrity": "sha512-X0Z48odJ0KIoh/HY8Ltz75/4tDYc9msQf1E/2trlxFaFFhgjpVHjZ/BCXe1Lk7s4Gd67LL/CeEEHNI+xHOiESg==",
173
+ "dependencies": {
174
+ "@codemirror/language": "^6.0.0"
175
+ }
176
+ },
177
+ "node_modules/@codemirror/lint": {
178
+ "version": "6.5.0",
179
+ "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.5.0.tgz",
180
+ "integrity": "sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==",
181
+ "dependencies": {
182
+ "@codemirror/state": "^6.0.0",
183
+ "@codemirror/view": "^6.0.0",
184
+ "crelt": "^1.0.5"
185
+ }
186
+ },
187
+ "node_modules/@codemirror/search": {
188
+ "version": "6.5.5",
189
+ "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.5.tgz",
190
+ "integrity": "sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==",
191
+ "dependencies": {
192
+ "@codemirror/state": "^6.0.0",
193
+ "@codemirror/view": "^6.0.0",
194
+ "crelt": "^1.0.5"
195
+ }
196
+ },
197
+ "node_modules/@codemirror/state": {
198
+ "version": "6.4.0",
199
+ "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.0.tgz",
200
+ "integrity": "sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A=="
201
+ },
202
+ "node_modules/@codemirror/view": {
203
+ "version": "6.23.1",
204
+ "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.23.1.tgz",
205
+ "integrity": "sha512-J2Xnn5lFYT1ZN/5ewEoMBCmLlL71lZ3mBdb7cUEuHhX2ESoSrNEucpsDXpX22EuTGm9LOgC9v4Z0wx+Ez8QmGA==",
206
+ "dependencies": {
207
+ "@codemirror/state": "^6.4.0",
208
+ "style-mod": "^4.1.0",
209
+ "w3c-keyname": "^2.2.4"
210
+ }
211
+ },
212
+ "node_modules/@esbuild/aix-ppc64": {
213
+ "version": "0.19.12",
214
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz",
215
+ "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
216
+ "cpu": [
217
+ "ppc64"
218
+ ],
219
+ "optional": true,
220
+ "os": [
221
+ "aix"
222
+ ],
223
+ "engines": {
224
+ "node": ">=12"
225
+ }
226
+ },
227
+ "node_modules/@esbuild/android-arm": {
228
+ "version": "0.19.12",
229
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz",
230
+ "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
231
+ "cpu": [
232
+ "arm"
233
+ ],
234
+ "optional": true,
235
+ "os": [
236
+ "android"
237
+ ],
238
+ "engines": {
239
+ "node": ">=12"
240
+ }
241
+ },
242
+ "node_modules/@esbuild/android-arm64": {
243
+ "version": "0.19.12",
244
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
245
+ "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
246
+ "cpu": [
247
+ "arm64"
248
+ ],
249
+ "optional": true,
250
+ "os": [
251
+ "android"
252
+ ],
253
+ "engines": {
254
+ "node": ">=12"
255
+ }
256
+ },
257
+ "node_modules/@esbuild/android-x64": {
258
+ "version": "0.19.12",
259
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz",
260
+ "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
261
+ "cpu": [
262
+ "x64"
263
+ ],
264
+ "optional": true,
265
+ "os": [
266
+ "android"
267
+ ],
268
+ "engines": {
269
+ "node": ">=12"
270
+ }
271
+ },
272
+ "node_modules/@esbuild/darwin-arm64": {
273
+ "version": "0.19.12",
274
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz",
275
+ "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
276
+ "cpu": [
277
+ "arm64"
278
+ ],
279
+ "optional": true,
280
+ "os": [
281
+ "darwin"
282
+ ],
283
+ "engines": {
284
+ "node": ">=12"
285
+ }
286
+ },
287
+ "node_modules/@esbuild/darwin-x64": {
288
+ "version": "0.19.12",
289
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz",
290
+ "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
291
+ "cpu": [
292
+ "x64"
293
+ ],
294
+ "optional": true,
295
+ "os": [
296
+ "darwin"
297
+ ],
298
+ "engines": {
299
+ "node": ">=12"
300
+ }
301
+ },
302
+ "node_modules/@esbuild/freebsd-arm64": {
303
+ "version": "0.19.12",
304
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz",
305
+ "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
306
+ "cpu": [
307
+ "arm64"
308
+ ],
309
+ "optional": true,
310
+ "os": [
311
+ "freebsd"
312
+ ],
313
+ "engines": {
314
+ "node": ">=12"
315
+ }
316
+ },
317
+ "node_modules/@esbuild/freebsd-x64": {
318
+ "version": "0.19.12",
319
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz",
320
+ "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
321
+ "cpu": [
322
+ "x64"
323
+ ],
324
+ "optional": true,
325
+ "os": [
326
+ "freebsd"
327
+ ],
328
+ "engines": {
329
+ "node": ">=12"
330
+ }
331
+ },
332
+ "node_modules/@esbuild/linux-arm": {
333
+ "version": "0.19.12",
334
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz",
335
+ "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
336
+ "cpu": [
337
+ "arm"
338
+ ],
339
+ "optional": true,
340
+ "os": [
341
+ "linux"
342
+ ],
343
+ "engines": {
344
+ "node": ">=12"
345
+ }
346
+ },
347
+ "node_modules/@esbuild/linux-arm64": {
348
+ "version": "0.19.12",
349
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz",
350
+ "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
351
+ "cpu": [
352
+ "arm64"
353
+ ],
354
+ "optional": true,
355
+ "os": [
356
+ "linux"
357
+ ],
358
+ "engines": {
359
+ "node": ">=12"
360
+ }
361
+ },
362
+ "node_modules/@esbuild/linux-ia32": {
363
+ "version": "0.19.12",
364
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz",
365
+ "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
366
+ "cpu": [
367
+ "ia32"
368
+ ],
369
+ "optional": true,
370
+ "os": [
371
+ "linux"
372
+ ],
373
+ "engines": {
374
+ "node": ">=12"
375
+ }
376
+ },
377
+ "node_modules/@esbuild/linux-loong64": {
378
+ "version": "0.19.12",
379
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz",
380
+ "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
381
+ "cpu": [
382
+ "loong64"
383
+ ],
384
+ "optional": true,
385
+ "os": [
386
+ "linux"
387
+ ],
388
+ "engines": {
389
+ "node": ">=12"
390
+ }
391
+ },
392
+ "node_modules/@esbuild/linux-mips64el": {
393
+ "version": "0.19.12",
394
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
395
+ "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
396
+ "cpu": [
397
+ "mips64el"
398
+ ],
399
+ "optional": true,
400
+ "os": [
401
+ "linux"
402
+ ],
403
+ "engines": {
404
+ "node": ">=12"
405
+ }
406
+ },
407
+ "node_modules/@esbuild/linux-ppc64": {
408
+ "version": "0.19.12",
409
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz",
410
+ "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
411
+ "cpu": [
412
+ "ppc64"
413
+ ],
414
+ "optional": true,
415
+ "os": [
416
+ "linux"
417
+ ],
418
+ "engines": {
419
+ "node": ">=12"
420
+ }
421
+ },
422
+ "node_modules/@esbuild/linux-riscv64": {
423
+ "version": "0.19.12",
424
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz",
425
+ "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
426
+ "cpu": [
427
+ "riscv64"
428
+ ],
429
+ "optional": true,
430
+ "os": [
431
+ "linux"
432
+ ],
433
+ "engines": {
434
+ "node": ">=12"
435
+ }
436
+ },
437
+ "node_modules/@esbuild/linux-s390x": {
438
+ "version": "0.19.12",
439
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz",
440
+ "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
441
+ "cpu": [
442
+ "s390x"
443
+ ],
444
+ "optional": true,
445
+ "os": [
446
+ "linux"
447
+ ],
448
+ "engines": {
449
+ "node": ">=12"
450
+ }
451
+ },
452
+ "node_modules/@esbuild/linux-x64": {
453
+ "version": "0.19.12",
454
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
455
+ "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
456
+ "cpu": [
457
+ "x64"
458
+ ],
459
+ "optional": true,
460
+ "os": [
461
+ "linux"
462
+ ],
463
+ "engines": {
464
+ "node": ">=12"
465
+ }
466
+ },
467
+ "node_modules/@esbuild/netbsd-x64": {
468
+ "version": "0.19.12",
469
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz",
470
+ "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
471
+ "cpu": [
472
+ "x64"
473
+ ],
474
+ "optional": true,
475
+ "os": [
476
+ "netbsd"
477
+ ],
478
+ "engines": {
479
+ "node": ">=12"
480
+ }
481
+ },
482
+ "node_modules/@esbuild/openbsd-x64": {
483
+ "version": "0.19.12",
484
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
485
+ "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
486
+ "cpu": [
487
+ "x64"
488
+ ],
489
+ "optional": true,
490
+ "os": [
491
+ "openbsd"
492
+ ],
493
+ "engines": {
494
+ "node": ">=12"
495
+ }
496
+ },
497
+ "node_modules/@esbuild/sunos-x64": {
498
+ "version": "0.19.12",
499
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz",
500
+ "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
501
+ "cpu": [
502
+ "x64"
503
+ ],
504
+ "optional": true,
505
+ "os": [
506
+ "sunos"
507
+ ],
508
+ "engines": {
509
+ "node": ">=12"
510
+ }
511
+ },
512
+ "node_modules/@esbuild/win32-arm64": {
513
+ "version": "0.19.12",
514
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz",
515
+ "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
516
+ "cpu": [
517
+ "arm64"
518
+ ],
519
+ "optional": true,
520
+ "os": [
521
+ "win32"
522
+ ],
523
+ "engines": {
524
+ "node": ">=12"
525
+ }
526
+ },
527
+ "node_modules/@esbuild/win32-ia32": {
528
+ "version": "0.19.12",
529
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz",
530
+ "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
531
+ "cpu": [
532
+ "ia32"
533
+ ],
534
+ "optional": true,
535
+ "os": [
536
+ "win32"
537
+ ],
538
+ "engines": {
539
+ "node": ">=12"
540
+ }
541
+ },
542
+ "node_modules/@esbuild/win32-x64": {
543
+ "version": "0.19.12",
544
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
545
+ "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
546
+ "cpu": [
547
+ "x64"
548
+ ],
549
+ "optional": true,
550
+ "os": [
551
+ "win32"
552
+ ],
553
+ "engines": {
554
+ "node": ">=12"
555
+ }
556
+ },
557
+ "node_modules/@formatjs/ecma402-abstract": {
558
+ "version": "1.11.4",
559
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
560
+ "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
561
+ "dependencies": {
562
+ "@formatjs/intl-localematcher": "0.2.25",
563
+ "tslib": "^2.1.0"
564
+ }
565
+ },
566
+ "node_modules/@formatjs/fast-memoize": {
567
+ "version": "1.2.1",
568
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
569
+ "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
570
+ "dependencies": {
571
+ "tslib": "^2.1.0"
572
+ }
573
+ },
574
+ "node_modules/@formatjs/icu-messageformat-parser": {
575
+ "version": "2.1.0",
576
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
577
+ "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
578
+ "dependencies": {
579
+ "@formatjs/ecma402-abstract": "1.11.4",
580
+ "@formatjs/icu-skeleton-parser": "1.3.6",
581
+ "tslib": "^2.1.0"
582
+ }
583
+ },
584
+ "node_modules/@formatjs/icu-skeleton-parser": {
585
+ "version": "1.3.6",
586
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
587
+ "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
588
+ "dependencies": {
589
+ "@formatjs/ecma402-abstract": "1.11.4",
590
+ "tslib": "^2.1.0"
591
+ }
592
+ },
593
+ "node_modules/@formatjs/intl-localematcher": {
594
+ "version": "0.2.25",
595
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
596
+ "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
597
+ "dependencies": {
598
+ "tslib": "^2.1.0"
599
+ }
600
+ },
601
+ "node_modules/@gradio/atoms": {
602
+ "version": "0.5.0",
603
+ "resolved": "https://registry.npmjs.org/@gradio/atoms/-/atoms-0.5.0.tgz",
604
+ "integrity": "sha512-BHDbusMOrmX16lfJdp2EE8ynWPCq8HUGz4fsyLqKzzjo1wR22MKIivjkWt2KVtuWE5foXzyXOWf1MvkhylIgwA==",
605
+ "dependencies": {
606
+ "@gradio/icons": "^0.3.2",
607
+ "@gradio/utils": "^0.2.1"
608
+ }
609
+ },
610
+ "node_modules/@gradio/client": {
611
+ "version": "0.10.1",
612
+ "resolved": "https://registry.npmjs.org/@gradio/client/-/client-0.10.1.tgz",
613
+ "integrity": "sha512-C3uWIWEqlpTuG3sfPw3K3+26Fkr+jXPL8U2lC1u7DlBm25rHdGMVX17o8ApW7XcFtznfaLceVtpnDPkDpQTJlw==",
614
+ "dependencies": {
615
+ "bufferutil": "^4.0.7",
616
+ "semiver": "^1.1.0",
617
+ "ws": "^8.13.0"
618
+ },
619
+ "engines": {
620
+ "node": ">=18.0.0"
621
+ }
622
+ },
623
+ "node_modules/@gradio/column": {
624
+ "version": "0.1.0",
625
+ "resolved": "https://registry.npmjs.org/@gradio/column/-/column-0.1.0.tgz",
626
+ "integrity": "sha512-P24nqqVnMXBaDA1f/zSN5HZRho4PxP8Dq+7VltPHlmxIEiZYik2AJ4J0LeuIha34FDO0guu/16evdrpvGIUAfw=="
627
+ },
628
+ "node_modules/@gradio/icons": {
629
+ "version": "0.3.2",
630
+ "resolved": "https://registry.npmjs.org/@gradio/icons/-/icons-0.3.2.tgz",
631
+ "integrity": "sha512-l0jGfSRFiZ/doAXz6L+JEp6MN/a1BTZm88kqVoSnYrKSytP6bnBLRWeF4UvOi2T2fbVrNKenAEt/lwxJE5vK4w=="
632
+ },
633
+ "node_modules/@gradio/statustracker": {
634
+ "version": "0.4.4",
635
+ "resolved": "https://registry.npmjs.org/@gradio/statustracker/-/statustracker-0.4.4.tgz",
636
+ "integrity": "sha512-+bqdly30Tnj0YnM8VOAJjFs0i6RxlxRdQYrd0FRAilw0RDejmfO5LFH+vDRnPl0seK/Of37iP+E5CsqVD3dPeg==",
637
+ "dependencies": {
638
+ "@gradio/atoms": "^0.5.0",
639
+ "@gradio/column": "^0.1.0",
640
+ "@gradio/icons": "^0.3.2",
641
+ "@gradio/utils": "^0.2.1"
642
+ }
643
+ },
644
+ "node_modules/@gradio/theme": {
645
+ "version": "0.2.0",
646
+ "resolved": "https://registry.npmjs.org/@gradio/theme/-/theme-0.2.0.tgz",
647
+ "integrity": "sha512-33c68Nk7oRXLn08OxPfjcPm7S4tXGOUV1I1bVgzdM2YV5o1QBOS1GEnXPZPu/CEYPePLMB6bsDwffrLEyLGWVQ=="
648
+ },
649
+ "node_modules/@gradio/upload": {
650
+ "version": "0.7.0",
651
+ "resolved": "https://registry.npmjs.org/@gradio/upload/-/upload-0.7.0.tgz",
652
+ "integrity": "sha512-7RVTf76WX4apXXep35A1b9ZR/o9XtRWpECPslX68PbtdVuVz/lIKCtRy23E2IZmbeXUTFGaDCZItKhKCd8LPxg==",
653
+ "dependencies": {
654
+ "@gradio/atoms": "^0.5.0",
655
+ "@gradio/client": "^0.10.1",
656
+ "@gradio/icons": "^0.3.2",
657
+ "@gradio/upload": "^0.7.0",
658
+ "@gradio/utils": "^0.2.1",
659
+ "@gradio/wasm": "^0.5.1"
660
+ }
661
+ },
662
+ "node_modules/@gradio/utils": {
663
+ "version": "0.2.1",
664
+ "resolved": "https://registry.npmjs.org/@gradio/utils/-/utils-0.2.1.tgz",
665
+ "integrity": "sha512-7XnnY9R/FiJ55M2Sw+gHjSvTql5VWG3j2sh+Wt1jLnSURQARoAqizgo2Sg1WZU0igXzrrc9WVZdGE45m5qCHeg==",
666
+ "dependencies": {
667
+ "@gradio/theme": "^0.2.0",
668
+ "svelte-i18n": "^3.6.0"
669
+ }
670
+ },
671
+ "node_modules/@gradio/wasm": {
672
+ "version": "0.5.1",
673
+ "resolved": "https://registry.npmjs.org/@gradio/wasm/-/wasm-0.5.1.tgz",
674
+ "integrity": "sha512-g0UD8M3DSOliq8LB07JAPWxZ98sOzdghW9yF9HkfUdSS23BT8xs2/SHMZXh9Bq9jkZSzIdpktBeZbB1sjgDFgQ==",
675
+ "dependencies": {
676
+ "@types/path-browserify": "^1.0.0",
677
+ "path-browserify": "^1.0.1"
678
+ }
679
+ },
680
+ "node_modules/@jridgewell/gen-mapping": {
681
+ "version": "0.3.3",
682
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
683
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
684
+ "peer": true,
685
+ "dependencies": {
686
+ "@jridgewell/set-array": "^1.0.1",
687
+ "@jridgewell/sourcemap-codec": "^1.4.10",
688
+ "@jridgewell/trace-mapping": "^0.3.9"
689
+ },
690
+ "engines": {
691
+ "node": ">=6.0.0"
692
+ }
693
+ },
694
+ "node_modules/@jridgewell/resolve-uri": {
695
+ "version": "3.1.1",
696
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
697
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
698
+ "peer": true,
699
+ "engines": {
700
+ "node": ">=6.0.0"
701
+ }
702
+ },
703
+ "node_modules/@jridgewell/set-array": {
704
+ "version": "1.1.2",
705
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
706
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
707
+ "peer": true,
708
+ "engines": {
709
+ "node": ">=6.0.0"
710
+ }
711
+ },
712
+ "node_modules/@jridgewell/sourcemap-codec": {
713
+ "version": "1.4.15",
714
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
715
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
716
+ "peer": true
717
+ },
718
+ "node_modules/@jridgewell/trace-mapping": {
719
+ "version": "0.3.22",
720
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
721
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
722
+ "peer": true,
723
+ "dependencies": {
724
+ "@jridgewell/resolve-uri": "^3.1.0",
725
+ "@jridgewell/sourcemap-codec": "^1.4.14"
726
+ }
727
+ },
728
+ "node_modules/@lezer/common": {
729
+ "version": "1.2.1",
730
+ "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz",
731
+ "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ=="
732
+ },
733
+ "node_modules/@lezer/css": {
734
+ "version": "1.1.7",
735
+ "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.7.tgz",
736
+ "integrity": "sha512-7BlFFAKNn/b39jJLrhdLSX5A2k56GIJvyLqdmm7UU+7XvequY084iuKDMAEhAmAzHnwDE8FK4OQtsIUssW91tg==",
737
+ "dependencies": {
738
+ "@lezer/common": "^1.2.0",
739
+ "@lezer/highlight": "^1.0.0",
740
+ "@lezer/lr": "^1.0.0"
741
+ }
742
+ },
743
+ "node_modules/@lezer/highlight": {
744
+ "version": "1.2.0",
745
+ "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz",
746
+ "integrity": "sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==",
747
+ "dependencies": {
748
+ "@lezer/common": "^1.0.0"
749
+ }
750
+ },
751
+ "node_modules/@lezer/html": {
752
+ "version": "1.3.8",
753
+ "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.8.tgz",
754
+ "integrity": "sha512-EXseJ3pUzWxE6XQBQdqWHZqqlGQRSuNMBcLb6mZWS2J2v+QZhOObD+3ZIKIcm59ntTzyor4LqFTb72iJc3k23Q==",
755
+ "dependencies": {
756
+ "@lezer/common": "^1.2.0",
757
+ "@lezer/highlight": "^1.0.0",
758
+ "@lezer/lr": "^1.0.0"
759
+ }
760
+ },
761
+ "node_modules/@lezer/javascript": {
762
+ "version": "1.4.13",
763
+ "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.13.tgz",
764
+ "integrity": "sha512-5IBr8LIO3xJdJH1e9aj/ZNLE4LSbdsx25wFmGRAZsj2zSmwAYjx26JyU/BYOCpRQlu1jcv1z3vy4NB9+UkfRow==",
765
+ "dependencies": {
766
+ "@lezer/common": "^1.2.0",
767
+ "@lezer/highlight": "^1.1.3",
768
+ "@lezer/lr": "^1.3.0"
769
+ }
770
+ },
771
+ "node_modules/@lezer/json": {
772
+ "version": "1.0.2",
773
+ "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.2.tgz",
774
+ "integrity": "sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==",
775
+ "dependencies": {
776
+ "@lezer/common": "^1.2.0",
777
+ "@lezer/highlight": "^1.0.0",
778
+ "@lezer/lr": "^1.0.0"
779
+ }
780
+ },
781
+ "node_modules/@lezer/lr": {
782
+ "version": "1.4.0",
783
+ "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz",
784
+ "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==",
785
+ "dependencies": {
786
+ "@lezer/common": "^1.0.0"
787
+ }
788
+ },
789
+ "node_modules/@lezer/markdown": {
790
+ "version": "1.2.0",
791
+ "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.2.0.tgz",
792
+ "integrity": "sha512-d7MwsfAukZJo1GpPrcPGa3MxaFFOqNp0gbqF+3F7pTeNDOgeJN1muXzx1XXDPt+Ac+/voCzsH7qXqnn+xReG/g==",
793
+ "dependencies": {
794
+ "@lezer/common": "^1.0.0",
795
+ "@lezer/highlight": "^1.0.0"
796
+ }
797
+ },
798
+ "node_modules/@lezer/python": {
799
+ "version": "1.1.11",
800
+ "resolved": "https://registry.npmjs.org/@lezer/python/-/python-1.1.11.tgz",
801
+ "integrity": "sha512-C3QeLCcdAKJDUOsYjfFP6a1wdn8jhUNX200bgFm8TpKH1eM2PlgYQS5ugw6E38qGeEx7CP21I1Q52SoybXt0OQ==",
802
+ "dependencies": {
803
+ "@lezer/common": "^1.2.0",
804
+ "@lezer/highlight": "^1.0.0",
805
+ "@lezer/lr": "^1.0.0"
806
+ }
807
+ },
808
+ "node_modules/@types/estree": {
809
+ "version": "1.0.5",
810
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
811
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
812
+ "peer": true
813
+ },
814
+ "node_modules/@types/path-browserify": {
815
+ "version": "1.0.2",
816
+ "resolved": "https://registry.npmjs.org/@types/path-browserify/-/path-browserify-1.0.2.tgz",
817
+ "integrity": "sha512-ZkC5IUqqIFPXx3ASTTybTzmQdwHwe2C0u3eL75ldQ6T9E9IWFJodn6hIfbZGab73DfyiHN4Xw15gNxUq2FbvBA=="
818
+ },
819
+ "node_modules/acorn": {
820
+ "version": "8.11.3",
821
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
822
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
823
+ "peer": true,
824
+ "bin": {
825
+ "acorn": "bin/acorn"
826
+ },
827
+ "engines": {
828
+ "node": ">=0.4.0"
829
+ }
830
+ },
831
+ "node_modules/aria-query": {
832
+ "version": "5.3.0",
833
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
834
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
835
+ "peer": true,
836
+ "dependencies": {
837
+ "dequal": "^2.0.3"
838
+ }
839
+ },
840
+ "node_modules/axobject-query": {
841
+ "version": "4.0.0",
842
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz",
843
+ "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==",
844
+ "peer": true,
845
+ "dependencies": {
846
+ "dequal": "^2.0.3"
847
+ }
848
+ },
849
+ "node_modules/bufferutil": {
850
+ "version": "4.0.8",
851
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz",
852
+ "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==",
853
+ "hasInstallScript": true,
854
+ "dependencies": {
855
+ "node-gyp-build": "^4.3.0"
856
+ },
857
+ "engines": {
858
+ "node": ">=6.14.2"
859
+ }
860
+ },
861
+ "node_modules/cli-color": {
862
+ "version": "2.0.3",
863
+ "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz",
864
+ "integrity": "sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==",
865
+ "dependencies": {
866
+ "d": "^1.0.1",
867
+ "es5-ext": "^0.10.61",
868
+ "es6-iterator": "^2.0.3",
869
+ "memoizee": "^0.4.15",
870
+ "timers-ext": "^0.1.7"
871
+ },
872
+ "engines": {
873
+ "node": ">=0.10"
874
+ }
875
+ },
876
+ "node_modules/cm6-theme-basic-dark": {
877
+ "version": "0.2.0",
878
+ "resolved": "https://registry.npmjs.org/cm6-theme-basic-dark/-/cm6-theme-basic-dark-0.2.0.tgz",
879
+ "integrity": "sha512-+mNNJecRtxS/KkloMDCQF0oTrT6aFGRZTjnBcdT5UG1pcDO4Brq8l1+0KR/8dZ7hub2gOGOzoi3rGFD8GzlH7Q==",
880
+ "peerDependencies": {
881
+ "@codemirror/language": "^6.0.0",
882
+ "@codemirror/state": "^6.0.0",
883
+ "@codemirror/view": "^6.0.0",
884
+ "@lezer/highlight": "^1.0.0"
885
+ }
886
+ },
887
+ "node_modules/cm6-theme-basic-light": {
888
+ "version": "0.2.0",
889
+ "resolved": "https://registry.npmjs.org/cm6-theme-basic-light/-/cm6-theme-basic-light-0.2.0.tgz",
890
+ "integrity": "sha512-1prg2gv44sYfpHscP26uLT/ePrh0mlmVwMSoSd3zYKQ92Ab3jPRLzyCnpyOCQLJbK+YdNs4HvMRqMNYdy4pMhA==",
891
+ "peerDependencies": {
892
+ "@codemirror/language": "^6.0.0",
893
+ "@codemirror/state": "^6.0.0",
894
+ "@codemirror/view": "^6.0.0",
895
+ "@lezer/highlight": "^1.0.0"
896
+ }
897
+ },
898
+ "node_modules/code-red": {
899
+ "version": "1.0.4",
900
+ "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
901
+ "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
902
+ "peer": true,
903
+ "dependencies": {
904
+ "@jridgewell/sourcemap-codec": "^1.4.15",
905
+ "@types/estree": "^1.0.1",
906
+ "acorn": "^8.10.0",
907
+ "estree-walker": "^3.0.3",
908
+ "periscopic": "^3.1.0"
909
+ }
910
+ },
911
+ "node_modules/codemirror": {
912
+ "version": "6.0.1",
913
+ "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz",
914
+ "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
915
+ "dependencies": {
916
+ "@codemirror/autocomplete": "^6.0.0",
917
+ "@codemirror/commands": "^6.0.0",
918
+ "@codemirror/language": "^6.0.0",
919
+ "@codemirror/lint": "^6.0.0",
920
+ "@codemirror/search": "^6.0.0",
921
+ "@codemirror/state": "^6.0.0",
922
+ "@codemirror/view": "^6.0.0"
923
+ }
924
+ },
925
+ "node_modules/crelt": {
926
+ "version": "1.0.6",
927
+ "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
928
+ "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="
929
+ },
930
+ "node_modules/css-tree": {
931
+ "version": "2.3.1",
932
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
933
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
934
+ "peer": true,
935
+ "dependencies": {
936
+ "mdn-data": "2.0.30",
937
+ "source-map-js": "^1.0.1"
938
+ },
939
+ "engines": {
940
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
941
+ }
942
+ },
943
+ "node_modules/d": {
944
+ "version": "1.0.1",
945
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
946
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
947
+ "dependencies": {
948
+ "es5-ext": "^0.10.50",
949
+ "type": "^1.0.1"
950
+ }
951
+ },
952
+ "node_modules/deepmerge": {
953
+ "version": "4.3.1",
954
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
955
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
956
+ "engines": {
957
+ "node": ">=0.10.0"
958
+ }
959
+ },
960
+ "node_modules/dequal": {
961
+ "version": "2.0.3",
962
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
963
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
964
+ "peer": true,
965
+ "engines": {
966
+ "node": ">=6"
967
+ }
968
+ },
969
+ "node_modules/es5-ext": {
970
+ "version": "0.10.62",
971
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
972
+ "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
973
+ "hasInstallScript": true,
974
+ "dependencies": {
975
+ "es6-iterator": "^2.0.3",
976
+ "es6-symbol": "^3.1.3",
977
+ "next-tick": "^1.1.0"
978
+ },
979
+ "engines": {
980
+ "node": ">=0.10"
981
+ }
982
+ },
983
+ "node_modules/es6-iterator": {
984
+ "version": "2.0.3",
985
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
986
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
987
+ "dependencies": {
988
+ "d": "1",
989
+ "es5-ext": "^0.10.35",
990
+ "es6-symbol": "^3.1.1"
991
+ }
992
+ },
993
+ "node_modules/es6-symbol": {
994
+ "version": "3.1.3",
995
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
996
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
997
+ "dependencies": {
998
+ "d": "^1.0.1",
999
+ "ext": "^1.1.2"
1000
+ }
1001
+ },
1002
+ "node_modules/es6-weak-map": {
1003
+ "version": "2.0.3",
1004
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
1005
+ "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
1006
+ "dependencies": {
1007
+ "d": "1",
1008
+ "es5-ext": "^0.10.46",
1009
+ "es6-iterator": "^2.0.3",
1010
+ "es6-symbol": "^3.1.1"
1011
+ }
1012
+ },
1013
+ "node_modules/esbuild": {
1014
+ "version": "0.19.12",
1015
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
1016
+ "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
1017
+ "hasInstallScript": true,
1018
+ "bin": {
1019
+ "esbuild": "bin/esbuild"
1020
+ },
1021
+ "engines": {
1022
+ "node": ">=12"
1023
+ },
1024
+ "optionalDependencies": {
1025
+ "@esbuild/aix-ppc64": "0.19.12",
1026
+ "@esbuild/android-arm": "0.19.12",
1027
+ "@esbuild/android-arm64": "0.19.12",
1028
+ "@esbuild/android-x64": "0.19.12",
1029
+ "@esbuild/darwin-arm64": "0.19.12",
1030
+ "@esbuild/darwin-x64": "0.19.12",
1031
+ "@esbuild/freebsd-arm64": "0.19.12",
1032
+ "@esbuild/freebsd-x64": "0.19.12",
1033
+ "@esbuild/linux-arm": "0.19.12",
1034
+ "@esbuild/linux-arm64": "0.19.12",
1035
+ "@esbuild/linux-ia32": "0.19.12",
1036
+ "@esbuild/linux-loong64": "0.19.12",
1037
+ "@esbuild/linux-mips64el": "0.19.12",
1038
+ "@esbuild/linux-ppc64": "0.19.12",
1039
+ "@esbuild/linux-riscv64": "0.19.12",
1040
+ "@esbuild/linux-s390x": "0.19.12",
1041
+ "@esbuild/linux-x64": "0.19.12",
1042
+ "@esbuild/netbsd-x64": "0.19.12",
1043
+ "@esbuild/openbsd-x64": "0.19.12",
1044
+ "@esbuild/sunos-x64": "0.19.12",
1045
+ "@esbuild/win32-arm64": "0.19.12",
1046
+ "@esbuild/win32-ia32": "0.19.12",
1047
+ "@esbuild/win32-x64": "0.19.12"
1048
+ }
1049
+ },
1050
+ "node_modules/estree-walker": {
1051
+ "version": "3.0.3",
1052
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
1053
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
1054
+ "peer": true,
1055
+ "dependencies": {
1056
+ "@types/estree": "^1.0.0"
1057
+ }
1058
+ },
1059
+ "node_modules/event-emitter": {
1060
+ "version": "0.3.5",
1061
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
1062
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
1063
+ "dependencies": {
1064
+ "d": "1",
1065
+ "es5-ext": "~0.10.14"
1066
+ }
1067
+ },
1068
+ "node_modules/ext": {
1069
+ "version": "1.7.0",
1070
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
1071
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
1072
+ "dependencies": {
1073
+ "type": "^2.7.2"
1074
+ }
1075
+ },
1076
+ "node_modules/ext/node_modules/type": {
1077
+ "version": "2.7.2",
1078
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
1079
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
1080
+ },
1081
+ "node_modules/globalyzer": {
1082
+ "version": "0.1.0",
1083
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
1084
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="
1085
+ },
1086
+ "node_modules/globrex": {
1087
+ "version": "0.1.2",
1088
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
1089
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
1090
+ },
1091
+ "node_modules/intl-messageformat": {
1092
+ "version": "9.13.0",
1093
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz",
1094
+ "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==",
1095
+ "dependencies": {
1096
+ "@formatjs/ecma402-abstract": "1.11.4",
1097
+ "@formatjs/fast-memoize": "1.2.1",
1098
+ "@formatjs/icu-messageformat-parser": "2.1.0",
1099
+ "tslib": "^2.1.0"
1100
+ }
1101
+ },
1102
+ "node_modules/is-promise": {
1103
+ "version": "2.2.2",
1104
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
1105
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
1106
+ },
1107
+ "node_modules/is-reference": {
1108
+ "version": "3.0.2",
1109
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
1110
+ "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
1111
+ "peer": true,
1112
+ "dependencies": {
1113
+ "@types/estree": "*"
1114
+ }
1115
+ },
1116
+ "node_modules/locate-character": {
1117
+ "version": "3.0.0",
1118
+ "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
1119
+ "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
1120
+ "peer": true
1121
+ },
1122
+ "node_modules/lru-queue": {
1123
+ "version": "0.1.0",
1124
+ "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
1125
+ "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==",
1126
+ "dependencies": {
1127
+ "es5-ext": "~0.10.2"
1128
+ }
1129
+ },
1130
+ "node_modules/magic-string": {
1131
+ "version": "0.30.6",
1132
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.6.tgz",
1133
+ "integrity": "sha512-n62qCLbPjNjyo+owKtveQxZFZTBm+Ms6YoGD23Wew6Vw337PElFNifQpknPruVRQV57kVShPnLGo9vWxVhpPvA==",
1134
+ "peer": true,
1135
+ "dependencies": {
1136
+ "@jridgewell/sourcemap-codec": "^1.4.15"
1137
+ },
1138
+ "engines": {
1139
+ "node": ">=12"
1140
+ }
1141
+ },
1142
+ "node_modules/mdn-data": {
1143
+ "version": "2.0.30",
1144
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
1145
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
1146
+ "peer": true
1147
+ },
1148
+ "node_modules/memoizee": {
1149
+ "version": "0.4.15",
1150
+ "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
1151
+ "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
1152
+ "dependencies": {
1153
+ "d": "^1.0.1",
1154
+ "es5-ext": "^0.10.53",
1155
+ "es6-weak-map": "^2.0.3",
1156
+ "event-emitter": "^0.3.5",
1157
+ "is-promise": "^2.2.2",
1158
+ "lru-queue": "^0.1.0",
1159
+ "next-tick": "^1.1.0",
1160
+ "timers-ext": "^0.1.7"
1161
+ }
1162
+ },
1163
+ "node_modules/mri": {
1164
+ "version": "1.2.0",
1165
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1166
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
1167
+ "engines": {
1168
+ "node": ">=4"
1169
+ }
1170
+ },
1171
+ "node_modules/next-tick": {
1172
+ "version": "1.1.0",
1173
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
1174
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
1175
+ },
1176
+ "node_modules/node-gyp-build": {
1177
+ "version": "4.8.0",
1178
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
1179
+ "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
1180
+ "bin": {
1181
+ "node-gyp-build": "bin.js",
1182
+ "node-gyp-build-optional": "optional.js",
1183
+ "node-gyp-build-test": "build-test.js"
1184
+ }
1185
+ },
1186
+ "node_modules/path-browserify": {
1187
+ "version": "1.0.1",
1188
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
1189
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
1190
+ },
1191
+ "node_modules/periscopic": {
1192
+ "version": "3.1.0",
1193
+ "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
1194
+ "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
1195
+ "peer": true,
1196
+ "dependencies": {
1197
+ "@types/estree": "^1.0.0",
1198
+ "estree-walker": "^3.0.0",
1199
+ "is-reference": "^3.0.0"
1200
+ }
1201
+ },
1202
+ "node_modules/sade": {
1203
+ "version": "1.8.1",
1204
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
1205
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
1206
+ "dependencies": {
1207
+ "mri": "^1.1.0"
1208
+ },
1209
+ "engines": {
1210
+ "node": ">=6"
1211
+ }
1212
+ },
1213
+ "node_modules/semiver": {
1214
+ "version": "1.1.0",
1215
+ "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
1216
+ "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==",
1217
+ "engines": {
1218
+ "node": ">=6"
1219
+ }
1220
+ },
1221
+ "node_modules/source-map-js": {
1222
+ "version": "1.0.2",
1223
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1224
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1225
+ "peer": true,
1226
+ "engines": {
1227
+ "node": ">=0.10.0"
1228
+ }
1229
+ },
1230
+ "node_modules/style-mod": {
1231
+ "version": "4.1.0",
1232
+ "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz",
1233
+ "integrity": "sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA=="
1234
+ },
1235
+ "node_modules/svelte": {
1236
+ "version": "4.2.9",
1237
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.9.tgz",
1238
+ "integrity": "sha512-hsoB/WZGEPFXeRRLPhPrbRz67PhP6sqYgvwcAs+gWdSQSvNDw+/lTeUJSWe5h2xC97Fz/8QxAOqItwBzNJPU8w==",
1239
+ "peer": true,
1240
+ "dependencies": {
1241
+ "@ampproject/remapping": "^2.2.1",
1242
+ "@jridgewell/sourcemap-codec": "^1.4.15",
1243
+ "@jridgewell/trace-mapping": "^0.3.18",
1244
+ "@types/estree": "^1.0.1",
1245
+ "acorn": "^8.9.0",
1246
+ "aria-query": "^5.3.0",
1247
+ "axobject-query": "^4.0.0",
1248
+ "code-red": "^1.0.3",
1249
+ "css-tree": "^2.3.1",
1250
+ "estree-walker": "^3.0.3",
1251
+ "is-reference": "^3.0.1",
1252
+ "locate-character": "^3.0.0",
1253
+ "magic-string": "^0.30.4",
1254
+ "periscopic": "^3.1.0"
1255
+ },
1256
+ "engines": {
1257
+ "node": ">=16"
1258
+ }
1259
+ },
1260
+ "node_modules/svelte-i18n": {
1261
+ "version": "3.7.4",
1262
+ "resolved": "https://registry.npmjs.org/svelte-i18n/-/svelte-i18n-3.7.4.tgz",
1263
+ "integrity": "sha512-yGRCNo+eBT4cPuU7IVsYTYjxB7I2V8qgUZPlHnNctJj5IgbJgV78flsRzpjZ/8iUYZrS49oCt7uxlU3AZv/N5Q==",
1264
+ "dependencies": {
1265
+ "cli-color": "^2.0.3",
1266
+ "deepmerge": "^4.2.2",
1267
+ "esbuild": "^0.19.2",
1268
+ "estree-walker": "^2",
1269
+ "intl-messageformat": "^9.13.0",
1270
+ "sade": "^1.8.1",
1271
+ "tiny-glob": "^0.2.9"
1272
+ },
1273
+ "bin": {
1274
+ "svelte-i18n": "dist/cli.js"
1275
+ },
1276
+ "engines": {
1277
+ "node": ">= 16"
1278
+ },
1279
+ "peerDependencies": {
1280
+ "svelte": "^3 || ^4"
1281
+ }
1282
+ },
1283
+ "node_modules/svelte-i18n/node_modules/estree-walker": {
1284
+ "version": "2.0.2",
1285
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1286
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1287
+ },
1288
+ "node_modules/timers-ext": {
1289
+ "version": "0.1.7",
1290
+ "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
1291
+ "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
1292
+ "dependencies": {
1293
+ "es5-ext": "~0.10.46",
1294
+ "next-tick": "1"
1295
+ }
1296
+ },
1297
+ "node_modules/tiny-glob": {
1298
+ "version": "0.2.9",
1299
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
1300
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
1301
+ "dependencies": {
1302
+ "globalyzer": "0.1.0",
1303
+ "globrex": "^0.1.2"
1304
+ }
1305
+ },
1306
+ "node_modules/tslib": {
1307
+ "version": "2.6.2",
1308
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
1309
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
1310
+ },
1311
+ "node_modules/type": {
1312
+ "version": "1.2.0",
1313
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
1314
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
1315
+ },
1316
+ "node_modules/w3c-keyname": {
1317
+ "version": "2.2.8",
1318
+ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz",
1319
+ "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="
1320
+ },
1321
+ "node_modules/ws": {
1322
+ "version": "8.16.0",
1323
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
1324
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
1325
+ "engines": {
1326
+ "node": ">=10.0.0"
1327
+ },
1328
+ "peerDependencies": {
1329
+ "bufferutil": "^4.0.1",
1330
+ "utf-8-validate": ">=5.0.2"
1331
+ },
1332
+ "peerDependenciesMeta": {
1333
+ "bufferutil": {
1334
+ "optional": true
1335
+ },
1336
+ "utf-8-validate": {
1337
+ "optional": true
1338
+ }
1339
+ }
1340
+ }
1341
+ }
1342
+ }
src/frontend/package.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "gradio_highlightedcode",
3
+ "version": "0.3.8",
4
+ "description": "Gradio UI packages",
5
+ "type": "module",
6
+ "author": "",
7
+ "license": "ISC",
8
+ "private": false,
9
+ "dependencies": {
10
+ "@codemirror/autocomplete": "^6.3.0",
11
+ "@codemirror/commands": "^6.1.2",
12
+ "@codemirror/lang-css": "^6.1.0",
13
+ "@codemirror/lang-html": "^6.4.2",
14
+ "@codemirror/lang-javascript": "^6.1.4",
15
+ "@codemirror/lang-json": "^6.0.1",
16
+ "@codemirror/lang-markdown": "^6.1.0",
17
+ "@codemirror/lang-python": "^6.0.4",
18
+ "@codemirror/language": "^6.6.0",
19
+ "@codemirror/legacy-modes": "^6.3.1",
20
+ "@codemirror/lint": "^6.0.0",
21
+ "@codemirror/search": "^6.2.2",
22
+ "@codemirror/state": "^6.1.2",
23
+ "@codemirror/view": "^6.4.1",
24
+ "@gradio/atoms": "0.5.0",
25
+ "@gradio/icons": "0.3.2",
26
+ "@gradio/statustracker": "0.4.4",
27
+ "@gradio/upload": "0.7.0",
28
+ "@gradio/utils": "0.2.1",
29
+ "@gradio/wasm": "0.5.1",
30
+ "@lezer/common": "^1.0.2",
31
+ "@lezer/highlight": "^1.1.3",
32
+ "@lezer/markdown": "^1.0.2",
33
+ "cm6-theme-basic-dark": "^0.2.0",
34
+ "cm6-theme-basic-light": "^0.2.0",
35
+ "codemirror": "^6.0.1"
36
+ },
37
+ "main_changeset": true,
38
+ "main": "./Index.svelte",
39
+ "exports": {
40
+ ".": "./Index.svelte",
41
+ "./example": "./Example.svelte",
42
+ "./package.json": "./package.json"
43
+ }
44
+ }
src/frontend/shared/Code.svelte ADDED
@@ -0,0 +1,261 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import type { ViewUpdate } from "@codemirror/view";
3
+ import { createEventDispatcher, onMount } from "svelte";
4
+ import {
5
+ EditorView,
6
+ keymap,
7
+ placeholder as placeholderExt
8
+ } from "@codemirror/view";
9
+ import { StateEffect, EditorState, type Extension } from "@codemirror/state";
10
+ import { indentWithTab } from "@codemirror/commands";
11
+
12
+ import { basicDark } from "cm6-theme-basic-dark";
13
+ import { basicLight } from "cm6-theme-basic-light";
14
+ import { basicSetup } from "./extensions";
15
+ import { getLanguageExtension } from "./language";
16
+
17
+ export let classNames = "";
18
+ export let value = "";
19
+ export let dark_mode: boolean;
20
+
21
+ export let basic = true;
22
+ export let language: string;
23
+ export let lines = 5;
24
+ export let extensions: Extension[] = [];
25
+
26
+ export let useTab = true;
27
+
28
+ export let readonly = false;
29
+ export let placeholder: string | HTMLElement | null | undefined = undefined;
30
+
31
+ const dispatch = createEventDispatcher<{
32
+ change: string;
33
+ blur: undefined;
34
+ focus: undefined;
35
+ }>();
36
+ let lang_extension: Extension | undefined;
37
+ let element: HTMLDivElement;
38
+ let view: EditorView;
39
+
40
+ $: get_lang(language);
41
+
42
+ async function get_lang(val: string): Promise<void> {
43
+ const ext = await getLanguageExtension(val);
44
+ lang_extension = ext;
45
+ }
46
+
47
+ $: reconfigure(), lang_extension;
48
+ $: setDoc(value);
49
+ $: updateLines();
50
+
51
+ function setDoc(newDoc: string): void {
52
+ if (view && newDoc !== view.state.doc.toString()) {
53
+ view.dispatch({
54
+ changes: {
55
+ from: 0,
56
+ to: view.state.doc.length,
57
+ insert: newDoc
58
+ }
59
+ });
60
+ }
61
+ }
62
+
63
+ function updateLines(): void {
64
+ if (view) {
65
+ view.requestMeasure({ read: updateGutters });
66
+ }
67
+ }
68
+
69
+ function createEditorView(): EditorView {
70
+ const editorView = new EditorView({
71
+ parent: element,
72
+ state: createEditorState(value)
73
+ });
74
+ editorView.dom.addEventListener("focus", handleFocus, true);
75
+ editorView.dom.addEventListener("blur", handleBlur, true);
76
+ return editorView;
77
+ }
78
+
79
+ function handleFocus(): void {
80
+ dispatch("focus");
81
+ }
82
+
83
+ function handleBlur(): void {
84
+ dispatch("blur");
85
+ }
86
+
87
+ function getGutterLineHeight(_view: EditorView): string | null {
88
+ let elements = _view.dom.querySelectorAll<HTMLElement>(".cm-gutterElement");
89
+ if (elements.length === 0) {
90
+ return null;
91
+ }
92
+ for (var i = 0; i < elements.length; i++) {
93
+ let node = elements[i];
94
+ let height = getComputedStyle(node)?.height ?? "0px";
95
+ if (height != "0px") {
96
+ return height;
97
+ }
98
+ }
99
+ return null;
100
+ }
101
+
102
+ function updateGutters(_view: EditorView): any {
103
+ let gutters = _view.dom.querySelectorAll<HTMLElement>(".cm-gutter");
104
+ let _lines = lines + 1;
105
+ let lineHeight = getGutterLineHeight(_view);
106
+ if (!lineHeight) {
107
+ return null;
108
+ }
109
+ for (var i = 0; i < gutters.length; i++) {
110
+ let node = gutters[i];
111
+ node.style.minHeight = `calc(${lineHeight} * ${_lines})`;
112
+ }
113
+ return null;
114
+ }
115
+
116
+ function handleChange(vu: ViewUpdate): void {
117
+ if (vu.docChanged) {
118
+ const doc = vu.state.doc;
119
+ const text = doc.toString();
120
+ value = text;
121
+ dispatch("change", text);
122
+ }
123
+ view.requestMeasure({ read: updateGutters });
124
+ }
125
+
126
+ function getExtensions(): Extension[] {
127
+ const stateExtensions = [
128
+ ...getBaseExtensions(
129
+ basic,
130
+ useTab,
131
+ placeholder,
132
+ readonly,
133
+ lang_extension
134
+ ),
135
+ FontTheme,
136
+ ...getTheme(),
137
+ ...extensions
138
+ ];
139
+ return stateExtensions;
140
+ }
141
+
142
+ const FontTheme = EditorView.theme({
143
+ "&": {
144
+ fontSize: "var(--text-sm)",
145
+ backgroundColor: "var(--border-color-secondary)"
146
+ },
147
+ ".cm-content": {
148
+ paddingTop: "5px",
149
+ paddingBottom: "5px",
150
+ color: "var(--body-text-color)",
151
+ fontFamily: "var(--font-mono)",
152
+ minHeight: "100%"
153
+ },
154
+ ".cm-gutters": {
155
+ marginRight: "1px",
156
+ borderRight: "1px solid var(--border-color-primary)",
157
+ backgroundColor: "transparent",
158
+ color: "var(--body-text-color-subdued)"
159
+ },
160
+ ".cm-focused": {
161
+ outline: "none"
162
+ },
163
+ ".cm-scroller": {
164
+ height: "auto"
165
+ },
166
+ ".cm-cursor": {
167
+ borderLeftColor: "var(--body-text-color)"
168
+ }
169
+ });
170
+
171
+ function createEditorState(_value: string | null | undefined): EditorState {
172
+ return EditorState.create({
173
+ doc: _value ?? undefined,
174
+ extensions: getExtensions()
175
+ });
176
+ }
177
+
178
+ function getBaseExtensions(
179
+ basic: boolean,
180
+ useTab: boolean,
181
+ placeholder: string | HTMLElement | null | undefined,
182
+ readonly: boolean,
183
+ lang: Extension | null | undefined
184
+ ): Extension[] {
185
+ const extensions: Extension[] = [
186
+ EditorView.editable.of(!readonly),
187
+ EditorState.readOnly.of(readonly),
188
+ EditorView.contentAttributes.of({ "aria-label": "Code input container" })
189
+ ];
190
+
191
+ if (basic) {
192
+ extensions.push(basicSetup);
193
+ }
194
+ if (useTab) {
195
+ extensions.push(keymap.of([indentWithTab]));
196
+ }
197
+ if (placeholder) {
198
+ extensions.push(placeholderExt(placeholder));
199
+ }
200
+ if (lang) {
201
+ extensions.push(lang);
202
+ }
203
+
204
+ extensions.push(EditorView.updateListener.of(handleChange));
205
+ return extensions;
206
+ }
207
+
208
+ function getTheme(): Extension[] {
209
+ const extensions: Extension[] = [];
210
+
211
+ if (dark_mode) {
212
+ extensions.push(basicDark);
213
+ } else {
214
+ extensions.push(basicLight);
215
+ }
216
+ return extensions;
217
+ }
218
+
219
+ function reconfigure(): void {
220
+ view?.dispatch({
221
+ effects: StateEffect.reconfigure.of(getExtensions())
222
+ });
223
+ }
224
+
225
+ onMount(() => {
226
+ view = createEditorView();
227
+ return () => view?.destroy();
228
+ });
229
+ </script>
230
+
231
+ <div class="wrap">
232
+ <div class="codemirror-wrapper {classNames}" bind:this={element} />
233
+ </div>
234
+
235
+ <style>
236
+ .wrap {
237
+ display: flex;
238
+ flex-direction: column;
239
+ flex-flow: column;
240
+ margin: 0;
241
+ padding: 0;
242
+ height: 100%;
243
+ }
244
+ .codemirror-wrapper {
245
+ height: 100%;
246
+ overflow: auto;
247
+ }
248
+
249
+ :global(.cm-editor) {
250
+ height: 100%;
251
+ }
252
+
253
+ /* Dunno why this doesn't work through the theme API -- don't remove*/
254
+ :global(.cm-selectionBackground) {
255
+ background-color: #b9d2ff30 !important;
256
+ }
257
+
258
+ :global(.cm-focused) {
259
+ outline: none !important;
260
+ }
261
+ </style>
src/frontend/shared/Copy.svelte ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import { onDestroy } from "svelte";
3
+ import { fade } from "svelte/transition";
4
+ import { Copy, Check } from "@gradio/icons";
5
+
6
+ let copied = false;
7
+ export let value: string;
8
+ let timer: NodeJS.Timeout;
9
+
10
+ function copy_feedback(): void {
11
+ copied = true;
12
+ if (timer) clearTimeout(timer);
13
+ timer = setTimeout(() => {
14
+ copied = false;
15
+ }, 2000);
16
+ }
17
+
18
+ async function handle_copy(): Promise<void> {
19
+ if ("clipboard" in navigator) {
20
+ await navigator.clipboard.writeText(value);
21
+ copy_feedback();
22
+ }
23
+ }
24
+
25
+ onDestroy(() => {
26
+ if (timer) clearTimeout(timer);
27
+ });
28
+ </script>
29
+
30
+ <button
31
+ on:click={handle_copy}
32
+ title="copy"
33
+ class:copied
34
+ aria-roledescription="Copy value"
35
+ aria-label="Copy"
36
+ >
37
+ <Copy />
38
+ {#if copied}
39
+ <span
40
+ class="check"
41
+ transition:fade
42
+ aria-roledescription="Value copied"
43
+ aria-label="Copied"><Check /></span
44
+ >
45
+ {/if}
46
+ </button>
47
+
48
+ <style>
49
+ button {
50
+ position: relative;
51
+ cursor: pointer;
52
+ padding: 5px;
53
+ width: 22px;
54
+ height: 22px;
55
+ }
56
+
57
+ .check {
58
+ position: absolute;
59
+ top: 0;
60
+ right: 0;
61
+ z-index: var(--layer-top);
62
+ background: var(--background-fill-primary);
63
+ padding: var(--size-1);
64
+ width: 100%;
65
+ height: 100%;
66
+ color: var(--body-text-color);
67
+ }
68
+ </style>
src/frontend/shared/Download.svelte ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import { onDestroy } from "svelte";
3
+ import { fade } from "svelte/transition";
4
+ import { Download, Check } from "@gradio/icons";
5
+ import { DownloadLink } from "@gradio/wasm/svelte";
6
+
7
+ export let value: string;
8
+ export let language: string;
9
+
10
+ $: ext = get_ext_for_type(language);
11
+
12
+ function get_ext_for_type(type: string): string {
13
+ const exts: Record<string, string> = {
14
+ py: "py",
15
+ python: "py",
16
+ md: "md",
17
+ markdown: "md",
18
+ json: "json",
19
+ html: "html",
20
+ css: "css",
21
+ js: "js",
22
+ javascript: "js",
23
+ ts: "ts",
24
+ typescript: "ts",
25
+ yaml: "yaml",
26
+ yml: "yml",
27
+ dockerfile: "dockerfile",
28
+ sh: "sh",
29
+ shell: "sh",
30
+ r: "r"
31
+ };
32
+
33
+ return exts[type] || "txt";
34
+ }
35
+
36
+ let copied = false;
37
+ let timer: NodeJS.Timeout;
38
+
39
+ function copy_feedback(): void {
40
+ copied = true;
41
+ if (timer) clearTimeout(timer);
42
+ timer = setTimeout(() => {
43
+ copied = false;
44
+ }, 2000);
45
+ }
46
+
47
+ $: download_value = URL.createObjectURL(new Blob([value]));
48
+
49
+ onDestroy(() => {
50
+ if (timer) clearTimeout(timer);
51
+ });
52
+ </script>
53
+
54
+ <div class="container">
55
+ <DownloadLink
56
+ download="file.{ext}"
57
+ href={download_value}
58
+ on:click={copy_feedback}
59
+ >
60
+ <Download />
61
+ {#if copied}
62
+ <span class="check" transition:fade><Check /></span>
63
+ {/if}
64
+ </DownloadLink>
65
+ </div>
66
+
67
+ <style>
68
+ .container {
69
+ position: relative;
70
+ cursor: pointer;
71
+ padding: 5px;
72
+
73
+ width: 22px;
74
+ height: 22px;
75
+ }
76
+
77
+ .check {
78
+ position: absolute;
79
+ top: 0;
80
+ right: 0;
81
+ z-index: var(--layer-top);
82
+ background: var(--background-fill-primary);
83
+ padding: var(--size-1);
84
+ width: 100%;
85
+ height: 100%;
86
+ color: var(--body-text-color);
87
+ }
88
+ </style>
src/frontend/shared/Widgets.svelte ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import Copy from "./Copy.svelte";
3
+ import Download from "./Download.svelte";
4
+
5
+ export let value: string;
6
+ export let language: string;
7
+ </script>
8
+
9
+ <div>
10
+ <Download {value} {language} />
11
+ <Copy {value} />
12
+ </div>
13
+
14
+ <style>
15
+ div {
16
+ display: flex;
17
+ position: absolute;
18
+ top: var(--block-label-margin);
19
+ right: var(--block-label-margin);
20
+ align-items: center;
21
+
22
+ z-index: var(--layer-2);
23
+ transition: 150ms;
24
+ box-shadow: var(--shadow-drop);
25
+ border: 1px solid var(--border-color-primary);
26
+ border-top: none;
27
+ border-right: none;
28
+ border-radius: var(--block-label-right-radius);
29
+ background: var(--block-label-background-fill);
30
+ overflow: hidden;
31
+ color: var(--block-label-text-color);
32
+ font: var(--font);
33
+ font-size: var(--button-small-text-size);
34
+ }
35
+ </style>
src/frontend/shared/extensions.ts ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Extension } from "@codemirror/state";
2
+ import {
3
+ lineNumbers,
4
+ highlightSpecialChars,
5
+ drawSelection,
6
+ rectangularSelection,
7
+ crosshairCursor,
8
+ keymap
9
+ } from "@codemirror/view";
10
+ export { EditorView } from "@codemirror/view";
11
+ import { EditorState } from "@codemirror/state";
12
+ import {
13
+ foldGutter,
14
+ indentOnInput,
15
+ syntaxHighlighting,
16
+ defaultHighlightStyle,
17
+ foldKeymap
18
+ } from "@codemirror/language";
19
+ import { history, defaultKeymap, historyKeymap } from "@codemirror/commands";
20
+ import {
21
+ closeBrackets,
22
+ closeBracketsKeymap,
23
+ completionKeymap
24
+ } from "@codemirror/autocomplete";
25
+ import { lintKeymap } from "@codemirror/lint";
26
+
27
+ export const basicSetup: Extension = /*@__PURE__*/ ((): Extension[] => [
28
+ lineNumbers(),
29
+ highlightSpecialChars(),
30
+ history(),
31
+ foldGutter(),
32
+ drawSelection(),
33
+ EditorState.allowMultipleSelections.of(true),
34
+ indentOnInput(),
35
+ syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
36
+ closeBrackets(),
37
+ rectangularSelection(),
38
+ crosshairCursor(),
39
+
40
+ keymap.of([
41
+ ...closeBracketsKeymap,
42
+ ...defaultKeymap,
43
+ ...historyKeymap,
44
+ ...foldKeymap,
45
+ ...completionKeymap,
46
+ ...lintKeymap
47
+ ])
48
+ ])();
src/frontend/shared/frontmatter.ts ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type {
2
+ Element,
3
+ MarkdownExtension,
4
+ BlockContext,
5
+ Line
6
+ } from "@lezer/markdown";
7
+ import { parseMixed } from "@lezer/common";
8
+ import { yaml } from "@codemirror/legacy-modes/mode/yaml";
9
+ import { foldInside, foldNodeProp, StreamLanguage } from "@codemirror/language";
10
+ import { styleTags, tags } from "@lezer/highlight";
11
+
12
+ const frontMatterFence = /^---\s*$/m;
13
+
14
+ export const frontmatter: MarkdownExtension = {
15
+ defineNodes: [{ name: "Frontmatter", block: true }, "FrontmatterMark"],
16
+ props: [
17
+ styleTags({
18
+ Frontmatter: [tags.documentMeta, tags.monospace],
19
+ FrontmatterMark: tags.processingInstruction
20
+ }),
21
+ foldNodeProp.add({
22
+ Frontmatter: foldInside,
23
+ FrontmatterMark: () => null
24
+ })
25
+ ],
26
+ wrap: parseMixed((node) => {
27
+ const { parser } = StreamLanguage.define(yaml);
28
+ if (node.type.name === "Frontmatter") {
29
+ return {
30
+ parser,
31
+ overlay: [{ from: node.from + 4, to: node.to - 4 }]
32
+ };
33
+ }
34
+ return null;
35
+ }),
36
+ parseBlock: [
37
+ {
38
+ name: "Frontmatter",
39
+ before: "HorizontalRule",
40
+ parse: (cx: BlockContext, line: Line): boolean => {
41
+ let end: number | undefined = undefined;
42
+ const children = new Array<Element>();
43
+ if (cx.lineStart === 0 && frontMatterFence.test(line.text)) {
44
+ children.push(cx.elt("FrontmatterMark", 0, 4));
45
+ while (cx.nextLine()) {
46
+ if (frontMatterFence.test(line.text)) {
47
+ end = cx.lineStart + 4;
48
+ break;
49
+ }
50
+ }
51
+ if (end !== undefined) {
52
+ children.push(cx.elt("FrontmatterMark", end - 4, end));
53
+ cx.addElement(cx.elt("Frontmatter", 0, end, children));
54
+ }
55
+ return true;
56
+ }
57
+ return false;
58
+ }
59
+ }
60
+ ]
61
+ };
src/frontend/shared/language.ts ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Extension } from "@codemirror/state";
2
+ import { StreamLanguage } from "@codemirror/language";
3
+
4
+ const possible_langs = [
5
+ "python",
6
+ "markdown",
7
+ "json",
8
+ "html",
9
+ "css",
10
+ "javascript",
11
+ "typescript",
12
+ "yaml",
13
+ "dockerfile",
14
+ "shell",
15
+ "r"
16
+ ];
17
+
18
+ const lang_map: Record<string, (() => Promise<Extension>) | undefined> = {
19
+ python: () => import("@codemirror/lang-python").then((m) => m.python()),
20
+ markdown: async () => {
21
+ const [md, frontmatter] = await Promise.all([
22
+ import("@codemirror/lang-markdown"),
23
+ import("./frontmatter")
24
+ ]);
25
+ return md.markdown({ extensions: [frontmatter.frontmatter] });
26
+ },
27
+ json: () => import("@codemirror/lang-json").then((m) => m.json()),
28
+ html: () => import("@codemirror/lang-html").then((m) => m.html()),
29
+ css: () => import("@codemirror/lang-css").then((m) => m.css()),
30
+ javascript: () =>
31
+ import("@codemirror/lang-javascript").then((m) => m.javascript()),
32
+ typescript: () =>
33
+ import("@codemirror/lang-javascript").then((m) =>
34
+ m.javascript({ typescript: true })
35
+ ),
36
+ yaml: () =>
37
+ import("@codemirror/legacy-modes/mode/yaml").then((m) =>
38
+ StreamLanguage.define(m.yaml)
39
+ ),
40
+ dockerfile: () =>
41
+ import("@codemirror/legacy-modes/mode/dockerfile").then((m) =>
42
+ StreamLanguage.define(m.dockerFile)
43
+ ),
44
+ shell: () =>
45
+ import("@codemirror/legacy-modes/mode/shell").then((m) =>
46
+ StreamLanguage.define(m.shell)
47
+ ),
48
+ r: () =>
49
+ import("@codemirror/legacy-modes/mode/r").then((m) =>
50
+ StreamLanguage.define(m.r)
51
+ )
52
+ } as const;
53
+
54
+ const alias_map: Record<string, string> = {
55
+ py: "python",
56
+ md: "markdown",
57
+ js: "javascript",
58
+ ts: "typescript",
59
+ sh: "shell"
60
+ };
61
+
62
+ export async function getLanguageExtension(
63
+ lang: string
64
+ ): Promise<Extension | undefined> {
65
+ const _lang = lang_map[lang] || lang_map[alias_map[lang]] || undefined;
66
+ if (_lang) {
67
+ return _lang();
68
+ }
69
+ return undefined;
70
+ }
src/pyproject.toml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [build-system]
2
+ requires = [
3
+ "hatchling",
4
+ "hatch-requirements-txt",
5
+ "hatch-fancy-pypi-readme>=22.5.0",
6
+ ]
7
+ build-backend = "hatchling.build"
8
+
9
+ [project]
10
+ name = "gradio_highlightedcode"
11
+ version = "0.0.1"
12
+ description = "A variant of the Code component that supports highlighting lines of code."
13
+ readme = "README.md"
14
+ license = "MIT"
15
+ requires-python = ">=3.8"
16
+ authors = [{ name = "YOUR NAME", email = "[email protected]" }]
17
+ keywords = ["gradio-custom-component", "gradio-template-Code", "code", "highlighted", "completion"]
18
+ # Add dependencies here
19
+ dependencies = ["gradio>=4.0,<5.0"]
20
+ classifiers = [
21
+ 'Development Status :: 3 - Alpha',
22
+ 'License :: OSI Approved :: Apache Software License',
23
+ 'Operating System :: OS Independent',
24
+ 'Programming Language :: Python :: 3',
25
+ 'Programming Language :: Python :: 3 :: Only',
26
+ 'Programming Language :: Python :: 3.8',
27
+ 'Programming Language :: Python :: 3.9',
28
+ 'Programming Language :: Python :: 3.10',
29
+ 'Programming Language :: Python :: 3.11',
30
+ 'Topic :: Scientific/Engineering',
31
+ 'Topic :: Scientific/Engineering :: Artificial Intelligence',
32
+ 'Topic :: Scientific/Engineering :: Visualization',
33
+ ]
34
+
35
+ [project.optional-dependencies]
36
+ dev = ["build", "twine"]
37
+
38
+ [tool.hatch.build]
39
+ artifacts = ["/backend/gradio_highlightedcode/templates", "*.pyi", "backend/gradio_highlightedcode/templates"]
40
+
41
+ [tool.hatch.build.targets.wheel]
42
+ packages = ["/backend/gradio_highlightedcode"]