ember-primitives 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +1 -1
  2. package/dist/_app_/components/accordion.js +1 -0
  3. package/dist/color-scheme.js +66 -2
  4. package/dist/color-scheme.js.map +1 -1
  5. package/dist/components/accordion/content.js +5 -0
  6. package/dist/components/accordion/content.js.map +1 -0
  7. package/dist/components/accordion/header.js +6 -0
  8. package/dist/components/accordion/header.js.map +1 -0
  9. package/dist/components/accordion/item.js +6 -0
  10. package/dist/components/accordion/item.js.map +1 -0
  11. package/dist/components/accordion/trigger.js +6 -0
  12. package/dist/components/accordion/trigger.js.map +1 -0
  13. package/dist/components/accordion.js +91 -0
  14. package/dist/components/accordion.js.map +1 -0
  15. package/dist/components/avatar.js +2 -100
  16. package/dist/components/avatar.js.map +1 -1
  17. package/dist/components/form.js +3 -3
  18. package/dist/components/form.js.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/item-AcM4xSqH.js +127 -0
  22. package/dist/item-AcM4xSqH.js.map +1 -0
  23. package/dist-types/color-scheme.d.ts +34 -1
  24. package/dist-types/color-scheme.d.ts.map +1 -1
  25. package/dist-types/components/accordion/content.d.ts +20 -0
  26. package/dist-types/components/accordion/content.d.ts.map +1 -0
  27. package/dist-types/components/accordion/header.d.ts +32 -0
  28. package/dist-types/components/accordion/header.d.ts.map +1 -0
  29. package/dist-types/components/accordion/item.d.ts +45 -0
  30. package/dist-types/components/accordion/item.d.ts.map +1 -0
  31. package/dist-types/components/accordion/trigger.d.ts +19 -0
  32. package/dist-types/components/accordion/trigger.d.ts.map +1 -0
  33. package/dist-types/components/accordion.d.ts +105 -0
  34. package/dist-types/components/accordion.d.ts.map +1 -0
  35. package/dist-types/components/avatar.d.ts.map +1 -1
  36. package/dist-types/components/form.d.ts +28 -3
  37. package/dist-types/components/form.d.ts.map +1 -1
  38. package/dist-types/index.d.ts +1 -0
  39. package/dist-types/index.d.ts.map +1 -1
  40. package/dist-types/template-registry.d.ts +10 -0
  41. package/dist-types/template-registry.d.ts.map +1 -1
  42. package/package.json +10 -8
package/README.md CHANGED
@@ -3,7 +3,7 @@ ember-primitives
3
3
 
4
4
  Primitives for building UI faster.
5
5
 
6
- Docs: ember-primitives.pages.dev/
6
+ Docs: https://ember-primitives.pages.dev/
7
7
 
8
8
 
9
9
  Contributing
@@ -0,0 +1 @@
1
+ export { default } from "ember-primitives/components/accordion";
@@ -1,8 +1,44 @@
1
+ import { waitForPromise } from '@ember/test-waiters';
1
2
  import { cell } from 'ember-resources';
2
3
 
3
4
  const _colorScheme = cell();
5
+ let callbacks = new Set();
6
+ async function runCallbacks(theme) {
7
+ await Promise.resolve();
8
+ for (let ref of callbacks.values()) {
9
+ let callback = ref.deref();
10
+ if (!callback) {
11
+ callbacks.delete(ref);
12
+ } else {
13
+ callback(theme);
14
+ }
15
+ }
16
+ }
17
+
18
+ /**
19
+ * Callback to sync external systems, such as graphing or charting APIs with the theme system.
20
+ *
21
+ * There is no need to remove the callback like you would with `removeEventListener`.
22
+ * It is managed with WeakRefs so memory is cleaned up automatically over time.
23
+ */
24
+ function onUpdate(callback) {
25
+ callbacks.add(new WeakRef(callback));
26
+ }
27
+
28
+ /**
29
+ * Object for managing the color scheme
30
+ */
4
31
  const colorScheme = {
5
- update: value => colorScheme.current = value,
32
+ /**
33
+ * Set's the current color scheme to the passed value
34
+ */
35
+ update: value => {
36
+ colorScheme.current = value;
37
+ waitForPromise(runCallbacks(value));
38
+ },
39
+ /**
40
+ * the current valuel of the "color scheme"
41
+ */
6
42
  get current() {
7
43
  return _colorScheme.current;
8
44
  },
@@ -16,7 +52,18 @@ const colorScheme = {
16
52
  setColorScheme(value);
17
53
  }
18
54
  };
55
+
56
+ /**
57
+ * Synchronizes state of `colorScheme` with the users preferences as well as reconciles with previously set theme in local storage.
58
+ *
59
+ * This may only be called once per app.
60
+ */
19
61
  function sync() {
62
+ /**
63
+ * reset the callbacks
64
+ */
65
+ callbacks = new Set();
66
+
20
67
  /**
21
68
  * If local prefs are set, then we don't care what prefers-color-scheme is
22
69
  */
@@ -39,6 +86,10 @@ function sync() {
39
86
  _colorScheme.current = 'light';
40
87
  }
41
88
  }
