{"version":3,"file":"kritzel-angular.mjs","sources":["../../../projects/lib/src/lib/angular-component-lib/utils.ts","../../../projects/lib/src/lib/proxy.ts","../../../projects/lib/src/lib/index.ts","../../../projects/lib/src/lib/provide.function.ts","../../../projects/lib/src/kritzel-angular.ts"],"sourcesContent":["/* eslint-disable */\n/* tslint:disable */\nimport { fromEvent } from 'rxjs';\n\nexport const proxyInputs = (Cmp: any, inputs: string[]) => {\n  const Prototype = Cmp.prototype;\n  inputs.forEach((item) => {\n    Object.defineProperty(Prototype, item, {\n      get() {\n        return this.el[item];\n      },\n      set(val: any) {\n        this.z.runOutsideAngular(() => (this.el[item] = val));\n      },\n      /**\n       * In the event that proxyInputs is called\n       * multiple times re-defining these inputs\n       * will cause an error to be thrown. As a result\n       * we set configurable: true to indicate these\n       * properties can be changed.\n       */\n      configurable: true,\n    });\n  });\n};\n\nexport const proxyMethods = (Cmp: any, methods: string[]) => {\n  const Prototype = Cmp.prototype;\n  methods.forEach((methodName) => {\n    Prototype[methodName] = function () {\n      const args = arguments;\n      return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));\n    };\n  });\n};\n\nexport const proxyOutputs = (instance: any, el: any, events: string[]) => {\n  events.forEach((eventName) => (instance[eventName] = fromEvent(el, eventName)));\n};\n\nexport const defineCustomElement = (tagName: string, customElement: any) => {\n  if (customElement !== undefined && typeof customElements !== 'undefined' && !customElements.get(tagName)) {\n    customElements.define(tagName, customElement);\n  }\n};\n\n// tslint:disable-next-line: only-arrow-functions\nexport function ProxyCmp(opts: { defineCustomElementFn?: () => void; inputs?: any; methods?: any }) {\n  const decorator = function (cls: any) {\n    const { defineCustomElementFn, inputs, methods } = opts;\n\n    if (defineCustomElementFn !== undefined) {\n      defineCustomElementFn();\n    }\n\n    if (inputs) {\n      proxyInputs(cls, inputs);\n    }\n    if (methods) {\n      proxyMethods(cls, methods);\n    }\n    return cls;\n  };\n  return decorator;\n}\n","/* tslint:disable */\n/* auto-generated angular directive proxies */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Output, NgZone } from '@angular/core';\n\nimport { ProxyCmp } from './angular-component-lib/utils';\n\nimport type { Components } from 'kritzel-stencil/dist/components';\n\nimport { defineCustomElement as defineKritzelBackToContent } from 'kritzel-stencil/dist/components/kritzel-back-to-content.js';\nimport { defineCustomElement as defineKritzelDialog } from 'kritzel-stencil/dist/components/kritzel-dialog.js';\nimport { defineCustomElement as defineKritzelEditor } from 'kritzel-stencil/dist/components/kritzel-editor.js';\nimport { defineCustomElement as defineKritzelExport } from 'kritzel-stencil/dist/components/kritzel-export.js';\nimport { defineCustomElement as defineKritzelInput } from 'kritzel-stencil/dist/components/kritzel-input.js';\nimport { defineCustomElement as defineKritzelLineEndings } from 'kritzel-stencil/dist/components/kritzel-line-endings.js';\nimport { defineCustomElement as defineKritzelMasterDetail } from 'kritzel-stencil/dist/components/kritzel-master-detail.js';\nimport { defineCustomElement as defineKritzelNumericInput } from 'kritzel-stencil/dist/components/kritzel-numeric-input.js';\nimport { defineCustomElement as defineKritzelOpacitySlider } from 'kritzel-stencil/dist/components/kritzel-opacity-slider.js';\nimport { defineCustomElement as defineKritzelPillTabs } from 'kritzel-stencil/dist/components/kritzel-pill-tabs.js';\nimport { defineCustomElement as defineKritzelSettings } from 'kritzel-stencil/dist/components/kritzel-settings.js';\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelBackToContent,\n  inputs: ['text', 'visible']\n})\n@Component({\n  selector: 'kritzel-back-to-content',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['text', 'visible'],\n  outputs: ['backToContent'],\n})\nexport class KritzelBackToContent {\n  protected el: HTMLKritzelBackToContentElement;\n  @Output() backToContent = new EventEmitter<CustomEvent<void>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nexport declare interface KritzelBackToContent extends Components.KritzelBackToContent {\n  /**\n   * Emitted when the button is clicked\n   */\n  backToContent: EventEmitter<CustomEvent<void>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelDialog,\n  inputs: ['autoFocus', 'closable', 'closeOnBackdrop', 'closeOnEscape', 'dialogTitle', 'fullscreenOnMobile', 'isOpen', 'size', 'trapFocus'],\n  methods: ['open', 'close', 'focusFirstElement']\n})\n@Component({\n  selector: 'kritzel-dialog',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['autoFocus', 'closable', 'closeOnBackdrop', 'closeOnEscape', 'dialogTitle', 'fullscreenOnMobile', 'isOpen', 'size', 'trapFocus'],\n  outputs: ['dialogOpen', 'dialogClose'],\n})\nexport class KritzelDialog {\n  protected el: HTMLKritzelDialogElement;\n  @Output() dialogOpen = new EventEmitter<CustomEvent<void>>();\n  @Output() dialogClose = new EventEmitter<CustomEvent<IKritzelDialogIKritzelDialogCloseEvent>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nimport type { IKritzelDialogCloseEvent as IKritzelDialogIKritzelDialogCloseEvent } from 'kritzel-stencil/dist/components';\n\nexport declare interface KritzelDialog extends Components.KritzelDialog {\n  /**\n   * Emitted when the dialog opens\n   */\n  dialogOpen: EventEmitter<CustomEvent<void>>;\n  /**\n   * Emitted when the dialog closes\n   */\n  dialogClose: EventEmitter<CustomEvent<IKritzelDialogIKritzelDialogCloseEvent>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelEditor,\n  inputs: ['activeUsers', 'activeWorkspaceId', 'controls', 'customSvgIcons', 'editorId', 'globalContextMenuItems', 'isControlsVisible', 'isUtilityPanelVisible', 'lockDrawingScale', 'objectContextMenuItems', 'scaleMax', 'scaleMin', 'syncConfig', 'user', 'viewportBoundaryBottom', 'viewportBoundaryLeft', 'viewportBoundaryRight', 'viewportBoundaryTop', 'wheelEnabled'],\n  methods: ['getObjectById', 'addObject', 'updateObject', 'removeObject', 'getSelectedObjects', 'selectObjects', 'selectAllObjectsInViewport', 'clearSelection', 'centerObjectInViewport', 'backToContent', 'centerAllObjects', 'setViewport', 'panTo', 'zoomTo', 'getViewport', 'screenToWorld', 'worldToScreen', 'createWorkspace', 'updateWorkspace', 'deleteWorkspace', 'getWorkspaces', 'getActiveWorkspace', 'loadSharedWorkspace', 'registerTool', 'changeActiveTool', 'disable', 'enable', 'copy', 'paste', 'delete', 'bringForward', 'sendBackward', 'bringToFront', 'sendToBack', 'alignObjects', 'group', 'ungroup', 'undo', 'redo', 'getScreenshot', 'exportViewportAsPng', 'exportViewportAsSvg', 'downloadAsJson', 'importFromFile', 'loadObjectsFromJson', 'getObjectsTotalCount', 'getAllObjects', 'findObjects', 'getCopiedObjects', 'getObjectsInViewport', 'hideContextMenu', 'triggerSelectionChange', 'getDisplayableShortcuts']\n})\n@Component({\n  selector: 'kritzel-editor',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['activeUsers', 'activeWorkspaceId', 'controls', 'customSvgIcons', 'editorId', 'globalContextMenuItems', 'isControlsVisible', 'isUtilityPanelVisible', 'lockDrawingScale', 'objectContextMenuItems', 'scaleMax', 'scaleMin', 'syncConfig', 'user', 'viewportBoundaryBottom', 'viewportBoundaryLeft', 'viewportBoundaryRight', 'viewportBoundaryTop', 'wheelEnabled'],\n  outputs: ['isReady', 'activeWorkspaceChange', 'objectsChange', 'objectsAdded', 'objectsRemoved', 'objectsUpdated', 'undoStateChange', 'themeChange', 'viewportChange', 'logout', 'linkShareChange'],\n})\nexport class KritzelEditor {\n  protected el: HTMLKritzelEditorElement;\n  @Output() isReady = new EventEmitter<CustomEvent<HTMLElement>>();\n  @Output() activeWorkspaceChange = new EventEmitter<CustomEvent<IKritzelEditorKritzelWorkspace>>();\n  @Output() objectsChange = new EventEmitter<CustomEvent<IKritzelEditorKritzelBaseObject[]>>();\n  @Output() objectsAdded = new EventEmitter<CustomEvent<IKritzelEditorObjectsAddedEvent>>();\n  @Output() objectsRemoved = new EventEmitter<CustomEvent<IKritzelEditorObjectsRemovedEvent>>();\n  @Output() objectsUpdated = new EventEmitter<CustomEvent<IKritzelEditorObjectsUpdatedEvent>>();\n  @Output() undoStateChange = new EventEmitter<CustomEvent<IKritzelEditorKritzelUndoState>>();\n  @Output() themeChange = new EventEmitter<CustomEvent<IKritzelEditorThemeName>>();\n  @Output() viewportChange = new EventEmitter<CustomEvent<IKritzelEditorKritzelViewportState>>();\n  @Output() logout = new EventEmitter<CustomEvent<void>>();\n  @Output() linkShareChange = new EventEmitter<CustomEvent<IKritzelEditorIKritzelLinkShareChangedEvent>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nimport type { KritzelWorkspace as IKritzelEditorKritzelWorkspace } from 'kritzel-stencil/dist/components';\nimport type { KritzelBaseObject as IKritzelEditorKritzelBaseObject } from 'kritzel-stencil/dist/components';\nimport type { ObjectsAddedEvent as IKritzelEditorObjectsAddedEvent } from 'kritzel-stencil/dist/components';\nimport type { ObjectsRemovedEvent as IKritzelEditorObjectsRemovedEvent } from 'kritzel-stencil/dist/components';\nimport type { ObjectsUpdatedEvent as IKritzelEditorObjectsUpdatedEvent } from 'kritzel-stencil/dist/components';\nimport type { KritzelUndoState as IKritzelEditorKritzelUndoState } from 'kritzel-stencil/dist/components';\nimport type { ThemeName as IKritzelEditorThemeName } from 'kritzel-stencil/dist/components';\nimport type { KritzelViewportState as IKritzelEditorKritzelViewportState } from 'kritzel-stencil/dist/components';\nimport type { IKritzelLinkShareChangedEvent as IKritzelEditorIKritzelLinkShareChangedEvent } from 'kritzel-stencil/dist/components';\n\nexport declare interface KritzelEditor extends Components.KritzelEditor {\n\n  isReady: EventEmitter<CustomEvent<HTMLElement>>;\n\n  activeWorkspaceChange: EventEmitter<CustomEvent<IKritzelEditorKritzelWorkspace>>;\n\n  objectsChange: EventEmitter<CustomEvent<IKritzelEditorKritzelBaseObject[]>>;\n\n  objectsAdded: EventEmitter<CustomEvent<IKritzelEditorObjectsAddedEvent>>;\n\n  objectsRemoved: EventEmitter<CustomEvent<IKritzelEditorObjectsRemovedEvent>>;\n\n  objectsUpdated: EventEmitter<CustomEvent<IKritzelEditorObjectsUpdatedEvent>>;\n\n  undoStateChange: EventEmitter<CustomEvent<IKritzelEditorKritzelUndoState>>;\n\n  themeChange: EventEmitter<CustomEvent<IKritzelEditorThemeName>>;\n\n  viewportChange: EventEmitter<CustomEvent<IKritzelEditorKritzelViewportState>>;\n\n  logout: EventEmitter<CustomEvent<void>>;\n\n  linkShareChange: EventEmitter<CustomEvent<IKritzelEditorIKritzelLinkShareChangedEvent>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelExport,\n  inputs: ['workspaceName'],\n  methods: ['open']\n})\n@Component({\n  selector: 'kritzel-export',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['workspaceName'],\n  outputs: ['exportPng', 'exportSvg', 'exportJson'],\n})\nexport class KritzelExport {\n  protected el: HTMLKritzelExportElement;\n  @Output() exportPng = new EventEmitter<CustomEvent<void>>();\n  @Output() exportSvg = new EventEmitter<CustomEvent<void>>();\n  @Output() exportJson = new EventEmitter<CustomEvent<string>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nexport declare interface KritzelExport extends Components.KritzelExport {\n\n  exportPng: EventEmitter<CustomEvent<void>>;\n\n  exportSvg: EventEmitter<CustomEvent<void>>;\n\n  exportJson: EventEmitter<CustomEvent<string>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelInput,\n  inputs: ['disabled', 'label', 'placeholder', 'suffix', 'type', 'value']\n})\n@Component({\n  selector: 'kritzel-input',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['disabled', 'label', 'placeholder', 'suffix', 'type', 'value'],\n  outputs: ['valueChange'],\n})\nexport class KritzelInput {\n  protected el: HTMLKritzelInputElement;\n  @Output() valueChange = new EventEmitter<CustomEvent<string>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nexport declare interface KritzelInput extends Components.KritzelInput {\n  /**\n   * Emitted when the value changes\n   */\n  valueChange: EventEmitter<CustomEvent<string>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelLineEndings,\n  inputs: ['styles', 'value']\n})\n@Component({\n  selector: 'kritzel-line-endings',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['styles', 'value'],\n  outputs: ['valueChange'],\n})\nexport class KritzelLineEndings {\n  protected el: HTMLKritzelLineEndingsElement;\n  @Output() valueChange = new EventEmitter<CustomEvent<IKritzelLineEndingsLineArrowConfig>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nimport type { LineArrowConfig as IKritzelLineEndingsLineArrowConfig } from 'kritzel-stencil/dist/components';\n\nexport declare interface KritzelLineEndings extends Components.KritzelLineEndings {\n\n  valueChange: EventEmitter<CustomEvent<IKritzelLineEndingsLineArrowConfig>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelMasterDetail,\n  inputs: ['items', 'selectedItemId']\n})\n@Component({\n  selector: 'kritzel-master-detail',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['items', 'selectedItemId'],\n  outputs: ['itemSelect'],\n})\nexport class KritzelMasterDetail {\n  protected el: HTMLKritzelMasterDetailElement;\n  @Output() itemSelect = new EventEmitter<CustomEvent<IKritzelMasterDetailIKritzelMasterDetailSelectEvent>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nimport type { IKritzelMasterDetailSelectEvent as IKritzelMasterDetailIKritzelMasterDetailSelectEvent } from 'kritzel-stencil/dist/components';\n\nexport declare interface KritzelMasterDetail extends Components.KritzelMasterDetail {\n  /**\n   * Emitted when an item is selected\n   */\n  itemSelect: EventEmitter<CustomEvent<IKritzelMasterDetailIKritzelMasterDetailSelectEvent>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelNumericInput,\n  inputs: ['label', 'max', 'min', 'placeholder', 'step', 'value']\n})\n@Component({\n  selector: 'kritzel-numeric-input',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['label', 'max', 'min', 'placeholder', 'step', 'value'],\n  outputs: ['valueChange'],\n})\nexport class KritzelNumericInput {\n  protected el: HTMLKritzelNumericInputElement;\n  @Output() valueChange = new EventEmitter<CustomEvent<number | undefined>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nexport declare interface KritzelNumericInput extends Components.KritzelNumericInput {\n  /**\n   * Emitted when the value changes (after normalization)\n   */\n  valueChange: EventEmitter<CustomEvent<number | undefined>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelOpacitySlider,\n  inputs: ['max', 'min', 'previewColor', 'step', 'value']\n})\n@Component({\n  selector: 'kritzel-opacity-slider',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['max', 'min', 'previewColor', 'step', 'value'],\n  outputs: ['valueChange'],\n})\nexport class KritzelOpacitySlider {\n  protected el: HTMLKritzelOpacitySliderElement;\n  @Output() valueChange = new EventEmitter<CustomEvent<number>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nexport declare interface KritzelOpacitySlider extends Components.KritzelOpacitySlider {\n\n  valueChange: EventEmitter<CustomEvent<number>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelPillTabs,\n  inputs: ['tabs', 'value']\n})\n@Component({\n  selector: 'kritzel-pill-tabs',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['tabs', 'value'],\n  outputs: ['valueChange'],\n})\nexport class KritzelPillTabs {\n  protected el: HTMLKritzelPillTabsElement;\n  @Output() valueChange = new EventEmitter<CustomEvent<string>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nexport declare interface KritzelPillTabs extends Components.KritzelPillTabs {\n  /**\n   * Emitted when the selected tab changes\n   */\n  valueChange: EventEmitter<CustomEvent<string>>;\n}\n\n\n@ProxyCmp({\n  defineCustomElementFn: defineKritzelSettings,\n  inputs: ['editorId', 'shortcuts'],\n  methods: ['open']\n})\n@Component({\n  selector: 'kritzel-settings',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: '<ng-content></ng-content>',\n  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n  inputs: ['editorId', 'shortcuts'],\n  outputs: ['settingsChange'],\n})\nexport class KritzelSettings {\n  protected el: HTMLKritzelSettingsElement;\n  @Output() settingsChange = new EventEmitter<CustomEvent<IKritzelSettingsKritzelSettingsConfig>>();\n  constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n    c.detach();\n    this.el = r.nativeElement;\n  }\n}\n\n\nimport type { KritzelSettingsConfig as IKritzelSettingsKritzelSettingsConfig } from 'kritzel-stencil/dist/components';\n\nexport declare interface KritzelSettings extends Components.KritzelSettings {\n  /**\n   * Emitted when settings change\n   */\n  settingsChange: EventEmitter<CustomEvent<IKritzelSettingsKritzelSettingsConfig>>;\n}\n\n\n","\nimport * as d from './proxy';\n\nexport const DIRECTIVES = [\n  d.KritzelBackToContent,\n  d.KritzelDialog,\n  d.KritzelEditor,\n  d.KritzelExport,\n  d.KritzelInput,\n  d.KritzelLineEndings,\n  d.KritzelMasterDetail,\n  d.KritzelNumericInput,\n  d.KritzelOpacitySlider,\n  d.KritzelPillTabs,\n  d.KritzelSettings\n];\n","import {\r\n  provideAppInitializer,\r\n  EnvironmentProviders,\r\n  makeEnvironmentProviders,\r\n} from '@angular/core';\r\nimport { defineCustomElements } from 'kritzel-stencil/loader';\r\n\r\nexport function provideKritzel(): EnvironmentProviders {\r\n  return makeEnvironmentProviders([\r\n    provideAppInitializer(() => {\r\n      console.info('Initializing Kritzel custom elements');\r\n      return defineCustomElements(window);\r\n    }),\r\n  ]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defineKritzelBackToContent","defineKritzelDialog","defineKritzelEditor","defineKritzelExport","defineKritzelInput","defineKritzelLineEndings","defineKritzelMasterDetail","defineKritzelNumericInput","defineKritzelOpacitySlider","defineKritzelPillTabs","defineKritzelSettings","d.KritzelBackToContent","d.KritzelDialog","d.KritzelEditor","d.KritzelExport","d.KritzelInput","d.KritzelLineEndings","d.KritzelMasterDetail","d.KritzelNumericInput","d.KritzelOpacitySlider","d.KritzelPillTabs","d.KritzelSettings"],"mappings":"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"}