89
+
90
+ /**
91
+ * Helper methods to determining what the user's preferred color scheme is
92
+ */
42
93
  const prefers = {
43
94
  dark: () => window.matchMedia('(prefers-color-scheme: dark)').matches,
44
95
  light: () => window.matchMedia('(prefers-color-scheme: light)').matches,
@@ -46,12 +97,20 @@ const prefers = {
46
97
  none: () => window.matchMedia('(prefers-color-scheme: no-preference)').matches
47
98
  };
48
99
  const LOCAL_PREF_KEY = 'ember-primitives/color-scheme#local-preference';
100
+
101
+ /**
102
+ * Helper methods for working with the color scheme preference in local storage
103
+ */
49
104
  const localPreference = {
50
105
  isSet: () => Boolean(localPreference.read()),
51
106
  read: () => localStorage.getItem(LOCAL_PREF_KEY),
52
107
  update: value => localStorage.setItem(LOCAL_PREF_KEY, value),
53
108
  delete: () => localStorage.removeItem(LOCAL_PREF_KEY)
54
109
  };
110
+
111
+ /**
112
+ * For the given element, returns the `color-scheme` of that element.
113
+ */
55
114
  function getColorScheme(element) {
56
115
  let style = styleOf(element);
57
116
  return style.getPropertyValue('color-scheme');
@@ -63,9 +122,14 @@ function setColorScheme(...args) {
63
122
  }
64
123
  if (typeof args[1] === 'string') {
65
124
  styleOf(args[0]).setProperty('color-scheme', args[1]);
125
+ return;
66
126
  }
67
127
  throw new Error(`Invalid arity, expected up to 2 args, received ${args.length}`);
68
128
  }
129
+
130
+ /**
131
+ * Removes the `color-scheme` from the given element
132
+ */
69
133
  function removeColorScheme(element) {
70
134
  let style = styleOf(element);
71
135
  style.removeProperty('color-scheme');
@@ -77,5 +141,5 @@ function styleOf(element) {
77
141
  return document.documentElement.style;
78
142
  }
79
143
 
80
- export { colorScheme, getColorScheme, localPreference, prefers, removeColorScheme, setColorScheme, sync };
144
+ export { colorScheme, getColorScheme, localPreference, onUpdate, prefers, removeColorScheme, setColorScheme, sync };
81
145
  //# sourceMappingURL=color-scheme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"color-scheme.js","sources":["../src/color-scheme.ts"],"sourcesContent":["import { cell } from 'ember-resources';\n\nconst _colorScheme = cell<string | undefined>();\n\nexport const colorScheme = {\n update: (value: string) => (colorScheme.current = value),\n\n get current(): string | undefined {\n return _colorScheme.current;\n },\n set current(value: string | undefined) {\n _colorScheme.current = value;\n\n if (!value) {\n localPreference.delete();\n\n return;\n }\n\n localPreference.update(value);\n setColorScheme(value);\n },\n};\n\nexport function sync() {\n /**\n * If local prefs are set, then we don't care what prefers-color-scheme is\n */\n if (localPreference.isSet()) {\n let pref = localPreference.read();\n\n if (pref === 'dark') {\n setColorScheme('dark');\n\n _colorScheme.current = 'dark';\n\n return;\n }\n\n setColorScheme('light');\n _colorScheme.current = 'light';\n\n return;\n }\n\n if (prefers.dark()) {\n setColorScheme('dark');\n _colorScheme.current = 'dark';\n } else if (prefers.light()) {\n setColorScheme('light');\n _colorScheme.current = 'light';\n }\n}\n\nexport const prefers = {\n dark: () => window.matchMedia('(prefers-color-scheme: dark)').matches,\n light: () => window.matchMedia('(prefers-color-scheme: light)').matches,\n custom: (name: string) => window.matchMedia(`(prefers-color-scheme: ${name})`).matches,\n none: () => window.matchMedia('(prefers-color-scheme: no-preference)').matches,\n};\n\nconst LOCAL_PREF_KEY = 'ember-primitives/color-scheme#local-preference';\n\nexport const localPreference = {\n isSet: () => Boolean(localPreference.read()),\n read: () => localStorage.getItem(LOCAL_PREF_KEY),\n update: (value: string) => localStorage.setItem(LOCAL_PREF_KEY, value),\n delete: () => localStorage.removeItem(LOCAL_PREF_KEY),\n};\n\nexport function getColorScheme(element?: HTMLElement) {\n let style = styleOf(element);\n\n return style.getPropertyValue('color-scheme');\n}\n\nexport function setColorScheme(element: HTMLElement, value: string): void;\nexport function setColorScheme(value: string): void;\n\nexport function setColorScheme(...args: [string] | [HTMLElement, string]): void {\n if (typeof args[0] === 'string') {\n styleOf().setProperty('color-scheme', args[0]);\n\n return;\n }\n\n if (typeof args[1] === 'string') {\n styleOf(args[0]).setProperty('color-scheme', args[1]);\n }\n\n throw new Error(`Invalid arity, expected up to 2 args, received ${args.length}`);\n}\n\nexport function removeColorScheme(element?: HTMLElement) {\n let style = styleOf(element);\n\n style.removeProperty('color-scheme');\n}\n\nfunction styleOf(element?: HTMLElement) {\n if (element) {\n return element.style;\n }\n\n return document.documentElement.style;\n}\n"],"names":["_colorScheme","cell","colorScheme","update","value","current","localPreference","delete","setColorScheme","sync","isSet","pref","read","prefers","dark","light","window","matchMedia","matches","custom","name","none","LOCAL_PREF_KEY","Boolean","localStorage","getItem","setItem","removeItem","getColorScheme","element","style","styleOf","getPropertyValue","args","setProperty","Error","length","removeColorScheme","removeProperty","document","documentElement"],"mappings":"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"}
1
+ {"version":3,"file":"color-scheme.js","sources":["../src/color-scheme.ts"],"sourcesContent":["import { waitForPromise } from '@ember/test-waiters';\n\nimport { cell } from 'ember-resources';\n\nconst _colorScheme = cell<string | undefined>();\n\nlet callbacks: Set<WeakRef<(colorScheme: string) => void>> = new Set();\n\nasync function runCallbacks(theme: string) {\n await Promise.resolve();\n\n for (let ref of callbacks.values()) {\n let callback = ref.deref();\n\n if (!callback) {\n callbacks.delete(ref);\n } else {\n callback(theme);\n }\n }\n}\n\n/**\n * Callback to sync external systems, such as graphing or charting APIs with the theme system.\n *\n * There is no need to remove the callback like you would with `removeEventListener`.\n * It is managed with WeakRefs so memory is cleaned up automatically over time.\n */\nexport function onUpdate(callback: (colorScheme: string) => void) {\n callbacks.add(new WeakRef(callback));\n}\n\n/**\n * Object for managing the color scheme\n */\nexport const colorScheme = {\n /**\n * Set's the current color scheme to the passed value\n */\n update: (value: string) => {\n colorScheme.current = value;\n\n waitForPromise(runCallbacks(value));\n },\n\n /**\n * the current valuel of the \"color scheme\"\n */\n get current(): string | undefined {\n return _colorScheme.current;\n },\n set current(value: string | undefined) {\n _colorScheme.current = value;\n\n if (!value) {\n localPreference.delete();\n\n return;\n }\n\n localPreference.update(value);\n setColorScheme(value);\n },\n};\n\n/**\n * Synchronizes state of `colorScheme` with the users preferences as well as reconciles with previously set theme in local storage.\n *\n * This may only be called once per app.\n */\nexport function sync() {\n /**\n * reset the callbacks\n */\n callbacks = new Set();\n\n /**\n * If local prefs are set, then we don't care what prefers-color-scheme is\n */\n if (localPreference.isSet()) {\n let pref = localPreference.read();\n\n if (pref === 'dark') {\n setColorScheme('dark');\n\n _colorScheme.current = 'dark';\n\n return;\n }\n\n setColorScheme('light');\n _colorScheme.current = 'light';\n\n return;\n }\n\n if (prefers.dark()) {\n setColorScheme('dark');\n _colorScheme.current = 'dark';\n } else if (prefers.light()) {\n setColorScheme('light');\n _colorScheme.current = 'light';\n }\n}\n\n/**\n * Helper methods to determining what the user's preferred color scheme is\n */\nexport const prefers = {\n dark: () => window.matchMedia('(prefers-color-scheme: dark)').matches,\n light: () => window.matchMedia('(prefers-color-scheme: light)').matches,\n custom: (name: string) => window.matchMedia(`(prefers-color-scheme: ${name})`).matches,\n none: () => window.matchMedia('(prefers-color-scheme: no-preference)').matches,\n};\n\nconst LOCAL_PREF_KEY = 'ember-primitives/color-scheme#local-preference';\n\n/**\n * Helper methods for working with the color scheme preference in local storage\n */\nexport const localPreference = {\n isSet: () => Boolean(localPreference.read()),\n read: () => localStorage.getItem(LOCAL_PREF_KEY),\n update: (value: string) => localStorage.setItem(LOCAL_PREF_KEY, value),\n delete: () => localStorage.removeItem(LOCAL_PREF_KEY),\n};\n\n/**\n * For the given element, returns the `color-scheme` of that element.\n */\nexport function getColorScheme(element?: HTMLElement) {\n let style = styleOf(element);\n\n return style.getPropertyValue('color-scheme');\n}\n\nexport function setColorScheme(element: HTMLElement, value: string): void;\nexport function setColorScheme(value: string): void;\n\nexport function setColorScheme(...args: [string] | [HTMLElement, string]): void {\n if (typeof args[0] === 'string') {\n styleOf().setProperty('color-scheme', args[0]);\n\n return;\n }\n\n if (typeof args[1] === 'string') {\n styleOf(args[0]).setProperty('color-scheme', args[1]);\n\n return;\n }\n\n throw new Error(`Invalid arity, expected up to 2 args, received ${args.length}`);\n}\n\n/**\n * Removes the `color-scheme` from the given element\n */\nexport function removeColorScheme(element?: HTMLElement) {\n let style = styleOf(element);\n\n style.removeProperty('color-scheme');\n}\n\nfunction styleOf(element?: HTMLElement) {\n if (element) {\n return element.style;\n }\n\n return document.documentElement.style;\n}\n"],"names":["_colorScheme","cell","callbacks","Set","runCallbacks","theme","Promise","resolve","ref","values","callback","deref","delete","onUpdate","add","WeakRef","colorScheme","update","value","current","waitForPromise","localPreference","setColorScheme","sync","isSet","pref","read","prefers","dark","light","window","matchMedia","matches","custom","name","none","LOCAL_PREF_KEY","Boolean","localStorage","getItem","setItem","removeItem","getColorScheme","element","style","styleOf","getPropertyValue","args","setProperty","Error","length","removeColorScheme","removeProperty","document","documentElement"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import '@ember/component';
2
+ import '@ember/template-compilation';
3
+ import '@glimmer/component';
4
+ export { a as AccordionContent, a as default } from '../../item-AcM4xSqH.js';
5
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,6 @@
1
+ import '@ember/component/template-only';
2
+ import '@ember/component';
3
+ import '@ember/template-compilation';
4
+ import '@ember/helper';
5
+ export { c as AccordionHeader, c as default } from '../../item-AcM4xSqH.js';
6
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,6 @@
1
+ import '@ember/component';
2
+ import '@ember/template-compilation';
3
+ import '@glimmer/component';
4
+ import '@ember/helper';
5
+ export { A as AccordionItem, A as default, g as getDataState } from '../../item-AcM4xSqH.js';
6
+ //# sourceMappingURL=item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,6 @@
1
+ import '@ember/component/template-only';
2
+ import '@ember/component';
3
+ import '@ember/template-compilation';
4
+ import '@ember/modifier';
5
+ export { b as AccordionTrigger, b as default } from '../../item-AcM4xSqH.js';
6
+ //# sourceMappingURL=trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,91 @@
1
+ import { setComponentTemplate } from '@ember/component';
2
+ import { precompileTemplate } from '@ember/template-compilation';
3
+ import Component from '@glimmer/component';
4
+ import { assert } from '@ember/debug';
5
+ import { hash } from '@ember/helper';
6
+ import { localCopy } from 'tracked-toolbox';
7
+ import { A as AccordionItem } from '../item-AcM4xSqH.js';
8
+
9
+ var _dec, _class, _descriptor;
10
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
+ function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
15
+ let Accordion = (_dec = localCopy('args.defaultValue'), (_class = class Accordion extends Component {
16
+ constructor(...args) {
17
+ super(...args);
18
+ _initializerDefineProperty(this, "_internallyManagedValue", _descriptor, this);
19
+ _defineProperty(this, "toggleItem", value => {
20
+ if (this.args.disabled) {
21
+ return;
22
+ }
23
+ if (this.args.type === 'single') {
24
+ this.toggleItemSingle(value);
25
+ } else if (this.args.type === 'multiple') {
26
+ this.toggleItemMultiple(value);
27
+ }
28
+ });
29
+ _defineProperty(this, "toggleItemSingle", value => {
30
+ assert('Cannot call `toggleItemSingle` when `disabled` is true.', !this.args.disabled);
31
+ assert('Cannot call `toggleItemSingle` when `type` is not `single`.', this.args.type === 'single');
32
+ if (value === this.selectedValue && !this.args.collapsible) {
33
+ return;
34
+ }
35
+ const newValue = value === this.selectedValue ? undefined : value;
36
+ if (this.args.onValueChange) {
37
+ this.args.onValueChange(newValue);
38
+ } else {
39
+ this._internallyManagedValue = newValue;
40
+ }
41
+ });
42
+ _defineProperty(this, "toggleItemMultiple", value => {
43
+ assert('Cannot call `toggleItemMultiple` when `disabled` is true.', !this.args.disabled);
44
+ assert('Cannot call `toggleItemMultiple` when `type` is not `multiple`.', this.args.type === 'multiple');
45
+ const currentValues = this.selectedValue ?? [];
46
+ const indexOfValue = currentValues.indexOf(value);
47
+ let newValue;
48
+ if (indexOfValue === -1) {
49
+ newValue = [...currentValues, value];
50
+ } else {
51
+ newValue = [...currentValues.slice(0, indexOfValue), ...currentValues.slice(indexOfValue + 1)];
52
+ }
53
+ if (this.args.onValueChange) {
54
+ this.args.onValueChange(newValue);
55
+ } else {
56
+ this._internallyManagedValue = newValue;
57
+ }
58
+ });
59
+ }
60
+ get selectedValue() {
61
+ return this.args.value ?? this._internallyManagedValue;
62
+ }
63
+ }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "_internallyManagedValue", [_dec], {
64
+ configurable: true,
65
+ enumerable: true,
66
+ writable: true,
67
+ initializer: null
68
+ })), _class));
69
+ setComponentTemplate(precompileTemplate(`
70
+ <div data-disabled={{@disabled}} ...attributes>
71
+ {{yield
72
+ (hash
73
+ Item=(component
74
+ AccordionItem
75
+ selectedValue=this.selectedValue
76
+ toggleItem=this.toggleItem
77
+ disabled=@disabled
78
+ )
79
+ )
80
+ }}
81
+ </div>
82
+ `, {
83
+ strictMode: true,
84
+ scope: () => ({
85
+ hash,
86
+ AccordionItem
87
+ })
88
+ }), Accordion);
89
+
90
+ export { Accordion, Accordion as default };
91
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.js","sources":["../../src/components/accordion.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\n\n// temp\n// https://github.com/tracked-tools/tracked-toolbox/issues/38\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { localCopy } from 'tracked-toolbox';\n\nimport AccordionItem from './accordion/item';\n\nimport type { WithBoundArgs } from '@glint/template';\n\ntype AccordionSingleArgs = {\n /**\n * The type of accordion. If `single`, only one item can be selected at a time. If `multiple`, multiple items can be selected at a time.\n */\n type: 'single';\n /**\n * Whether the accordion is disabled. When `true`, all items cannot be expanded or collapsed.\n */\n disabled?: boolean;\n /**\n * When type is `single`, whether the accordion is collapsible. When `true`, the selected item can be collapsed by clicking its trigger.\n */\n collapsible?: boolean;\n} & (\n | {\n /**\n * The currently selected value. To be used in a controlled fashion in conjunction with `onValueChange`.\n */\n value: string;\n /**\n * A callback that is called when the selected value changes. To be used in a controlled fashion in conjunction with `value`.\n */\n onValueChange: (value: string | undefined) => void;\n /**\n * Not available in a controlled fashion.\n */\n defaultValue?: never;\n }\n | {\n /**\n * Not available in an uncontrolled fashion.\n */\n value?: never;\n /**\n * Not available in an uncontrolled fashion.\n */\n onValueChange?: never;\n /**\n * The default value of the accordion. To be used in an uncontrolled fashion.\n */\n defaultValue?: string;\n }\n);\n\ntype AccordionMultipleArgs = {\n /**\n * The type of accordion. If `single`, only one item can be selected at a time. If `multiple`, multiple items can be selected at a time.\n */\n type: 'multiple';\n /**\n * Whether the accordion is disabled. When `true`, all items cannot be expanded or collapsed.\n */\n disabled?: boolean;\n} & (\n | {\n /**\n * The currently selected values. To be used in a controlled fashion in conjunction with `onValueChange`.\n */\n value: string[];\n /**\n * A callback that is called when the selected values change. To be used in a controlled fashion in conjunction with `value`.\n */\n onValueChange: (value?: string[] | undefined) => void;\n /**\n * Not available in a controlled fashion.\n */\n defaultValue?: never;\n }\n | {\n /**\n * Not available in an uncontrolled fashion.\n */\n value?: never;\n /**\n * Not available in an uncontrolled fashion.\n */\n onValueChange?: never;\n /**\n * The default values of the accordion. To be used in an uncontrolled fashion.\n */\n defaultValue?: string[];\n }\n);\n\nexport class Accordion extends Component<{\n Element: HTMLDivElement;\n Args: AccordionSingleArgs | AccordionMultipleArgs;\n Blocks: {\n default: [\n {\n /**\n * The AccordionItem component.\n */\n Item: WithBoundArgs<typeof AccordionItem, 'selectedValue' | 'toggleItem' | 'disabled'>;\n },\n ];\n };\n}> {\n [__GLIMMER_TEMPLATE(`\n <div data-disabled={{@disabled}} ...attributes>\n {{yield\n (hash\n Item=(component\n AccordionItem\n selectedValue=this.selectedValue\n toggleItem=this.toggleItem\n disabled=@disabled\n )\n )\n }}\n </div>\n `, { strictMode: true, scope: () => ({hash,AccordionItem}) })]\n\n @localCopy('args.defaultValue') declare _internallyManagedValue?: string | string[];\n\n get selectedValue() {\n return this.args.value ?? this._internallyManagedValue;\n }\n\n toggleItem = (value: string) => {\n if (this.args.disabled) {\n return;\n }\n\n if (this.args.type === 'single') {\n this.toggleItemSingle(value);\n } else if (this.args.type === 'multiple') {\n this.toggleItemMultiple(value);\n }\n };\n\n toggleItemSingle = (value: string) => {\n assert('Cannot call `toggleItemSingle` when `disabled` is true.', !this.args.disabled);\n assert(\n 'Cannot call `toggleItemSingle` when `type` is not `single`.',\n this.args.type === 'single',\n );\n\n if (value === this.selectedValue && !this.args.collapsible) {\n return;\n }\n\n const newValue = value === this.selectedValue ? undefined : value;\n\n if (this.args.onValueChange) {\n this.args.onValueChange(newValue);\n } else {\n this._internallyManagedValue = newValue;\n }\n };\n\n toggleItemMultiple = (value: string) => {\n assert('Cannot call `toggleItemMultiple` when `disabled` is true.', !this.args.disabled);\n assert(\n 'Cannot call `toggleItemMultiple` when `type` is not `multiple`.',\n this.args.type === 'multiple',\n );\n\n const currentValues = (this.selectedValue as string[] | undefined) ?? [];\n const indexOfValue = currentValues.indexOf(value);\n let newValue: string[];\n\n if (indexOfValue === -1) {\n newValue = [...currentValues, value];\n } else {\n newValue = [\n ...currentValues.slice(0, indexOfValue),\n ...currentValues.slice(indexOfValue + 1),\n ];\n }\n\n if (this.args.onValueChange) {\n this.args.onValueChange(newValue);\n } else {\n this._internallyManagedValue = newValue;\n }\n };\n}\n\nexport default Accordion;\n\nexport { type AccordionContentExternalSignature } from './accordion/content';\nexport { type AccordionHeaderExternalSignature } from './accordion/header';\nexport { type AccordionItemExternalSignature } from './accordion/item';\nexport { type AccordionTriggerExternalSignature } from './accordion/trigger';\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlcyI6WyJhY2NvcmRpb24uZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BlbWJlci9kZWJ1Zyc7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5cbi8vIHRlbXBcbi8vICBodHRwczovL2dpdGh1Yi5jb20vdHJhY2tlZC10b29scy90cmFja2VkLXRvb2xib3gvaXNzdWVzLzM4XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBsb2NhbENvcHkgfSBmcm9tICd0cmFja2VkLXRvb2xib3gnO1xuXG5pbXBvcnQgQWNjb3JkaW9uSXRlbSBmcm9tICcuL2FjY29yZGlvbi9pdGVtJztcblxuaW1wb3J0IHR5cGUgeyBXaXRoQm91bmRBcmdzIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxudHlwZSBBY2NvcmRpb25TaW5nbGVBcmdzID0ge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgYWNjb3JkaW9uLiBJZiBgc2luZ2xlYCwgb25seSBvbmUgaXRlbSBjYW4gYmUgc2VsZWN0ZWQgYXQgYSB0aW1lLiBJZiBgbXVsdGlwbGVgLCBtdWx0aXBsZSBpdGVtcyBjYW4gYmUgc2VsZWN0ZWQgYXQgYSB0aW1lLlxuICAgKi9cbiAgdHlwZTogJ3NpbmdsZSc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY2NvcmRpb24gaXMgZGlzYWJsZWQuIFdoZW4gYHRydWVgLCBhbGwgaXRlbXMgY2Fubm90IGJlIGV4cGFuZGVkIG9yIGNvbGxhcHNlZC5cbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZW4gdHlwZSBpcyBgc2luZ2xlYCwgd2hldGhlciB0aGUgYWNjb3JkaW9uIGlzIGNvbGxhcHNpYmxlLiBXaGVuIGB0cnVlYCwgdGhlIHNlbGVjdGVkIGl0ZW0gY2FuIGJlIGNvbGxhcHNlZCBieSBjbGlja2luZyBpdHMgdHJpZ2dlci5cbiAgICovXG4gIGNvbGxhcHNpYmxlPzogYm9vbGVhbjtcbn0gJiAoXG4gIHwge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHZhbHVlLiBUbyBiZSB1c2VkIGluIGEgY29udHJvbGxlZCBmYXNoaW9uIGluIGNvbmp1bmN0aW9uIHdpdGggYG9uVmFsdWVDaGFuZ2VgLlxuICAgICAgICovXG4gICAgICB2YWx1ZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBBIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIGNoYW5nZXMuIFRvIGJlIHVzZWQgaW4gYSBjb250cm9sbGVkIGZhc2hpb24gaW4gY29uanVuY3Rpb24gd2l0aCBgdmFsdWVgLlxuICAgICAgICovXG4gICAgICBvblZhbHVlQ2hhbmdlOiAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcbiAgICAgIC8qKlxuICAgICAgICogTm90IGF2YWlsYWJsZSBpbiBhIGNvbnRyb2xsZWQgZmFzaGlvbi5cbiAgICAgICAqL1xuICAgICAgZGVmYXVsdFZhbHVlPzogbmV2ZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogTm90IGF2YWlsYWJsZSBpbiBhbiB1bmNvbnRyb2xsZWQgZmFzaGlvbi5cbiAgICAgICAqL1xuICAgICAgdmFsdWU/OiBuZXZlcjtcbiAgICAgIC8qKlxuICAgICAgICogTm90IGF2YWlsYWJsZSBpbiBhbiB1bmNvbnRyb2xsZWQgZmFzaGlvbi5cbiAgICAgICAqL1xuICAgICAgb25WYWx1ZUNoYW5nZT86IG5ldmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgYWNjb3JkaW9uLiBUbyBiZSB1c2VkIGluIGFuIHVuY29udHJvbGxlZCBmYXNoaW9uLlxuICAgICAgICovXG4gICAgICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gICAgfVxuKTtcblxudHlwZSBBY2NvcmRpb25NdWx0aXBsZUFyZ3MgPSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhY2NvcmRpb24uIElmIGBzaW5nbGVgLCBvbmx5IG9uZSBpdGVtIGNhbiBiZSBzZWxlY3RlZCBhdCBhIHRpbWUuIElmIGBtdWx0aXBsZWAsIG11bHRpcGxlIGl0ZW1zIGNhbiBiZSBzZWxlY3RlZCBhdCBhIHRpbWUuXG4gICAqL1xuICB0eXBlOiAnbXVsdGlwbGUnO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgYWNjb3JkaW9uIGlzIGRpc2FibGVkLiBXaGVuIGB0cnVlYCwgYWxsIGl0ZW1zIGNhbm5vdCBiZSBleHBhbmRlZCBvciBjb2xsYXBzZWQuXG4gICAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59ICYgKFxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCB2YWx1ZXMuIFRvIGJlIHVzZWQgaW4gYSBjb250cm9sbGVkIGZhc2hpb24gaW4gY29uanVuY3Rpb24gd2l0aCBgb25WYWx1ZUNoYW5nZWAuXG4gICAgICAgKi9cbiAgICAgIHZhbHVlOiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogQSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBzZWxlY3RlZCB2YWx1ZXMgY2hhbmdlLiBUbyBiZSB1c2VkIGluIGEgY29udHJvbGxlZCBmYXNoaW9uIGluIGNvbmp1bmN0aW9uIHdpdGggYHZhbHVlYC5cbiAgICAgICAqL1xuICAgICAgb25WYWx1ZUNoYW5nZTogKHZhbHVlPzogc3RyaW5nW10gfCB1bmRlZmluZWQpID0+IHZvaWQ7XG4gICAgICAvKipcbiAgICAgICAqIE5vdCBhdmFpbGFibGUgaW4gYSBjb250cm9sbGVkIGZhc2hpb24uXG4gICAgICAgKi9cbiAgICAgIGRlZmF1bHRWYWx1ZT86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICAvKipcbiAgICAgICAqIE5vdCBhdmFpbGFibGUgaW4gYW4gdW5jb250cm9sbGVkIGZhc2hpb24uXG4gICAgICAgKi9cbiAgICAgIHZhbHVlPzogbmV2ZXI7XG4gICAgICAvKipcbiAgICAgICAqIE5vdCBhdmFpbGFibGUgaW4gYW4gdW5jb250cm9sbGVkIGZhc2hpb24uXG4gICAgICAgKi9cbiAgICAgIG9uVmFsdWVDaGFuZ2U/OiBuZXZlcjtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIGRlZmF1bHQgdmFsdWVzIG9mIHRoZSBhY2NvcmRpb24uIFRvIGJlIHVzZWQgaW4gYW4gdW5jb250cm9sbGVkIGZhc2hpb24uXG4gICAgICAgKi9cbiAgICAgIGRlZmF1bHRWYWx1ZT86IHN0cmluZ1tdO1xuICAgIH1cbik7XG5cbmV4cG9ydCBjbGFzcyBBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnQ8e1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczogQWNjb3JkaW9uU2luZ2xlQXJncyB8IEFjY29yZGlvbk11bHRpcGxlQXJncztcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIEFjY29yZGlvbkl0ZW0gY29tcG9uZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgSXRlbTogV2l0aEJvdW5kQXJnczx0eXBlb2YgQWNjb3JkaW9uSXRlbSwgJ3NlbGVjdGVkVmFsdWUnIHwgJ3RvZ2dsZUl0ZW0nIHwgJ2Rpc2FibGVkJz47XG4gICAgICB9LFxuICAgIF07XG4gIH07XG59PiB7XG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGRhdGEtZGlzYWJsZWQ9e3tAZGlzYWJsZWR9fSAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZFxuICAgICAgICAoaGFzaFxuICAgICAgICAgIEl0ZW09KGNvbXBvbmVudFxuICAgICAgICAgICAgQWNjb3JkaW9uSXRlbVxuICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZT10aGlzLnNlbGVjdGVkVmFsdWVcbiAgICAgICAgICAgIHRvZ2dsZUl0ZW09dGhpcy50b2dnbGVJdGVtXG4gICAgICAgICAgICBkaXNhYmxlZD1AZGlzYWJsZWRcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH19XG4gICAgPC9kaXY+XG4gIDwvdGVtcGxhdGU+XG5cbiAgQGxvY2FsQ29weSgnYXJncy5kZWZhdWx0VmFsdWUnKSBkZWNsYXJlIF9pbnRlcm5hbGx5TWFuYWdlZFZhbHVlPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgZ2V0IHNlbGVjdGVkVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy52YWx1ZSA/PyB0aGlzLl9pbnRlcm5hbGx5TWFuYWdlZFZhbHVlO1xuICB9XG5cbiAgdG9nZ2xlSXRlbSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKHRoaXMuYXJncy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFyZ3MudHlwZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMudG9nZ2xlSXRlbVNpbmdsZSh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFyZ3MudHlwZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgdGhpcy50b2dnbGVJdGVtTXVsdGlwbGUodmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICB0b2dnbGVJdGVtU2luZ2xlID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBhc3NlcnQoJ0Nhbm5vdCBjYWxsIGB0b2dnbGVJdGVtU2luZ2xlYCB3aGVuIGBkaXNhYmxlZGAgaXMgdHJ1ZS4nLCAhdGhpcy5hcmdzLmRpc2FibGVkKTtcbiAgICBhc3NlcnQoXG4gICAgICAnQ2Fubm90IGNhbGwgYHRvZ2dsZUl0ZW1TaW5nbGVgIHdoZW4gYHR5cGVgIGlzIG5vdCBgc2luZ2xlYC4nLFxuICAgICAgdGhpcy5hcmdzLnR5cGUgPT09ICdzaW5nbGUnLFxuICAgICk7XG5cbiAgICBpZiAodmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZSAmJiAhdGhpcy5hcmdzLmNvbGxhcHNpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlID8gdW5kZWZpbmVkIDogdmFsdWU7XG5cbiAgICBpZiAodGhpcy5hcmdzLm9uVmFsdWVDaGFuZ2UpIHtcbiAgICAgIHRoaXMuYXJncy5vblZhbHVlQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faW50ZXJuYWxseU1hbmFnZWRWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgfTtcblxuICB0b2dnbGVJdGVtTXVsdGlwbGUgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGFzc2VydCgnQ2Fubm90IGNhbGwgYHRvZ2dsZUl0ZW1NdWx0aXBsZWAgd2hlbiBgZGlzYWJsZWRgIGlzIHRydWUuJywgIXRoaXMuYXJncy5kaXNhYmxlZCk7XG4gICAgYXNzZXJ0KFxuICAgICAgJ0Nhbm5vdCBjYWxsIGB0b2dnbGVJdGVtTXVsdGlwbGVgIHdoZW4gYHR5cGVgIGlzIG5vdCBgbXVsdGlwbGVgLicsXG4gICAgICB0aGlzLmFyZ3MudHlwZSA9PT0gJ211bHRpcGxlJyxcbiAgICApO1xuXG4gICAgY29uc3QgY3VycmVudFZhbHVlcyA9ICh0aGlzLnNlbGVjdGVkVmFsdWUgYXMgc3RyaW5nW10gfCB1bmRlZmluZWQpID8/IFtdO1xuICAgIGNvbnN0IGluZGV4T2ZWYWx1ZSA9IGN1cnJlbnRWYWx1ZXMuaW5kZXhPZih2YWx1ZSk7XG4gICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmdbXTtcblxuICAgIGlmIChpbmRleE9mVmFsdWUgPT09IC0xKSB7XG4gICAgICBuZXdWYWx1ZSA9IFsuLi5jdXJyZW50VmFsdWVzLCB2YWx1ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1ZhbHVlID0gW1xuICAgICAgICAuLi5jdXJyZW50VmFsdWVzLnNsaWNlKDAsIGluZGV4T2ZWYWx1ZSksXG4gICAgICAgIC4uLmN1cnJlbnRWYWx1ZXMuc2xpY2UoaW5kZXhPZlZhbHVlICsgMSksXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFyZ3Mub25WYWx1ZUNoYW5nZSkge1xuICAgICAgdGhpcy5hcmdzLm9uVmFsdWVDaGFuZ2UobmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbGx5TWFuYWdlZFZhbHVlID0gbmV3VmFsdWU7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBBY2NvcmRpb247XG5cbmV4cG9ydCB7IHR5cGUgQWNjb3JkaW9uQ29udGVudEV4dGVybmFsU2lnbmF0dXJlIH0gZnJvbSAnLi9hY2NvcmRpb24vY29udGVudCc7XG5leHBvcnQgeyB0eXBlIEFjY29yZGlvbkhlYWRlckV4dGVybmFsU2lnbmF0dXJlIH0gZnJvbSAnLi9hY2NvcmRpb24vaGVhZGVyJztcbmV4cG9ydCB7IHR5cGUgQWNjb3JkaW9uSXRlbUV4dGVybmFsU2lnbmF0dXJlIH0gZnJvbSAnLi9hY2NvcmRpb24vaXRlbSc7XG5leHBvcnQgeyB0eXBlIEFjY29yZGlvblRyaWdnZXJFeHRlcm5hbFNpZ25hdHVyZSB9IGZyb20gJy4vYWNjb3JkaW9uL3RyaWdnZXInO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckM7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QztBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JEO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9GLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25JLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUNGO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBQ0Y7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9GLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMscUJBQVU7QUFDWjs7Ozs7Ozs7Ozs7O0NBWUMsQ0FBQyw4REFBVztBQUNiO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUMsQ0FBQztBQUNIO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0w7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSjtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ047QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RTtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNKO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0w7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBQ0Q7QUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCO0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7In0="],"names":["Accordion","_dec","localCopy","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","value","disabled","type","toggleItemSingle","toggleItemMultiple","assert","selectedValue","collapsible","newValue","undefined","onValueChange","_internallyManagedValue","currentValues","indexOfValue","indexOf","slice","_applyDecoratedDescriptor","prototype","configurable","enumerable","writable","initializer","setComponentTemplate","precompileTemplate","strictMode","scope","hash","AccordionItem"],"mappings":"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"}
@@ -2,107 +2,9 @@ import templateOnly from '@ember/component/template-only';
2
2
  import { setComponentTemplate } from '@ember/component';
3
3
  import { precompileTemplate } from '@ember/template-compilation';
4
4
  import { hash } from '@ember/helper';
5
- import { resourceFactory, resource, cell } from 'ember-resources';
6
- import { trackedFunction } from 'ember-resources/util/function';
5
+ import { ReactiveImage } from 'reactiveweb/image';
6
+ import { WaitUntil } from 'reactiveweb/wait-until';
7
7
 
8
- // TODO: Change to
9
- // function ReactiveImage(url) {
10
- // when the babel plugin is complete
11
- const ReactiveImage = resourceFactory(url => {
12
- return resource(({
13
- use
14
- }) => {
15
- let readonlyReactive = use(trackedFunction(async () => {
16
- /**
17
- * NOTE: Image#onerror is a global error.
18
- * So in testing, the error escapes the confines
19
- * of this promise handler (trackedFunction)
20
- *
21
- * We need to "swallow the rejection" and re-throw
22
- * by wrapping in an extra promise.
23
- */
24
- let image = new window.Image();
25
- function loadImage() {
26
- /**
27
- * Note tha lack of reject callback.
28
- * This is what allows us to capture "global errors"
29
- * thrown by image.onerror
30
- *
31
- * Additionally, the global error does not have a stack trace.
32
- * And we want to provide a stack trace for easier debugging.
33
- *
34
- */
35
- return new Promise(resolve => {
36
- image.onload = resolve;
37
-
38
- /**
39
- * The error passed to onerror doesn't look that useful.
40
- * But we'll log it just in case.
41
- *
42
- */
43
- image.onerror = error => {
44
- console.error(`Image failed to load at ${url}`, error);
45
-
46
- /**
47
- * If we use real reject, we cause an un-catchable error
48
- */
49
- resolve('soft-rejected');
50
- };
51
- image.src = url;
52
- });
53
- }
54
- return await loadImage();
55
- }));
56
-
57
- /**
58
- * Here we both forward the state of trackedFunction
59
- * as well as re-define how we want to determine what isError, value, and isResolved
60
- * mean.
61
- *
62
- * This is because trackedFunction does not capture errors.
63
- * I believe it _should_ though, so this may be a bug.
64
- *
65
- * If it ends up being a bug in trackedFunction,
66
- * then we can delete all this, and only do:
67
- *
68
- * return () => readonlyReactive.current;
69
- */
70
- const isError = () => readonlyReactive.current.value === 'soft-rejected';
71
- return {
72
- get isError() {
73
- return isError();
74
- },
75
- get value() {
76
- if (isError()) return null;
77
- return readonlyReactive.current.value;
78
- },
79
- get isResolved() {
80
- if (isError()) return false;
81
- return readonlyReactive.current.isResolved;
82
- },
83
- get isLoading() {
84
- return readonlyReactive.current.isLoading;
85
- }
86
- };
87
- });
88
- });
89
- const WaitUntil = resourceFactory(delayMs => {
90
- return resource(({
91
- on
92
- }) => {
93
- // If we don't have a delay, we can start with
94
- // immediately saying "we're done waiting"
95
- let initialValue = delayMs ? false : true;
96
- let delayFinished = cell(initialValue);
97
- if (delayMs) {
98
- let timer = setTimeout(() => delayFinished.current = true, delayMs);
99
- on.cleanup(() => clearTimeout(timer));
100
- }
101
-
102
- // Collapse the state that Cell provides to just a boolean
103
- return () => delayFinished.current;
104
- });
105
- });
106
8
  const Fallback = setComponentTemplate(precompileTemplate(`
107
9
  {{#unless @isLoaded}}
108
10
  {{#let (WaitUntil @delayMs) as |delayFinished|}}