Full Code of elmsln/lrnwebcomponents for AI

master 756abd513672 cached
5437 files
76.5 MB
8.0M tokens
15302 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (32,196K chars total). Download the full file to get everything.
Repository: elmsln/lrnwebcomponents
Branch: master
Commit: 756abd513672
Files: 5437
Total size: 76.5 MB

Directory structure:
gitextract_7f7q_zj8/

├── .continue/
│   └── README.md
├── .devcontainer/
│   └── devcontainer.json
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   └── workflows/
│       ├── build.yml
│       ├── cla.yml
│       └── ossf_scorecard.yml
├── .gitignore
├── .jshintrc
├── .lvimrc
├── .prettierignore
├── .stylelintrc.json
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   └── settings.json
├── .wcflibcache.json
├── .well-known/
│   └── funding-manifest-urls
├── AGENTS.md
├── CHANGELOG.md
├── CLA-README.md
├── CLA.md
├── CODE_OF_CONDUCT.md
├── COMPONENT-GALLERY.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── SUPPORT.md
├── VERSION.txt
├── _optional_dev_patches/
│   └── @web+dev-server-core+0.7.2.patch
├── api/
│   ├── hydrateSsr.js
│   ├── package.json
│   └── patches/
│       └── @lit-labs+ssr+3.2.2.patch
├── automate-theme-screenshots.js
├── build-haxcms.js
├── build.js
├── dist/
│   ├── app.js
│   ├── build-cms.js
│   ├── build-elmsln.js
│   ├── build-full.js
│   ├── build-haxcms.js
│   ├── build-home.js
│   ├── build-install.js
│   ├── build-legacy.js
│   ├── build.html
│   ├── build.js
│   ├── dev/
│   │   ├── appstore.json
│   │   ├── archiveSite.json
│   │   ├── connectionSettings.json
│   │   ├── copySite.json
│   │   ├── createSite.json
│   │   ├── deleteSite.json
│   │   ├── downloadSite.json
│   │   ├── getConfigPath.json
│   │   ├── getNodeFieldsPath.json
│   │   ├── getSiteFieldsPath.json
│   │   ├── login.json
│   │   ├── logout.json
│   │   ├── saveManifestPath.json
│   │   ├── saveNode.json
│   │   ├── savePage.json
│   │   ├── sites.json
│   │   ├── sitesEmpty.json
│   │   └── userData.json
│   ├── dev.html
│   ├── hax-elements-registry.json
│   ├── sites.json
│   └── wc-registry.json
├── elements/
│   ├── .gitkeep
│   ├── .idea/
│   │   ├── .gitignore
│   │   ├── elements.iml
│   │   ├── modules.xml
│   │   └── vcs.xml
│   ├── .vscode/
│   │   └── settings.json
│   ├── README.md
│   ├── a11y-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-behaviors.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-behaviors.test.js
│   ├── a11y-carousel/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-carousel.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── a11y-carousel-button.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-carousel.test.js
│   ├── a11y-collapse/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-collapse.js
│   │   ├── demo/
│   │   │   ├── group.html
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── a11y-collapse-group.haxProperties.json
│   │   │   ├── a11y-collapse-group.js
│   │   │   └── a11y-collapse.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-collapse.test.js
│   ├── a11y-compare-image/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-compare-image.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-compare-image.test.js
│   ├── a11y-details/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-details.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-details.test.js
│   ├── a11y-figure/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-figure.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-figure.test.js
│   ├── a11y-gif-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-gif-player.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── a11y-gif-player.haxProperties.json
│   │   ├── locales/
│   │   │   └── a11y-gif-player.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-gif-player.test.js
│   ├── a11y-media-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-media-player.js
│   │   ├── demo/
│   │   │   ├── audio.html
│   │   │   ├── index.html
│   │   │   ├── samples/
│   │   │   │   ├── bueller.vtt
│   │   │   │   ├── sintel-de.vtt
│   │   │   │   ├── sintel-en.vtt
│   │   │   │   ├── sintel-es.vtt
│   │   │   │   ├── stclair.srt
│   │   │   │   └── stclair.vtt
│   │   │   └── youtube.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── a11y-media-button.js
│   │   │   ├── a11y-media-play-button.js
│   │   │   ├── a11y-media-state-manager.js
│   │   │   ├── a11y-media-transcript-cue.js
│   │   │   └── a11y-media-youtube.js
│   │   ├── locales/
│   │   │   ├── a11y-media-player.bg.json
│   │   │   ├── a11y-media-player.cy.json
│   │   │   ├── a11y-media-player.da.json
│   │   │   ├── a11y-media-player.en.json
│   │   │   ├── a11y-media-player.es.json
│   │   │   ├── a11y-media-player.et.json
│   │   │   ├── a11y-media-player.fa.json
│   │   │   ├── a11y-media-player.ga.json
│   │   │   ├── a11y-media-player.ha.json
│   │   │   ├── a11y-media-player.hr.json
│   │   │   ├── a11y-media-player.is.json
│   │   │   ├── a11y-media-player.ka.json
│   │   │   ├── a11y-media-player.km.json
│   │   │   ├── a11y-media-player.lt.json
│   │   │   ├── a11y-media-player.lv.json
│   │   │   ├── a11y-media-player.mk.json
│   │   │   ├── a11y-media-player.mt.json
│   │   │   ├── a11y-media-player.my.json
│   │   │   ├── a11y-media-player.sk.json
│   │   │   ├── a11y-media-player.sr.json
│   │   │   ├── a11y-media-player.sw.json
│   │   │   ├── a11y-media-player.ta.json
│   │   │   ├── a11y-media-player.te.json
│   │   │   └── a11y-media-player.yo.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-media-player.test.js
│   ├── a11y-menu-button/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-menu-button.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── a11y-menu-button-item.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-menu-button.test.js
│   ├── a11y-tabs/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-tabs.js
│   │   ├── demo/
│   │   │   ├── breakpoints.html
│   │   │   ├── index.html
│   │   │   ├── sticky.html
│   │   │   └── vertical.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── a11y-tab.js
│   │   │   └── a11y-tabs.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-tabs.test.js
│   ├── a11y-utils/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-utils.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-utils.test.js
│   ├── absolute-position-behavior/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── absolute-position-behavior.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── absolute-position-state-manager.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── absolute-position-behavior.test.js
│   ├── accent-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── accent-card.js
│   │   ├── demo/
│   │   │   ├── borders.html
│   │   │   ├── colors.html
│   │   │   ├── imageWidth.html
│   │   │   ├── images.html
│   │   │   ├── index.html
│   │   │   └── orientation.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── accent-card.test.js
│   ├── aframe-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── aframe-player.js
│   │   ├── demo/
│   │   │   ├── animatedbox.gltf
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── aframe-player.test.js
│   ├── ai-usage-license/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── ai-usage-license.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── v1.json
│   │   ├── locales/
│   │   │   ├── ai-usage-license.ar.haxProperties.json
│   │   │   ├── ai-usage-license.ar.json
│   │   │   ├── ai-usage-license.bn.haxProperties.json
│   │   │   ├── ai-usage-license.bn.json
│   │   │   ├── ai-usage-license.es.haxProperties.json
│   │   │   ├── ai-usage-license.es.json
│   │   │   ├── ai-usage-license.fr.haxProperties.json
│   │   │   ├── ai-usage-license.fr.json
│   │   │   ├── ai-usage-license.hi.haxProperties.json
│   │   │   ├── ai-usage-license.hi.json
│   │   │   ├── ai-usage-license.ja.haxProperties.json
│   │   │   ├── ai-usage-license.ja.json
│   │   │   ├── ai-usage-license.pt.haxProperties.json
│   │   │   ├── ai-usage-license.pt.json
│   │   │   ├── ai-usage-license.ru.haxProperties.json
│   │   │   ├── ai-usage-license.ru.json
│   │   │   ├── ai-usage-license.zh.haxProperties.json
│   │   │   └── ai-usage-license.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── ai-usage-license.test.js
│   │   └── web-dev-server.config.mjs
│   ├── air-horn/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── air-horn.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── air-horn.test.js
│   ├── anchor-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── anchor-behaviors.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── anchor-behaviors.test.js
│   ├── app-hax/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── app-hax.js
│   │   ├── demo/
│   │   │   ├── appstore.json
│   │   │   ├── archiveSite.json
│   │   │   ├── copySite.json
│   │   │   ├── createSite.json
│   │   │   ├── deleteSite.json
│   │   │   ├── downloadSite.json
│   │   │   ├── getUserData.json
│   │   │   ├── haxiamAddUserAccess.json
│   │   │   ├── home.html
│   │   │   ├── index.html
│   │   │   ├── login.json
│   │   │   ├── logout.json
│   │   │   ├── sites.json
│   │   │   ├── sitesEmpty.json
│   │   │   ├── skeletons/
│   │   │   │   ├── blog-site-template.json
│   │   │   │   ├── course-site-template.json
│   │   │   │   ├── documentation-site-template.json
│   │   │   │   └── portfolio-site-template.json
│   │   │   └── skeletons.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── app-hax-theme.js
│   │   │   ├── assets/
│   │   │   │   └── sounds/
│   │   │   │       └── LICENSE.txt
│   │   │   ├── random-word/
│   │   │   │   └── random-word.js
│   │   │   ├── rpg-character-toast/
│   │   │   │   └── rpg-character-toast.js
│   │   │   ├── v1/
│   │   │   │   ├── AppHaxBackendAPI.js
│   │   │   │   ├── AppHaxRouter.js
│   │   │   │   ├── AppHaxStore.js
│   │   │   │   ├── app-hax-button.js
│   │   │   │   ├── app-hax-hat-progress.js
│   │   │   │   ├── app-hax-label.js
│   │   │   │   ├── app-hax-search-bar.js
│   │   │   │   ├── app-hax-search-results.js
│   │   │   │   ├── app-hax-site-bar.js
│   │   │   │   ├── app-hax-site-button.js
│   │   │   │   ├── app-hax-site-details.js
│   │   │   │   ├── app-hax-site-login.js
│   │   │   │   ├── app-hax-steps.js
│   │   │   │   ├── app-hax-toast.js
│   │   │   │   ├── app-hax-top-bar.js
│   │   │   │   ├── app-hax-user-menu-button.js
│   │   │   │   ├── app-hax-user-menu.js
│   │   │   │   └── app-hax-wired-toggle.js
│   │   │   ├── v2/
│   │   │   │   ├── AppHaxBackendAPI.js
│   │   │   │   ├── AppHaxRouter.js
│   │   │   │   ├── AppHaxStore.js
│   │   │   │   ├── HAXIAM_API_SPEC.md
│   │   │   │   ├── app-hax-button.js
│   │   │   │   ├── app-hax-confirmation-modal.js
│   │   │   │   ├── app-hax-filter-tag.js
│   │   │   │   ├── app-hax-hat-progress.js
│   │   │   │   ├── app-hax-label.js
│   │   │   │   ├── app-hax-scroll-button.js
│   │   │   │   ├── app-hax-search-results.js
│   │   │   │   ├── app-hax-simple-hat-progress.js
│   │   │   │   ├── app-hax-site-bar.js
│   │   │   │   ├── app-hax-site-button.js
│   │   │   │   ├── app-hax-site-creation-modal.js
│   │   │   │   ├── app-hax-site-details.js
│   │   │   │   ├── app-hax-site-login.js
│   │   │   │   ├── app-hax-steps.js
│   │   │   │   ├── app-hax-toast.js
│   │   │   │   ├── app-hax-use-case-filter.js
│   │   │   │   ├── app-hax-use-case.js
│   │   │   │   ├── app-hax-user-access-modal.js
│   │   │   │   ├── app-hax-user-menu-button.js
│   │   │   │   ├── app-hax-user-menu.js
│   │   │   │   ├── app-hax-wired-toggle.js
│   │   │   │   ├── skeleton-loader.js
│   │   │   │   └── skeleton-uuid-manager.js
│   │   │   └── wired-darkmode-toggle/
│   │   │       └── wired-darkmode-toggle.js
│   │   ├── locales/
│   │   │   ├── app-hax.af.json
│   │   │   ├── app-hax.am.json
│   │   │   ├── app-hax.ar.json
│   │   │   ├── app-hax.az.json
│   │   │   ├── app-hax.be.json
│   │   │   ├── app-hax.bg.json
│   │   │   ├── app-hax.bn.json
│   │   │   ├── app-hax.bs.json
│   │   │   ├── app-hax.ca.json
│   │   │   ├── app-hax.co.json
│   │   │   ├── app-hax.cs.json
│   │   │   ├── app-hax.cy.json
│   │   │   ├── app-hax.da.json
│   │   │   ├── app-hax.de.json
│   │   │   ├── app-hax.el.json
│   │   │   ├── app-hax.en.json
│   │   │   ├── app-hax.eo.json
│   │   │   ├── app-hax.es.json
│   │   │   ├── app-hax.et.json
│   │   │   ├── app-hax.eu.json
│   │   │   ├── app-hax.fa.json
│   │   │   ├── app-hax.fi.json
│   │   │   ├── app-hax.fo.json
│   │   │   ├── app-hax.fr.json
│   │   │   ├── app-hax.fy.json
│   │   │   ├── app-hax.ga.json
│   │   │   ├── app-hax.gl.json
│   │   │   ├── app-hax.gn.json
│   │   │   ├── app-hax.gu.json
│   │   │   ├── app-hax.ha.json
│   │   │   ├── app-hax.haw.json
│   │   │   ├── app-hax.he.json
│   │   │   ├── app-hax.hi.json
│   │   │   ├── app-hax.hr.json
│   │   │   ├── app-hax.hu.json
│   │   │   ├── app-hax.hy.json
│   │   │   ├── app-hax.id.json
│   │   │   ├── app-hax.ig.json
│   │   │   ├── app-hax.is.json
│   │   │   ├── app-hax.it.json
│   │   │   ├── app-hax.ja.json
│   │   │   ├── app-hax.jv.json
│   │   │   ├── app-hax.ka.json
│   │   │   ├── app-hax.kk.json
│   │   │   ├── app-hax.km.json
│   │   │   ├── app-hax.kn.json
│   │   │   ├── app-hax.ko.json
│   │   │   ├── app-hax.ku.json
│   │   │   ├── app-hax.ky.json
│   │   │   ├── app-hax.lb.json
│   │   │   ├── app-hax.lo.json
│   │   │   ├── app-hax.lt.json
│   │   │   ├── app-hax.lv.json
│   │   │   ├── app-hax.mi.json
│   │   │   ├── app-hax.mk.json
│   │   │   ├── app-hax.ml.json
│   │   │   ├── app-hax.mn.json
│   │   │   ├── app-hax.mr.json
│   │   │   ├── app-hax.ms.json
│   │   │   ├── app-hax.mt.json
│   │   │   ├── app-hax.my.json
│   │   │   ├── app-hax.nb.json
│   │   │   ├── app-hax.ne.json
│   │   │   ├── app-hax.nl.json
│   │   │   ├── app-hax.no.json
│   │   │   ├── app-hax.ny.json
│   │   │   ├── app-hax.om.json
│   │   │   ├── app-hax.pa.json
│   │   │   ├── app-hax.pl.json
│   │   │   ├── app-hax.pnb.json
│   │   │   ├── app-hax.ps.json
│   │   │   ├── app-hax.pt.json
│   │   │   ├── app-hax.qu.json
│   │   │   ├── app-hax.ro.json
│   │   │   ├── app-hax.ru.json
│   │   │   ├── app-hax.sd.json
│   │   │   ├── app-hax.si.json
│   │   │   ├── app-hax.sk.json
│   │   │   ├── app-hax.sl.json
│   │   │   ├── app-hax.sn.json
│   │   │   ├── app-hax.so.json
│   │   │   ├── app-hax.sq.json
│   │   │   ├── app-hax.sr.json
│   │   │   ├── app-hax.sv.json
│   │   │   ├── app-hax.sw.json
│   │   │   ├── app-hax.ta.json
│   │   │   ├── app-hax.te.json
│   │   │   ├── app-hax.tg.json
│   │   │   ├── app-hax.th.json
│   │   │   ├── app-hax.tk.json
│   │   │   ├── app-hax.tl.json
│   │   │   ├── app-hax.tr.json
│   │   │   ├── app-hax.tt.json
│   │   │   ├── app-hax.uk.json
│   │   │   ├── app-hax.ur.json
│   │   │   ├── app-hax.uz.json
│   │   │   ├── app-hax.vi.json
│   │   │   ├── app-hax.wuu.json
│   │   │   ├── app-hax.xh.json
│   │   │   ├── app-hax.yi.json
│   │   │   ├── app-hax.yo.json
│   │   │   ├── app-hax.zh.json
│   │   │   ├── app-hax.zh_CN.json
│   │   │   └── app-hax.zu.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── app-hax.test.js
│   ├── audio-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── audio-player.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── audio-player.test.js
│   ├── author-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── author-card.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── author-card.haxProperties.json
│   │   ├── locales/
│   │   │   ├── author-card.ar.haxProperties.json
│   │   │   ├── author-card.ar.json
│   │   │   ├── author-card.bn.haxProperties.json
│   │   │   ├── author-card.bn.json
│   │   │   ├── author-card.en.json
│   │   │   ├── author-card.es.haxProperties.json
│   │   │   ├── author-card.es.json
│   │   │   ├── author-card.fr.haxProperties.json
│   │   │   ├── author-card.fr.json
│   │   │   ├── author-card.hi.haxProperties.json
│   │   │   ├── author-card.hi.json
│   │   │   ├── author-card.ja.haxProperties.json
│   │   │   ├── author-card.ja.json
│   │   │   ├── author-card.pt.haxProperties.json
│   │   │   ├── author-card.pt.json
│   │   │   ├── author-card.ru.haxProperties.json
│   │   │   ├── author-card.ru.json
│   │   │   ├── author-card.zh.haxProperties.json
│   │   │   └── author-card.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── author-card.test.js
│   │   └── web-dev-server.config.mjs
│   ├── awesome-explosion/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── awesome-explosion.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── awesome-explosion.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── awesome-explosion.test.js
│   ├── b-r/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .idea/
│   │   │   ├── .gitignore
│   │   │   ├── b-r.iml
│   │   │   ├── modules.xml
│   │   │   └── vcs.xml
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── b-r.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── b-r.test.js
│   ├── barcode-reader/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .idea/
│   │   │   ├── barcode-reader.iml
│   │   │   ├── modules.xml
│   │   │   ├── prettier.xml
│   │   │   ├── vcs.xml
│   │   │   └── workspace.xml
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── barcode-reader.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── zxing.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── barcode-reader.test.js
│   ├── baseline-build-hax/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── baseline-build-hax.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── baseline-build-hax.test.js
│   ├── beaker-broker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── beaker-broker.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── beaker-broker.test.js
│   ├── bootstrap-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── bootstrap-theme.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── BootstrapBreadcrumb.js
│   │   │   ├── BootstrapFooter.js
│   │   │   ├── BootstrapSearch.js
│   │   │   └── BootstrapUserStylesMenuMixin.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── bootstrap-theme.test.js
│   ├── chartist-render/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── chartist-render.js
│   │   ├── demo/
│   │   │   ├── bar.csv
│   │   │   ├── csv.html
│   │   │   ├── donut.csv
│   │   │   ├── index.html
│   │   │   ├── line.csv
│   │   │   └── pie.csv
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── chartist/
│   │   │   │   ├── CHANGELOG.md
│   │   │   │   ├── LICENSE-MIT
│   │   │   │   ├── LICENSE-WTFPL
│   │   │   │   ├── README.md
│   │   │   │   └── dist/
│   │   │   │       ├── chartist.css
│   │   │   │       └── chartist.js
│   │   │   ├── chartist-plugin-axistitle/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── README.md
│   │   │   │   └── dist/
│   │   │   │       ├── LICENSE
│   │   │   │       └── chartist-plugin-axistitle.js
│   │   │   ├── chartist-plugin-fill-donut/
│   │   │   │   ├── LICENSE-MIT
│   │   │   │   ├── README.md
│   │   │   │   ├── dist/
│   │   │   │   │   └── chartist-plugin-fill-donut.js
│   │   │   │   └── src/
│   │   │   │       └── scripts/
│   │   │   │           └── chartist-plugin-fill-donut.js
│   │   │   └── chartist-plugin-pointlabels/
│   │   │       ├── LICENSE
│   │   │       ├── README.md
│   │   │       └── dist/
│   │   │           ├── LICENSE
│   │   │           └── chartist-plugin-pointlabels.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── chartist-render.test.js
│   ├── chat-agent/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── chat-agent.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── chat-agent-store.js
│   │   │   ├── chat-button.js
│   │   │   ├── chat-control-bar.js
│   │   │   ├── chat-developer-panel.js
│   │   │   ├── chat-input.js
│   │   │   ├── chat-interface.js
│   │   │   ├── chat-message.js
│   │   │   └── chat-suggestion.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── chat-agent.test.js
│   ├── check-it-out/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── check-it-out.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── check-it-out.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── check-it-out.test.js
│   ├── citation-builder/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── citation-builder.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── citation-builder.haxProperties.json
│   │   │   └── citation-item.js
│   │   ├── locales/
│   │   │   ├── citation-builder.ar.haxProperties.json
│   │   │   ├── citation-builder.ar.json
│   │   │   ├── citation-builder.bn.haxProperties.json
│   │   │   ├── citation-builder.bn.json
│   │   │   ├── citation-builder.es.haxProperties.json
│   │   │   ├── citation-builder.es.json
│   │   │   ├── citation-builder.fr.haxProperties.json
│   │   │   ├── citation-builder.fr.json
│   │   │   ├── citation-builder.hi.haxProperties.json
│   │   │   ├── citation-builder.hi.json
│   │   │   ├── citation-builder.ja.haxProperties.json
│   │   │   ├── citation-builder.ja.json
│   │   │   ├── citation-builder.pt.haxProperties.json
│   │   │   ├── citation-builder.pt.json
│   │   │   ├── citation-builder.ru.haxProperties.json
│   │   │   ├── citation-builder.ru.json
│   │   │   ├── citation-builder.zh.haxProperties.json
│   │   │   └── citation-builder.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── citation-builder.test.js
│   │   └── web-dev-server.config.mjs
│   ├── citation-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── citation-element.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── citation-element.test.js
│   ├── clean-one/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── clean-one.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── clean-one-search-box.js
│   │   ├── locales/
│   │   │   ├── clean-one.de.json
│   │   │   ├── clean-one.es.json
│   │   │   ├── clean-one.fr.json
│   │   │   └── clean-one.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── clean-one.test.js
│   ├── clean-portfolio-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── clean-portfolio-theme.js
│   │   ├── index.html
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── clean-portfolio-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── clean-two/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── clean-two.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── clean-two.test.js
│   ├── cms-hax/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── cms-hax.js
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── sample-store.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── cms-block.js
│   │   │   ├── cms-entity.js
│   │   │   ├── cms-token.js
│   │   │   └── cms-views.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── cms-hax.test.js
│   ├── code-editor/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── code-editor.js
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── updating.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── code-pen-button.js
│   │   │   └── monaco-element/
│   │   │       ├── LICENSE
│   │   │       ├── README.md
│   │   │       ├── monaco-element.js
│   │   │       ├── monaco.js
│   │   │       └── utils.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── code-editor.test.js
│   ├── code-sample/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── code-sample.js
│   │   ├── demo/
│   │   │   ├── code-sample-theme.js
│   │   │   ├── css/
│   │   │   │   └── demo.css
│   │   │   ├── demo.js
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── highlightjs/
│   │   │   │   ├── highlight.js
│   │   │   │   ├── languages/
│   │   │   │   │   ├── css.js
│   │   │   │   │   ├── javascript.js
│   │   │   │   │   ├── json.js
│   │   │   │   │   ├── php.js
│   │   │   │   │   ├── xml.js
│   │   │   │   │   └── yaml.js
│   │   │   │   └── styles/
│   │   │   │       ├── a11y-dark.css
│   │   │   │       ├── a11y-light.css
│   │   │   │       ├── agate.css
│   │   │   │       ├── an-old-hope.css
│   │   │   │       ├── androidstudio.css
│   │   │   │       ├── arduino-light.css
│   │   │   │       ├── arta.css
│   │   │   │       ├── ascetic.css
│   │   │   │       ├── atelier-cave-dark.css
│   │   │   │       ├── atelier-cave-light.css
│   │   │   │       ├── atelier-dune-dark.css
│   │   │   │       ├── atelier-dune-light.css
│   │   │   │       ├── atelier-estuary-dark.css
│   │   │   │       ├── atelier-estuary-light.css
│   │   │   │       ├── atelier-forest-dark.css
│   │   │   │       ├── atelier-forest-light.css
│   │   │   │       ├── atelier-heath-dark.css
│   │   │   │       ├── atelier-heath-light.css
│   │   │   │       ├── atelier-lakeside-dark.css
│   │   │   │       ├── atelier-lakeside-light.css
│   │   │   │       ├── atelier-plateau-dark.css
│   │   │   │       ├── atelier-plateau-light.css
│   │   │   │       ├── atelier-savanna-dark.css
│   │   │   │       ├── atelier-savanna-light.css
│   │   │   │       ├── atelier-seaside-dark.css
│   │   │   │       ├── atelier-seaside-light.css
│   │   │   │       ├── atelier-sulphurpool-dark.css
│   │   │   │       ├── atelier-sulphurpool-light.css
│   │   │   │       ├── atom-one-dark-reasonable.css
│   │   │   │       ├── atom-one-dark.css
│   │   │   │       ├── atom-one-light.css
│   │   │   │       ├── brown-paper.css
│   │   │   │       ├── codepen-embed.css
│   │   │   │       ├── color-brewer.css
│   │   │   │       ├── darcula.css
│   │   │   │       ├── dark.css
│   │   │   │       ├── darkula.css
│   │   │   │       ├── default.css
│   │   │   │       ├── docco.css
│   │   │   │       ├── dracula.css
│   │   │   │       ├── far.css
│   │   │   │       ├── foundation.css
│   │   │   │       ├── github-gist.css
│   │   │   │       ├── github.css
│   │   │   │       ├── gml.css
│   │   │   │       ├── googlecode.css
│   │   │   │       ├── grayscale.css
│   │   │   │       ├── gruvbox-dark.css
│   │   │   │       ├── gruvbox-light.css
│   │   │   │       ├── hopscotch.css
│   │   │   │       ├── hybrid.css
│   │   │   │       ├── idea.css
│   │   │   │       ├── ir-black.css
│   │   │   │       ├── isbl-editor-dark.css
│   │   │   │       ├── isbl-editor-light.css
│   │   │   │       ├── kimbie.dark.css
│   │   │   │       ├── kimbie.light.css
│   │   │   │       ├── lightfair.css
│   │   │   │       ├── magula.css
│   │   │   │       ├── mono-blue.css
│   │   │   │       ├── monokai-sublime.css
│   │   │   │       ├── monokai.css
│   │   │   │       ├── nord.css
│   │   │   │       ├── obsidian.css
│   │   │   │       ├── ocean.css
│   │   │   │       ├── paraiso-dark.css
│   │   │   │       ├── paraiso-light.css
│   │   │   │       ├── pojoaque.css
│   │   │   │       ├── purebasic.css
│   │   │   │       ├── qtcreator_dark.css
│   │   │   │       ├── qtcreator_light.css
│   │   │   │       ├── railscasts.css
│   │   │   │       ├── rainbow.css
│   │   │   │       ├── routeros.css
│   │   │   │       ├── school-book.css
│   │   │   │       ├── shades-of-purple.css
│   │   │   │       ├── solarized-dark.css
│   │   │   │       ├── solarized-light.css
│   │   │   │       ├── sunburst.css
│   │   │   │       ├── tomorrow-night-blue.css
│   │   │   │       ├── tomorrow-night-bright.css
│   │   │   │       ├── tomorrow-night-eighties.css
│   │   │   │       ├── tomorrow-night.css
│   │   │   │       ├── tomorrow.css
│   │   │   │       ├── vs.css
│   │   │   │       ├── vs2015.css
│   │   │   │       ├── xcode.css
│   │   │   │       ├── xt256.css
│   │   │   │       └── zenburn.css
│   │   │   └── themes/
│   │   │       ├── default.js
│   │   │       ├── github.js
│   │   │       ├── kustom-dark.js
│   │   │       ├── kustom-light.js
│   │   │       ├── one-dark.js
│   │   │       ├── one-light.js
│   │   │       ├── solarized-dark.js
│   │   │       └── solarized-light.js
│   │   ├── locales/
│   │   │   └── code-sample.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── code-sample.test.js
│   ├── collection-list/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── collection-list.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── collection-item.haxProperties.json
│   │   │   ├── collection-item.js
│   │   │   ├── collection-list.haxProperties.json
│   │   │   ├── collection-row.js
│   │   │   ├── collections-theme-banner.js
│   │   │   └── collections-theme.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── collection-list.test.js
│   ├── count-up/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── count-up.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── countup.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── count-up.test.js
│   ├── course-design/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── course-design.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── activity-box.haxProperties.json
│   │   │   ├── activity-box.js
│   │   │   ├── block-quote.haxProperties.json
│   │   │   ├── block-quote.js
│   │   │   ├── course-intro-footer.js
│   │   │   ├── course-intro-header.js
│   │   │   ├── course-intro-lesson-plan.js
│   │   │   ├── course-intro-lesson-plans.js
│   │   │   ├── course-intro.js
│   │   │   ├── ebook-button.js
│   │   │   ├── learning-component.js
│   │   │   ├── lrn-h5p.js
│   │   │   ├── responsive-iframe.js
│   │   │   └── worksheet-download.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── course-design.test.js
│   ├── course-model/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── course-model.js
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── models/
│   │   │       ├── arm/
│   │   │       │   └── models_arm.gltf
│   │   │       └── guns/
│   │   │           └── colt-1911/
│   │   │               ├── colt_1911_clip.gltf
│   │   │               ├── colt_1911_full.gltf
│   │   │               ├── colt_1911_half.gltf
│   │   │               └── colt_1911_parts.gltf
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── course-model.haxProperties.json
│   │   │   ├── model-info.js
│   │   │   └── model-option.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── course-model.test.js
│   ├── csv-render/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── csv-render.js
│   │   ├── demo/
│   │   │   ├── demo.csv
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── csv-render.test.js
│   ├── d-d-d/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .todo
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── d-d-d.js
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── mini-map.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── DDDPaletteRegistry.js
│   │   │   ├── DDDStyleGuidePresets.js
│   │   │   ├── DDDStyles.js
│   │   │   ├── DesignSystemManager.js
│   │   │   ├── ddd-brochure-theme.js
│   │   │   ├── ddd-card.haxProperties.json
│   │   │   ├── ddd-card.js
│   │   │   ├── ddd-steps-list-item.haxProperties.json
│   │   │   ├── ddd-steps-list-item.js
│   │   │   ├── ddd-steps-list.haxProperties.json
│   │   │   ├── ddd-steps-list.js
│   │   │   ├── hax-palette-picker.js
│   │   │   └── mini-map.js
│   │   ├── locales/
│   │   │   └── ddd-card.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── d-d-d.test.js
│   ├── d-d-docs/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── d-d-docs.js
│   │   ├── index.html
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── d-d-docs.test.js
│   │   └── web-dev-server.config.mjs
│   ├── data-viz/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── data-viz.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── data-viz.test.js
│   ├── date-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── date-card.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── date-card.haxProperties.json
│   │   │   └── date-chip.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── date-card.test.js
│   ├── deduping-fix/
│   │   ├── README.md
│   │   ├── deduping-fix.js
│   │   ├── gulpfile.cjs
│   │   └── package.json
│   ├── demo-snippet/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── demo-snippet.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── demo-snippet.haxProperties.json
│   │   ├── locales/
│   │   │   ├── demo-snippet.ar.haxProperties.json
│   │   │   ├── demo-snippet.ar.json
│   │   │   ├── demo-snippet.bn.haxProperties.json
│   │   │   ├── demo-snippet.bn.json
│   │   │   ├── demo-snippet.es.haxProperties.json
│   │   │   ├── demo-snippet.es.json
│   │   │   ├── demo-snippet.fr.haxProperties.json
│   │   │   ├── demo-snippet.fr.json
│   │   │   ├── demo-snippet.hi.haxProperties.json
│   │   │   ├── demo-snippet.hi.json
│   │   │   ├── demo-snippet.ja.haxProperties.json
│   │   │   ├── demo-snippet.ja.json
│   │   │   ├── demo-snippet.pt.haxProperties.json
│   │   │   ├── demo-snippet.pt.json
│   │   │   ├── demo-snippet.ru.haxProperties.json
│   │   │   ├── demo-snippet.ru.json
│   │   │   ├── demo-snippet.zh.haxProperties.json
│   │   │   └── demo-snippet.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── demo-snippet.test.js
│   │   └── web-dev-server.config.mjs
│   ├── discord-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── discord-embed.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── discord-embed.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── discord-embed.test.js
│   ├── disqus-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── disqus-embed.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── haxcms-site-disqus.haxProperties.json
│   │   │   └── haxcms-site-disqus.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── disqus-embed.test.js
│   ├── dl-behavior/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── dl-behavior.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── dl-behavior.test.js
│   ├── documentation-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── documentation-player.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── documentation-player.test.js
│   ├── dynamic-import-registry/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── dynamic-import-registry.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── dynamic-import-registry.test.js
│   ├── editable-table/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── advanced.html
│   │   │   ├── display.html
│   │   │   ├── editmode.html
│   │   │   ├── exporting.html
│   │   │   ├── foods.csv
│   │   │   ├── game.csv
│   │   │   ├── importing.html
│   │   │   ├── index.html
│   │   │   ├── local-import.html
│   │   │   └── numeric.html
│   │   ├── editable-table.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── editable-table-behaviors.js
│   │   │   ├── editable-table-display.js
│   │   │   ├── editable-table-edit.js
│   │   │   ├── editable-table-editor-rowcol.js
│   │   │   ├── editable-table-filter.js
│   │   │   ├── editable-table-sort.js
│   │   │   └── editable-table.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── editable-table.test.js
│   ├── elmsln-loading/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── elmsln-loading.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── elmsln-loading.test.js
│   ├── enhanced-text/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── enhanced-text.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── enhanced-text.test.js
│   ├── es-global-bridge/
│   │   ├── README.md
│   │   ├── es-global-bridge.js
│   │   ├── gulpfile.cjs
│   │   ├── package.json
│   │   └── test/
│   │       └── es-global-bridge.test.js
│   ├── event-badge/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── event-badge.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── event-badge.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── event-badge.test.js
│   ├── example-hax-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── example-hax-element.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── example-hax-element.haxProperties.json
│   │   ├── locales/
│   │   │   ├── example-hax-element.ar.haxProperties.json
│   │   │   ├── example-hax-element.ar.json
│   │   │   ├── example-hax-element.es.haxProperties.json
│   │   │   ├── example-hax-element.es.json
│   │   │   ├── example-hax-element.hi.haxProperties.json
│   │   │   ├── example-hax-element.hi.json
│   │   │   ├── example-hax-element.zh.haxProperties.json
│   │   │   └── example-hax-element.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── example-hax-element.test.js
│   │   └── web-dev-server.config.mjs
│   ├── example-haxcms-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── site.json
│   │   ├── example-haxcms-theme.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── example-haxcms-theme.haxProperties.json
│   │   ├── locales/
│   │   │   ├── example-haxcms-theme.ar.haxProperties.json
│   │   │   ├── example-haxcms-theme.ar.json
│   │   │   ├── example-haxcms-theme.es.haxProperties.json
│   │   │   ├── example-haxcms-theme.es.json
│   │   │   ├── example-haxcms-theme.hi.haxProperties.json
│   │   │   ├── example-haxcms-theme.hi.json
│   │   │   ├── example-haxcms-theme.zh.haxProperties.json
│   │   │   └── example-haxcms-theme.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── example-haxcms-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── figure-label/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── figure-label.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── figure-label.test.js
│   ├── file-system-broker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── MOBILE_SUPPORT.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── docx.html
│   │   │   ├── index.html
│   │   │   ├── mobile-test.html
│   │   │   └── xlsx.html
│   │   ├── file-system-broker.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── docx-file-system-broker.js
│   │   │   ├── mammoth/
│   │   │   │   └── LICENSE
│   │   │   ├── xlsx/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── dist/
│   │   │   │   │   ├── LICENSE
│   │   │   │   │   └── cpexcel.js
│   │   │   │   ├── jszip.js
│   │   │   │   ├── xlsx.js
│   │   │   │   └── xlsxworker.js
│   │   │   └── xlsx-file-system-broker.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── file-system-broker.test.js
│   ├── fill-in-the-blanks/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── fill-in-the-blanks.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── fill-in-the-blanks.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── fill-in-the-blanks.test.js
│   │       ├── fill-in-the-blanks_test.html
│   │       └── index.html
│   ├── flash-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── flash-card.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── flash-card-answer-box.js
│   │   │   ├── flash-card-prompt-img.js
│   │   │   ├── flash-card-set.js
│   │   │   └── flash-card.haxProperties.json
│   │   ├── locales/
│   │   │   ├── flash-card-answer-box.es.json
│   │   │   ├── flash-card-answer-box.fr.json
│   │   │   └── flash-card-answer-box.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── flash-card.test.js
│   ├── fluid-type/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── fluid-type.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── fluid-type.test.js
│   ├── full-width-image/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── full-width-image.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── full-width-image.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── full-width-image.test.js
│   ├── fullscreen-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── fullscreen-behaviors-demo.js
│   │   │   └── index.html
│   │   ├── fullscreen-behaviors.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── fullscreen-behaviors.test.js
│   ├── future-terminal-text/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── future-terminal-text.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── FutureTerminalTextSuper.js
│   │   │   └── future-terminal-text-lite.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── future-terminal-text.test.js
│   ├── git-corner/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── git-corner.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── git-corner.test.js
│   ├── github-preview/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── github-preview.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── github-rpg-contributors.haxProperties.json
│   │   │   ├── github-rpg-contributors.js
│   │   │   └── wc-markdown.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── github-preview.test.js
│   ├── glossy-portfolio-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── glossy-portfolio-theme.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── data.json
│   │   │   ├── glossy-portfolio-about.js
│   │   │   ├── glossy-portfolio-breadcrumb.js
│   │   │   ├── glossy-portfolio-card.js
│   │   │   ├── glossy-portfolio-footer.js
│   │   │   ├── glossy-portfolio-grid.js
│   │   │   ├── glossy-portfolio-header.js
│   │   │   ├── glossy-portfolio-home.js
│   │   │   └── graphic-portfolio.haxProperties.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── glossy-portfolio-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── grade-book/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── backend.json
│   │   │   ├── index.html
│   │   │   ├── letter-grade-picker.html
│   │   │   └── lite.html
│   │   ├── grade-book.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── GradeBookUIPieces.js
│   │   │   ├── grade-book-lite.js
│   │   │   ├── grade-book-pop-up.js
│   │   │   ├── grade-book-store.js
│   │   │   ├── grade-book-student-block.js
│   │   │   ├── grade-book-table.js
│   │   │   ├── letter-grade-picker.js
│   │   │   └── letter-grade.js
│   │   ├── locales/
│   │   │   ├── grade-book.de.json
│   │   │   ├── grade-book.es.json
│   │   │   └── grade-book.fr.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── grade-book.test.js
│   ├── grid-plate/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── grid-plate.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── grid-plate.test.js
│   ├── h-a-x/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── appstore.json
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── h-a-x.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── h-a-x-dependencies.js
│   │   ├── package.json
│   │   └── test/
│   │       └── h-a-x.test.js
│   ├── h5p-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── h5p-element.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── h5p/
│   │   │   │   ├── LICENSE.txt
│   │   │   │   ├── README.txt
│   │   │   │   ├── composer.json
│   │   │   │   ├── doc/
│   │   │   │   │   └── spec_en.html
│   │   │   │   ├── js/
│   │   │   │   │   ├── h5p-action-bar.js
│   │   │   │   │   ├── h5p-confirmation-dialog.js
│   │   │   │   │   ├── h5p-content-type.js
│   │   │   │   │   ├── h5p-content-upgrade-process.js
│   │   │   │   │   ├── h5p-content-upgrade-worker.js
│   │   │   │   │   ├── h5p-content-upgrade.js
│   │   │   │   │   ├── h5p-data-view.js
│   │   │   │   │   ├── h5p-display-options.js
│   │   │   │   │   ├── h5p-embed.js
│   │   │   │   │   ├── h5p-event-dispatcher.js
│   │   │   │   │   ├── h5p-library-details.js
│   │   │   │   │   ├── h5p-library-list.js
│   │   │   │   │   ├── h5p-resizer.js
│   │   │   │   │   ├── h5p-utils.js
│   │   │   │   │   ├── h5p-version.js
│   │   │   │   │   ├── h5p-x-api-event.js
│   │   │   │   │   ├── h5p-x-api.js
│   │   │   │   │   ├── h5p.js
│   │   │   │   │   ├── jquery.js
│   │   │   │   │   └── settings/
│   │   │   │   │       └── h5p-disable-hub.js
│   │   │   │   └── styles/
│   │   │   │       ├── h5p-admin.css
│   │   │   │       ├── h5p-confirmation-dialog.css
│   │   │   │       ├── h5p-core-button.css
│   │   │   │       └── h5p.css
│   │   │   ├── h5p-element.haxProperties.json
│   │   │   ├── h5p-resizer.js
│   │   │   └── h5p-wrapped-element.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── h5p-element.test.js
│   ├── hal-9000/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hal-9000.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── hal-9000-ui/
│   │   │       └── hal-9000-ui.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hal-9000.test.js
│   ├── hax-body/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── allthethings.html
│   │   │   ├── app-item.html
│   │   │   ├── appstore.json
│   │   │   ├── bueller.vtt
│   │   │   ├── index.html
│   │   │   ├── local-save.html
│   │   │   ├── shoelace.html
│   │   │   └── shoelace.json
│   │   ├── gulpfile.cjs
│   │   ├── hax-body.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── buttons/
│   │   │   │   ├── hax-text-editor-alignment-picker.js
│   │   │   │   ├── hax-text-editor-heading-picker.js
│   │   │   │   └── hax-text-editor-tag-toggle.js
│   │   │   ├── hax-app-picker.js
│   │   │   ├── hax-app-search.js
│   │   │   ├── hax-app.js
│   │   │   ├── hax-autoloader.js
│   │   │   ├── hax-cancel-dialog.js
│   │   │   ├── hax-context-behaviors.js
│   │   │   ├── hax-context-item-textop.js
│   │   │   ├── hax-context-item.js
│   │   │   ├── hax-element-demo.js
│   │   │   ├── hax-export-dialog.js
│   │   │   ├── hax-gizmo-browser.js
│   │   │   ├── hax-map.js
│   │   │   ├── hax-picker.js
│   │   │   ├── hax-plate-context.js
│   │   │   ├── hax-preferences-dialog.js
│   │   │   ├── hax-stax-browser.js
│   │   │   ├── hax-store.js
│   │   │   ├── hax-text-editor-button.js
│   │   │   ├── hax-text-editor-paste-button.js
│   │   │   ├── hax-text-editor-toolbar.js
│   │   │   ├── hax-text-editor.js
│   │   │   ├── hax-toolbar-item.js
│   │   │   ├── hax-toolbar-menu.js
│   │   │   ├── hax-toolbar.js
│   │   │   ├── hax-tray-button.js
│   │   │   ├── hax-tray-upload.js
│   │   │   ├── hax-tray.js
│   │   │   ├── hax-ui-styles.js
│   │   │   ├── hax-upload-field.js
│   │   │   └── hax-view-source.js
│   │   ├── locales/
│   │   │   ├── hax.af.json
│   │   │   ├── hax.am.json
│   │   │   ├── hax.ar.json
│   │   │   ├── hax.az.json
│   │   │   ├── hax.be.json
│   │   │   ├── hax.bg.json
│   │   │   ├── hax.bn.json
│   │   │   ├── hax.bs.json
│   │   │   ├── hax.ca.json
│   │   │   ├── hax.co.json
│   │   │   ├── hax.cs.json
│   │   │   ├── hax.cy.json
│   │   │   ├── hax.da.json
│   │   │   ├── hax.de.json
│   │   │   ├── hax.el.json
│   │   │   ├── hax.eo.json
│   │   │   ├── hax.es.json
│   │   │   ├── hax.et.json
│   │   │   ├── hax.eu.json
│   │   │   ├── hax.fa.json
│   │   │   ├── hax.fi.json
│   │   │   ├── hax.fo.json
│   │   │   ├── hax.fr.json
│   │   │   ├── hax.fy.json
│   │   │   ├── hax.ga.json
│   │   │   ├── hax.gl.json
│   │   │   ├── hax.gn.json
│   │   │   ├── hax.gu.json
│   │   │   ├── hax.ha.json
│   │   │   ├── hax.haw.json
│   │   │   ├── hax.he.json
│   │   │   ├── hax.hi.json
│   │   │   ├── hax.hr.json
│   │   │   ├── hax.hu.json
│   │   │   ├── hax.hy.json
│   │   │   ├── hax.id.json
│   │   │   ├── hax.ig.json
│   │   │   ├── hax.is.json
│   │   │   ├── hax.it.json
│   │   │   ├── hax.ja.json
│   │   │   ├── hax.jv.json
│   │   │   ├── hax.ka.json
│   │   │   ├── hax.kk.json
│   │   │   ├── hax.km.json
│   │   │   ├── hax.kn.json
│   │   │   ├── hax.ko.json
│   │   │   ├── hax.ku.json
│   │   │   ├── hax.ky.json
│   │   │   ├── hax.lb.json
│   │   │   ├── hax.lo.json
│   │   │   ├── hax.lt.json
│   │   │   ├── hax.lv.json
│   │   │   ├── hax.mi.json
│   │   │   ├── hax.mk.json
│   │   │   ├── hax.ml.json
│   │   │   ├── hax.mn.json
│   │   │   ├── hax.mr.json
│   │   │   ├── hax.ms.json
│   │   │   ├── hax.mt.json
│   │   │   ├── hax.my.json
│   │   │   ├── hax.nb.json
│   │   │   ├── hax.ne.json
│   │   │   ├── hax.nl.json
│   │   │   ├── hax.no.json
│   │   │   ├── hax.ny.json
│   │   │   ├── hax.om.json
│   │   │   ├── hax.pa.json
│   │   │   ├── hax.pl.json
│   │   │   ├── hax.pnb.json
│   │   │   ├── hax.ps.json
│   │   │   ├── hax.pt.json
│   │   │   ├── hax.qu.json
│   │   │   ├── hax.ro.json
│   │   │   ├── hax.ru.json
│   │   │   ├── hax.sd.json
│   │   │   ├── hax.si.json
│   │   │   ├── hax.sk.json
│   │   │   ├── hax.sl.json
│   │   │   ├── hax.sn.json
│   │   │   ├── hax.so.json
│   │   │   ├── hax.sq.json
│   │   │   ├── hax.sr.json
│   │   │   ├── hax.sv.json
│   │   │   ├── hax.sw.json
│   │   │   ├── hax.ta.json
│   │   │   ├── hax.te.json
│   │   │   ├── hax.tg.json
│   │   │   ├── hax.th.json
│   │   │   ├── hax.tk.json
│   │   │   ├── hax.tr.json
│   │   │   ├── hax.tt.json
│   │   │   ├── hax.uk.json
│   │   │   ├── hax.ur.json
│   │   │   ├── hax.uz.json
│   │   │   ├── hax.vi.json
│   │   │   ├── hax.wuu.json
│   │   │   ├── hax.xh.json
│   │   │   ├── hax.yi.json
│   │   │   ├── hax.yo.json
│   │   │   ├── hax.zh.json
│   │   │   └── hax.zu.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── hax-body.test.js
│   │       └── hax-text-editor-toolbar.test.js
│   ├── hax-body-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hax-body-behaviors.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── HAXFields.js
│   │   │   ├── HAXLayouts.js
│   │   │   └── HAXWiring.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-body-behaviors.test.js
│   ├── hax-bookmarklet/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── BOOKMARKLET-SOURCE.js
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── appstore.json
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hax-bookmarklet.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-bookmarklet.test.js
│   ├── hax-cloud/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── dist/
│   │   │   │   ├── app.js
│   │   │   │   ├── build-cms.js
│   │   │   │   ├── build-elmsln.js
│   │   │   │   ├── build-full.js
│   │   │   │   ├── build-haxcms.js
│   │   │   │   ├── build-home.js
│   │   │   │   ├── build-install.js
│   │   │   │   ├── build-legacy.js
│   │   │   │   ├── build.html
│   │   │   │   ├── build.js
│   │   │   │   ├── dev/
│   │   │   │   │   ├── appstore.json
│   │   │   │   │   ├── connectionSettings.json
│   │   │   │   │   ├── createNodePath.json
│   │   │   │   │   ├── getConfigPath.json
│   │   │   │   │   ├── getNodeFieldsPath.json
│   │   │   │   │   ├── getSiteFieldsPath.json
│   │   │   │   │   ├── login.json
│   │   │   │   │   ├── logout.json
│   │   │   │   │   ├── saveManifestPath.json
│   │   │   │   │   ├── saveNode.json
│   │   │   │   │   ├── savePage.json
│   │   │   │   │   └── userData.json
│   │   │   │   ├── dev.html
│   │   │   │   ├── my-custom-elements.js
│   │   │   │   └── sites.json
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   └── wc-registry.json
│   │   ├── gulpfile.cjs
│   │   ├── hax-cloud.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── appstore.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-cloud.test.js
│   ├── hax-iconset/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── iconset.html
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hax-iconset.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── build.sh
│   │   │   ├── elmsln-custom-iconset.js
│   │   │   ├── hax-iconset-manifest.js
│   │   │   ├── simple-hax-iconset.js
│   │   │   └── svgs/
│   │   │       └── mdi-social/
│   │   │           └── iconlist.txt
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-iconset.test.js
│   ├── hax-logo/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── site.html
│   │   ├── gulpfile.cjs
│   │   ├── hax-logo.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── hax-logo.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-logo.test.js
│   ├── haxcms-elements/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── KEYBOARD_SHORTCUTS.md
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── automation/
│   │   │   ├── README.md
│   │   │   ├── check-status.js
│   │   │   ├── package.json
│   │   │   └── puppeteer-theme-automation.js
│   │   ├── demo/
│   │   │   ├── 404.html
│   │   │   ├── CNAME
│   │   │   ├── LICENSE.md
│   │   │   ├── README.md
│   │   │   ├── assets/
│   │   │   │   ├── build-legacy.js
│   │   │   │   ├── build-polyfills.js
│   │   │   │   ├── legacy-outline.css
│   │   │   │   └── upgrade-browser.html
│   │   │   ├── atom.xml
│   │   │   ├── beaker.html
│   │   │   ├── browserconfig.xml
│   │   │   ├── build-haxcms.js
│   │   │   ├── build-legacy-es5-support.js
│   │   │   ├── build-legacy.js
│   │   │   ├── build-polyfills.js
│   │   │   ├── build.js
│   │   │   ├── create-cli.recipe
│   │   │   ├── custom/
│   │   │   │   ├── Dockerfile
│   │   │   │   ├── README.md
│   │   │   │   ├── package.json
│   │   │   │   ├── rollup.config.js
│   │   │   │   └── src/
│   │   │   │       ├── custom-journey-theme.js
│   │   │   │       └── custom.js
│   │   │   ├── dat.json
│   │   │   ├── dist/
│   │   │   │   ├── app.js
│   │   │   │   ├── build-cms.js
│   │   │   │   ├── build-elmsln.js
│   │   │   │   ├── build-full.js
│   │   │   │   ├── build-haxcms.js
│   │   │   │   ├── build-home.js
│   │   │   │   ├── build-install.js
│   │   │   │   ├── build-legacy.js
│   │   │   │   ├── build.html
│   │   │   │   ├── build.js
│   │   │   │   ├── dev/
│   │   │   │   │   ├── appstore.json
│   │   │   │   │   ├── connectionSettings.json
│   │   │   │   │   ├── contentSearchPath.json
│   │   │   │   │   ├── createNodePath.json
│   │   │   │   │   ├── getConfigPath.json
│   │   │   │   │   ├── getNodeFieldsPath.json
│   │   │   │   │   ├── getSiteFieldsPath.json
│   │   │   │   │   ├── login.json
│   │   │   │   │   ├── logout.json
│   │   │   │   │   ├── saveAllowedBlocksPath.json
│   │   │   │   │   ├── saveAppearanceSettingsPath.json
│   │   │   │   │   ├── saveEditorSettingsPath.json
│   │   │   │   │   ├── saveManifestPath.json
│   │   │   │   │   ├── saveNode.json
│   │   │   │   │   ├── savePage.json
│   │   │   │   │   ├── savePlatformSettingsPath.json
│   │   │   │   │   ├── saveSeoSettingsPath.json
│   │   │   │   │   └── userData.json
│   │   │   │   ├── dev.html
│   │   │   │   ├── my-custom-elements.js
│   │   │   │   └── sites.json
│   │   │   ├── fake/
│   │   │   │   └── dev/
│   │   │   │       ├── ._.DS_Store
│   │   │   │       ├── appstore.json
│   │   │   │       ├── contentSearchPath.json
│   │   │   │       ├── getConfigPath.json
│   │   │   │       ├── getNodeFieldsPath.json
│   │   │   │       ├── getSiteFieldsPath.json
│   │   │   │       ├── login.json
│   │   │   │       ├── logout.json
│   │   │   │       ├── saveManifestPath.json
│   │   │   │       ├── saveNode.json
│   │   │   │       ├── savePage.json
│   │   │   │       └── saveSeoSettingsPath.json
│   │   │   ├── false
│   │   │   ├── index.html
│   │   │   ├── index.php
│   │   │   ├── legacy-outline.html
│   │   │   ├── lunrSearchIndex.json
│   │   │   ├── manifest.json
│   │   │   ├── package.json
│   │   │   ├── pages/
│   │   │   │   ├── .gitkeep
│   │   │   │   ├── item-012ec894-f7a5-4d12-b0e5-f8e131d7c2b8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0265920d-6055-404d-a0e6-1ae71c4ce258/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-06108b56-48b5-4c50-b262-81659edc750e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0714dbb2-8908-463c-9945-05be546b4c11/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0842ac8e-9e65-4715-be25-e3ef4c0baf8b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0ae1c6fb-3f57-4917-8caa-91853eda4982/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0af79ce5-d4ef-4602-8207-b67c711d8cc7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0d0372ea-0057-45bb-8625-0f921921701e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0d30bca9-c852-4b30-ae4e-abc519262d31/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0e12b64d-2eb5-4cea-8a85-829ec279cfc7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-104df0b1-7f96-4c26-96f4-d445fff8a868/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-12563166-de6a-42ed-baa6-9d9f694e8312/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-13056366-d039-4d51-b3ae-a3fcd12cd107/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-13bfe233-f320-41ef-94c0-855fe639e778/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-14b2032a-5465-43dc-b1b3-122e9f09d5e4/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-14ee9de9-51d1-4a0d-9944-3ba6856ac053/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-15525242-f6e9-4201-bbb1-cdd8f29176f6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-178875ba-a955-48b5-855a-9e1435d5d840/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-1d680323-87f4-4f28-bbd2-7268c9d4e172/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-1fa59985-6bf9-4ac7-802b-bc52035f9323/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-20addb32-74be-47bb-ab21-a8237d545b07/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-22596832-8320-4c7f-b7ae-f403d1d9ca31/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-225b6f65-9b18-4960-9ae8-7dd9face20a7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-23eb212e-a523-4d7b-862a-0a00cb786321/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2a102879-1110-4db4-a6b8-3b687f0fd2b1/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2b292b5e-6eb5-4031-9c82-7f3b7f87b236/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2ba3a0b9-8b5b-4e3f-bfed-a19c1a5edff3/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2bb2159d-c18b-4819-9760-988f227e2c3b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2eccc2a9-90b2-4dab-a4cb-f36bc45bc0ff/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2fdd27a1-190a-47c8-8192-910bc1afe0f5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-348f69b5-8bbb-4cf8-8eda-26b4141fffa6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3577db8a-6017-4df6-a2bb-8ecad1a2bbe7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3938a1cf-d097-473e-8e27-47d34c2e8e4b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-39d2b3f7-0ebc-43a6-88a3-5c1efd876b25/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-39f2e47c-f0fb-4d87-9180-f0f8dedfbe44/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3af50499-d450-4068-b2d2-5893283d0e27/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3be9e67a-53cb-4b3a-9f5b-dc0b40cda743/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3c1bf773-d9e2-4658-84f8-6ab5e3f42ab2/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3c4f0dbd-ef6a-4c8d-acaa-27b295243948/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3e882dd4-4f71-4035-9ea0-26d840853c29/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3f3cc6fc-18c9-47cb-95bf-0295b6a9e82d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-40583b55-32bf-40c7-8e81-99c054b9a764/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-41d063cb-b6b6-4c42-8a0e-6208a4f98a89/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4277ed25-a0ca-414c-a4ca-62e7d093d2f8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-42b47c5a-8ad2-4507-bef1-0488c65cc54a/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4550bc1f-bef7-4891-85f0-58647624a26b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4622057f-76f3-40dd-962b-0b6e640e4058/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4b504f9b-4efd-46a1-81a6-ec67c349c835/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4b62f800-7fb9-4a42-b28a-eacefa7bb53c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4b788e81-94f5-4699-b885-37b664eb8d7f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4bb1088a-8d44-4c7c-bf7c-89abe3787458/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4c29eaf9-75db-4e33-8cd3-de1f4d64d6ca/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4d1a84b2-ddcb-4dbc-9b37-2d135442c32d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-50802aa4-f49e-4207-98d2-7ef3745568fc/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-51b1acee-9e5c-4756-998e-d6f3ba97882c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-52613cf2-1d34-47ed-9a53-dcc1d84dd5f4/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-526ae84e-2f82-4007-a443-7dbe1115571c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-54584e9b-9350-45aa-8b4f-cf92272cb53d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-56f0a907-0dad-40eb-8302-c18aa6bbc374/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-585825f8-7d6a-4cf3-80cd-8fbed78053e6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-58846489-4cbe-496e-8330-444fa9c69252/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-5931cf01-9b8d-4bdd-990b-6f4465174dcf/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-59855d23-c026-4b44-9c9f-d5414cc80e55/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-5bcfc9da-de7b-4e0c-858d-1f7adde911a9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-5d3a6d3d-fd0d-4075-b9da-4116eefdca0b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-5e315843-9d4e-4b67-b046-faa245b67716/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-62df18a5-fe1c-416e-9429-8d3288e7afa7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-635fe9b5-9bda-4658-a1af-3a366d123657/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-63badd6e-1fda-4773-a747-5ac79dbaeb45/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-642b98a6-d2f7-4e66-9278-9f7a59ed44f8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6516e05a-35ca-4e30-94c9-da8f32ed7ac8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6527bda6-5e79-4530-a7b2-1c8885bcd89e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-680a9a59-5691-424e-8f84-ee9019e39849/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-68ecb822-ae89-466a-bce2-20b33332451a/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6cf36319-fe20-4a72-9cb3-97e44e80f8b9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6dd95e13-27ae-449b-9c6f-816636d849f5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6ecf99f9-5623-4892-a651-9472ec0c74a5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-73d866cd-ebd0-4124-ad99-b1b18455327d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-73fd1ab6-ba79-472d-9cc2-7828277a8e27/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7607700d-d318-4479-a588-837ea13ecd8b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-76c7ae2d-0520-48f6-957c-f4ec9f623736/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-76e43829-027c-481b-8b39-5d215b2b9670/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-778bd19b-566a-422b-99d1-20f564f12489/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7a54e617-a1cf-456d-866c-442b200d9e53/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7b57c34b-d8b4-4401-baed-01e39cc0cd77/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7c0ed8c2-f65d-41a6-93df-ccdc3fc43c9b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7c4e5edc-892b-4272-8513-248dd4d4efe5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7d7e9a33-1d6a-4b29-a442-35cef09ee666/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7ee4ecbe-f90d-4745-a164-9bbd11ddd763/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-80c5b6c1-cbe0-4955-b80e-b2acccf7a3fe/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-82db2727-136d-4ee0-b965-9d847d8631c6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-846f3fba-27bb-4e82-ba0e-fc1b381f7d17/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8477c368-ebc7-403d-b576-5d1c450a629c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-861b84da-33c7-49e8-bf25-7aa8d9206d3b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-86b505f8-dc95-4b86-8fdd-5104ecc4f02b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-873f7ad0-8fdd-4c51-81e0-e8f55ea612a5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8991f223-d78f-42c3-a5f4-da79658ad80e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8a5bf844-d498-4f75-bf96-110eaedb42d9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8c122112-a265-4ef1-8968-1f12423da119/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8dfd19ae-77ec-4737-9981-72e4d5880cb9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8ec9cf78-ab0c-42ec-abee-7c906be0a487/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8f14a636-3409-4174-890d-560ac20ad8d7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-903151c6-bd94-4bbb-9335-4649de2f9445/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-90f04b0e-75f3-424d-9e6f-4841af66ab6c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-9622913f-bd24-4595-bbc7-23cf38e2d668/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-96fcae63-7aa1-4bd5-a847-e8b2a49de877/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-99c45cf5-0c3b-4911-83de-70886b9d0c0d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-9cdc0d02-056e-4171-ac0a-207fb3dd6678/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-9e33c86c-9065-4313-b384-853d8fa2e97f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-9ffa23ac-c130-4a0c-92ee-481698e444a0/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a13f6fde-9c55-4a1c-bd64-cf8498be649d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a1b1587a-b40a-463f-ad4a-e5a05a98fd8c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a54cdc47-2f1c-4d82-8baf-fce180194a81/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a806cf22-5f68-4b66-b255-150adf678ea4/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a9108086-6b38-43b0-84b0-0447cab9c123/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a92e0dfc-e26f-4a7c-aa1d-f0d977b27d8f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a9fbc83f-b923-4af7-b998-5da6864a527a/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-aae73811-4bb1-44ba-9215-05c90b9f9007/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ac8baab4-f493-4fd9-9826-5f79e2e44c03/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ad0933f8-c4c7-4e67-94dc-879abe4d1a12/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ad71d26c-8288-4a47-9b38-7e93baa49c53/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-adb4f6d7-5f7a-4620-ad3a-b0ff14343e60/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-af1b0cec-dcf5-4974-9b3b-8d82e8ce1dab/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-af5ebc9a-83b4-48e6-9465-7f2e94f305b5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-af6cc6b8-3436-48fd-89c5-987cf0fa1e0b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-author-card-test/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b1a951b6-6989-4c62-aca2-e446bdc17bc9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b1cf2586-d6a6-44b7-ba16-82fdfee99f01/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b29033b8-b3a4-4025-8f6a-f869e044a1be/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b2b17986-f13e-4d6e-93a6-6bd21c930c3c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b88f694c-46ef-4b3c-91aa-a5d1e8a0cf1b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b8f8fb5d-b05d-448d-814d-fac40fac14f6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ba8ad453-896b-4890-b536-f769981e1d67/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-bcbf0a5d-9a15-43c7-809a-cd079036197c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-bfaeda43-323f-4da7-b441-a9fe170deb19/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-bfe943ba-4746-494a-b184-932c63b60909/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c1713fc0-f797-405a-b293-46a1d755bf57/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c47bf439-54fa-4c41-8f39-a72dc0d40b60/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c7a62f87-28f5-4049-95ce-10b1ddb94201/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c835c36d-38f5-43ac-9296-0b1be7851ce6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c8edb5fb-6fa9-4d47-b07f-e030d26c2a9f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ca6807b1-e87c-4cb5-989c-cb4331b5d031/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ca708b68-1af2-47b5-83d9-7cb94b42da91/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-cb3070a2-9525-41df-a6bb-91c2844c5ed5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-cd65aa07-4bab-4f8f-8ffc-c2184f49ce9a/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ce9cfcf5-e94f-4fc7-bdce-bda88e477a7f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d090faf0-5374-4039-8aee-c6dad760c5e1/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d0e6ac0b-fc44-4be3-8e32-3647ddaeddd7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d131e688-d93c-4cbc-b32d-f0d052aeb8d0/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d161c1a3-d246-44fd-ad22-f321e355d0e9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d345a07f-c3ee-4d20-909f-ec7293bd83b3/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d4b650a4-47af-4734-b891-7a6db766ca3e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d57321c6-4106-45ec-89a4-8ebdf0af67f2/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d597021d-28f9-402d-9d2c-8edff8c96e59/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d64f8a31-bd4c-499d-a0e0-e97ad1c9d1cb/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d673110e-8d91-4294-b80f-74a38cf51533/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d7a7736b-3262-4d0e-8df7-a9af7823a2b7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d8ea3243-d6e0-43e6-894a-1f595f952d7e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-da269799-25d5-4389-9e02-12ba64c14845/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-db474841-bf84-4cbd-a2dc-a337b38b5991/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-dd03f4e6-1fa8-47e8-8c32-b7f36856e6db/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-de9dbbb5-949b-49c0-95ad-dbbc84835db0/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-dec72ecf-71ad-480d-bb4b-105c4c83b676/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e0580363-6b05-4092-8711-7413ae36a221/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e115dd47-3a78-4e40-963e-46466a268290/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e1c254e5-af7b-47ed-a25b-ced6ce8c0f77/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e26fa70d-3b7b-4523-9779-909bc83b073d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e56349a0-bcf9-427b-8b68-e092ae15061f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e5e58d0e-aa0b-4749-a9cb-e791b08d4105/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e6b422fc-8920-45b1-9068-173399ca50b2/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e730662d-1e5e-4519-b2cc-6689657eeced/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ec1d856c-fc63-49c5-a405-6391feb4b1ea/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ecd1ac41-cf5f-412c-9a1b-a4fe62e4167d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ed0d786a-105e-46ac-b848-49073917809b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ed31d08a-a26c-4357-a2a5-249705a63b81/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-edcd6f86-05b5-43a9-8766-8a56709451c8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-eddf89ce-60f6-417b-8295-c0525219c230/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f37eeda2-e9b9-4039-84d5-f983ece1a6e5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f3c9734c-89d9-41a9-b886-55d782c63114/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f424af2a-f6a2-46fb-b052-ef69836a1e2e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f44c0f01-32e2-4e61-b965-3b24778abba0/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f5fc4e19-d3a6-48c3-bab5-a272ab4b288d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f74ecc94-2b62-44c7-bb23-820e3d0cf9f3/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f826380c-963c-49ff-a558-9337edbc6245/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-fbb47697-aa83-4b41-a3b4-ed8f9b2709c7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-fcf11a73-7e2a-4034-8fbd-545893c621dd/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-fd8d0496-8026-4f47-bd7f-8182e32cda98/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-link-github-repo/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-link-haxtheweb-homepage/
│   │   │   │   │   └── index.html
│   │   │   │   └── mlid-1483/
│   │   │   │       └── index.html
│   │   │   ├── polymer.json
│   │   │   ├── push-manifest.json
│   │   │   ├── robots.txt
│   │   │   ├── rss.xml
│   │   │   ├── service-worker.js
│   │   │   ├── site-random-content-test.html
│   │   │   ├── site.json
│   │   │   ├── sitemap.xml
│   │   │   ├── system/
│   │   │   │   └── listFiles
│   │   │   ├── theme/
│   │   │   │   ├── ._.DS_Store
│   │   │   │   ├── style-guide.html
│   │   │   │   ├── theme.css
│   │   │   │   └── theme.html
│   │   │   ├── upgrade-browser.html
│   │   │   └── wc-registry.json
│   │   ├── full-theme-automation.js
│   │   ├── gulpfile.cjs
│   │   ├── haxcms-elements.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── base.css
│   │   │   ├── core/
│   │   │   │   ├── HAXCMSLitElementTheme.js
│   │   │   │   ├── HAXCMSPolymerElementTheme.js
│   │   │   │   ├── HAXCMSThemeWiring.js
│   │   │   │   ├── backends/
│   │   │   │   │   ├── haxcms-backend-beaker.js
│   │   │   │   │   ├── haxcms-backend-demo.js
│   │   │   │   │   ├── haxcms-backend-nodejs.js
│   │   │   │   │   ├── haxcms-backend-php.js
│   │   │   │   │   └── haxcms-backend-userfs.js
│   │   │   │   ├── haxcms-appearance-admin-dialog.js
│   │   │   │   ├── haxcms-cheat-codes.js
│   │   │   │   ├── haxcms-content-admin-dialog.js
│   │   │   │   ├── haxcms-darkmode-toggle.js
│   │   │   │   ├── haxcms-editor-builder.js
│   │   │   │   ├── haxcms-files-admin-dialog.js
│   │   │   │   ├── haxcms-outline-editor-dialog.js
│   │   │   │   ├── haxcms-seo-admin-dialog.js
│   │   │   │   ├── haxcms-site-builder.js
│   │   │   │   ├── haxcms-site-dashboard.js
│   │   │   │   ├── haxcms-site-editor-ui.js
│   │   │   │   ├── haxcms-site-editor.js
│   │   │   │   ├── haxcms-site-insights.js
│   │   │   │   ├── haxcms-site-router.js
│   │   │   │   ├── haxcms-site-settings-dashboard.js
│   │   │   │   ├── haxcms-site-store.js
│   │   │   │   ├── haxcms-theme-picker.js
│   │   │   │   ├── haxcms-toast.js
│   │   │   │   ├── micros/
│   │   │   │   │   ├── haxcms-button-add.js
│   │   │   │   │   └── haxcms-page-operations.js
│   │   │   │   ├── themes/
│   │   │   │   │   ├── haxcms-basic-theme.js
│   │   │   │   │   ├── haxcms-blank-theme.js
│   │   │   │   │   ├── haxcms-custom-theme.js
│   │   │   │   │   ├── haxcms-json-theme.js
│   │   │   │   │   ├── haxcms-minimalist-theme.js
│   │   │   │   │   ├── haxcms-print-theme.js
│   │   │   │   │   └── haxcms-slide-theme.js
│   │   │   │   ├── ui/
│   │   │   │   │   ├── app-hax-top-bar.js
│   │   │   │   │   ├── app-hax-user-menu-button.js
│   │   │   │   │   ├── app-hax-user-menu.js
│   │   │   │   │   ├── hax-confirm-dialog.js
│   │   │   │   │   ├── haxcms-about-dialog-ui.js
│   │   │   │   │   ├── haxcms-allowed-blocks-ui.js
│   │   │   │   │   ├── haxcms-editor-settings-dialog-ui.js
│   │   │   │   │   ├── haxcms-page-get-started.js
│   │   │   │   │   ├── haxcms-site-platform-ui.js
│   │   │   │   │   ├── haxcms-theme-preview-panel.js
│   │   │   │   │   ├── rpg-character-toast/
│   │   │   │   │   │   └── rpg-character-toast.js
│   │   │   │   │   └── wired-darkmode-toggle/
│   │   │   │   │       └── wired-darkmode-toggle.js
│   │   │   │   └── utils/
│   │   │   │       ├── EditDescriptionProgram.js
│   │   │   │       ├── EditSlugProgram.js
│   │   │   │       ├── EditTagsProgram.js
│   │   │   │       ├── EditTitleProgram.js
│   │   │   │       ├── EmailPageMixin.js
│   │   │   │       ├── ExportPageProgram.js
│   │   │   │       ├── ExportSiteProgram.js
│   │   │   │       ├── HAXCMSButton.js
│   │   │   │       ├── HAXCMSI18NMixin.js
│   │   │   │       ├── HAXCMSKeyboardShortcuts.js
│   │   │   │       ├── HAXCMSMobileMenu.js
│   │   │   │       ├── HAXCMSOperationButtons.js
│   │   │   │       ├── HAXCMSRememberRoute.js
│   │   │   │       ├── HAXCMSThemeParts.js
│   │   │   │       ├── HAXCMSUserStylesMenu.js
│   │   │   │       ├── LTIResizingMixin.js
│   │   │   │       ├── PDFPageMixin.js
│   │   │   │       ├── PrintBranchMixin.js
│   │   │   │       ├── PrintProgram.js
│   │   │   │       ├── QRCodeMixin.js
│   │   │   │       ├── example-restricted-skeleton.json
│   │   │   │       └── site-skeleton-generator.js
│   │   │   ├── development/
│   │   │   │   ├── haxcms-dev-theme.js
│   │   │   │   └── haxcms-theme-developer.js
│   │   │   ├── hax-elements-registry.json
│   │   │   ├── themes.json
│   │   │   └── ui-components/
│   │   │       ├── active-item/
│   │   │       │   ├── site-active-fields.js
│   │   │       │   ├── site-active-media-banner.js
│   │   │       │   ├── site-active-tags.js
│   │   │       │   ├── site-active-title.js
│   │   │       │   ├── site-git-corner.js
│   │   │       │   └── site-share-widget.js
│   │   │       ├── blocks/
│   │   │       │   ├── site-children-block.js
│   │   │       │   ├── site-outline-block.js
│   │   │       │   └── site-recent-content-block.js
│   │   │       ├── layout/
│   │   │       │   ├── site-drawer.js
│   │   │       │   ├── site-footer.js
│   │   │       │   ├── site-modal.js
│   │   │       │   └── site-region.js
│   │   │       ├── lesson-overview/
│   │   │       │   ├── lesson-overview.js
│   │   │       │   └── lib/
│   │   │       │       ├── .gitkeep
│   │   │       │       ├── lesson-highlight.haxProperties.json
│   │   │       │       ├── lesson-highlight.js
│   │   │       │       └── lesson-overview.haxProperties.json
│   │   │       ├── magic/
│   │   │       │   ├── active-when-visible.js
│   │   │       │   ├── site-ai-chat.js
│   │   │       │   ├── site-collection-list.haxProperties.json
│   │   │       │   ├── site-collection-list.js
│   │   │       │   └── site-view.js
│   │   │       ├── navigation/
│   │   │       │   ├── site-breadcrumb.js
│   │   │       │   ├── site-dot-indicator.js
│   │   │       │   ├── site-menu-button.js
│   │   │       │   ├── site-menu-content.js
│   │   │       │   ├── site-menu.js
│   │   │       │   └── site-top-menu.js
│   │   │       ├── query/
│   │   │       │   ├── site-query-menu-slice.js
│   │   │       │   ├── site-query.js
│   │   │       │   └── site-render-query.js
│   │   │       ├── routes/
│   │   │       │   ├── site-home-route.js
│   │   │       │   ├── site-print-route.js
│   │   │       │   ├── site-random-route.js
│   │   │       │   ├── site-tags-route.js
│   │   │       │   ├── site-theme-style-guide-route.js
│   │   │       │   └── site-views-route.js
│   │   │       ├── site/
│   │   │       │   ├── site-print-button.js
│   │   │       │   ├── site-random-content.js
│   │   │       │   ├── site-remote-content.js
│   │   │       │   ├── site-rss-button.js
│   │   │       │   ├── site-search.js
│   │   │       │   ├── site-title.js
│   │   │       │   └── site-uuid-link.js
│   │   │       ├── templates/
│   │   │       │   ├── basic-template.js
│   │   │       │   └── minimalist-template.js
│   │   │       └── utilities/
│   │   │           └── site-available-themes.js
│   │   ├── locales/
│   │   │   ├── haxcms.af.json
│   │   │   ├── haxcms.am.json
│   │   │   ├── haxcms.ar.json
│   │   │   ├── haxcms.az.json
│   │   │   ├── haxcms.be.json
│   │   │   ├── haxcms.bg.json
│   │   │   ├── haxcms.bn.json
│   │   │   ├── haxcms.bs.json
│   │   │   ├── haxcms.ca.json
│   │   │   ├── haxcms.co.json
│   │   │   ├── haxcms.cs.json
│   │   │   ├── haxcms.cy.json
│   │   │   ├── haxcms.da.json
│   │   │   ├── haxcms.de.json
│   │   │   ├── haxcms.el.json
│   │   │   ├── haxcms.eo.json
│   │   │   ├── haxcms.es.json
│   │   │   ├── haxcms.et.json
│   │   │   ├── haxcms.eu.json
│   │   │   ├── haxcms.fa.json
│   │   │   ├── haxcms.fi.json
│   │   │   ├── haxcms.fo.json
│   │   │   ├── haxcms.fr.json
│   │   │   ├── haxcms.fy.json
│   │   │   ├── haxcms.ga.json
│   │   │   ├── haxcms.gl.json
│   │   │   ├── haxcms.gn.json
│   │   │   ├── haxcms.gu.json
│   │   │   ├── haxcms.ha.json
│   │   │   ├── haxcms.haw.json
│   │   │   ├── haxcms.he.json
│   │   │   ├── haxcms.hi.json
│   │   │   ├── haxcms.hr.json
│   │   │   ├── haxcms.hu.json
│   │   │   ├── haxcms.hy.json
│   │   │   ├── haxcms.id.json
│   │   │   ├── haxcms.ig.json
│   │   │   ├── haxcms.is.json
│   │   │   ├── haxcms.it.json
│   │   │   ├── haxcms.ja.json
│   │   │   ├── haxcms.jv.json
│   │   │   ├── haxcms.ka.json
│   │   │   ├── haxcms.kk.json
│   │   │   ├── haxcms.km.json
│   │   │   ├── haxcms.kn.json
│   │   │   ├── haxcms.ko.json
│   │   │   ├── haxcms.ku.json
│   │   │   ├── haxcms.ky.json
│   │   │   ├── haxcms.lb.json
│   │   │   ├── haxcms.lo.json
│   │   │   ├── haxcms.lt.json
│   │   │   ├── haxcms.lv.json
│   │   │   ├── haxcms.mi.json
│   │   │   ├── haxcms.mk.json
│   │   │   ├── haxcms.ml.json
│   │   │   ├── haxcms.mn.json
│   │   │   ├── haxcms.mr.json
│   │   │   ├── haxcms.ms.json
│   │   │   ├── haxcms.mt.json
│   │   │   ├── haxcms.my.json
│   │   │   ├── haxcms.nb.json
│   │   │   ├── haxcms.ne.json
│   │   │   ├── haxcms.nl.json
│   │   │   ├── haxcms.no.json
│   │   │   ├── haxcms.ny.json
│   │   │   ├── haxcms.om.json
│   │   │   ├── haxcms.pl.json
│   │   │   ├── haxcms.pnb.json
│   │   │   ├── haxcms.ps.json
│   │   │   ├── haxcms.pt.json
│   │   │   ├── haxcms.qu.json
│   │   │   ├── haxcms.ro.json
│   │   │   ├── haxcms.ru.json
│   │   │   ├── haxcms.sd.json
│   │   │   ├── haxcms.si.json
│   │   │   ├── haxcms.sk.json
│   │   │   ├── haxcms.sl.json
│   │   │   ├── haxcms.sn.json
│   │   │   ├── haxcms.so.json
│   │   │   ├── haxcms.sq.json
│   │   │   ├── haxcms.sr.json
│   │   │   ├── haxcms.sv.json
│   │   │   ├── haxcms.sw.json
│   │   │   ├── haxcms.ta.json
│   │   │   ├── haxcms.te.json
│   │   │   ├── haxcms.tg.json
│   │   │   ├── haxcms.th.json
│   │   │   ├── haxcms.tk.json
│   │   │   ├── haxcms.tr.json
│   │   │   ├── haxcms.tt.json
│   │   │   ├── haxcms.uk.json
│   │   │   ├── haxcms.ur.json
│   │   │   ├── haxcms.uz.json
│   │   │   ├── haxcms.vi.json
│   │   │   ├── haxcms.wuu.json
│   │   │   ├── haxcms.xh.json
│   │   │   ├── haxcms.yi.json
│   │   │   ├── haxcms.yo.json
│   │   │   ├── haxcms.zh.json
│   │   │   └── haxcms.zu.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── haxcms-elements.test.js
│   │   └── theme-screenshot-automation.js
│   ├── haxma-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── haxma-theme.js
│   │   ├── index.html
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── haxma-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── haxor-slevin/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── haxor-slevin.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── haxor-slevin.test.js
│   ├── hex-picker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hex-picker.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hex-picker.test.js
│   ├── hexagon-loader/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── hexagon.html
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hexagon-loader.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── hex-a-gon.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hexagon-loader.test.js
│   ├── html-block/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── html-block.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── html-block.test.js
│   ├── i18n-manager/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── i18n-manager.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── I18NMixin.js
│   │   │   └── translation-manifest.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── i18n-manager.test.js
│   ├── iframe-loader/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── iframe-loader.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── iframe-loader.haxProperties.json
│   │   │   └── loading-indicator.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── iframe-loader.test.js
│   ├── image-compare-slider/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── image-compare-slider.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── image-compare-slider.haxProperties.json
│   │   ├── locales/
│   │   │   └── image-compare-slider.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── image-compare-slider.test.js
│   ├── image-inspector/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── image-inspector.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── image-inspector.test.js
│   ├── img-pan-zoom/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── img-pan-zoom.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── img-loader.js
│   │   │   └── openseadragon/
│   │   │       └── LICENSE.txt
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── img-pan-zoom.test.js
│   ├── img-view-modal/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── viewer.html
│   │   ├── gulpfile.cjs
│   │   ├── img-view-modal.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── img-view-viewer.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── img-view-modal.test.js
│   ├── inline-audio/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── inline-audio.js
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── inline-audio.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── inline-audio.test.js
│   ├── intersection-element/
│   │   ├── README.md
│   │   ├── gulpfile.cjs
│   │   ├── lib/
│   │   │   └── IntersectionObserverMixin.js
│   │   ├── package.json
│   │   └── test/
│   │       └── intersection-observer-mixin.test.js
│   ├── journey-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── journey-theme.js
│   │   ├── lib/
│   │   │   ├── journey-menu.js
│   │   │   ├── journey-sidebar-theme-styles.js
│   │   │   ├── journey-sidebar-theme.js
│   │   │   ├── journey-topbar-theme-styles.js
│   │   │   └── journey-topbar-theme.js
│   │   ├── locales/
│   │   │   ├── journey-theme.ar.json
│   │   │   ├── journey-theme.es.json
│   │   │   ├── journey-theme.hi.json
│   │   │   └── journey-theme.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   ├── journey-sidebar-theme.test.js
│   │   │   └── journey-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── json-outline-schema/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   ├── listing.html
│   │   │   ├── site.json
│   │   │   └── siteList.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── json-outline-schema.js
│   │   ├── lib/
│   │   │   ├── jos-render.js
│   │   │   └── json-outline-schema-item.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── json-outline-schema.test.js
│   ├── jwt-login/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── jwt-request-flow.drawio
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── jwt-login.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── jwt-login.test.js
│   ├── la-tex/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── la-tex.js
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── la-tex.haxProperties.json
│   │   │   └── latex2html5.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── la-tex.test.js
│   ├── lazy-image-helpers/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lazy-image-helpers.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lazy-image-helpers.test.js
│   ├── lazy-import-discover/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lazy-import-discover.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lazy-import-discover.test.js
│   ├── learn-two-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── learn-two-theme.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── learn-two-theme.test.js
│   ├── license-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── license-element.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── license-element.test.js
│   ├── lorem-data/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── lorem-data-behaviors.js
│   │   ├── lorem-data.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lorem-data.test.js
│   ├── lrn-gitgraph/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── api.json
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── gitgraphjs/
│   │   │       └── src/
│   │   │           ├── gitgraph.css
│   │   │           └── gitgraph.js
│   │   ├── lrn-gitgraph.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrn-gitgraph.test.js
│   ├── lrn-math/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lrn-math.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrn-math.test.js
│   ├── lrn-table/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── demo.csv
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── lrn-table.haxProperties.json
│   │   ├── lrn-table.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrn-table.test.js
│   ├── lrn-vocab/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lrn-vocab.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrn-vocab.test.js
│   ├── lrndesign-chart/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── bar.csv
│   │   │   ├── bar.html
│   │   │   ├── index.html
│   │   │   ├── line.csv
│   │   │   ├── line.html
│   │   │   ├── pie.csv
│   │   │   └── pie.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── lrndesign-bar.js
│   │   │   ├── lrndesign-line.js
│   │   │   └── lrndesign-pie.js
│   │   ├── lrndesign-chart.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrndesign-chart.test.js
│   ├── lrndesign-imagemap/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── process.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── lrndesign-imagemap-hotspot.js
│   │   ├── lrndesign-imagemap.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrndesign-imagemap.test.js
│   ├── lrndesign-timeline/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lrndesign-timeline.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrndesign-timeline.test.js
│   ├── lrs-elements/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── lrs-bridge-haxcms.js
│   │   │   ├── lrs-bridge.js
│   │   │   └── lrs-emitter.js
│   │   ├── lrs-elements.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrs-elements.test.js
│   ├── lunr-search/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── lunrSearchIndex.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lunr-search.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lunr-search.test.js
│   ├── map-menu/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── map-menu-builder.js
│   │   │   ├── map-menu-container.js
│   │   │   ├── map-menu-header.js
│   │   │   ├── map-menu-item.js
│   │   │   └── map-menu-submenu.js
│   │   ├── locales/
│   │   │   └── map-menu.es.json
│   │   ├── map-menu.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── map-menu.test.js
│   ├── mark-the-words/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── mark-the-words.haxProperties.json
│   │   ├── mark-the-words.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── mark-the-words.test.js
│   ├── matching-question/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── matching-question.haxProperties.json
│   │   ├── matching-question.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── index.html
│   │       ├── matching-question.test.js
│   │       └── matching-question_test.html
│   ├── md-block/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── md-block.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── md-block.test.js
│   ├── media-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── media-behaviors.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── media-behaviors.test.js
│   ├── media-image/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── media-image.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── media-image.test.js
│   ├── media-quote/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── media-quote.haxProperties.json
│   │   ├── media-quote.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── index.html
│   │       ├── media-quote.test.js
│   │       └── media-quote_test.html
│   ├── meme-maker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── meme-maker.haxProperties.json
│   │   ├── locales/
│   │   │   ├── meme-maker.haxProperties.ar.json
│   │   │   ├── meme-maker.haxProperties.bn.json
│   │   │   ├── meme-maker.haxProperties.de.json
│   │   │   ├── meme-maker.haxProperties.es.json
│   │   │   ├── meme-maker.haxProperties.fr.json
│   │   │   ├── meme-maker.haxProperties.gu.json
│   │   │   ├── meme-maker.haxProperties.he.json
│   │   │   ├── meme-maker.haxProperties.hi.json
│   │   │   ├── meme-maker.haxProperties.id.json
│   │   │   ├── meme-maker.haxProperties.it.json
│   │   │   ├── meme-maker.haxProperties.ja.json
│   │   │   ├── meme-maker.haxProperties.kn.json
│   │   │   ├── meme-maker.haxProperties.ko.json
│   │   │   ├── meme-maker.haxProperties.ml.json
│   │   │   ├── meme-maker.haxProperties.mr.json
│   │   │   ├── meme-maker.haxProperties.my.json
│   │   │   ├── meme-maker.haxProperties.nl.json
│   │   │   ├── meme-maker.haxProperties.pl.json
│   │   │   ├── meme-maker.haxProperties.pnb.json
│   │   │   ├── meme-maker.haxProperties.pt.json
│   │   │   ├── meme-maker.haxProperties.ro.json
│   │   │   ├── meme-maker.haxProperties.ru.json
│   │   │   ├── meme-maker.haxProperties.sv.json
│   │   │   ├── meme-maker.haxProperties.ta.json
│   │   │   ├── meme-maker.haxProperties.te.json
│   │   │   ├── meme-maker.haxProperties.th.json
│   │   │   ├── meme-maker.haxProperties.tl.json
│   │   │   ├── meme-maker.haxProperties.tr.json
│   │   │   ├── meme-maker.haxProperties.uk.json
│   │   │   ├── meme-maker.haxProperties.ur.json
│   │   │   ├── meme-maker.haxProperties.uz.json
│   │   │   ├── meme-maker.haxProperties.vi.json
│   │   │   ├── meme-maker.haxProperties.wuu.json
│   │   │   └── meme-maker.haxProperties.zh.json
│   │   ├── meme-maker.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── meme-maker-i18n.test.js
│   │       └── meme-maker.test.js
│   ├── merit-badge/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── badge-sticker.js
│   │   │   ├── date-title.js
│   │   │   └── locked-badge.js
│   │   ├── merit-badge.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── merit-badge.test.js
│   ├── micro-frontend-registry/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── docx-example.js
│   │   │   ├── index.html
│   │   │   └── mf-htmlmd-example.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── microServices.js
│   │   ├── micro-frontend-registry.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── micro-frontend-registry.test.js
│   ├── moar-sarcasm/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── moar-sarcasm.haxProperties.json
│   │   ├── moar-sarcasm.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── moar-sarcasm.test.js
│   ├── moment-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── moment/
│   │   │       ├── LICENSE
│   │   │       └── moment.js
│   │   ├── moment-element.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── moment-element.test.js
│   ├── multiple-choice/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── QuestionElement.js
│   │   │   ├── confetti-container.js
│   │   │   ├── multiple-choice.haxProperties.json
│   │   │   ├── short-answer-question.haxProperties.json
│   │   │   ├── short-answer-question.js
│   │   │   ├── true-false-question.haxProperties.json
│   │   │   └── true-false-question.js
│   │   ├── multiple-choice.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── multiple-choice.test.js
│   ├── music-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── html-midi-player.js
│   │   │   └── music-player.haxProperties.json
│   │   ├── music-player.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── music-player.test.js
│   ├── mutation-observer-import-mixin/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── MutationObserverImportMixin.js
│   │   ├── mutation-observer-import-mixin.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── mutation-observer-import-mixin.test.js
│   ├── oer-schema/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── oerschema.js
│   │   ├── oer-schema.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── oer-schema.test.js
│   ├── outline-designer/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── ANALYSIS_AND_RECOMMENDATIONS.md
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── example.json
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── outline-designer.es.json
│   │   ├── outline-designer.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── outline-designer.test.js
│   ├── outline-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── content/
│   │   │   │   ├── Welcome%20to%20the%20jungle.html
│   │   │   │   ├── page1.html
│   │   │   │   ├── page2.html
│   │   │   │   ├── page3.html
│   │   │   │   ├── page4.html
│   │   │   │   ├── page5.html
│   │   │   │   └── page6.html
│   │   │   ├── index.html
│   │   │   └── outline.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── outline-player.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── outline-player.test.js
│   ├── page-break/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── page-anchor.haxProperties.json
│   │   │   ├── page-anchor.js
│   │   │   ├── page-break-manager.js
│   │   │   ├── page-break-outline.js
│   │   │   ├── page-break.haxProperties.json
│   │   │   └── page-template.js
│   │   ├── locales/
│   │   │   ├── page-break.af.json
│   │   │   ├── page-break.am.json
│   │   │   ├── page-break.ar.json
│   │   │   ├── page-break.az.json
│   │   │   ├── page-break.be.json
│   │   │   ├── page-break.bg.json
│   │   │   ├── page-break.bn.json
│   │   │   ├── page-break.bs.json
│   │   │   ├── page-break.ca.json
│   │   │   ├── page-break.co.json
│   │   │   ├── page-break.cs.json
│   │   │   ├── page-break.cy.json
│   │   │   ├── page-break.da.json
│   │   │   ├── page-break.de.json
│   │   │   ├── page-break.el.json
│   │   │   ├── page-break.eo.json
│   │   │   ├── page-break.es.json
│   │   │   ├── page-break.et.json
│   │   │   ├── page-break.eu.json
│   │   │   ├── page-break.fa.json
│   │   │   ├── page-break.fi.json
│   │   │   ├── page-break.fo.json
│   │   │   ├── page-break.fr.json
│   │   │   ├── page-break.fy.json
│   │   │   ├── page-break.ga.json
│   │   │   ├── page-break.gl.json
│   │   │   ├── page-break.gn.json
│   │   │   ├── page-break.gu.json
│   │   │   ├── page-break.ha.json
│   │   │   ├── page-break.haw.json
│   │   │   ├── page-break.he.json
│   │   │   ├── page-break.hi.json
│   │   │   ├── page-break.hr.json
│   │   │   ├── page-break.hu.json
│   │   │   ├── page-break.hy.json
│   │   │   ├── page-break.id.json
│   │   │   ├── page-break.ig.json
│   │   │   ├── page-break.is.json
│   │   │   ├── page-break.it.json
│   │   │   ├── page-break.ja.json
│   │   │   ├── page-break.jv.json
│   │   │   ├── page-break.ka.json
│   │   │   ├── page-break.kk.json
│   │   │   ├── page-break.km.json
│   │   │   ├── page-break.kn.json
│   │   │   ├── page-break.ko.json
│   │   │   ├── page-break.ku.json
│   │   │   ├── page-break.ky.json
│   │   │   ├── page-break.lb.json
│   │   │   ├── page-break.lo.json
│   │   │   ├── page-break.lt.json
│   │   │   ├── page-break.lv.json
│   │   │   ├── page-break.mi.json
│   │   │   ├── page-break.mk.json
│   │   │   ├── page-break.ml.json
│   │   │   ├── page-break.mn.json
│   │   │   ├── page-break.mr.json
│   │   │   ├── page-break.ms.json
│   │   │   ├── page-break.mt.json
│   │   │   ├── page-break.my.json
│   │   │   ├── page-break.nb.json
│   │   │   ├── page-break.ne.json
│   │   │   ├── page-break.nl.json
│   │   │   ├── page-break.no.json
│   │   │   ├── page-break.ny.json
│   │   │   ├── page-break.om.json
│   │   │   ├── page-break.pa.json
│   │   │   ├── page-break.pl.json
│   │   │   ├── page-break.pnb.json
│   │   │   ├── page-break.ps.json
│   │   │   ├── page-break.pt.json
│   │   │   ├── page-break.qu.json
│   │   │   ├── page-break.ro.json
│   │   │   ├── page-break.ru.json
│   │   │   ├── page-break.sd.json
│   │   │   ├── page-break.si.json
│   │   │   ├── page-break.sk.json
│   │   │   ├── page-break.sl.json
│   │   │   ├── page-break.sn.json
│   │   │   ├── page-break.so.json
│   │   │   ├── page-break.sq.json
│   │   │   ├── page-break.sr.json
│   │   │   ├── page-break.sv.json
│   │   │   ├── page-break.sw.json
│   │   │   ├── page-break.ta.json
│   │   │   ├── page-break.te.json
│   │   │   ├── page-break.tg.json
│   │   │   ├── page-break.th.json
│   │   │   ├── page-break.tk.json
│   │   │   ├── page-break.tr.json
│   │   │   ├── page-break.tt.json
│   │   │   ├── page-break.uk.json
│   │   │   ├── page-break.ur.json
│   │   │   ├── page-break.uz.json
│   │   │   ├── page-break.vi.json
│   │   │   ├── page-break.wuu.json
│   │   │   ├── page-break.xh.json
│   │   │   ├── page-break.yi.json
│   │   │   ├── page-break.yo.json
│   │   │   ├── page-break.zh.json
│   │   │   └── page-break.zu.json
│   │   ├── package.json
│   │   ├── page-break.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-break.test.js
│   ├── page-contents-menu/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── page-contents-menu.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-contents-menu.test.js
│   ├── page-flag/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── page-flag-comment.js
│   │   │   └── page-flag.haxProperties.json
│   │   ├── package.json
│   │   ├── page-flag.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-flag.test.js
│   ├── page-scroll-position/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── page-scroll-position.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-scroll-position.test.js
│   ├── page-section/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── page-section.haxProperties.json
│   │   ├── package.json
│   │   ├── page-section.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-section.test.js
│   ├── paper-input-flagged/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── paper-input-flagged.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── paper-input-flagged.test.js
│   ├── paper-stepper/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── paper-icon-step.js
│   │   │   ├── paper-icon-stepper.js
│   │   │   └── paper-step.js
│   │   ├── package.json
│   │   ├── paper-stepper.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── paper-stepper.test.js
│   ├── parallax-image/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── parallax-image.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── parallax-image.test.js
│   ├── pdf-browser-viewer/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── pdf-browser-viewer.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── pdf-browser-viewer.test.js
│   ├── person-testimonial/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── person-testimonial.haxProperties.json
│   │   ├── package.json
│   │   ├── person-testimonial.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── person-testimonial.test.js
│   ├── place-holder/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── place-holder.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── place-holder.test.js
│   ├── play-list/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── SLStyleManager.js
│   │   │   ├── dark.css
│   │   │   ├── light.css
│   │   │   └── play-list.haxProperties.json
│   │   ├── package.json
│   │   ├── play-list.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── play-list.test.js
│   ├── polaris-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── polaris-cta.js
│   │   │   ├── polaris-flex-sidebar.js
│   │   │   ├── polaris-flex-theme.js
│   │   │   ├── polaris-invent-theme.js
│   │   │   ├── polaris-mark.js
│   │   │   ├── polaris-story-card.js
│   │   │   └── polaris-tile.js
│   │   ├── package.json
│   │   ├── polaris-theme.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── polaris-theme.test.js
│   ├── portal-launcher/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── portal-launcher.js
│   │   └── test/
│   │       └── portal-launcher.test.js
│   ├── post-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── PostCardPhoto.js
│   │   │   ├── PostCardPostmark.js
│   │   │   ├── PostCardStamp.js
│   │   │   └── post-card.haxProperties.json
│   │   ├── locales/
│   │   │   ├── post-card.de.json
│   │   │   ├── post-card.es.json
│   │   │   ├── post-card.fr.json
│   │   │   ├── post-card.it.json
│   │   │   ├── post-card.ja.json
│   │   │   └── post-card.zh_CN.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── post-card.js
│   │   └── test/
│   │       └── post-card.test.js
│   ├── pouch-db/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── pouch-db.js
│   │   └── test/
│   │       └── pouch-db.test.js
│   ├── product-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── hax.html
│   │   │   ├── index.html
│   │   │   └── wc-registry.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── course-card.js
│   │   │   ├── fields.json
│   │   │   ├── hax-element-card-list.js
│   │   │   ├── hax-element-list-selector.js
│   │   │   └── product-banner.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── product-card.js
│   │   └── test/
│   │       └── product-card.test.js
│   ├── product-glance/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── product-glance.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── product-glance.js
│   │   └── test/
│   │       ├── product-glance-basic.test.js
│   │       ├── product-glance-minimal.test.js
│   │       └── product-glance.test.js
│   ├── product-offering/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── product-offering.js
│   │   └── test/
│   │       └── product-offering.test.js
│   ├── progress-donut/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── progress-donut.js
│   │   └── test/
│   │       └── progress-donut.test.js
│   ├── promise-progress/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── basic.html
│   │   │   ├── index.html
│   │   │   ├── registry.json
│   │   │   └── wc-preload.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── promise-progress-lite.js
│   │   │   └── wc-preload-progress.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── promise-progress.js
│   │   └── test/
│   │       └── promise-progress.test.js
│   ├── q-r/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── q-r.haxProperties.json
│   │   │   ├── qr-code.js
│   │   │   └── qr.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── q-r.js
│   │   └── test/
│   │       └── q-r.test.js
│   ├── radio-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── figure-carousel.js
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── radio-behaviors.js
│   │   └── test/
│   │       └── radio-behaviors.test.js
│   ├── relative-heading/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── demo.css
│   │   │   ├── demo.js
│   │   │   ├── index.html
│   │   │   ├── lite.html
│   │   │   ├── nolinks.html
│   │   │   └── rightalign.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── relative-heading-lite.js
│   │   │   └── relative-heading-state-manager.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── relative-heading.js
│   │   └── test/
│   │       └── relative-heading.test.js
│   ├── replace-tag/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── magicDeviceMethod.html
│   │   │   ├── magicMethod.html
│   │   │   ├── performance/
│   │   │   │   └── dist/
│   │   │   │       ├── assets/
│   │   │   │       │   ├── babel-top.js
│   │   │   │       │   ├── build-legacy.js
│   │   │   │       │   ├── build-polyfills.js
│   │   │   │       │   └── upgrade-browser.html
│   │   │   │       └── build.js
│   │   │   ├── traditionalDeviceMethod.html
│   │   │   ├── traditionalMethod.html
│   │   │   └── wc-registry.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── LoadingHelper.js
│   │   │   ├── PerformanceDetect.js
│   │   │   ├── loading-styles.css
│   │   │   └── loading-styles.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── replace-tag.js
│   │   └── test/
│   │       └── replace-tag.test.js
│   ├── responsive-grid/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── performancetest.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── responsive-grid-clear.js
│   │   │   ├── responsive-grid-col.js
│   │   │   └── responsive-grid-row.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── responsive-grid.js
│   │   └── test/
│   │       └── responsive-grid.test.js
│   ├── responsive-utility/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── responsive-utility-behaviors.js
│   │   │   └── responsive-utility-element.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── responsive-utility.js
│   │   └── test/
│   │       └── responsive-utility.test.js
│   ├── retro-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── retro-card.js
│   │   └── test/
│   │       └── retro-card.test.js
│   ├── rich-text-editor/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── button.html
│   │   │   ├── buttons.html
│   │   │   ├── config.html
│   │   │   ├── full.html
│   │   │   ├── index.html
│   │   │   ├── mini.html
│   │   │   ├── rawhtml.html
│   │   │   ├── selection.html
│   │   │   └── toolbar.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── buttons/
│   │   │   │   ├── rich-text-editor-button.js
│   │   │   │   ├── rich-text-editor-emoji-picker.js
│   │   │   │   ├── rich-text-editor-heading-picker.js
│   │   │   │   ├── rich-text-editor-icon-picker.js
│   │   │   │   ├── rich-text-editor-image.js
│   │   │   │   ├── rich-text-editor-link.js
│   │   │   │   ├── rich-text-editor-picker.js
│   │   │   │   ├── rich-text-editor-prompt-button.js
│   │   │   │   ├── rich-text-editor-source-code.js
│   │   │   │   ├── rich-text-editor-symbol-picker.js
│   │   │   │   ├── rich-text-editor-underline.js
│   │   │   │   └── rich-text-editor-unlink.js
│   │   │   ├── open-apis/
│   │   │   │   └── link-preview-card.js
│   │   │   ├── singletons/
│   │   │   │   ├── rich-text-editor-clipboard.js
│   │   │   │   ├── rich-text-editor-highlight.js
│   │   │   │   ├── rich-text-editor-prompt.js
│   │   │   │   ├── rich-text-editor-range-behaviors.js
│   │   │   │   └── rich-text-editor-source.js
│   │   │   └── toolbars/
│   │   │       ├── rich-text-editor-breadcrumbs.js
│   │   │       ├── rich-text-editor-toolbar-full.js
│   │   │       ├── rich-text-editor-toolbar-mini.js
│   │   │       └── rich-text-editor-toolbar.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── rich-text-editor.js
│   │   └── test/
│   │       └── rich-text-editor.test.js
│   ├── rpg-character/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── rpg-character.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── rpg-character.js
│   │   └── test/
│   │       └── rpg-character.test.js
│   ├── runkit-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── runkit-embed.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── runkit-embed.js
│   │   └── test/
│   │       ├── index.html
│   │       ├── runkit-embed.test.js
│   │       └── runkit-embed_test.html
│   ├── schema-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── schema-behaviors.js
│   │   └── test/
│   │       └── schema-behaviors.test.js
│   ├── screen-recorder/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── screen-recorder.haxProperties.json
│   │   ├── locales/
│   │   │   ├── screen-recorder.ar.haxProperties.json
│   │   │   ├── screen-recorder.ar.json
│   │   │   ├── screen-recorder.bn.haxProperties.json
│   │   │   ├── screen-recorder.bn.json
│   │   │   ├── screen-recorder.es.haxProperties.json
│   │   │   ├── screen-recorder.es.json
│   │   │   ├── screen-recorder.fr.haxProperties.json
│   │   │   ├── screen-recorder.fr.json
│   │   │   ├── screen-recorder.hi.haxProperties.json
│   │   │   ├── screen-recorder.hi.json
│   │   │   ├── screen-recorder.ja.haxProperties.json
│   │   │   ├── screen-recorder.ja.json
│   │   │   ├── screen-recorder.pt.haxProperties.json
│   │   │   ├── screen-recorder.pt.json
│   │   │   ├── screen-recorder.ru.haxProperties.json
│   │   │   ├── screen-recorder.ru.json
│   │   │   ├── screen-recorder.zh.haxProperties.json
│   │   │   └── screen-recorder.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── screen-recorder.js
│   │   ├── test/
│   │   │   └── screen-recorder.test.js
│   │   └── web-dev-server.config.mjs
│   ├── scroll-button/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── locales/
│   │   │   └── scroll-button.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── scroll-button.js
│   │   └── test/
│   │       └── scroll-button.test.js
│   ├── self-check/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── self-check.haxProperties.json
│   │   ├── locales/
│   │   │   ├── self-check.es.json
│   │   │   ├── self-check.he.json
│   │   │   └── self-check.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── self-check.js
│   │   └── test/
│   │       └── self-check.test.js
│   ├── shadow-style/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── shadow-style.js
│   │   └── test/
│   │       └── shadow-style.test.js
│   ├── simple-autocomplete/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── simple-autocomplete-text-trigger.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-autocomplete.js
│   │   └── test/
│   │       └── simple-autocomplete.test.js
│   ├── simple-blog/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-blog-footer.js
│   │   │   ├── simple-blog-header.js
│   │   │   ├── simple-blog-listing.js
│   │   │   ├── simple-blog-overview.js
│   │   │   └── simple-blog-post.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-blog.js
│   │   └── test/
│   │       └── simple-blog.test.js
│   ├── simple-colors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── colors.html
│   │   │   ├── extending.html
│   │   │   ├── how.html
│   │   │   ├── index.html
│   │   │   └── picker.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── demo/
│   │   │   │   ├── simple-colors-swatch-info.js
│   │   │   │   └── simple-colors-swatches.js
│   │   │   └── simple-colors-picker.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-colors.js
│   │   └── test/
│   │       └── simple-colors.test.js
│   ├── simple-colors-shared-styles/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-colors-shared-styles.js
│   │   └── test/
│   │       └── simple-colors-shared-styles.test.js
│   ├── simple-cta/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── lrnsys-button.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-cta.js
│   │   └── test/
│   │       └── simple-cta.test.js
│   ├── simple-datetime/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── LICENSE
│   │   │   └── date.format.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-datetime.js
│   │   └── test/
│   │       └── simple-datetime.test.js
│   ├── simple-emoji/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-emoji.js
│   │   └── test/
│   │       └── simple-emoji.test.js
│   ├── simple-fields/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── backend.json
│   │   │   ├── conditional.html
│   │   │   ├── container.html
│   │   │   ├── data/
│   │   │   │   ├── fields.json
│   │   │   │   └── schema.json
│   │   │   ├── field.html
│   │   │   ├── form-lite.html
│   │   │   ├── form.html
│   │   │   ├── index.html
│   │   │   ├── lite.html
│   │   │   ├── schema.html
│   │   │   ├── subschema.html
│   │   │   ├── tags.html
│   │   │   └── upload.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-context-menu.js
│   │   │   ├── simple-fields-array-item.js
│   │   │   ├── simple-fields-array.js
│   │   │   ├── simple-fields-code.js
│   │   │   ├── simple-fields-combo.js
│   │   │   ├── simple-fields-container.js
│   │   │   ├── simple-fields-field.js
│   │   │   ├── simple-fields-fieldset.js
│   │   │   ├── simple-fields-form-lite.js
│   │   │   ├── simple-fields-form.js
│   │   │   ├── simple-fields-html-block.js
│   │   │   ├── simple-fields-lite.js
│   │   │   ├── simple-fields-tab.js
│   │   │   ├── simple-fields-tabs.js
│   │   │   ├── simple-fields-tag-list.js
│   │   │   ├── simple-fields-ui.js
│   │   │   ├── simple-fields-upload.js
│   │   │   ├── simple-fields-url-combo-item.js
│   │   │   ├── simple-fields-url-combo.js
│   │   │   ├── simple-tag-lite.js
│   │   │   ├── simple-tag.js
│   │   │   ├── simple-tags.haxProperties.json
│   │   │   └── simple-tags.js
│   │   ├── locales/
│   │   │   └── simple-fields.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-fields.js
│   │   └── test/
│   │       └── simple-fields.test.js
│   ├── simple-filter/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-filter.js
│   │   └── test/
│   │       └── simple-filter.test.js
│   ├── simple-icon/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── button-lite.html
│   │   │   ├── button.html
│   │   │   ├── iconset.html
│   │   │   ├── index.html
│   │   │   └── lite.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── build.sh
│   │   │   ├── simple-icon-button-lite.js
│   │   │   ├── simple-icon-button.js
│   │   │   ├── simple-icon-lite.js
│   │   │   ├── simple-icon.haxProperties.json
│   │   │   ├── simple-icons.js
│   │   │   ├── simple-iconset-demo.js
│   │   │   ├── simple-iconset-manifest.js
│   │   │   └── simple-iconset.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-icon.js
│   │   └── test/
│   │       └── simple-icon.test.js
│   ├── simple-icon-picker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-icon-picker.js
│   │   └── test/
│   │       └── simple-icon-picker.test.js
│   ├── simple-img/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── simple-img.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-img.js
│   │   └── test/
│   │       └── simple-img.test.js
│   ├── simple-login/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-camera-snap.js
│   │   │   ├── simple-login-avatar.js
│   │   │   └── simple-login-camera.js
│   │   ├── locales/
│   │   │   └── simple-login.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-login.js
│   │   └── test/
│   │       └── simple-login.test.js
│   ├── simple-modal/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── css.html
│   │   │   ├── details.html
│   │   │   ├── index.html
│   │   │   └── template.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-modal-handler.js
│   │   │   └── simple-modal-template.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-modal.js
│   │   └── test/
│   │       └── simple-modal.test.js
│   ├── simple-picker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── SimplePickerEmojis.js
│   │   │   ├── simple-emoji-picker.js
│   │   │   ├── simple-picker-option.js
│   │   │   └── simple-symbol-picker.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-picker.js
│   │   ├── simple-picker.js.rej
│   │   └── test/
│   │       └── simple-picker.test.js
│   ├── simple-popover/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── tour.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── SimpleTourFinder.js
│   │   │   ├── simple-popover-manager.js
│   │   │   ├── simple-popover-selection.js
│   │   │   └── simple-tour.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-popover.js
│   │   └── test/
│   │       └── simple-popover.test.js
│   ├── simple-progress/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-progress.js
│   │   └── test/
│   │       └── simple-progress.test.js
│   ├── simple-range-input/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-range-input.js
│   │   └── test/
│   │       └── simple-range-input.test.js
│   ├── simple-search/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── selector.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-search-content.js
│   │   │   └── simple-search-match.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-search.js
│   │   └── test/
│   │       └── simple-search.test.js
│   ├── simple-toast/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── simple-toast-el.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-toast.js
│   │   └── test/
│   │       └── simple-toast.test.js
│   ├── simple-toolbar/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── buttons.html
│   │   │   ├── grid.html
│   │   │   ├── index.html
│   │   │   └── menu.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-button-grid.js
│   │   │   ├── simple-toolbar-button-group.js
│   │   │   ├── simple-toolbar-button.js
│   │   │   ├── simple-toolbar-field.js
│   │   │   ├── simple-toolbar-menu-item.js
│   │   │   ├── simple-toolbar-menu.js
│   │   │   └── simple-toolbar-more-button.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-toolbar.js
│   │   └── test/
│   │       └── simple-toolbar.test.js
│   ├── simple-tooltip/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-tooltip.js
│   │   └── test/
│   │       └── simple-tooltip.test.js
│   ├── simple-wc/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── simple-wc-demo.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-wc.js
│   │   └── test/
│   │       └── simple-wc.test.js
│   ├── social-share-link/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── social-share-link.js
│   │   └── test/
│   │       └── social-share-link.test.js
│   ├── sorting-question/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── sorting-option.js
│   │   │   └── sorting-question.haxProperties.json
│   │   ├── locales/
│   │   │   ├── sorting-question.es.json
│   │   │   ├── sorting-question.he.json
│   │   │   └── sorting-question.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── sorting-question.js
│   │   └── test/
│   │       └── sorting-question.test.js
│   ├── spacebook-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── spacebook-theme.js
│   │   ├── test/
│   │   │   └── spacebook-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── spotify-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── spotify-embed.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── spotify-embed.js
│   │   └── test/
│   │       └── spotify-embed.test.js
│   ├── star-rating/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── star-rating.js
│   │   └── test/
│   │       └── star-rating.test.js
│   ├── stop-note/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── iconsets.json
│   │   │   └── stop-note.haxProperties.json
│   │   ├── locales/
│   │   │   └── stop-note.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── stop-note.js
│   │   └── test/
│   │       └── stop-note.test.js
│   ├── super-daemon/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── super-daemon-row.js
│   │   │   ├── super-daemon-search.js
│   │   │   ├── super-daemon-toast.js
│   │   │   └── super-daemon-ui.js
│   │   ├── locales/
│   │   │   ├── super-daemon.af.json
│   │   │   ├── super-daemon.am.json
│   │   │   ├── super-daemon.ar.json
│   │   │   ├── super-daemon.az.json
│   │   │   ├── super-daemon.be.json
│   │   │   ├── super-daemon.bn.json
│   │   │   ├── super-daemon.cs.json
│   │   │   ├── super-daemon.de.json
│   │   │   ├── super-daemon.el.json
│   │   │   ├── super-daemon.en.json
│   │   │   ├── super-daemon.es.json
│   │   │   ├── super-daemon.eu.json
│   │   │   ├── super-daemon.fi.json
│   │   │   ├── super-daemon.fr.json
│   │   │   ├── super-daemon.he.json
│   │   │   ├── super-daemon.hi.json
│   │   │   ├── super-daemon.hy.json
│   │   │   ├── super-daemon.id.json
│   │   │   ├── super-daemon.it.json
│   │   │   ├── super-daemon.ja.json
│   │   │   ├── super-daemon.ko.json
│   │   │   ├── super-daemon.ms.json
│   │   │   ├── super-daemon.nl.json
│   │   │   ├── super-daemon.no.json
│   │   │   ├── super-daemon.pl.json
│   │   │   ├── super-daemon.pt.json
│   │   │   ├── super-daemon.ro.json
│   │   │   ├── super-daemon.ru.json
│   │   │   ├── super-daemon.sq.json
│   │   │   ├── super-daemon.sv.json
│   │   │   ├── super-daemon.th.json
│   │   │   ├── super-daemon.tr.json
│   │   │   ├── super-daemon.uk.json
│   │   │   ├── super-daemon.ur.json
│   │   │   ├── super-daemon.vi.json
│   │   │   └── super-daemon.zh.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── super-daemon.js
│   │   └── test/
│   │       └── super-daemon.test.js
│   ├── tagging-question/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── tagging-question.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── tagging-question.js
│   │   └── test/
│   │       ├── index.html
│   │       ├── tagging-question.test.js
│   │       └── tagging-question_test.html
│   ├── terrible-themes/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── terrible-best-themes.js
│   │   │   ├── terrible-outlet-themes.js
│   │   │   ├── terrible-productionz-themes.js
│   │   │   └── terrible-resume-themes.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── terrible-themes.js
│   │   └── test/
│   │       └── terrible-themes.test.js
│   ├── training-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── training-button.js
│   │   │   └── training-top.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── training-theme.test.js
│   │   └── training-theme.js
│   ├── twitter-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── twitter-embed-vanilla.js
│   │   │   └── twitter-embed.haxProperties.json
│   │   ├── locales/
│   │   │   └── twitter-embed.haxProperties.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── twitter-embed.test.js
│   │   └── twitter-embed.js
│   ├── type-writer/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── type-writer.test.js
│   │   └── type-writer.js
│   ├── un-sdg/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── un-sdg.haxProperties.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── un-sdg.test.js
│   │   ├── un-sdg.js
│   │   └── web-dev-server.config.mjs
│   ├── undo-manager/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── undo-manager.test.js
│   │   └── undo-manager.js
│   ├── unity-webgl/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── example/
│   │   │   │   ├── build web.data.unityweb
│   │   │   │   ├── build web.framework.js.unityweb
│   │   │   │   ├── build web.loader.js
│   │   │   │   └── build web.wasm.unityweb
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── unity-webgl.test.js
│   │   └── unity-webgl.js
│   ├── user-action/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── UserActionBroker.js
│   │   │   └── user-action.haxProperties.json
│   │   ├── locales/
│   │   │   └── user-action.haxProperties.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── user-action.test.js
│   │   └── user-action.js
│   ├── user-scaffold/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── user-scaffold.test.js
│   │   └── user-scaffold.js
│   ├── utils/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── lib/
│   │   │   ├── activeStateBehavior.js
│   │   │   ├── demo/
│   │   │   │   └── index.html
│   │   │   ├── gSheetsInterface.js
│   │   │   ├── marked.js
│   │   │   ├── nodejs-fake-dom-polyfill.cjs
│   │   │   └── remoteLinkBehavior.js
│   │   ├── package.json
│   │   ├── test/
│   │   │   └── utils.test.js
│   │   ├── utils.js
│   │   └── web-dev-server.config.mjs
│   ├── video-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── audio-description.html
│   │   │   ├── index.html
│   │   │   ├── lecture-player.html
│   │   │   └── samples/
│   │   │       ├── HAXshort.vtt
│   │   │       ├── bueller.vtt
│   │   │       ├── sintel-de.vtt
│   │   │       ├── sintel-en.vtt
│   │   │       ├── sintel-es.vtt
│   │   │       ├── stclair-images.vtt
│   │   │       ├── stclair.srt
│   │   │       └── stclair.vtt
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── lecture-anchor.js
│   │   │   └── lecture-player.js
│   │   ├── locales/
│   │   │   ├── video-player.af.json
│   │   │   ├── video-player.am.json
│   │   │   ├── video-player.ar.json
│   │   │   ├── video-player.az.json
│   │   │   ├── video-player.be.json
│   │   │   ├── video-player.bg.json
│   │   │   ├── video-player.bn.json
│   │   │   ├── video-player.bs.json
│   │   │   ├── video-player.ca.json
│   │   │   ├── video-player.co.json
│   │   │   ├── video-player.cs.json
│   │   │   ├── video-player.cy.json
│   │   │   ├── video-player.da.json
│   │   │   ├── video-player.de.json
│   │   │   ├── video-player.el.json
│   │   │   ├── video-player.en.json
│   │   │   ├── video-player.eo.json
│   │   │   ├── video-player.es.json
│   │   │   ├── video-player.et.json
│   │   │   ├── video-player.eu.json
│   │   │   ├── video-player.fa.json
│   │   │   ├── video-player.fi.json
│   │   │   ├── video-player.fo.json
│   │   │   ├── video-player.fr.json
│   │   │   ├── video-player.fy.json
│   │   │   ├── video-player.ga.json
│   │   │   ├── video-player.gl.json
│   │   │   ├── video-player.gn.json
│   │   │   ├── video-player.gu.json
│   │   │   ├── video-player.ha.json
│   │   │   ├── video-player.haw.json
│   │   │   ├── video-player.he.json
│   │   │   ├── video-player.hi.json
│   │   │   ├── video-player.hr.json
│   │   │   ├── video-player.hu.json
│   │   │   ├── video-player.hy.json
│   │   │   ├── video-player.id.json
│   │   │   ├── video-player.ig.json
│   │   │   ├── video-player.is.json
│   │   │   ├── video-player.it.json
│   │   │   ├── video-player.ja.json
│   │   │   ├── video-player.jv.json
│   │   │   ├── video-player.ka.json
│   │   │   ├── video-player.kk.json
│   │   │   ├── video-player.km.json
│   │   │   ├── video-player.kn.json
│   │   │   ├── video-player.ko.json
│   │   │   ├── video-player.ku.json
│   │   │   ├── video-player.ky.json
│   │   │   ├── video-player.lb.json
│   │   │   ├── video-player.lo.json
│   │   │   ├── video-player.lt.json
│   │   │   ├── video-player.lv.json
│   │   │   ├── video-player.mi.json
│   │   │   ├── video-player.mk.json
│   │   │   ├── video-player.ml.json
│   │   │   ├── video-player.mn.json
│   │   │   ├── video-player.mr.json
│   │   │   ├── video-player.ms.json
│   │   │   ├── video-player.mt.json
│   │   │   ├── video-player.my.json
│   │   │   ├── video-player.nb.json
│   │   │   ├── video-player.ne.json
│   │   │   ├── video-player.nl.json
│   │   │   ├── video-player.no.json
│   │   │   ├── video-player.ny.json
│   │   │   ├── video-player.om.json
│   │   │   ├── video-player.pa.json
│   │   │   ├── video-player.pl.json
│   │   │   ├── video-player.pnb.json
│   │   │   ├── video-player.ps.json
│   │   │   ├── video-player.pt.json
│   │   │   ├── video-player.qu.json
│   │   │   ├── video-player.ro.json
│   │   │   ├── video-player.ru.json
│   │   │   ├── video-player.sd.json
│   │   │   ├── video-player.si.json
│   │   │   ├── video-player.sk.json
│   │   │   ├── video-player.sl.json
│   │   │   ├── video-player.sn.json
│   │   │   ├── video-player.so.json
│   │   │   ├── video-player.sq.json
│   │   │   ├── video-player.sr.json
│   │   │   ├── video-player.sv.json
│   │   │   ├── video-player.sw.json
│   │   │   ├── video-player.ta.json
│   │   │   ├── video-player.te.json
│   │   │   ├── video-player.tg.json
│   │   │   ├── video-player.th.json
│   │   │   ├── video-player.tk.json
│   │   │   ├── video-player.tr.json
│   │   │   ├── video-player.tt.json
│   │   │   ├── video-player.uk.json
│   │   │   ├── video-player.ur.json
│   │   │   ├── video-player.uz.json
│   │   │   ├── video-player.vi.json
│   │   │   ├── video-player.wuu.json
│   │   │   ├── video-player.xh.json
│   │   │   ├── video-player.yi.json
│   │   │   ├── video-player.yo.json
│   │   │   ├── video-player.zh.json
│   │   │   └── video-player.zu.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── video-player.test.js
│   │   └── video-player.js
│   ├── vocab-term/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── vocab-term.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── vocab-term.test.js
│   │   └── vocab-term.js
│   ├── voice-recorder/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── vmsg-fork.js
│   │   │   └── vmsg.wasm
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── voice-recorder.test.js
│   │   └── voice-recorder.js
│   ├── wc-autoload/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── cantvas.html
│   │   │   ├── elmsln.html
│   │   │   ├── index.html
│   │   │   ├── mixed-registries.html
│   │   │   ├── multiple-registries.html
│   │   │   ├── thing1.json
│   │   │   ├── thing2.json
│   │   │   └── wc-registry-tag.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── wc-autoload.test.js
│   │   └── wc-autoload.js
│   ├── web-container/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── loading.html
│   │   │   ├── web-container-doc-player.haxProperties.json
│   │   │   ├── web-container-doc-player.js
│   │   │   ├── web-container-wc-registry-docs.js
│   │   │   └── web-container.haxProperties.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── web-container.test.js
│   │   ├── web-container.js
│   │   └── web-dev-server.config.mjs
│   ├── wikipedia-query/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── wikipedia-query.haxProperties.json
│   │   ├── locales/
│   │   │   ├── wikipedia-query.haxProperties.es.json
│   │   │   └── wikipedia-query.haxProperties.fr.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── wikipedia-query.test.js
│   │   └── wikipedia-query.js
│   ├── word-count/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── locales/
│   │   │   ├── word-count.es.json
│   │   │   ├── word-count.fr.json
│   │   │   └── word-count.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── word-count.test.js
│   │   └── word-count.js
│   └── wysiwyg-hax/
│       ├── .dddignore
│       ├── .editorconfig
│       ├── .gitignore
│       ├── .npmignore
│       ├── .surgeignore
│       ├── .travis.yml
│       ├── LICENSE.md
│       ├── README.md
│       ├── demo/
│       │   ├── index.html
│       │   └── sample-store.json
│       ├── gulpfile.cjs
│       ├── index.html
│       ├── package.json
│       ├── polymer.json
│       ├── test/
│       │   └── wysiwyg-hax.test.js
│       └── wysiwyg-hax.js
├── generate-theme-screenshots-with-server.js
├── generate-theme-screenshots.js
├── gulpfile.mjs
├── hax-elements-registry.json
├── lerna.json
├── package.json
├── patches/
│   ├── @lit-labs+ssr+3.2.2.patch
│   ├── @lit-labs+ssr+3.3.1.patch
│   └── polymer-build+3.1.4.patch
├── polymer.json
├── prettier.config.cjs
├── publishnpm.sh
├── renovate.json
├── scripts/
│   ├── build-component-gallery.js
│   ├── gallery-dev-server.js
│   ├── generate-translation-manifest.js
│   ├── hax-elements-discovery.js
│   ├── haxthewebme.ps1
│   ├── haxthewebme.sh
│   ├── postinstall.js
│   ├── preinstall.js
│   ├── stats.sh
│   ├── theme-discovery.js
│   ├── ubiquity-push.sh
│   └── ubiquity-testing.sh
├── signatures/
│   └── version1/
│       └── cla.json
├── utilities/
│   ├── package.json
│   └── requestHelpers.js
├── vercel.json
├── wc-registry.json
├── wct.conf.json
├── web-dev-server.config.mjs
├── web-dev-server.haxcms.config.cjs
└── web-test-runner.config.mjs

================================================
FILE CONTENTS
================================================

================================================
FILE: .continue/README.md
================================================
# Continue + Penn State AI Studio Setup

This folder provides a starter Continue configuration for Azure-based AI Studio.

## 1) Fill in `.continue/config.yaml`

Replace the placeholders:

- `REPLACE_WITH_RESOURCE_NAME`
  - Your Azure OpenAI resource host prefix.
  - Example endpoint in Azure portal: `https://my-resource.openai.azure.com/`
  - In this case, `my-resource` is the resource name.

- `REPLACE_WITH_CHAT_DEPLOYMENT_NAME`
  - The exact Azure deployment name you use for chat.

- `REPLACE_WITH_AUTOCOMPLETE_DEPLOYMENT_NAME`
  - A fast model deployment name for autocomplete (optional).

- `REPLACE_WITH_API_KEY`
  - Your Azure AI Studio / Azure OpenAI key.

## 2) Restart VS Code

Reload window after editing config so Continue picks up changes.

## 3) Validate in Continue

- Open Continue chat.
- Ask a small prompt like: `Reply with OK and model name`.
- If it fails, verify `apiBase`, `model` deployment names, and `apiVersion`.

## Security note

Avoid committing real API keys. Keep keys local-only or switch `apiKey` to an environment variable once confirmed working.


================================================
FILE: .devcontainer/devcontainer.json
================================================
// For format details, see https://aka.ms/devcontainer.json.
{
	"name": "haxtheweb/webcomponents Dev Container",
	"image": "ghcr.io/haxtheweb/devcontainer-nodejs:latest",
  // Compatibility with SELinux
	"runArgs": ["--security-opt", "label=disable"],

	// Configure tool-specific properties.
	"customizations": {
		"vscode": {
			"settings": {},
			"extensions": [
				"runem.lit-plugin",
        "bierner.lit-html",
        "deque-systems.vscode-axe-linter",
        "ecmel.vscode-html-css",
        "oliversturm.fix-json",
        "yzhang.markdown-all-in-one",
        "zdodson.dddignore"
			]
		}
	},

	// Use 'portsAttributes' to set default properties for specific forwarded ports. 
	// More info: https://containers.dev/implementors/json_reference/#port-attributes
	"portsAttributes": {
		"3000": {
			"label": "Express Port",
			"onAutoForward": "silent"
		},
    "8000": {
        "label": "HAXsite/Web Component Port",
        "onAutoForward": "silent"
    }
	},

  "workspaceFolder": "/home/node/${localWorkspaceFolderBasename}",
  "workspaceMount": "source=${localWorkspaceFolder},target=${containerWorkspaceFolder},type=bind,consistency=cached",

	"postCreateCommand": "bash scripts/haxthewebme.sh"
}


================================================
FILE: .editorconfig
================================================
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# http://editorconfig.org

# Top-most EditorConfig file
root = true

# Rules for JavaScript files:

[*.{js,py,json,sh,html}]
# 2 space indentation
indent_style = space
indent_size = 2
# No trailing spaces
trim_trailing_whitespace = true
# Unix-style newlines
end_of_line = lf
# Newline ending every file
insert_final_newline = true
# set charset
charset = utf-8

# skip trailing whitespace on markdown files
[*.md]
trim_trailing_whitespace = false


================================================
FILE: .gitattributes
================================================
* text=auto
*.sh text eol=lf

================================================
FILE: .github/CODEOWNERS
================================================
# Global ownership
# Bryan Ollendyke (btopro) is the primary maintainer and creator of HAXTheWeb
* @btopro

# HAXTheWeb ecosystem is developed and maintained by:
# Bryan Ollendyke (@btopro) - Penn State University
# Copyright (c) 2015-2025 The Pennsylvania State University

================================================
FILE: .github/workflows/build.yml
================================================
name: build
on:
  push:
    branches: [master]
  pull_request:
    branches: [master]
jobs:
  build-and-test:
    name: "${{ matrix.platform }}: node.js ${{ matrix.node-version }}"
    strategy:
      fail-fast: false
      matrix:
        platform: [ubuntu-latest]
        node-version: [22]
        include:
          - platform: ubuntu-latest
            node-version: 22
    runs-on: ${{ matrix.platform }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
      - name: Get yarn cache directory path
        id: yarn-cache-dir-path
        run: echo "::set-output name=dir::$(yarn cache dir)"
      - name: Cache Yarn
        uses: actions/cache@v4
        id: yarn-cache
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-node-${{ matrix.node-version }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-node-${{ matrix.node-version }}-yarn-
      - name: Install
        run: yarn install
      - name: Rebuild Elements README
        run: cd elements && for dir in */; do head -4 $dir/README.md; done > README.md


================================================
FILE: .github/workflows/cla.yml
================================================
name: "CLA Assistant"
on:
  issue_comment:
    types: [created]
  pull_request_target:
    types: [opened, closed, synchronize]

# explicitly configure permissions, in case your GITHUB_TOKEN workflow permissions are set to read-only in repository settings
permissions:
  actions: write
  contents: read # this can be 'read' if the signatures are in remote repository
  pull-requests: write
  statuses: write

jobs:
  CLAAssistant:
    runs-on: ubuntu-latest
    steps:
      - name: "CLA Assistant"
        if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
        uses: contributor-assistant/github-action@v2.6.1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PERSONAL_ACCESS_TOKEN: ${{ secrets.CLA_ACCESS_TOKEN }}
        with:
          path-to-signatures: 'signatures/version1/cla.json'
          path-to-document: 'https://github.com/haxtheweb/cla/blob/main/CLA.md'
          # branch should not be protected
          branch: 'main'
          allowlist: bot*
          # the followings are the optional inputs - If the optional inputs are not given, then default values will be taken
          remote-organization-name: 'haxtheweb'
          remote-repository-name: 'cla'
          create-file-commit-message: 'Creating file for storing CLA Signatures'
          signed-commit-message: 'CLA signed by $contributorName'
          custom-notsigned-prcomment: 'Thank you for your contribution! Before we can merge your PR, we need you to sign our Contributor License Agreement (CLA). Please comment **"I have read the CLA Document and I hereby sign the CLA"** to agree to the [CLA terms](https://github.com/haxtheweb/cla/blob/main/CLA.md).'
          custom-allsigned-prcomment: 'All contributors have signed the CLA. Thank you!'

================================================
FILE: .github/workflows/ossf_scorecard.yml
================================================
---
# This workflow uses actions that are not certified by GitHub. They are provided by a third-party and are governed by separate terms of service, privacy policy, and support documentation.
name: OSSF Scorecard
on:
  # For Branch-Protection check. Only the default branch is supported. See https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection.
  branch_protection_rule:
  # To guarantee Maintained check is occasionally updated. See https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained.
  schedule:
    - cron: "0 0 * * 1"
  push:
    branches: [main, master]
  workflow_dispatch:
# Declare default permissions as read only.
permissions: read-all
jobs:
  analysis:
    name: Scorecard analysis
    runs-on: ubuntu-24.04
    # Delete the conditional below if you are using the OSSF Scorecard on a public repository.
    if: ${{ github.event.repository.private == false }}
    permissions:
      # Needed if using Code Scanning alerts.
      security-events: write
      # Needed for GitHub OIDC token if publish_results is true.
      id-token: write
      # Uncomment the permissions below if you are using the OSSF Scorecard on a private repository.
      # contents: read
      # actions: read
      # issues: read # To allow GraphQL ListCommits to work
      # pull-requests: read # To allow GraphQL ListCommits to work
      # checks: read # To detect SAST tools
    steps:
      - name: Check out the codebase
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
        with:
          persist-credentials: false

      - name: Run analysis
        uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
        with:
          results_file: results.sarif
          results_format: sarif
          # (Optional) fine-grained personal access token. Uncomment the `repo_token` line below if you want to enable the Branch-Protection or Webhooks check on a *private* repository.
          # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-fine-grained-pat-optional.
          # repo_token: ${{ secrets.SCORECARD_TOKEN }}

          # Publish the results for public repositories to enable scorecard badges. For more details, see https://github.com/ossf/scorecard-action#publishing-results.
          # For private repositories, `publish_results` will automatically be set to `false`, regardless of the value entered here.
          publish_results: true

      # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF format to the repository Actions tab.
      - name: Upload artifact
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
        with:
          name: SARIF file
          path: results.sarif
          retention-days: 5

      # Upload the results to GitHub's code scanning dashboard.
      - name: Upload SARIF results to code scanning
        uses: github/codeql-action/upload-sarif@f443b600d91635bebf5b0d9ebc620189c0d6fba5 # v4.30.8
        with:
          sarif_file: results.sarif

================================================
FILE: .gitignore
================================================
node_modules
.DS_Store
arth111-jeopardy
lerna-debug.log
*.local.umd.js
*.local.js
build
npm-debug.log
test/.wct-kludge
.yo-rc.json
*-*.tgz
analysis.json
yarn-error.log
.cache
.yarn
yarn.lock
test/index.html
component-gallery.html
elements/video-player/demo/samples/ad/
elements/haxcms-elements/demo/files/
# No end-/ because node_modules is a symlink
elements/haxcms-elements/demo/node_modules
elements/grade-book/demo/psu/
elements/elmsln-apps/lib/lrnapp-studio-instructor/demo/*
elements/elmsln-apps/lib/lrnapp-studio-instructor/lrnapp-studio-submission/api/submissions/353
elements/elmsln-apps/lib/lrnapp-studio-instructor/demo/data.json
elements/elmsln-apps/lib/lrnapp-studio-instructor/lrnapp-studio-submission/api/submissions/1868
.vercel
.env
.continue/config.yaml
.continue/*.local.yaml

================================================
FILE: .jshintrc
================================================
{
  "node": true,
  "esnext": true,
  "bitwise": true,
  "camelcase": true,
  "curly": true,
  "eqeqeq": true,
  "immed": true,
  "indent": 2,
  "latedef": true,
  "newcap": true,
  "noarg": true,
  "quotmark": "single",
  "regexp": true,
  "undef": true,
  "unused": true,
  "strict": true,
  "trailing": true,
  "smarttabs": true,
  "white": true
}

================================================
FILE: .lvimrc
================================================
let g:ale_fixers = {}
let g:ale_fixers['javascript'] = ['prettier']
let g:ale_fixers['json'] = ['prettier']

let g:ale_fix_on_save = 1


================================================
FILE: .prettierignore
================================================
*.umd.js
*.amd.js
*.es6.js
*.min.js
package-lock.json
analysis-error.json
code-sample/lib/highlightjs/languages/*.js
elements/h5p-element/lib
elements/wave-player/lib
elements/moment-element/lib
elements/barcode-reader/lib

================================================
FILE: .stylelintrc.json
================================================
{
  "rules": {
    "block-no-empty": null,
    "color-no-invalid-hex": true,
    "comment-empty-line-before": [
      "always",
      {
        "ignore": ["stylelint-commands", "after-comment"]
      }
    ],
    "declaration-colon-space-after": "always",
    "indentation": [
      2,
      {
        "except": ["value"]
      }
    ],
    "max-empty-lines": 2,
    "rule-empty-line-before": [
      "always",
      {
        "except": ["first-nested"],
        "ignore": ["after-comment"]
      }
    ]
  }
}


================================================
FILE: .vscode/extensions.json
================================================
{
    "recommendations": [
        "bierner.lit-html",
        "deque-systems.vscode-axe-linter",
        "ecmel.vscode-html-css",
        "oliversturm.fix-json",
        "runem.lit-plugin",
        "yzhang.markdown-all-in-one",
        "zdodson.dddignore",
        "ms-vscode-remote.remote-containers"
    ]
}

================================================
FILE: .vscode/launch.json
================================================
{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "pwa-chrome",
      "request": "launch",
      "name": "Launch Chrome against localhost",
      "url": "http://localhost:8080",
      "webRoot": "${workspaceFolder}"
    }
  ]
}


================================================
FILE: .vscode/settings.json
================================================
{
  "editor.tabSize": 2,
  "editor.detectIndentation": false,
  "html.customData": [
    "elements/*/custom-elements.json",
    "vscode-html-custom-data.json",
    "custom-elements.json"
  ],
  "workbench.colorCustomizations": {
    "activityBarBadge.background": "#06b9a5",
    "activityBarBadge.foreground": "#15202b",
    "commandCenter.activeBackground": "#00a17d",
    "commandCenter.background": "#00a17d",
    "commandCenter.border": "#15202b99",
    "sash.hoverBorder": "#06b9a5",
    "statusBar.background": "#ab2101",
    "statusBar.foreground": "#ffffff",
    "statusBarItem.hoverBackground": "#930d0d",
    "statusBarItem.remoteForeground": "#2b2615",
    "statusBarItem.remoteBackground": "#06b9a5",
    "titleBar.activeBackground": "#ab2101",
    "titleBar.activeForeground": "#ffffff",
    "titleBar.inactiveBackground": "#930d0d",
    "titleBar.inactiveForeground": "#dadada"
  }
}


================================================
FILE: .wcflibcache.json
================================================
[{
  "name": "Vanilla",
  "description": "HTMLElement class extension, 0 dependencies",
  "wcfactory": {
    "customElementClass": "HTMLElement",
    "templateReturnFunctionPart": "get html() {\n    return ",
    "propertyBinding": false
  },
  "main": "HTMLElement/HTMLElement.js",
  "version": "0.0.1",
  "scripts": {
    "start": "yarn run dev",
    "build": "gulp --gulpfile=gulpfile.cjs && node --experimental-json-modules ../../node_modules/.bin/rollup --config && prettier --ignore-path ../../.prettierignore --write '**/*.{js,json}' && wca analyze \"**/*.js\" --outFile custom-elements.json",
    "dev": "concurrently --kill-others \"yarn run watch\" \"yarn run serve\"",
    "watch": "gulp dev --gulpfile=gulpfile.cjs",
    "serve": "web-dev-server -c ../../web-dev-server.config.mjs",
    "lighthouse": "gulp lighthouse --gulpfile=gulpfile.cjs"
  },
  "dependencies": {},
  "devDependencies": {
    "web-animations-js": "2.3.2",
    "@haxtheweb/deduping-fix": "^9.0.0-alpha.0",
    "gulp-babel": "8.0.0",
    "@web/dev-server": "0.4.6",
    "concurrently": "5.3.0",
    "polymer-build": "3.1.4",
    "wct-browser-legacy": "1.0.2",
    "@open-wc/testing": "4.0.0"
  }
}
,
{
  "name": "lit-element",
  "description": "data binding ++, about as small as possible library",
  "wcfactory": {
    "customElementClass": "LitElement",
    "templateReturnFunctionPart": "render() {\n    return html",
    "propertyBinding": {
      "prefix": "${this.",
      "suffix": "}"
    }
  },
  "main": "LitElement/LitElement.js",
  "version": "0.0.1",
  "scripts": {
    "start": "yarn run dev",
    "build": "gulp --gulpfile=gulpfile.cjs && node --experimental-json-modules ../../node_modules/.bin/rollup --config && prettier --ignore-path ../../.prettierignore --write '**/*.{js,json}' && wca analyze \"**/*.js\" --outFile custom-elements.json",
    "dev": "concurrently --kill-others \"yarn run watch\" \"yarn run serve\"",
    "watch": "gulp dev --gulpfile=gulpfile.cjs",
    "serve": "web-dev-server -c ../../web-dev-server.config.mjs",
    "lighthouse": "gulp lighthouse --gulpfile=gulpfile.cjs"
  },
  "dependencies": {
    "lit": "^3.3.1"
  },
  "devDependencies": {
    "@haxtheweb/deduping-fix": "^9.0.0-alpha.0",
    "concurrently": "5.3.0",
    "gulp-babel": "8.0.0",
    "polymer-build": "3.1.4",
    "@web/dev-server": "0.4.6",
    "wct-browser-legacy": "1.0.2",
    "web-animations-js": "2.3.2",
    "@open-wc/testing": "4.0.0"
  }
},{}]

================================================
FILE: .well-known/funding-manifest-urls
================================================
https://www.apereo.org/funding.json


================================================
FILE: AGENTS.md
================================================
# AGENTS.md

This file provides comprehensive instructions for AI coding agents working within the HAX ecosystem. HAX (Headless Authoring eXperience) is a comprehensive web development ecosystem that enables rapid creation of accessible, performant web components and static sites. Follow these guidelines to set up, develop, test, and contribute effectively to HAX projects.

## HAX Ecosystem Overview

The HAX ecosystem consists of multiple interconnected repositories, each serving specific purposes:

### Core Repositories

- **`webcomponents`** - The heart of HAX: a monorepo containing 250+ LitElement-based web components, themes, and the DDD design system. All components are built with accessibility, performance, and HAX compatibility in mind.

- **`create` (@haxtheweb/create)** - The HAX CLI tool for scaffolding new web components, HAXsites, and managing the development workflow. This is your primary interface for creating new HAX projects.

- **`haxcms-php`** - PHP backend implementation of HAXcms, providing content management capabilities, API endpoints, and server-side rendering for HAXsites.

- **`haxcms-nodejs`** - Node.js backend implementation of HAXcms, offering the same capabilities as the PHP version but in a JavaScript environment.

- **`desktop`** - Electron-based desktop application that provides a local development environment for HAX, combining the power of HAXcms with desktop convenience.

### Supporting Repositories

- **`hax11ty`** - Integration layer that bridges HAX components with Eleventy (11ty) static site generator, enabling HAX components in traditional static sites.

- **`json-outline-schema`** - Defines the JSON schema used by HAXcms for content structure, site navigation, and metadata management.

- **`hax-schema`** - Contains HAX property schemas that define how web components integrate with the HAX authoring interface.

- **`open-apis`** - Microservice APIs and shared infrastructure for HAXTheWeb ecosystem. Contains Express-based Vercel endpoints deployed at https://open-apis.hax.cloud/ providing advanced capabilities like content importing, parsing, analysis, site conversion, and migration services. Also hosts the pre-built Storybook documentation for HAX components.

- **`docs`** - Official HAX documentation site built as a HAXcms site. Contains comprehensive documentation about HAX philosophy, pillars, community guidelines, tutorials, and developer resources. Structure follows HAXcms conventions with site.json (JSON Outline Schema), pages/ directory for content, and files/ for assets.

- **`issues`** - Unified issue tracking repository for the entire HAX ecosystem, where all bugs, features, and discussions are centralized.

### Development Philosophy & Community Pillars

HAX is built on a foundation of community pillars that guide all development decisions and community interactions. These are not just technical specifications but ethical commitments:

#### Core Pillars
- **Accessible**: HAX maximizes accessibility while removing the knowledge required to maintain accessibility standards. Components adhere to WCAG 2.0 AA standards, with automated color contrast ratios and expert-audited implementations.
- **Extensible**: Built for sustainable extension through web standards, microservices, and modular architecture that grows with user needs.
- **Free and Open**: Open community welcoming all (Penn State and beyond), embracing the 5Rs of OER (Retain, Reuse, Revise, Remix, Redistribute) for content and code.
- **Efficient**: Optimized for performance through web standards over heavy libraries, lazy loading, offline capability, and minimal resource usage.
- **Platform Agnostic**: Works anywhere - standalone HAXsites, integrated HAXcms, static web pages, or existing CMS platforms.
- **Remixable**: Maximizes remix-ability through modular design, open licensing, and semantic content structures.
- **Sustainable**: Environmental (less data, lower battery usage), technological (web standards-based longevity), and community (inclusive, collaborative governance) sustainability.

#### Technical Emphasis
- **Rapid Development**: Scaffolding tools and design systems accelerate creation
- **Unbundled Delivery**: Pure JavaScript, HTML, CSS approach without compilation steps
- **Modularity**: Components work independently and compose together seamlessly
- **Ubiquitous Web**: The web needs a file format - content should "just work" regardless of how it was built

## Development Environment Setup

### Issue Management
Before starting any work, check the unified issue queue:
- All HAX ecosystem issues are tracked at `haxtheweb/issues`
- Use GitHub CLI to check issues: `gh issue list`
- Reference existing issues when making contributions

## Setup Commands

- **Install HAX CLI globally**:
  ```bash
  npm install @haxtheweb/create --global
  ```
- **Install project dependencies** (run from the project root):
  ```bash
  npm install
  ```
- **Start interactive CLI** (for web components or HAXsites):
  ```bash
  hax start
  ```
  - Launches an interactive CLI with ASCII art (via Clack).
- **Start development server** (for HAXsites):
  ```bash
  hax serve
  ```
  - Launches the site in development mode at `http://localhost`.
- **Create a new web component**:
  ```bash
  hax webcomponent my-element --y
  ```
  - Creates a LitElement-based web component with DDD design system and i18n support.
  - In a monorepo, places the component in the correct location and inherits settings.
- **Create a new HAXsite**:
  ```bash
  hax site mysite --y
  ```
  - Generates a HAXcms-based static site with templated files.
- **Update HAX CLI**:
  ```bash
  hax update
  ```
- **Alternative usage** (one-time execution without global install):
  ```bash
  npx @haxtheweb/create
  ```
  or
  ```bash
  npm init @haxtheweb
  ```
- **Windows-specific setup**:
  - If issues occur, set a custom npm cache path:
    ```bash
    npm config set cache C:\tmp\nodejs\npm-cache --global
    ```
  - For PowerShell, check execution policy to allow scripts:
    ```bash
    Get-ExecutionPolicy
    ```
    Adjust if needed using `Set-ExecutionPolicy` (see [Microsoft documentation](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.4)).

## Code Style & Standards

### JavaScript-Only Architecture
- **Language**: Pure JavaScript with LitElement for web components
- **NO TypeScript**: HAX strictly avoids TypeScript to eliminate compilation requirements
- **Unbundled Approach**: Components ship as native JS/HTML/CSS for maximum compatibility
- **Third-party Libraries**: When using libraries written in TypeScript, always import the pre-compiled JavaScript distribution
- **External Dependencies**: Leverage libraries like `vaadin-upload`, `shoelace-carousel`, etc. but always use their JS builds

### JavaScript Standards
- **Global References**: Use `globalThis` instead of `window` for consistency across environments
- **Formatting**:
  - Use single quotes (`'`)
  - Avoid semicolons where possible
  - Prefer functional programming patterns
  - Use Prettier for consistent formatting
- **ES Modules**: Use standard ES6 import/export syntax
- **Modern JavaScript**: Leverage ES2018+ features while maintaining browser compatibility

### Design System Integration
- **DDD System**: All components MUST adhere to the DDD (Design, Develop, Destroy) design system
  - Location: `elements/d-d-d` in the webcomponents repository
  - Use DDD for fonts, colors, padding, spacing, margins, and other design tokens
  - Inherit from `DDDSuper` class for automatic DDD integration
  - Reference `.dddignore` file to exclude irrelevant files during audits

### Component Architecture
- **HAX Properties**: Include `haxProperties` in web components for HAX compatibility (use `--writeHaxProperties` flag)
- **Theme Development**: HAXcms themes should extend `HAXCMSLitElement` class
- **File Structure**:
  - Web components: Place source files in `src/` or `lib/` directories
  - HAXsites: Pages in `pages/`, themes in `theme/`, assets in `assets/`
  - Monorepo: Each component gets its own directory in `elements/`

### Naming Conventions
- **Web Components**: Use hyphenated names (e.g., `my-element`)
- **Package Names**: Match component/site name in `package.json`
- **CSS Classes**: Follow BEM methodology when not using DDD tokens

### Internationalization (i18n)
- Use provided i18n wiring for web components (automatically included with `hax webcomponent`)
- Support multiple languages from the start

## Build System & Testing

### Build Process Understanding
The HAX ecosystem uses a sophisticated build pipeline optimized for unbundled JavaScript delivery:

1. **Gulp**: Handles asset compilation and processing
2. **Prettier**: Ensures consistent code formatting  
3. **CEM (Custom Elements Manifest)**: Generates `custom-elements.json` for component metadata
4. **Lerna**: Manages monorepo dependencies and publishing
5. **No TypeScript Compilation**: Pure JavaScript workflow eliminates build complexity

### Build Commands
- **Standard build** (from component root):
  ```bash
  yarn run build
  ```
  - Compiles assets, formats code, generates custom-elements.json
  - **CRITICAL**: Always run this after changes to HAXCMSLitElement themes
  - Do NOT manually edit `custom-elements.json` - it's auto-generated

- **Development build with watching**:
  ```bash
  yarn run dev
  ```

- **Monorepo build** (from webcomponents root):
  ```bash
  yarn run build
  ```
  - Builds all components in the monorepo

### Testing Instructions

- **Run tests** (from project or component root):
  ```bash
  npm test
  ```

- **Monorepo testing**:
  ```bash
  npm run test --filter <component_name>
  ```
  - Tests specific component in monorepo
  - Use Lerna for more complex filtering

### DDD Compliance Auditing
- **Audit web components for DDD compliance**:
  ```bash
  hax audit
  ```
  - Checks CSS and structure against DDD design system standards
  - Ignores files listed in `.dddignore`
  - Run from component root for accurate results
  - **Required** before submitting theme components

### Code Quality
- **Linting**:
  ```bash
  npm run lint
  ```
  - Ensures code style compliance before committing
  - Uses ESLint, Prettier, and Stylelint

- **Fix issues automatically**:
  ```bash
  npm run lint:fix
  ```

### Example `.dddignore` Template
```plaintext
/node_modules
/dist
/build
/public
/test
/.github
/.vscode
/.idea
/locales
LICENSE
.dddignore
.editorconfig
.gitignore
.npmignore
*.md
*.yml
*.json
*.png
*.svg
```

## Pull Request Instructions

- **PR Title Format**: `[<project_name>] <Descriptive Title>`
  - Example: `[my-element] Add dynamic property binding`
- **Pre-commit checks**:
  - Run `npm test` to ensure all tests pass.
  - Run `npm run lint` to verify code style.
  - Run `hax audit` for web components to confirm DDD compliance.
- **Commit Guidelines**:
  - Use clear, descriptive commit messages (e.g., "Add i18n support to my-element").
  - Include relevant changes to tests or documentation.
- **HAXsite PRs**:
  - Test locally with `hax serve` to verify page rendering.
  - Ensure new pages or content updates align with `site.json` and JSON Outline Schema.

## CLI Command Options

The HAX CLI supports various options for fine-tuned control. Use `hax help`, `hax webcomponent --help`, or `hax site --help` for details. Key options include:
- `--v`: Verbose output.
- `--debug`: Developer-focused output.
- `--format <char>`: Output format (json, yaml; default: json).
- `--path <char>`: Directory to perform operation.
- `--name <char>`: Project or component name.
- `--npm-client <char>`: Package manager (npm, yarn, pnpm; default: npm).
- `--y` or `--auto`: Auto-accept all prompts.
- `--skip`: Skip animations for faster execution.
- `--quiet`: Suppress console logging.
- `--no-i`: Prevent interactive sub-processes (ideal for scripting).
- `--to-file <char>`: Redirect output to a file.
- `--no-extras`: Skip automatic command processing.
- `--root <char>`: Root directory for command execution.
- `--org <char>`: Organization for `package.json`.
- `--author <char>`: Author for site or `package.json`.
- `--writeHaxProperties`: Write `haxProperties` for web components.
- `--import-site <char>`: URL of site to import.
- `--import-structure <char>`: Import method (e.g., pressbooksToSite, htmlToSite).
- `--custom-theme-name <char>`: Custom theme name for HAXsites.
- `--custom-theme-template <char>`: Theme template (base, polaris-flex, polaris-sidebar).
- `--repos <char...>`: Repositories to clone.

## HAX Theme Development

### Theme Architecture
- **Base Class**: HAXcms themes extend `HAXCMSLitElement` class
- **Design Integration**: Themes inherit DDD design system automatically
- **Template Options**: Choose from `base`, `polaris-flex`, `polaris-sidebar`
- **Custom Themes**: Create entirely custom themes with full control
- **Pure JavaScript**: All theme code written in JavaScript, HTML, CSS only

### Theme Creation Workflow
1. **Create custom theme**:
   ```bash
   hax site --custom-theme-name my-theme --custom-theme-template base
   ```

2. **Modify theme files** in the generated theme directory
   - Edit JavaScript files directly (no TypeScript compilation needed)
   - Use standard HTML templates
   - Apply CSS with DDD tokens

3. **Build theme** (CRITICAL STEP):
   ```bash
   yarn run build
   ```
   - Generates `custom-elements.json`
   - Compiles styles and assets
   - Updates component metadata

4. **Test theme locally**:
   ```bash
   hax serve
   ```

### Theme Best Practices
- Use DDD tokens for consistent styling
- Import external libraries from their JavaScript distributions
- Implement responsive design patterns
- Ensure accessibility compliance
- Test across different content types
- Follow HAX component patterns

## Monorepo Navigation & Management

### Repository Structure
```
~/Documents/git/haxtheweb/
├── webcomponents/           # Component library & themes
│   └── elements/           # Individual components
│       ├── d-d-d/         # Design system
│       ├── clean-two/     # Example theme
│       └── [250+ more]/   # All other components
├── create/                 # HAX CLI tool
├── haxcms-php/            # PHP backend
├── haxcms-nodejs/         # Node.js backend  
├── desktop/               # Electron app
├── hax11ty/              # 11ty integration
├── json-outline-schema/   # Content schemas
├── hax-schema/           # HAX property schemas
├── open-apis/            # Microservice APIs & Component Gallery
│   ├── api/               # Express Vercel endpoints
│   │   ├── apps/         # HAXcms conversion services
│   │   ├── services/     # Media processing, analysis
│   │   ├── users/        # Authentication endpoints
│   │   └── utilities/    # Shared API helpers
│   └── component-gallery/# Component documentation
├── docs/                 # Official HAX documentation
│   ├── site.json         # JSON Outline Schema structure
│   ├── pages/            # Documentation content (HTML)
│   └── files/            # Assets and media
└── issues/               # Unified issue tracking
```

### Working Across Repositories
- **Component Development**: Work in `webcomponents/elements/[component-name]/`
- **CLI Development**: Work in `create/`
- **Backend Development**: Choose `haxcms-php/` or `haxcms-nodejs/`
- **API/Microservices**: Develop Express endpoints in `open-apis/api/`
- **Documentation**: Update in `docs/` (HAXcms site format)
- **Schema Changes**: Update in `json-outline-schema/` or `hax-schema/`
- **Issues**: Always check `issues/` first

### Lerna Management (webcomponents repo)
```bash
# Run command across all components
lerna run build

# Publish components (maintainers only)
lerna publish

# Add dependency to specific component
lerna add package-name --scope=@haxtheweb/component-name
```

## Advanced HAX Patterns

### Content Import & Migration
- **Import from external sources**:
  ```bash
  hax site --import-site https://example.com --import-structure htmlToSite
  ```
  
- **Supported import methods**:
  - `pressbooksToSite` - Academic textbook platform
  - `elmslnToSite` - ELMS Learning Network
  - `haxcmsToSite` - Between HAXcms instances
  - `notionToSite` - Notion workspace
  - `gitbookToSite` - GitBook documentation
  - `evolutionToSite` - Evolution CMS
  - `htmlToSite` - Generic HTML import
  - `docxToSite` - Microsoft Word documents

### Site Management
- **Add pages programmatically**:
  ```bash
  hax site --title "New Page" --content "<p>Content</p>" --slug "new-page"
  ```
  
- **Advanced page options**:
  ```bash
  hax site --title "Page" --parent "parent-slug" --order 3 --theme "custom-theme" --hide-in-menu
  ```

### GitHub CLI Integration
- **Check issues**: `gh issue list`
- **Create issues**: `gh issue create`
- **Review PRs**: `gh pr review`
- **CLI is pre-installed** - use directly without verification

### External Library Integration
- **Vaadin Components**: Import from `@vaadin/[component]/[component].js`
- **Shoelace Components**: Import from `@shoelace-style/shoelace/dist/components/[component]/[component].js`
- **Other Libraries**: Always use the `/dist/` or compiled JavaScript version
- **Open APIs**: Leverage https://open-apis.hax.cloud/ for conversion, analysis, and processing services
- **Avoid**: Direct TypeScript imports or source files requiring compilation

## Additional Instructions

## HAX Cloud Infrastructure

### HAX.cloud Services
HAX leverages cloud infrastructure at https://hax.cloud for:
- **CDN**: Content delivery network for component libraries
- **AI Services**: Content analysis and processing capabilities
- **Documentation**: Centralized documentation and community resources
- **Open Infrastructure**: Publicly available APIs and services

### Microservice Architecture
- **open-apis.hax.cloud**: Conversion, analysis, and processing services
- **Stateless Design**: Services designed for scalability and reliability
- **REST APIs**: Standard HTTP interfaces for integration
- **Vercel Deployment**: Serverless functions for optimal performance

## Ecosystem-Specific Guidance

### Development Workflows
- **Monorepo Support**: Place additional `AGENTS.md` files in subproject folders for component-specific instructions
- **Schema Evolution**: Changes to JSON schemas require coordination across repositories
- **Component Dependencies**: Use `@haxtheweb/` scope for internal dependencies
- **Version Synchronization**: Components should maintain version alignment
- **No Compilation Step**: Pure JavaScript approach means faster development cycles
- **API Development**: Express endpoints in `open-apis/` deploy automatically to Vercel at https://open-apis.hax.cloud/

### Documentation Standards
- **HAXcms Format**: Documentation sites use HAXcms structure (site.json + pages/ + files/)
- **JSON Outline Schema**: All content structure follows standardized schema
- **Semantic HTML**: Content authored in semantic HTML for maximum portability
- **Asset Management**: Media files organized in files/ directory with proper metadata

### Community Governance
- **Pillar-Driven Development**: All decisions evaluated against community pillars
- **Inclusive Decision Making**: Community input welcomed on major changes
- **Issue-Driven Development**: Work organized through GitHub issues with pillar labels
- **Educational Mission**: Remember HAX's roots in empowering educators and learners

## Educational & Pedagogical Context

HAX has deep roots in educational technology, evolving from over a decade of work in online learning:

### Educational Heritage
- **ELMS:LN Legacy**: HAX evolved from ELMS Learning Network (2012-2022), a Next Generation Digital Learning Environment (NGDLE) that powered hundreds of online courses at Penn State and beyond
- **OER Commitment**: Embraces the 5Rs of Open Educational Resources (Retain, Reuse, Revise, Remix, Redistribute)
- **Instructional Design Focus**: Built-in support for pedagogical patterns through specialized components

### Educational Components
HAX includes purpose-built components for learning:
- **Question Types**: Multiple choice, fill-in-the-blanks, drag-and-drop, true/false, short answer, sorting, tagging
- **Instructional Tools**: Self-check activities, stop notes, timelines, math notation (MathML/LaTeX)
- **Assessment Features**: Immediate feedback, progressive disclosure, formative assessment patterns
- **Accessibility in Learning**: Screen reader compatibility, keyboard navigation, high contrast support

### Pedagogical Patterns
- **Chunked Content**: Break complex topics into digestible components
- **Active Learning**: Interactive elements encourage engagement over passive consumption
- **Universal Design for Learning**: Multiple means of representation, engagement, and expression
- **Evidence-Based Design**: Components based on learning science research

### Related Educational Projects
- **ELMS:LN**: Legacy platform still maintained but effectively replaced by HAX
- **Course Design Templates**: Pre-built pedagogical frameworks for common course structures
- **Learning Analytics**: Integration points for tracking learner engagement and progress

### Community & Support
- **HAX Community**: Run `hax party` for involvement opportunities
- **Discord**: https://bit.ly/hax-discord
- **Issue Reporting**: Use `haxtheweb/issues` or GitHub interface
- **Merlin Integration**: Use "Issue" command in HAX spaces for automated reporting
- **Documentation**: Run `man hax` (Linux/macOS) for comprehensive CLI docs
- **Educational Resources**: Complete documentation at https://haxtheweb.org/

## Security Considerations

- **Dependencies**: Keep dependencies updated before running `npm install`
- **Sensitive Data**: Avoid committing API keys or sensitive data to `package.json`, `site.json`, or public files
- **Site Imports**: Validate source URLs when using `--import-site` to prevent malicious content
- **File Permissions**: Ensure scripts have correct execution permissions (`chmod +x script.sh`)
- **Component Security**: Sanitize user inputs in custom components
- **Schema Validation**: Validate against JSON schemas before processing content
- **Library Security**: Only import from trusted, well-maintained JavaScript distributions

## Troubleshooting Common Issues

### Build Failures
- **Missing custom-elements.json**: Run `yarn run build` from component root
- **DDD Audit Failures**: Check `.dddignore` and fix CSS token usage
- **Lerna Issues**: Run `lerna clean && lerna bootstrap`

### Development Environment
- **Wrong Directory**: Always work from `haxtheweb/`
- **CLI Not Found**: Ensure `@haxtheweb/create` is globally installed
- **Permission Errors**: Check file permissions and ownership

### Component Issues
- **Theme Not Loading**: Verify HAXCMSLitElement inheritance and build process
- **DDD Tokens Missing**: Import DDD properly and use CSS custom properties
- **HAX Integration**: Ensure `haxProperties` are defined correctly
- **Library Import Errors**: Verify you're importing JavaScript distributions, not TypeScript sources

### Performance Issues
- **Slow Loading**: Check for unnecessary dependencies or large imports
- **Bundle Size**: HAX's unbundled approach should keep individual files small
- **Memory Usage**: Monitor component lifecycle and cleanup

---

*This AGENTS.md file is maintained across all HAX ecosystem repositories to ensure consistent development experience regardless of entry point.*


================================================
FILE: CHANGELOG.md
================================================
# Changelog

All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.




================================================
FILE: CLA-README.md
================================================
# Contributor License Agreement (CLA) Process

## How it Works

This repository uses an automated CLA (Contributor License Agreement) process to ensure legal compliance for all contributions. Here's how it works:

### For New Contributors

1. **Open a Pull Request**: When you submit your first pull request, the CLA bot will automatically post a comment asking you to sign the CLA.

2. **Sign the CLA**: To sign the CLA, simply comment on your pull request with:
   ```
   I have read the CLA Document and I hereby sign the CLA
   ```

3. **Automatic Processing**: Once you sign, the bot will:
   - Record your signature in the repository
   - Update the pull request status
   - Allow your PR to proceed with the review process

### For Returning Contributors

If you've already signed the CLA for this repository, you don't need to sign it again for future pull requests. The bot will automatically recognize you as a signed contributor.

### Important Notes

- **Exact Comment Required**: You must use the exact comment text: `I have read the CLA Document and I hereby sign the CLA`
- **Read the CLA**: Please read the [full CLA document](./CLA.md) before signing
- **One-Time Process**: You only need to sign once per repository
- **Bot Users**: Automated bot users are automatically allowlisted and don't need to sign

### Troubleshooting

If you're having issues with the CLA process:

1. **Re-check Status**: Comment `recheck` on your pull request to have the bot re-evaluate your CLA status
2. **Contact Maintainers**: If problems persist, mention a maintainer in your pull request

### Technical Details

- CLA signatures are stored in `signatures/version1/cla.json` in this repository
- The CLA bot is implemented using the [contributor-assistant/github-action](https://github.com/contributor-assistant/github-action)
- No third-party services are used; everything is handled within GitHub

---

**Questions?** Feel free to open an issue or ask in your pull request if you need help with the CLA process.

================================================
FILE: CLA.md
================================================
# Contributor License Agreement

## HAXtheWeb Webcomponents Project

Thank you for your interest in contributing to the HAXtheWeb Webcomponents project owned by Penn State University ("We" or "Us").

This Contributor License Agreement ("Agreement") documents the rights granted by contributors to Us. To make this document effective, please sign it and send it to Us.

### 1. Definitions

**"You"** (or **"Your"**) shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with Us.

**"Contribution"** shall mean any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to Us for inclusion in, or documentation of, any of the products owned or managed by Us (the "Work").

### 2. Grant of Rights

#### Copyright License
Subject to the terms and conditions of this Agreement, You hereby grant to Us and to recipients of software distributed by Us a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Work, and to permit persons to whom the Work is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Work.

#### Patent License
Subject to the terms and conditions of this Agreement, You hereby grant to Us and to recipients of software distributed by Us a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work.

### 3. Representations

You represent that:

1. You are legally entitled to grant the above license.
2. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you have received permission to make Contributions on behalf of that employer, or your employer has waived such rights for your Contributions to Us.
3. Each of Your Contributions is Your original creation.
4. Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions.

### 4. You are not expected to provide support

You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.

---

**By commenting "I have read the CLA Document and I hereby sign the CLA" on a Pull Request, you are agreeing to the terms of this Contributor License Agreement.**

================================================
FILE: CODE_OF_CONDUCT.md
================================================
# HAXTheWeb Code of Conduct

## Our pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project as awesome as we possibly can.
It is the policy of HAXTheWeb to maintain an environment free of harassment and free of discrimination against any person because of age, race, color, ancestry, national origin, religion,
creed, service in the uniformed services (as defined in state and federal law), veteran status, sex, sexual orientation,
marital or family status, pregnancy, pregnancy-related conditions, physical or mental disability, gender, perceived gender,
gender identity, genetic information or political ideas.

Discriminatory conduct and harassment, as well as sexual misconduct and harassment or relationship violence, violates the dignity of individuals, impedes the realization of HAXTheWeb’s mission, and will not be tolerated in our community.

## Our standards

How you will keep our community awesome:

* Showing empathy to everyone
* Being respectful of differing viewpoints and experiences
* Accepting constructive criticism
* Acting in the best interests of the community

Behaviors our community will not tolerate:

* Harassment - public or private
* Unwelcome sexual attention or advances
* Trolling - derogatory interactions and personal or political attacks
* Doxing - publishing others' private information without permission
* Any conduct reasonably considered inappropriate in professional settings

## Our responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected
to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right to remove or modify comments, commits, code, documentation,
issues, and other contributions that are not aligned to this Code of Conduct.

## Scope

This Code of Conduct applies both within project spaces and in spaces where an individual is 
representing the project or its community. Examples of representing a project or community include using 
an official project e-mail address, posting via an official social media account, or acting as an official 
representative at an event. Representation of a project may be further defined and clarified 
by project maintainers.

The HAXcms Code of Conduct applies to anyone involved in the project, including project maintainers.

## Enforcement

Instances of behavior which violates the HAXcms Code of Conduct may be reported by contacting 
project leadership at hax@psu.edu. The project leadership will review and investigate all complaints, and will 
respond in a way that it deems appropriate. The project leadership is obligated to maintain 
confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies 
may be posted separately.

The HAXcms Code of Conduct was originally produced in the United States of America and operates based on US legal norms
which presumes innocence until guilt is proven.

## CoC attribution
The HAXcms Code of Conduct has been forked from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4


================================================
FILE: COMPONENT-GALLERY.md
================================================
# HAX Web Components Gallery

A simple, fast, and reliable component gallery system that replaces Storybook for showcasing your web components. Built using your existing demo pages and styled with the DDD design system.

## Features

- 🔍 **Search functionality** - Find components quickly by name or description
- 📱 **Responsive design** - Works great on all devices
- 🎨 **DDD Design System** - Uses your own design tokens for consistent styling
- ⚡ **Fast and reliable** - No complex build processes or breaking dependencies
- 🔗 **Links to existing demos** - Leverages all your existing demo pages
- 📊 **Categorized view** - Components grouped by prefix for better organization

## Usage

### Development
```bash
# Generate and serve the gallery locally
yarn gallery

# Just generate the gallery file
yarn build-gallery
```

### Production
The gallery is automatically built during your main build process:
```bash
yarn build  # This now includes yarn build-gallery
```

## How it Works

The gallery system:

1. **Scans** your `elements/` directory for components with `demo/index.html` files
2. **Reads** each component's `package.json` for metadata
3. **Groups** components by their prefix (e.g., `a11y-`, `hax-`, etc.)
4. **Generates** a single HTML file with embedded CSS and JavaScript
5. **Serves** the gallery with a simple HTTP server

## Design System Integration

The gallery uses your DDD design system variables:

- **Typography**: `--ddd-font-primary`, `--ddd-font-secondary`, `--ddd-font-navigation`
- **Spacing**: `--ddd-spacing-*` variables for consistent margins and padding
- **Colors**: Penn State brand colors from the DDD theme
- **Shadows & Borders**: `--ddd-boxShadow-*` and `--ddd-border-*` variables

## File Structure

```
webcomponents/
├── scripts/
│   └── build-component-gallery.js    # Gallery generator script
├── component-gallery.html            # Generated gallery (gitignored)
└── elements/
    └── [component-name]/
        ├── package.json              # Component metadata
        └── demo/
            ├── index.html            # Main demo (required)
            └── [other].html          # Additional demos (optional)
```

## Customization

### Adding Component Categories
Components are automatically categorized by their prefix (the part before the first `-`). For example:
- `a11y-carousel` → **A11Y Components**
- `hax-tray` → **HAX Components** 
- `simple-icon` → **SIMPLE Components**

### Styling
The gallery inherits styling from your DDD design system. To customize:

1. Modify the CSS variables in your DDD theme
2. Edit `scripts/build-component-gallery.js` for structural changes
3. Regenerate with `yarn build-gallery`

## Migration from Storybook

### What Changed
- `yarn storybook` → `yarn gallery`
- `yarn build-storybook` → `yarn build-gallery`
- No more complex webpack configuration
- No more breaking Storybook dependencies
- Uses your existing demo pages instead of stories

### Benefits
- ✅ **Reliable**: No more build failures
- ✅ **Fast**: Instant startup, no complex bundling  
- ✅ **Simple**: Single HTML file output
- ✅ **Consistent**: Uses your actual design system
- ✅ **Maintainable**: Leverages existing demo infrastructure

## Deployment

The generated `component-gallery.html` file is completely self-contained and can be:

- Served statically from any web server
- Deployed to GitHub Pages, Netlify, Vercel, etc.
- Opened directly in a browser
- Embedded in documentation sites

## Troubleshooting

### No components found
- Ensure components have a `demo/index.html` file
- Check that `package.json` files are valid JSON
- Verify you're running from the repository root

### Gallery not loading properly  
- Check that the DDD design system is properly imported
- Ensure all demo links are relative paths
- Verify `d-d-d.js` is accessible from the gallery location

### Search not working
- JavaScript must be enabled
- Check browser console for errors
- Ensure component data is properly embedded in the HTML

## Contributing

To improve the gallery system:

1. Edit `scripts/build-component-gallery.js`
2. Test with `yarn build-gallery`
3. Submit a PR with your changes

The gallery system is designed to be simple and maintainable - keep that philosophy when making changes!


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

- [Contributing](#contributing)
  - [What is HAX and this Project?](#what-is-hax-and-this-project)
  - [Getting Started](#getting-started)
    - [Prerequisites](#prerequisites)
    - [Install: w/ Dev Containers](#install-w-dev-containers)
    - [Install: w/ Bash script (supporting Git Bash/WSL/macOS/Linux)](#install-w-bash-script-supporting-git-bashwslmacoslinux)
    - [Windows Support](#windows-support)
    - [Manual Install](#manual-install)
    - [First-time Setup Verification](#first-time-setup-verification)
  - [Finding Issues to Work On](#finding-issues-to-work-on)
  - [Development Workflow](#development-workflow)
    - [Working on Web Components](#working-on-web-components)
    - [Code Standards](#code-standards)
  - [Common Issues](#common-issues)
  - [Communication](#communication)
  - [GitHub workflow](#github-workflow)
  - [Opening a Pull Request](#opening-a-pull-request)
  - [Code Review](#code-review)
  - [Best practices](#best-practices)
  - [Testing](#testing)
  - [Security](#security)

HAX is open source, but many of the people working on it do so as their day job.
In order to avoid forcing people to be "at work" effectively 24/7, we want to establish some semi-formal protocols around development.
Hopefully, these rules make things go more smoothly.

As a potential contributor, your changes and ideas are welcome at any hour of the day or night, weekdays, weekends, and holidays.
Please do not ever hesitate to ask a question or send a pull request.

## What is HAX and this Project?

HAX is an authoring experience that enables rapid creation of fast, static websites. This webcomponents monorepo contains reusable web components built with [Lit](https://lit.dev/) that power the HAX ecosystem. These components work standalone or as part of the broader HAX authoring platform.

**Key Technologies:**
- **Lit** - Modern web components library
- **Lerna** - Monorepo management
- **Yarn** - Package management
- **Node.js** - Runtime environment
- **Web Components** - Standards-based component architecture

This project contains 200+ web components in the `elements/` directory, each designed to be lightweight, accessible, and framework-agnostic.

## Getting Started

### Prerequisites
Before setting up your development environment, ensure you have:
- **Git** or **GitHub Desktop** for version control
- A **GitHub account** for submitting contributions

### Install: w/ Dev Containers
Our project follows the [Dev Container specification](https://containers.dev/implementors/spec/) to provide a consistent, UX-focused experience across operating systems. The container isolation ensures that users on Windows, macOS, and Linux can all develop with the same curated environment. <u>If</u> you're interested in **Dev Containers** (but want a more personalized setup), follow along these general steps: 
1. Install [Docker](https://docs.docker.com/get-started/get-docker/) (or another container runtime)
    * **Dev Containers** are broadly supported across OCI-compliant runtimes like Docker, [Podman](https://podman.io/docs/installation), and [OrbStack](https://docs.orbstack.dev/quick-start).
2. Install the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension for **VS Code**
    * Open **VS Code**, then select **Install Recommended Extensions** 
    * Accepting the alert will automatically download this with other helpful extensions
3. Afterwards, another alert will pop up in the **bottom right** corner of **VS Code**
    * Select **Reopen in Container**

Wait a few minutes for your **Dev Container** to be built, then you're ready to go!

Otherwise, please check out the [Quick install](README.md#getting-started) section in our README. This is a full, step-by-step walkthrough of a **Dev Container** installation (using simple applications and sane defaults)!

### Install: w/ Bash script (supporting Git Bash/WSL/macOS/Linux)
```bash
curl -fsSL https://raw.githubusercontent.com/haxtheweb/webcomponents/master/scripts/haxthewebme.sh -o haxthewebme.sh && sh haxthewebme.sh
```

### Windows Support
[Docker](https://docs.docker.com/desktop/setup/install/windows-install/), [Git Bash](https://git-scm.com/install/windows), or [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) are recommended for the best cross-compatibility with HAX's developer tooling. We also support **PowerShell** for Windows contributors, although certain utilities may experience instability.

#### Windows Developer Mode
The monorepo uses symlinks in many parts of its local environment. This allows us to emulate the functionality of a live HAXsite without running the full system. On Windows, symlinks normally require running the shell as *Administrator*.

Enable **Developer Mode** to remove this *Administrator* requirement for common development tasks. Start by opening your **Windows Settings**:
* On Windows 10: Update and Security -> For developers -> Developer Mode
* On Windows 11: System -> Advanced -> For developers -> Developer Mode

#### Install: w/ PowerShell script (Windows)
```powershell
irm https://raw.githubusercontent.com/haxtheweb/webcomponents/master/scripts/haxthewebme.ps1 | iex
```

### Manual Install
*Notice: You will need to use [Node](https://nodejs.org/en/) version 6.0 or higher. Verify that you have yarn enabled — if not [install yarn globally](https://yarnpkg.com/lang/en/docs/install/). These web components are written in [ES6](https://tc39.es/ecma262/) and build routines compile to es5 to encompass legacy browsers.*

1. **Install Node.js**

   Visit [nodejs.org](https://nodejs.org/), then install **Node.js version 22.0** or higher
   * We recommend **fnm** as a cross-platform Node.js manager

2. **Fork and Clone the Repository**
   ```bash
   # Fork the repo on GitHub, then clone your fork
   git clone https://github.com/YOUR_USERNAME/webcomponents.git
   cd webcomponents
   
   # Add upstream remote for syncing
   git remote add upstream https://github.com/haxtheweb/webcomponents.git
   ```

3. **Install Dependencies**
   ```bash
   # Install HAX CLI and yarn globally
   npm install --global @haxtheweb/create yarn
   
   # Install web component analyzer
   yarn global add web-component-analyzer
   
   # Install project dependencies (this may take a few minutes)
   yarn install
   ```

4. **Start the Development Server**
   ```bash
   # Start the main development server
   yarn start
   ```
   This will start the development environment at `http://localhost:8000/elements/haxcms-elements/demo/`

### First-time Setup Verification

Verify your setup is working:

1. **Check that the development server runs:**
   - Navigate to `http://localhost:8000/elements/haxcms-elements/demo/` in your browser
   - You should see the HAX development interface

2. **Test building components:**
   ```bash
   # Build all components (this may take several minutes first time)
   yarn run build
   ```

3. **Browse component demos:**
   - Navigate to `http://localhost:8000/elements/` to see available components
   - Click into individual component directories to view their demos

## Finding Issues to Work On

**New Contributors - Start Here:**

1. **Browse the unified issue queue:** https://github.com/haxtheweb/issues/issues
   - Look for issues labeled with `good first issue` or `help wanted`
   - Issues labeled `documentation` are often beginner-friendly

2. **Component-specific issues:**
   - Each component in `elements/` may have its own issues
   - Look for small bug fixes or feature enhancements

3. **Documentation improvements:**
   - Update component README files
   - Improve JSDoc comments
   - Enhance demo pages in component `demo/` directories

4. **Ask for guidance:**
   - Join our [Discord](https://bit.ly/hax-discord) and introduce yourself
   - Ask "What's a good first issue for someone new to the project?"

**Before starting work:**
- Comment on the issue saying you'd like to work on it
- Wait for maintainer acknowledgment to avoid duplicate work
- Ask questions if the requirements aren't clear

## Development Workflow

### Working on Web Components

**To work on an existing component:**

1. **Navigate to the component:**
   ```bash
   cd elements/COMPONENT_NAME  # e.g., cd elements/simple-button
   ```

2. **Start component development:**
   ```bash
   yarn start  # Starts dev server for this specific component
   ```

3. **File structure:**
   ```
   elements/component-name/
   ├── lib/                    # Supporting files and utilities
   ├── component-name.js       # Main component source code
   ├── demo/                   # Demo HTML files
   ├── test/                   # Test files
   └── package.json           # Component-specific dependencies
   ```

4. **Making changes:**
   - Edit `component-name.js` for the main component logic
   - Update `demo/` files to test your changes
   - Modify files in `lib/` for supporting utilities
   - The dev server will auto-reload on changes

**To create a new component:**
```bash
# From the project root
hax webcomponent my-new-element --y
cd elements/my-new-element
yarn start
```

### Code Standards

**JavaScript/Lit:**
- Follow existing code style in the project
- Use Lit's best practices for web components
- Ensure components are accessible (ARIA attributes, keyboard navigation)
- Components should work in all modern browsers

**Formatting:**
- Code is automatically formatted with Prettier on commit
- CSS is formatted with Stylelint
- Run `yarn run format` to format all files

**Documentation:**
- Add JSDoc comments to all public methods and properties
- Update component README files
- Create comprehensive demo pages showing component usage

**Testing:**
- Write unit tests for new functionality when possible
- Ensure existing tests still pass: `yarn test`
- Test in multiple browsers if making significant changes

### Lerna
This monorepo has configuration settings for lerna. Lerna is for the core team, but to bulk run commands against the monorepo consider things like `npx lerna run build` to run build against all elements. This is useful when getting ready to ship.

## Common Issues

New contributors often encounter these issues. Here are solutions to the most common problems:

### Setup and Installation Issues

**"Port 8000 already in use" error:**
```bash
# Find and kill processes using port 8000
kill -9 $(lsof -t -i:8000)
# Or try a different port range
PORT=8001 yarn start
```

**Yarn install fails or hangs:**
```bash
# Clear cache and reinstall
rm -rf node_modules yarn.lock
yarn cache clean
yarn install
```

**Permission errors on global installs:**
```bash
# Configure npm to use a different directory
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
# Add the export line to your ~/.bashrc or ~/.zshrc
```

**Node version issues:**
```bash
# Check your Node version
node --version
# If using nvm, switch to Node 22+
nvm install 22
nvm use 22
```

### Development Issues

**Build errors after pulling latest changes:**
```bash
# Update dependencies after pulling
yarn install
# If that doesn't work, clean and reinstall
rm -rf node_modules yarn.lock
yarn install
yarn run build
```

**"Component not found" or import errors:**
- Ensure you're in the correct component directory: `cd elements/component-name`
- Check that the component name matches the directory name
- Verify the main component file exists: `ls component-name.js`

**Hot reload not working:**
- Make sure you're editing the correct files (`component-name.js`, not files in `dist/` or `build/`)
- Try restarting the dev server: `Ctrl+C` then `yarn start`
- Clear browser cache or try an incognito window

**Lerna-related errors:**
```bash
# Bootstrap all packages
npx lerna bootstrap
# Or clean and rebuild everything
npx lerna clean
yarn install
```

### Testing Issues

**Tests failing locally:**
```bash
# Run tests for a specific component
cd elements/component-name
yarn test
# Run tests with browser open for debugging
yarn test -- -p
```

**"Chromium not found" test errors:**
```bash
# On Ubuntu/Debian
sudo apt-get install chromium-browser
# On macOS
brew install chromium
```

### Git and GitHub Issues

**Fork is out of sync:**
```bash
# Sync your fork with upstream
git fetch upstream
git checkout master
git merge upstream/master
git push origin master
```

**Accidentally committed to master instead of a branch:**
```bash
# Create a new branch with your changes
git branch feature-branch-name
# Reset master to upstream
git reset --hard upstream/master
# Switch to your feature branch
git checkout feature-branch-name
```

### Performance Issues

**Slow build times:**
- Close unnecessary applications to free up memory
- Build specific components instead of everything: `cd elements/component-name && yarn build`
- Consider increasing Node's memory limit: `export NODE_OPTIONS="--max-old-space-size=4096"`

### Still Having Issues?

1. **Check if it's a known issue:** Search https://github.com/haxtheweb/issues/issues
2. **Ask on Discord:** Join https://bit.ly/hax-discord and describe your problem
3. **Include helpful details:**
   - Your operating system and version
   - Node.js version (`node --version`)
   - Yarn version (`yarn --version`)
   - Full error message (use code blocks in Discord/GitHub)
   - What you were trying to do when the error occurred

## Communication

Reporting issues? Our unified issue queue is a good place for this: https://github.com/haxtheweb/issues/issues
Need to discuss something via chat? Our [Discord can be joined here](https://bit.ly/hax-discord).

## GitHub workflow

We work primarily using pull requests and forks. In order to work most effectively, we ask that you FORK any project you are wanting to contribute to in our ecosystem. After taking a fork, submit a pull request while pointing to the associated issue tied to this pull request.

## Opening a Pull Request

Pull requests are often called a "PR".
HAX generally follows the standard [github pull request](https://help.github.com/articles/about-pull-requests/) process.

Common new contributor PR issues are:
- Not referencing the issue that the PR resolves
- Not describing the scope of the solution effectively
- Include mentions (like @person) and [keywords](https://help.github.com/en/articles/closing-issues-using-keywords) which could close the issue (like fixes #xxxx) in commit messages.

## Code Review

To make it easier for your PR to receive reviews, consider the reviewers will need you to:

- Write [good commit messages](https://chris.beams.io/posts/git-commit/)
- Break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue

When reviewing PRs from others [The Gentle Art of Patch Review](http://sage.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/) suggests an iterative series of focuses which is designed to lead new contributors to positive collaboration without inundating them initially with nuances:

- Is the idea behind the contribution sound?
- Is the contribution architected correctly?
- Is the contribution polished?

Note: if your pull request isn't getting enough attention, you can use our [Discord channel](https://bit.ly/hax-discord) to get help finding reviewers.

## Best practices

- Write clear and meaningful git commit messages.
- If the PR will *completely* fix a specific issue, include `fixes #123` in the PR body (where 123 is the specific issue number the PR will fix. This will automatically close the issue when the PR is merged.
- Make sure you don't include `@mentions` or `fixes` keywords in your git commit messages. These should be included in the PR body instead.
- When you make a PR for small change (such as fixing a typo, style change, or grammar fix), please squash your commits so that we can maintain a cleaner git history.
- Make sure you include a clear and detailed PR description explaining the reasons for the changes, and ensuring there is sufficient information for the reviewer to understand your PR.
- Additional Readings: 
    - [chris.beams.io/posts/git-commit/](https://chris.beams.io/posts/git-commit/)
    - [github.com/blog/1506-closing-issues-via-pull-requests ](https://github.com/blog/1506-closing-issues-via-pull-requests)
    - [davidwalsh.name/squash-commits-git ](https://davidwalsh.name/squash-commits-git)
    - [https://mtlynch.io/code-review-love/](https://mtlynch.io/code-review-love/)

## Testing

Unit tests are ideal but not required to be written for proposed changes and enhancements.

## Security

If you discover what you deem to be a critical security issue  please reach out on our Discord channel privately to discuss whether this should be resolved in the open prior or if disclosure should happen after a solution has been crafted.


================================================
FILE: LICENSE.md
================================================
                     Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright 2018 The Pennsylvania State University

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/haxtheweb/webcomponents/badge)](https://securityscorecards.dev/viewer/?uri=github.com/haxtheweb/webcomponents)
[![Community Support](https://badgen.net/badge/support/community/cyan?icon=awesome)](/SUPPORT.md)
[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](/CODE_OF_CONDUCT.md)
[![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/EKYJAjqGhf)
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)
[![Lit](https://img.shields.io/badge/-Lit-324fff?style=flat&logo=data:image/svg%2bxml;base64,PHN2ZyBmaWxsPSIjZmZmIiB2aWV3Qm94PSIwIDAgMTYwIDIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTYwIDgwdjgwbC00MC00MHptLTQwIDQwdjgwbDQwLTQwem0wLTgwdjgwbC00MC00MHptLTQwIDQwdjgwbDQwLTQwem0tNDAtNDB2ODBsNDAtNDB6bTQwLTQwdjgwbC00MC00MHptLTQwIDEyMHY4MGwtNDAtNDB6bS00MC00MHY4MGw0MC00MHoiLz48L3N2Zz4%3D)](https://lit.dev/)
[![#HAXTheWeb](https://img.shields.io/badge/-HAXTheWeb-999999FF?style=flat&logo=data:image/svg%2bxml;base64,PHN2ZyBpZD0iZmVhMTExZTAtMjEwZC00Y2QwLWJhMWQtZGZmOTQyODc0Njg1IiBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4NC40IDEzNS45NyI+PGRlZnM+PHN0eWxlPi5lMWJjMjAyNS0xODAwLTRkYzItODc4NS1jNDZlZDEwM2Y0OTJ7ZmlsbDojMjMxZjIwO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iZTFiYzIwMjUtMTgwMC00ZGMyLTg3ODUtYzQ2ZWQxMDNmNDkyIiBkPSJNNzguMDcsODMuNDVWNTVIODYuMnY4LjEzaDE2LjI2djQuMDdoNC4wN1Y4My40NUg5OC40VjY3LjE5SDg2LjJWODMuNDVaIi8+PHBvbHlnb24gcG9pbnRzPSIxNTMuMTMgNjMuNyAxNTMuMTMgNTEuMzkgMTQwLjU0IDUxLjM5IDE0MC41NCAzOS4wOSAxMjcuOTUgMzkuMDkgMTI3Ljk1IDI2Ljc5IDEwMi43OCAyNi43OSAxMDIuNzggMzkuMDkgMTE1LjM2IDM5LjA5IDExNS4zNiA1MS4zOSAxMjcuOTUgNTEuMzkgMTI3Ljk1IDYzLjcgMTQwLjU0IDYzLjcgMTQwLjU0IDc2IDEyNy4zNiA3NiAxMjcuMzYgODguMyAxMTQuNzggODguMyAxMTQuNzggMTAwLjYxIDEwMi4xOSAxMDAuNjEgMTAyLjE5IDExMi45MSAxMjcuMzYgMTEyLjkxIDEyNy4zNiAxMDAuNjEgMTM5Ljk1IDEwMC42MSAxMzkuOTUgODguMyAxNTIuNTQgODguMyAxNTIuNTQgNzYgMTY1LjcyIDc2IDE2NS43MiA2My43IDE1My4xMyA2My43Ii8+PHBvbHlnb24gcG9pbnRzPSIzMy4xMyA2My43IDMzLjEzIDUxLjM5IDQ1LjcyIDUxLjM5IDQ1LjcyIDM5LjA5IDU4LjMxIDM5LjA5IDU4LjMxIDI2Ljc5IDgzLjQ4IDI2Ljc5IDgzLjQ4IDM5LjA5IDcwLjg5IDM5LjA5IDcwLjg5IDUxLjM5IDU4LjMxIDUxLjM5IDU4LjMxIDYzLjcgNDUuNzIgNjMuNyA0NS43MiA3NiA1OC44OSA3NiA1OC44OSA4OC4zIDcxLjQ4IDg4LjMgNzEuNDggMTAwLjYxIDg0LjA3IDEwMC42MSA4NC4wNyAxMTIuOTEgNTguODkgMTEyLjkxIDU4Ljg5IDEwMC42MSA0Ni4zMSAxMDAuNjEgNDYuMzEgODguMyAzMy43MiA4OC4zIDMzLjcyIDc2IDIwLjU0IDc2IDIwLjU0IDYzLjcgMzMuMTMgNjMuNyIvPjwvc3ZnPg==)](https://haxtheweb.org/)
[![Published on npm](https://img.shields.io/npm/v/@haxtheweb/h-a-x?style=flat)](https://www.npmjs.com/search?q=@haxtheweb)
[![build](https://github.com/haxtheweb/webcomponents/workflows/build/badge.svg?branch=master)](https://github.com/haxtheweb/webcomponents/actions?query=branch%3Amaster)
[![X](https://img.shields.io/twitter/follow/haxtheweb.svg?style=social&label=Follow)](https://twitter.com/intent/follow?screen_name=haxtheweb)

# Welcome to the HaxTheWeb project!
Web components that can work in just about anything, are very small (Vanila or Lit based) and have full on authoring solutions if you dig deeper; Enjoy!

## Getting Started

### Quick install: Dev Containers (as a core dev, forks preferrable)

HAXTheWeb is dedicated to making contribution an accessible and simple experience. Follow the step-by-step guide below to explore our curated development environment:

### Prerequisites
* On **Windows**: Update **WSL 2**
    * There are two methods available:
      * Open **WSL 2** in the [Microsoft Store](https://aka.ms/wslstorepage), select **Install/Update**
      * Open **PowerShell**, run the command: `wsl --update`
    * Why: Certain Windows editions are bundled with an outdated **WSL 2** version.

* On macOS or Linux: None

---
### Guide
1. Install **Docker Desktop**
    * [Windows](https://docs.docker.com/desktop/setup/install/windows-install/)
        * Select the **WSL 2 Backend** option
        * **Restart** after installing
    * [macOS](https://docs.docker.com/desktop/setup/install/mac-install/)
    * [Linux](https://docs.docker.com/desktop/setup/install/linux/)
    * **Docker Desktop** must remain open for **VS Code** to connect with it.
2. Install [GitHub Desktop](https://desktop.github.com/download/) (optional)
3. Clone the repository with **Git**
    * Using **GitHub Desktop**: select **Clone Repository**, then select the **URL** option.
    * Enter the link to your repository: `https://github.com/haxtheweb/webcomponents`
4. Open the repository in **VS Code**
    * Using **GitHub Desktop**: simply select **Open in VS Code**
5. Some alerts with pop up in the **bottom right** corner of **VS Code**:
    * Select **Install Recommended Extensions**
    * Select **Reopen in Container**

Wait a few minutes for your **Dev Container** to be built, then you're ready to go! Try the following command to open a demo HAXsite:
```bash
yarn run haxsite
```

### Alternative installs
If you're interested in other installation methods, visit our [Contributing Docs](CONTRIBUTING.md#getting-started)! We provide native Bash and PowerShell scripts, in addition to manual instructions.

-----------------------------------------------

## What is HAX
The authoring experience of HAX and the ability to make fast, static file backed websites rapidly.
Get all the details you want on [HAX docs](https://haxtheweb.org/)!
HAX seeks to be the smallest possible back-end CMS to make HAX work and be able to build websites with it. Leveraging JSON Outline Schema, HAX is able to author multiple pages, which it then writes onto the file system. This way a slim server layer is just for basic authentication, knowing how to save files, and placing them in version control.

Watch and Learn more about HAX here:
- Try Hax: https://hax.cloud
- HAXCellence https://haxtheweb.org/what-is-hax
- Youtube channel - https://www.youtube.com/@haxtheweb

### Issues / Support / Community
- Discord Channel - https://bit.ly/hax-discord
- Unified issue queue - https://github.com/haxtheweb/issues/issues
- Using Merlin directly in any HAX spaces and type "Issue" to jump start a report!

### Related links and tech
- [HAXcms (NodeJS)](https://github.com/haxtheweb/haxcms-nodejs)
- [HAXcms (PHP)](https://github.com/haxtheweb/haxcms-php)
- [Storybook docs](https://open-apis.hax.cloud/)
- [HAX [dot] PSU](https://hax.psu.edu)
- [HAX doc site](https://haxtheweb.org/)
- [HAX + 11ty](https://github.com/haxtheweb/hax11ty)

## To work on any element in our repo
```bash
cd elements/ELEMENTNAME
yarn start
```
Edit files in `lib/`, `src/`, `locales/` and `demo/` in order to modify the element to contribute back to us via PR.
## Scripts

- `hax webcomponent my-element --y`
    - Run HAX CLI to create a new web component
- `yarn test`
    -  Run tests on ALL webcomponents.
- `yarn run build`
    -  Run build on ALL webcomponents.
- `yarn run gallery`
    - Run component gallery (replaces storybook)
- `yarn run build-gallery`
    - Build component gallery for deployment

## Web Component development

Because this is a monorepo, each web component will need to be independently built in order to actively work on and preview the changes. Every web component has its own Gulp file and Yarn/NPM script.

While still running `yarn start` in one terminal window (which runs the local server), you will need to open another terminal window, drill into the directory of the web component you'd like to work on, and execute the `yarn run dev` command. This command will use gulp tasks to watch the files within that web component directory and will automatically re-run the build command and refresh the browser when you make changes to the web component.

### Working on elements (new-element)
Run `hax webcomponent` to make a new element. Go to the new element following the directions generated at the end of the element's creation. To work on the new-element run `yarn start` from it's directory. If you are pulling in another element to use, run `yarn add projectname --save` or edit the `package.json` file local to the element you are working on. **ALWAYS INSTALL FROM THE REPO ROOT, NOT THE ELEMENT YOU ARE WORKING ON**

### Example development on a web component

```bash
cd /Sites/webcomponents
yarn start

# SHIFT + CTRL + T to open a new tab in Terminal

cd elements your-card  # or any other web component
yarn run dev
```

Make a change to the web component and save. The gulpfile will handle transpiling the element down to ES5 and will bring in the HTML and Sass into the template in the web component.

## Test

To test all webcomponents, run `yarn test` from the root of the repo. If you only want to test the web component you're working on:

```bash
cd elements/your-card
yarn test
```

Also, if your tests are failing and you want access to a live browser to investigate why, the following flag will keep the browser open.

```bash
yarn test -- -p
```

Then open the URL that will be printed in the terminal. It looks something like this: `http://localhost:8081/components/@@haxtheweb/haxtheweb/generated-index.html?cli_browser_id=0`.

## Component Gallery

We've replaced [Storybook](https://storybook.js.org/) with our own **Component Gallery** to preview and document our web components. The Component Gallery provides a better integrated experience with HAX design system and build tools.

To run the component gallery locally

```bash
yarn run gallery
```

This will build the gallery and start a web server. Navigate to the URL shown in the terminal to see the Component Gallery in action. The gallery will automatically rebuild when components change.

To build the component gallery for deployment

```bash
yarn run build-gallery
```

This generates the component gallery as a single HTML file: `component-gallery.html`.

### Component Gallery Features

- **HAX Integration**: Built-in support for HAX-enabled components
- **DDD Design System**: Uses our Design, Develop, Destroy design tokens
- **Live Demos**: Interactive component demonstrations
- **CodePen Export**: Direct export to CodePen for experimentation
- **Search & Filter**: Easy component discovery
- **Mobile Responsive**: Works on all device sizes

## Tech Stack

**Client:** JavaScript, LitElement, Lit(https://lit.dev/)

**Server:** Node.js

## Contributing

Contributions are always welcome!

## Active contributors

- [@btopro](https://www.github.com/btopro)

## Additional contributions
Past contributors, student and larger community, can be found here: https://github.com/haxtheweb/webcomponents/graphs/contributors

![HAX Traveler: World Changer](https://raw.githubusercontent.com/haxtheweb/art/refs/heads/main/haxtheweb/hax-traveler-world-changer.jpg)


================================================
FILE: SECURITY.md
================================================
# Security Policy

## Supported Versions

We often run master on production systems or slightly behind master. Tagged releases of all web components in this repo are published to npm and managed via lerna.
If we get a security issue in a specific version, we are going to fix it in a newer release of the web component and you should update to the latest stable at that time.

## Reporting a Vulnerability

Security related issues should be filed in our general issue queue https://github.com/haxtheweb/issues/issues


================================================
FILE: SUPPORT.md
================================================
# Support

## Getting Help

If you need help with this project, please use the following resources:

### Community Support

- **Discord**: Join our community Discord server for real-time help and discussion: [HAXTheWeb Discord](https://discord.gg/EKYJAjqGhf)
- **Documentation**: Visit our comprehensive documentation: [HAXTheWeb Docs](https://haxtheweb.org/documentation)
- **Issues**: For bug reports and feature requests, please use our unified issue queue: [HAXTheWeb Issues](https://github.com/haxtheweb/issues/issues)

### Getting Started

- Check out our [documentation](https://haxtheweb.org/documentation) for guides and tutorials
- Explore and play with HAX components: [HAX Magic Script Playground](https://hax.cloud/magicscript.html)
- Join the discussion on [Discord](https://discord.gg/EKYJAjqGhf) to connect with other developers

### Before Opening an Issue

Before creating a new issue, please:

1. Search existing issues in our [unified issue queue](https://github.com/haxtheweb/issues/issues)
2. Check our [documentation](https://haxtheweb.org/documentation)
3. Ask for help on [Discord](https://discord.gg/EKYJAjqGhf)

This helps keep our issue queue focused on actual bugs and feature requests.

## Contributing

We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details on how to get involved.

================================================
FILE: VERSION.txt
================================================
25.0.0

================================================
FILE: _optional_dev_patches/@web+dev-server-core+0.7.2.patch
================================================
diff --git a/node_modules/@web/dev-server-core/dist/middleware/serveFilesMiddleware.js b/node_modules/@web/dev-server-core/dist/middleware/serveFilesMiddleware.js
index 36c6de2..fab0a7c 100644
--- a/node_modules/@web/dev-server-core/dist/middleware/serveFilesMiddleware.js
+++ b/node_modules/@web/dev-server-core/dist/middleware/serveFilesMiddleware.js
@@ -17,7 +17,9 @@ function serveFilesMiddleware(rootDir) {
         brotli: false,
         gzip: false,
         setHeaders(res) {
-            res.setHeader('cache-control', 'no-cache');
+          res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
+          res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');    
+          res.setHeader('cache-control', 'no-cache');
         },
     };
     // the wds-root-dir parameter indicates using a different root directory as a path relative


================================================
FILE: api/hydrateSsr.js
================================================
import { stdResponse, invalidRequest, stdPostBody } from "../utilities/requestHelpers.js";
//import { render } from '@lit-labs/ssr';
import { render } from '@lit-labs/ssr/lib/render-with-global-dom-shim.js';
import {collectResult} from '@lit-labs/ssr/lib/render-result.js';
import { html } from 'lit';
import { unsafeHTML } from "lit/directives/unsafe-html.js";
// node parser
import { parse } from 'node-html-parser';

import wcRegistry from "../wc-registry.json" assert { type: 'json' };

export default async function handler(req, res) {
  // destructing GET params after ? available in this object
  // use this if POST data is what's being sent
  let body = {};
  let q = null;
  if (req.query.q) {
    body = req.query;
  }
  else {
    body = stdPostBody(req);
  }
  // fallback support for post
  if (body && body.q) {
    q = body.q;
  }
  if (body && body.type == "link") {
    q = await fetch(q).then((d) => d.ok ? d.text() : '');
  }
  // need to know what we're searching for otherwise bail
  if (q) {
    let pastImports = {};
    const doc = parse(q);
    // can select all the dt's for term
    // then all the dd's for definition
    // array lengths should match if valid HTML
    // also ensure we have any results at all
    if (doc.querySelectorAll('*').length > 0) {
      const allEls = doc.querySelectorAll('*');
      for (var i=0; i < allEls.length; i++) {
        // see if it's in the registry
        if (wcRegistry[allEls[i].tagName.toLowerCase()] && !pastImports[wcRegistry[allEls[i].tagName.toLowerCase()]]) {
          pastImports[wcRegistry[allEls[i].tagName.toLowerCase()]] = true;
          try {
            await import(wcRegistry[allEls[i].tagName.toLowerCase()]);
          }
          catch(e) {
            console.log(`failed to load: ${wcRegistry[allEls[i].tagName.toLowerCase()]}`);
            console.log(e);
          }
        }
      }
    }
    const myServerTemplate = html`<div>${unsafeHTML(q)}</div>`;
    const ssrResult = render(myServerTemplate);
    const content = await collectResult(ssrResult);
    // Awaits promises
    res = stdResponse(res, content, {cache: 86400,type : 'text/html' });
  }
  else {
    // invalidate the response and provide a reason
    // this optionally takes in a status code otherwise default is 400
    // vercel will through a 500 if there was any bricking issue so we don't
    // need to throw that most likely
    res = invalidRequest(res, 'missing `q` param');
  }
}

================================================
FILE: api/package.json
================================================
{
  "type": "module",
  "name": "vercel-api-webcomponents",
  "scripts": {
    "postinstall": "./node_modules/.bin/patch-package"
  },
  "dependencies": {
    "patch-package": "^8.0.0",
    "lit-html": "3.3.2",
    "@lit-labs/ssr": "^3.3.1",
    "lit": "3.3.2",
    "node-html-parser": "^6.1.13",
    "@haxtheweb/course-design": "^25.0.0",
    "@haxtheweb/lrn-math": "^25.0.0",
    "@haxtheweb/media-image": "^25.0.0",
    "@haxtheweb/video-player": "^25.0.0"
  }
}

================================================
FILE: api/patches/@lit-labs+ssr+3.2.2.patch
================================================
diff --git a/node_modules/@lit-labs/ssr/lib/render-result.js b/node_modules/@lit-labs/ssr/lib/render-result.js
index 25c9490..c8fac1a 100644
--- a/node_modules/@lit-labs/ssr/lib/render-result.js
+++ b/node_modules/@lit-labs/ssr/lib/render-result.js
@@ -8,9 +8,12 @@
  */
 export const collectResult = async (result) => {
     let value = '';
-    for (const chunk of result) {
+    if (result) {
+      for (const chunk of result) {
+        //console.log(chunk);
         value +=
-            typeof chunk === 'string' ? chunk : await collectResult(await chunk);
+              typeof chunk === 'string' ? chunk : await collectResult(await chunk);
+      }
     }
     return value;
 };


================================================
FILE: automate-theme-screenshots.js
================================================
#!/usr/bin/env node

/**
 * Complete HAX Theme Screenshot Automation Workflow
 * 
 * This script provides the complete automation workflow for generating
 * screenshots of all HAX themes and updating the registry.
 * 
 * Usage: This is the automation guide for MCP puppeteer tools
 */

import { readFileSync, writeFileSync } from 'fs';
import { join, dirname } from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const THEMES_JSON_PATH = join(__dirname, 'elements/haxcms-elements/lib/themes.json');
const SCREENSHOTS_DIR = join(dirname(THEMES_JSON_PATH), 'theme-screenshots');

// Load themes
const themes = JSON.parse(readFileSync(THEMES_JSON_PATH, 'utf8'));
const themeList = Object.entries(themes);

console.log('\n=== HAX Theme Screenshot Automation Workflow ===\n');

/**
 * STEP 1: Verify Setup
 */
console.log('✓ Themes loaded:', themeList.length);
console.log('✓ Screenshots directory:', SCREENSHOTS_DIR);
console.log('✓ Updated themes.json with paths');

/**
 * STEP 2: Automation Commands
 * These are the MCP puppeteer commands to run:
 */

console.log('\n=== PUPPETEER AUTOMATION COMMANDS ===\n');

console.log('1. Navigate to demo site:');
console.log(`   puppeteer_navigate({"allowDangerous":true, "launchOptions":{"args":["--no-sandbox", "--disable-setuid-sandbox"], "headless":true}, "url":"http://localhost:8080"})`);

console.log('\n2. Wait for HAXCMS to load (run this first):');
console.log(`   puppeteer_evaluate({"script":"new Promise(resolve => { const wait = () => { if (globalThis.HAXCMS && globalThis.HAXCMS.setTheme) { console.log('HAXCMS ready!'); const currentTheme = globalThis.HAXCMS.instance && globalThis.HAXCMS.instance.store && globalThis.HAXCMS.instance.store.manifest && globalThis.HAXCMS.instance.store.manifest.metadata && globalThis.HAXCMS.instance.store.manifest.metadata.theme && globalThis.HAXCMS.instance.store.manifest.metadata.theme.element; resolve({ready: true, currentTheme: currentTheme}); } else { console.log('Still waiting...'); setTimeout(wait, 2000); } }; wait(); })"})`);

console.log('\n3. Theme switching and screenshot commands:');
console.log('   For each theme, run these 3 commands in sequence:\n');

// Generate commands for first 5 themes as examples
const exampleThemes = themeList.slice(0, 5);
exampleThemes.forEach(([themeKey, themeData], index) => {
  console.log(`--- Theme ${index + 1}: ${themeData.name} (${themeData.element}) ---`);
  console.log(`a) Switch theme:`);
  console.log(`   puppeteer_evaluate({"script":"globalThis.HAXCMS.setTheme('${themeData.element}'); 'Theme switched to ${themeData.element}'"})`);
  console.log(`b) Wait for theme to load (3 seconds):`);
  console.log(`   puppeteer_evaluate({"script":"new Promise(resolve => setTimeout(() => resolve('Theme loaded'), 3000))"})`);
  console.log(`c) Take screenshot:`);
  console.log(`   puppeteer_screenshot({"height":800, "width":1280, "name":"${themeData.element}"})`);
  console.log('');
});

console.log(`... repeat for all ${themeList.length} themes\n`);

/**
 * STEP 3: Popular themes for quick demo
 */
const popularThemes = [
  'polaris-flex-sidebar',
  'polaris-flex-theme',
  'clean-one',
  'journey-theme',
  'learn-two-theme',
  'spacebook-theme',
  'bootstrap-theme'
].filter(themeName => themes[themeName]);

console.log('=== QUICK DEMO: Popular Themes ===\n');
console.log(`Popular themes to screenshot first (${popularThemes.length} themes):\n`);

popularThemes.forEach((themeKey, index) => {
  const themeData = themes[themeKey];
  console.log(`${index + 1}. ${themeData.name}`);
  console.log(`   Element: ${themeData.element}`);
  console.log(`   Switch: globalThis.HAXCMS.setTheme('${themeData.element}')`);
  console.log(`   Screenshot: ${themeData.element}.jpg`);
  console.log('');
});

/**
 * STEP 4: File Saving
 */
console.log('\n=== FILE SAVING INSTRUCTIONS ===\n');
console.log('When saving screenshot files:');
console.log('1. Save each screenshot as: {theme-element-name}.jpg');
console.log(`2. Save to directory: ${SCREENSHOTS_DIR}`);
console.log('3. The themes.json is already updated with correct paths');
console.log('4. Screenshots will be relative to themes.json location');

console.log('\n=== VERIFICATION ===\n');
console.log('After screenshots are taken, verify:');
console.log('1. Check screenshot files exist in theme-screenshots/');
console.log('2. Themes.json has correct paths');
console.log('3. V2 app-hax can load themes.json and display screenshots');

/**
 * Export automation data for programmatic use
 */
export const automationWorkflow = {
  totalThemes: themeList.length,
  popularThemes: popularThemes,
  screenshotsDir: SCREENSHOTS_DIR,
  
  // Generate command for specific theme
  generateCommands: (themeElement) => {
    const theme = Object.values(themes).find(t => t.element === themeElement);
    if (!theme) return null;
    
    return {
      switchTheme: `globalThis.HAXCMSContext="nodejs";globalThis.HAXCMS.setTheme('${theme.element}')`,
      wait: `new Promise(resolve => setTimeout(() => resolve('Theme loaded'), 2000))`,
      screenshot: {
        name: theme.element,
        width: 1280,
        height: 800
      }
    };
  },
  
  // All themes list
  allThemes: themeList.map(([key, data]) => ({
    key,
    element: data.element,
    name: data.name,
    screenshotPath: `theme-screenshots/${data.element}.jpg`
  }))
};

console.log('\n=== READY FOR AUTOMATION ===');
console.log('Run the puppeteer commands above to generate all theme screenshots!');
console.log('The complete theme registry will be ready for v2 app-hax use-cases.');

================================================
FILE: build-haxcms.js
================================================
// overload how define works so that we can prevent bricking issues
// when classes get loaded from multiple sources with the same name space
// this is a copy of the dedup-fix.js script we use in local testing / es5 routines
const _customElementsDefine = globalThis.customElements.define;
globalThis.customElements.define = (name, cl, conf) => {
  if (!globalThis.customElements.get(name)) {
    _customElementsDefine.call(globalThis.customElements, name, cl, conf);
  } else {
    console.warn(`${name} has been defined twice`);
  }
};
// HAXcms specific clean up and platforn integration
// this ties in custom theme files as well as removes DOM nodes related
// to serving a legacy audience in the event this is evergreen (most times)
if (/^h/.test(document.location)) {
  try {
    var scriptDef = document.getElementsByTagName('script')[0];
    // if a dynamic import fails, we bail over to the compiled version
    new Function('import("");');
    // remove fallback cause if we passed dynamic import then we are evergreen
    if (document.getElementById("haxcmsoutdatedfallback")) {
      document.body.removeChild(document.getElementById("haxcmsoutdatedfallback"));
    }
    if (!window.__appCustomEnv) {
        var build2 = document.createElement('script');
        build2.src = './custom/build/custom.es6.js';
        build2.type = 'module';
        scriptDef.parentNode.insertBefore(build2, scriptDef);
    }
  } catch (err) {
    var ancient=false;
    try {
      if (typeof Symbol == "undefined") { // IE 11, at least try to serve a watered down site
        ancient = true;
      }
      new Function('let a;'); // bizarre but needed for Safari 9 bc of when it was made
    }
    catch (err) {
      ancient = true;
    }
    if (!ancient) {
      // remove fallback cause if we passed dynamic import then we are evergreen
      if (document.getElementById("haxcmsoutdatedfallback")) {
        document.body.removeChild(document.getElementById("haxcmsoutdatedfallback"));
      }
    }
    else {
      // we bombed somewhere above, this implies that it's some odd between version
      // most likely Safari 9ish, IE pre 11 and anything uber old. Serve no JS variation
      if (document.getElementById('site')) {
        document.getElementById('site').style.display = 'none';
        document.getElementById('haxcmsoutdatedfallbacksuperold').style.display = 'block';
      }
    }
  }
} else {
  // this implies we are offline, viewing the files locally
  // so let's show the simplistic site viewer / iframe theme
  if (document.getElementById('site')) {
    document.getElementById('site').style.display = 'none';
    document.getElementById('haxcmsoutdatedfallbacksuperold').style.display = 'block';
  }
}
var cdn = "./";
if (window.__appCDN) {
  cdn = window.__appCDN;
}
// reset styles that we apply to all hax sites for some level of normalization
// across base HTML tags as well as css vars for styling system wide things from 1 place
var baseResetStyles = 'build/es6/node_modules/@haxtheweb/haxcms-elements/lib/base.css';
// css files load faster when implemented this way
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = cdn + baseResetStyles;
link.type = 'text/css';
link.onerror = (e) => { haxcmsFallbackStylesError(e);};
// get first link in the document
var linkDef = document.getElementsByTagName('link')[0];
linkDef.parentNode.insertBefore(link, linkDef);
if (!window.__appCustomEnv) {
  var link2 = document.createElement('link');
  link2.rel = 'stylesheet';
  link2.href = './theme/theme.css';
  link2.type = 'text/css';
  linkDef.parentNode.insertBefore(link2, linkDef);
}
// if we fail to load the module, we need to fall back to known sources
// and reattempt to inject the CDN location. This is a last ditch effort
// though opens the ability for us to download user sites and if plugged
// into other hax housing then it'll work but also just work stand alone
// as a downloaded package
var haxCdn = cdn;
function haxcmsFallbackStylesError(e) {
  var cdn = haxCdn;
  if (!window.__appCDNBlockFallback) {
      var link = document.createElement('link');
      link.rel = 'stylesheet';
      link.type = 'text/css';
      link.onerror = (e) => { haxcmsFallbackStylesError(e);};
      // if the module fails to load at the set CDN location, try to fail back to known sources
      if (cdn === "./") {
        // hax cloud fallback
        haxCdn = "https://cdn.hax.cloud/cdn/";
        link.href = haxCdn + baseResetStyles;
        linkDef.parentNode.insertBefore(link, linkDef);
        console.warn(cdn + " failed to respond, styles back to alternative: " + haxCdn);
      }
      else if (cdn === "https://cdn.hax.cloud/cdn/") {
        // psu mirror
        haxCdn = "https://cdn.webcomponents.psu.edu/cdn/";
        link.href = haxCdn + baseResetStyles;
        linkDef.parentNode.insertBefore(link, linkDef);
        console.warn(cdn + " failed to respond, styles back to alternative: " + haxCdn);
      }
      else if (cdn === "https://cdn.webcomponents.psu.edu/cdn/") {
          // known mirror
          haxCdn = "https://cdn.waxam.io/";
          link.href = haxCdn + baseResetStyles;
          linkDef.parentNode.insertBefore(link, linkDef);
          console.warn(cdn + " failed to respond, styles back to alternative: " + haxCdn);
      }
      else {
          // :( we're out of options, just reset these values to default
          // but we aren't working in this scenario bc both CDNs failed
          // and local delivery could not be found
          haxCdn = "./";
          console.error("Styles Local delivery failed and all alternative CDNs failed to load. You might be offline, in a secure environment or doing testing intentionally to generate this *shrug*");
      }
  }
}

================================================
FILE: build.js
================================================
window.process={env:{NODE_ENV:"production"}};var cdn="./";window.WCGlobalCDNPath&&(cdn=window.WCGlobalCDNPath),window.__appCDN&&(cdn=window.__appCDN);var fname="wc-registry.json";window.WCGlobalRegistryFileName&&(fname=window.WCGlobalRegistryFileName),window.WCAutoloadRegistryFile=cdn+fname;var autoloaderScriptLocation="build/es6/node_modules/@haxtheweb/wc-autoload/wc-autoload.js";try{var def=document.getElementsByTagName("script")[0];new Function("import('');"),animationPolyfillTest();var build=document.createElement("script");build.src=cdn+autoloaderScriptLocation,build.type="module",build.onerror=e=>{!function fallbackChecks(e){var cdn=window.__appCDN;if(!window.__appCDNBlockFallback){var build=document.createElement("script");build.type="module",build.onerror=e=>{fallbackChecks(e)},"./"===cdn?(window.__appCDN="https://cdn.hax.cloud/cdn/",window.WCAutoloadRegistryFile=window.WCAutoloadRegistryFile.replace(cdn,window.__appCDN),build.src=window.__appCDN+autoloaderScriptLocation,def.parentNode.insertBefore(build,def),console.warn(cdn+" failed to respond, falling back to alternative: "+window.__appCDN)):"https://cdn.hax.cloud/cdn/"===cdn?(window.__appCDN="https://cdn.webcomponents.psu.edu/cdn/",window.WCAutoloadRegistryFile=window.WCAutoloadRegistryFile.replace(cdn,window.__appCDN),build.src=window.__appCDN+autoloaderScriptLocation,def.parentNode.insertBefore(build,def),console.warn(cdn+" failed to respond, falling back to alternative: "+window.__appCDN)):"https://cdn.webcomponents.psu.edu/cdn/"===cdn?(window.__appCDN="https://cdn.waxam.io/",window.WCAutoloadRegistryFile=window.WCAutoloadRegistryFile.replace(cdn,window.__appCDN),build.src=window.__appCDN+autoloaderScriptLocation,def.parentNode.insertBefore(build,def),console.warn(cdn+" failed to respond, falling back to alternative: "+window.__appCDN)):(window.__appCDN="./",window.WCAutoloadRegistryFile=window.WCAutoloadRegistryFile.replace(cdn,window.__appCDN),console.error("Local delivery failed and all alternative CDNs failed to load. You might be offline, in a secure environment or doing testing intentionally to generate this *shrug*")),animationPolyfillTest()}}()},def.parentNode.insertBefore(build,def)}catch(err){var buildLegacy=document.createElement("script");buildLegacy.src=cdn+"assets/build-legacy.js",def.parentNode.insertBefore(buildLegacy,def)}function animationPolyfillTest(){if(!Element.prototype.animate){var ani=document.createElement("script");ani.src=window.__appCDN+"build/es6/node_modules/web-animations-js/web-animations-next-lite.min.js",def.parentNode.insertBefore(ani,def)}}

================================================
FILE: dist/app.js
================================================
// build default for all our properties is for CMSs other than HAXcms
// HAXcms will tack onto this routine through another method if integration
// that is similar
import "./build-cms.js";

================================================
FILE: dist/build-cms.js
================================================
// for use in most CMSs
//import "@haxtheweb/baseline-build-hax/baseline-build-hax.js";
import "@haxtheweb/h-a-x/h-a-x.js";
import "@haxtheweb/hax-body/hax-body.js";
import "@haxtheweb/hax-body-behaviors/hax-body-behaviors.js";
// common in CMSs
import "@haxtheweb/cms-hax/cms-hax.js";
import "@haxtheweb/wysiwyg-hax/wysiwyg-hax.js";

================================================
FILE: dist/build-elmsln.js
================================================
/*import "@haxtheweb/h-a-x/h-a-x.js";
import "@haxtheweb/cms-hax/cms-hax.js";
import "@haxtheweb/cms-hax/lib/cms-views.js";
import "@haxtheweb/cms-hax/lib/cms-token.js";
import "@haxtheweb/cms-hax/lib/cms-entity.js";
import "@haxtheweb/cms-hax/lib/cms-block.js";
import "@haxtheweb/wysiwyg-hax/wysiwyg-hax.js";
import "@haxtheweb/lrn-page/lrn-page.js";
import "@haxtheweb/lrn-content/lrn-content.js";
import "@haxtheweb/elmsln-loading/elmsln-loading.js";
import "@haxtheweb/lrnsys-layout/lib/lrnsys-drawer.js";
import "@haxtheweb/lrnsys-layout/lib/lrnsys-dialog.js";
import "@haxtheweb/lrnsys-button/lrnsys-button.js";
import "@lrnwebcomponents/lrndesign-drawer/lrndesign-drawer.js";
import "@lrnwebcomponents/lrndesign-panelcard/lrndesign-panelcard.js";
import "@lrnwebcomponents/lrndesign-blockquote/lrndesign-blockquote.js";
import "@haxtheweb/lrndesign-avatar/lrndesign-avatar.js";
import "@lrnwebcomponents/lrnapp-fab-menu/lrnapp-fab-menu.js";
import "@lrnwebcomponents/dropdown-select/dropdown-select.js";
import "@haxtheweb/a11y-gif-player/a11y-gif-player.js";
import "@haxtheweb/citation-element/citation-element.js";
import "@haxtheweb/image-compare-slider/image-compare-slider.js";
import "@haxtheweb/license-element/license-element.js";
import "@haxtheweb/lrn-math/lrn-math.js";
import "@haxtheweb/lrn-table/lrn-table.js";
import "@haxtheweb/lrn-vocab/lrn-vocab.js";
import "@haxtheweb/md-block/md-block.js";
import "@lrnwebcomponents/lrndesign-blockquote/lrndesign-blockquote.js";
import "@haxtheweb/media-behaviors/media-behaviors.js";
import "@haxtheweb/media-image/media-image.js";
import "@haxtheweb/meme-maker/meme-maker.js";
import "@haxtheweb/multiple-choice/multiple-choice.js";
import "@haxtheweb/person-testimonial/person-testimonial.js";
import "@haxtheweb/place-holder/place-holder.js";
import "@haxtheweb/q-r/q-r.js";
import "@haxtheweb/full-width-image/full-width-image.js";
import "@haxtheweb/self-check/self-check.js";
import "@haxtheweb/stop-note/stop-note.js";
import "@haxtheweb/video-player/video-player.js";
import "@haxtheweb/wikipedia-query/wikipedia-query.js";
import "@haxtheweb/html-block/html-block.js";
import "@haxtheweb/a11y-media-player/a11y-media-player.js";
import "@haxtheweb/elmsln-apps/elmsln-apps.js";*/

================================================
FILE: dist/build-full.js
================================================
// the base line build that's used to setup everything in a production environment
import "./build.js";
import "./app.js";
import "./build-home.js";
import "./build-install.js";
import "./build-haxcms.js";
// we build elmsln dependency trees from here since there's so much overlap.
import "./build-elmsln.js";
// important in smaller builds
import "@haxtheweb/baseline-build-hax/baseline-build-hax.js";
window.process = { env: { NODE_ENV: 'production' } };
// just make it work
import "web-dialog/index.js";
// supported backends
import "@haxtheweb/haxcms-elements/lib/core/backends/haxcms-backend-beaker.js";
import "@haxtheweb/haxcms-elements/lib/core/backends/haxcms-backend-demo.js";
import "@haxtheweb/haxcms-elements/lib/core/backends/haxcms-backend-php.js";
// core HAXcms
import "@haxtheweb/haxcms-elements/haxcms-elements.js";
import "@haxtheweb/haxcms-elements/lib/core/haxcms-editor-builder.js";
import "@haxtheweb/haxcms-elements/lib/core/haxcms-outline-editor-dialog.js";
import "@haxtheweb/haxcms-elements/lib/core/haxcms-site-builder.js";
import "@haxtheweb/haxcms-elements/lib/core/haxcms-site-editor-ui.js";
import "@haxtheweb/haxcms-elements/lib/core/haxcms-site-editor.js";
import "@haxtheweb/haxcms-elements/lib/core/haxcms-site-router.js";
import "@haxtheweb/haxcms-elements/lib/core/haxcms-site-store.js";
import "@haxtheweb/haxcms-elements/lib/core/HAXCMSThemeWiring.js";

// pieces of UI
import "@haxtheweb/haxcms-elements/lib/ui-components/active-item/site-active-title.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/blocks/site-children-block.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/navigation/site-breadcrumb.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/navigation/site-menu-button.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/navigation/site-menu.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/navigation/site-top-menu.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/query/site-render-query.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/query/site-query.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/query/site-query-menu-slice.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/site/site-rss-button.js";
import "@haxtheweb/haxcms-elements/lib/ui-components/site/site-title.js";

// themes are dynamically imported and without directly being mentioned
import "@haxtheweb/haxcms-elements/lib/development/haxcms-dev-theme.js";
import "@haxtheweb/haxcms-elements/lib/development/haxcms-theme-developer.js";
import "@haxtheweb/haxcms-elements/lib/core/themes/haxcms-slide-theme.js";
import "@haxtheweb/haxcms-elements/lib/core/themes/haxcms-minimalist-theme.js";
import "@haxtheweb/haxcms-elements/lib/core/themes/haxcms-basic-theme.js";
import "@haxtheweb/haxcms-elements/lib/core/themes/haxcms-custom-theme.js";
import "@haxtheweb/outline-player/outline-player.js";
import "@haxtheweb/simple-blog/simple-blog.js";
import "@haxtheweb/learn-two-theme/learn-two-theme.js";
import "@haxtheweb/haxor-slevin/haxor-slevin.js";

// these should all be dynamically imported as well
import "@haxtheweb/voice-recorder/voice-recorder.js";
import "@haxtheweb/h5p-element/h5p-element.js";
import "@haxtheweb/hax-logo/hax-logo.js";
import "@haxtheweb/a11y-gif-player/a11y-gif-player.js";
import "@haxtheweb/citation-element/citation-element.js";
import "@haxtheweb/image-compare-slider/image-compare-slider.js";
import "@haxtheweb/license-element/license-element.js";
import "@haxtheweb/lrn-math/lrn-math.js";
import "@haxtheweb/lrn-table/lrn-table.js";
import "@haxtheweb/lrn-vocab/lrn-vocab.js";
import "@haxtheweb/md-block/md-block.js";
import "@haxtheweb/media-behaviors/media-behaviors.js";
import "@haxtheweb/media-image/media-image.js";
import "@haxtheweb/meme-maker/meme-maker.js";
import "@haxtheweb/multiple-choice/multiple-choice.js";
import "@haxtheweb/person-testimonial/person-testimonial.js";
import "@haxtheweb/place-holder/place-holder.js";
import "@haxtheweb/q-r/q-r.js";
import "@haxtheweb/full-width-image/full-width-image.js";
import "@haxtheweb/self-check/self-check.js";
import "@haxtheweb/stop-note/stop-note.js";
import "@haxtheweb/video-player/video-player.js";
import "@haxtheweb/wikipedia-query/wikipedia-query.js";
import "@haxtheweb/lrndesign-timeline/lrndesign-timeline.js";
import "@haxtheweb/html-block/html-block.js";
import "@haxtheweb/user-action/user-action.js";
import "@haxtheweb/grid-plate/grid-plate.js";


================================================
FILE: dist/build-haxcms.js
================================================
import "@haxtheweb/haxcms-elements/lib/core/haxcms-site-builder.js";
// this can be used for customizations / additional elements to get pulled in
// this assumes you're operating in a bit of a pro mode where you know to compile
// via polymer build and that you're managing your own fork of the package.json we ship


================================================
FILE: dist/build-home.js
================================================
import "@haxtheweb/app-hax/app-hax.js";

================================================
FILE: dist/build-install.js
================================================
import "@haxtheweb/hax-logo/hax-logo.js";
import "@haxtheweb/simple-icon/simple-icon.js";
import "@haxtheweb/simple-icon/lib/simple-icons.js";
import "@haxtheweb/git-corner/git-corner.js";

================================================
FILE: dist/build-legacy.js
================================================
// this can be used for customizations / additional elements to get pulled in
// this assumes you're operating in a bit of a pro mode where you know to compile
// via polymer build and that you're managing your own fork of the package.json we ship


================================================
FILE: dist/build.html
================================================
<!doctype html>
<html lang="en">
<head>
  <title>haxcms build housing to ensure assets resolve</title>
  <script src="../../node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
  <script src="../../node_modules/lit/polyfill-support.js"></script>
  <script src="../../node_modules/web-animations-js/web-animations-next-lite.min.js"></script>
  <script type="module" src="../build.js"></script>
  <script type="module" src="./build-full.js"></script>
  <link rel="stylesheet" href="../../node_modules/@haxtheweb/haxcms-elements/lib/base.css" />
  <script>
    // helps with mobx compiling
    window.process = { env: { NODE_ENV: 'production' } };
  </script>
</head>
<body></body>
</html>

================================================
FILE: dist/build.js
================================================
// build default for all our properties is for CMSs other than HAXcms
// HAXcms will tack onto this routine through another method if integration
// that is similar
import "./build-haxcms.js";

================================================
FILE: dist/dev/appstore.json
================================================
{
    "status": 200,
    "apps": [
        {
            "details": {
                "title": "Youtube",
                "icon": "mdi-action:youtube-play",
                "color": "red",
                "author": "Google, Youtube LLC",
                "description": "The most popular online video sharing and remix site.",
                "status": "available",
                "tags": [
                    "video",
                    "crowdsourced"
                ],
                "tos": [
                    {
                        "title": "YouTube Terms of Service",
                        "link": "https://www.youtube.com/t/terms"
                    },
                    {
                        "title": "Google Privacy Policy",
                        "link": "https://policies.google.com/privacy"
                    }
                ]
            },
            "connection": {
                "protocol": "https",
                "url": "www.googleapis.com/youtube/v3",
                "data": {
                    "key": "AIzaSyDiSvloa49gHUJG0YAt3Ys_I6IEoiscPUM"
                },
                "operations": {
                    "browse": {
                        "method": "GET",
                        "endPoint": "search",
                        "pagination": {
                            "style": "page",
                            "props": {
                                "previous": "prevPageToken",
                                "next": "nextPageToken",
                                "total_items": "pageInfo.totalResults"
                            }
                        },
                        "search": {
                            "q": {
                                "title": "Search",
                                "type": "string"
                            }
                        },
                        "data": {
                            "part": "snippet",
                            "type": "video",
                            "maxResults": "20"
                        },
                        "url": "https://www.youtube.com/watch?v=",
                        "resultMap": {
                            "defaultGizmoType": "video",
                            "items": "items",
                            "preview": {
                                "title": "snippet.title",
                                "details": "snippet.description",
                                "image": "snippet.thumbnails.default.url",
                                "id": "id.videoId"
                            },
                            "gizmo": {
                                "title": "snippet.title",
                                "description": "snippet.description",
                                "id": "id.videoId",
                                "_url_source": "https://www.youtube.com/watch?v=<%= id %>",
                                "caption": "snippet.description",
                                "citation": "snippet.channelTitle"
                            }
                        }
                    }
                }
            }
        },
        {
            "details": {
                "title": "NASA",
                "icon": "places:all-inclusive",
                "color": "blue",
                "author": "US Government",
                "description": "The cozmos through one simple API.",
                "status": "available",
                "tags": [
                    "images",
                    "government",
                    "space"
                ]
            },
            "connection": {
                "protocol": "https",
                "url": "images-api.nasa.gov",
                "operations": {
                    "browse": {
                        "method": "GET",
                        "endPoint": "search",
                        "pagination": {
                            "style": "page",
                            "props": {
                                "page": "page"
                            }
                        },
                        "search": {
                            "q": {
                                "title": "Search",
                                "type": "string"
                            }
                        },
                        "data": {
                            "media_type": "image"
                        },
                        "resultMap": {
                            "defaultGizmoType": "image",
                            "items": "collection.items",
                            "preview": {
                                "title": "data.0.title",
                                "details": "data.0.description",
                                "image": "links.0.href",
                                "id": "links.0.href"
                            },
                            "gizmo": {
                                "id": "links.0.href",
                                "source": "links.0.href",
                                "title": "data.0.title",
                                "caption": "data.0.description",
                                "description": "data.0.description",
                                "citation": "data.0.photographer",
                                "type": "data.0.media_type"
                            }
                        }
                    }
                }
            }
        },
        {
            "details": {
                "title": "Sketchfab",
                "icon": "icons:3d-rotation",
                "color": "purple",
                "author": "Sketchfab",
                "description": "3D sharing community.",
                "status": "available",
                "rating": "0",
                "tags": [
                    "3D",
                    "creative commons",
                    "crowdsourced"
                ]
            },
            "connection": {
                "protocol": "https",
                "url": "api.sketchfab.com",
                "data": {
                    "type": "models"
                },
                "operations": {
                    "browse": {
                        "method": "GET",
                        "endPoint": "v3/search",
                        "pagination": {
                            "style": "page",
                            "props": {
                                "per_page": "photos.perpage",
                                "total_pages": "photos.pages",
                                "page": "photos.page"
                            }
                        },
                        "search": {
                            "q": {
                                "title": "Search",
                                "type": "string"
                            },
                            "license": {
                                "title": "License type",
                                "type": "string",
                                "value": "",
                                "component": {
                                    "name": "dropdown-select",
                                    "valueProperty": "value",
                                    "slot": "<paper-item value=''>Any</paper-item><paper-item value='by'>Attribution</paper-item><paper-item value='by-sa'>Attribution ShareAlike</paper-item><paper-item value='by-nd'>Attribution NoDerivatives</paper-item><paper-item value='by-nc'>Attribution-NonCommercial</paper-item><paper-item value='by-nc-sa'>Attribution NonCommercial ShareAlike</paper-item><paper-item value='by-nc-nd'>Attribution NonCommercial NoDerivatives</paper-item><paper-item value='cc0'>Public Domain Dedication (CC0)</paper-item>"
                                }
                            }
                        },
                        "resultMap": {
                            "defaultGizmoType": "video",
                            "items": "results",
                            "preview": {
                                "title": "name",
                                "details": "description._content",
                                "image": "thumbnails.images.2.url",
                                "id": "uid"
                            },
                            "gizmo": {
                                "title": "name",
                                "source": "embedUrl",
                                "alt": "description"
                            }
                        }
                    }
                }
            }
        },
        {
            "details": {
                "title": "Dailymotion",
                "icon": "av:play-circle-filled",
                "color": "blue",
                "author": "Dailymotion",
                "description": "A crowdsourced video platform that is ad supported.",
                "status": "available",
                "tags": [
                    "video",
                    "crowdsourced"
                ]
            },
            "connection": {
                "protocol": "https",
                "url": "api.dailymotion.com",
                "operations": {
                    "browse": {
                        "method": "GET",
                        "endPoint": "videos",
                        "pagination": {
                            "style": "page",
                            "props": {
                                "total_items": "total",
                                "total_pages": "total_pages",
                                "page": "page"
                            }
                        },
                        "search": {
                            "search": {
                                "title": "Search",
                                "type": "string"
                            }
                        },
                        "data": {
                            "fields": "description,embed_url,thumbnail_240_url,title,id",
                            "no_live": "1",
                            "ssl_assets": "true",
                            "sort": "relevance",
                            "limit": "20"
                        },
                        "resultMap": {
                            "defaultGizmoType": "video",
                            "items": "list",
                            "preview": {
                                "title": "title",
                                "details": "description",
                                "image": "thumbnail_240_url",
                                "id": "id"
                            },
                            "gizmo": {
                                "title": "title",
                                "description": "description",
                                "source": "embed_url",
                                "alt": "description",
                                "caption": "description"
                            }
                        }
                    }
                }
            }
        },
        {
            "details": {
                "title": "Wikipedia",
                "icon": "account-balance",
                "color": "grey",
                "author": "Wikimedia",
                "description": "Encyclopedia of the world.",
                "status": "available",
                "tags": [
                    "content",
                    "encyclopedia",
                    "wiki"
                ]
            },
            "connection": {
                "protocol": "https",
                "url": "en.wikipedia.org",
                "data": {
                    "action": "query",
                    "list": "search",
                    "format": "json",
                    "origin": "*"
                },
                "operations": {
                    "browse": {
                        "method": "GET",
                        "endPoint": "w/api.php",
                        "pagination": {
                            "style": "offset",
                            "props": {
                                "offset": "sroffset"
                            }
                        },
                        "search": {
                            "srsearch": {
                                "title": "Search",
                                "type": "string"
                            }
                        },
                        "data": {},
                        "resultMap": {
                            "image": "https://en.wikipedia.org/static/images/project-logos/enwiki.png",
                            "defaultGizmoType": "wikipedia",
                            "items": "query.search",
                            "preview": {
                                "title": "title",
                                "details": "snippet",
                                "id": "title"
                            },
                            "gizmo": {
                                "_url_source": "https://en.wikipedia.org/wiki/<%= id %>",
                                "id": "title",
                                "title": "title",
                                "caption": "snippet",
                                "description": "snippet"
                            }
                        }
                    }
                }
            }
        },
        {
            "details": {
                "title": "CC Mixter",
                "icon": "av:library-music",
                "color": "purple",
                "author": "CC Mixter",
                "description": "User submitted audio files and music.",
                "status": "available",
                "tags": [
                    "audio",
                    "crowdsourced"
                ]
            },
            "connection": {
                "protocol": "http",
                "url": "ccmixter.org",
                "data": {
                    "format": "json",
                    "sort": "name",
                    "limit": "20"
                },
                "operations": {
                    "browse": {
                        "method": "GET",
                        "endPoint": "api/query",
                        "pagination": {
                            "style": "link",
                            "props": {
                                "first": "paging.first",
                                "next": "paging.next",
                                "previous": "paging.previous",
                                "last": "paging.last"
                            }
                        },
                        "search": {
                            "tags": {
                                "title": "Search",
                                "type": "string"
                            }
                        },
                        "data": {
                            "direction": "asc",
                            "sort": "alphabetical",
                            "filter": "CC",
                            "per_page": "20"
                        },
                        "resultMap": {
                            "defaultGizmoType": "audio",
                            "items": "",
                            "preview": {
                                "title": "upload_name",
                                "details": "upload_description_plain",
                                "image": "license_logo_url",
                                "id": "upload_id"
                            },
                            "gizmo": {
                                "source": "files.0.download_url",
                                "id": "upload_id",
                                "title": "upload_name",
                                "caption": "upload_description_plain",
                                "description": "upload_description_plain",
                                "citation": "license_name"
                            }
                        }
                    }
                }
            }
        },
        {
            "details": {
                "title": "Codepen.io",
                "icon": "code",
                "color": "green",
                "author": "Code pen",
                "description": "HTML / CSS / JS sharing community",
                "status": "available",
                "rating": "0",
                "tags": [
                    "code",
                    "development",
                    "html",
                    "js",
                    "crowdsourced"
                ]
            },
            "connection": {
                "protocol": "https",
                "url": "cpv2api.com",
                "operations": {
                    "browse": {
                        "method": "GET",
                        "endPoint": "search/pens",
                        "pagination": {
                            "style": "page",
                            "props": {
                                "per_page": "photos.perpage",
                                "total_pages": "photos.pages",
                                "page": "photos.page"
                            }
                        },
                        "search": {
                            "q": {
                                "title": "Search",
                                "type": "string"
                            }
                        },
                        "resultMap": {
                            "defaultGizmoType": "video",
                            "items": "data",
                            "preview": {
                                "title": "title",
                                "details": "details",
                                "image": "images.small",
                                "id": "id"
                            },
                            "gizmo": {
                                "_url_source": "https://codepen.io/fchazal/embed/<%= id %>/?theme-id=0&default-tab=html,result&embed-version=2",
                                "id": "id",
                                "image": "images.large",
                                "title": "title",
                                "caption": "details",
                                "description": "details"
                            }
                        }
                    }
                }
            }
        },
        {
            "details": {
                "title": "Local files",
                "icon": "perm-media",
                "color": "light-blue",
                "author": "HAXCMS",
                "description": "HAXCMS integration for HAX",
                "tags": [
                    "media"
                ]
            },
            "connection": {
                "protocol": "https",
                "url": "haxcms.ddev.site/",
                "operations": {
                    "browse": {
                        "method": "GET",
                        "endPoint": "system/api/listFiles",
                        "pagination": {
                            "style": "link",
                            "props": {
                                "first": "page.first",
                                "next": "page.next",
                                "previous": "page.previous",
                                "last": "page.last"
                            }
                        },
                        "search": {
                            "filename": {
                                "title": "File name",
                                "type": "string"
                            }
                        },
                        "data": {
                            "__HAXJWT__": true,
                            "__HAXAPPENDUPLOADENDPOINT__": true
                        },
                        "resultMap": {
                            "defaultGizmoType": "image",
                            "items": "list",
                            "preview": {
                                "title": "name",
                                "details": "mime",
                                "image": "url",
                                "id": "uuid"
                            },
                            "gizmo": {
                                "source": "url",
                                "id": "uuid",
                                "title": "name",
                                "mimetype": "mimetype"
                            }
                        }
                    },
                    "add": {
                        "method": "POST",
                        "endPoint": "system/api/saveFile",
                        "acceptsGizmoTypes": [
                            "image",
                            "video",
                            "audio",
                            "pdf",
                            "svg",
                            "document",
                            "csv",
                            "archive",
                            "markdown",
                            "*",
                            "html"
                        ],
                        "resultMap": {
                            "item": "data.file",
                            "defaultGizmoType": "image",
                            "gizmo": {
                                "source": "url",
                                "id": "uuid"
                            }
                        }
                    }
                }
            }
        }
    ],
    "stax": [
        {
            "details": {
                "title": "Example Lesson",
                "image": "",
                "author": "ELMS:LN",
                "description": "An example of what HAX can do",
                "status": "available",
                "rating": "0",
                "tags": [
                    "example"
                ]
            },
            "stax": [
                {
                    "tag": "h2",
                    "properties": {},
                    "content": "Introduction to ELMS: Learning Network"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "What is ELMS: Learning Network? How is it fundamentally different from other learning technologies? Why is it your reading this when it's example text that you've just added to see how to make a really solid introduction to a new unit of instruction? Let's keep reading to find out!"
                },
                {
                    "tag": "video-player",
                    "properties": {
                        "style": "width: 75%; margin: 0px auto; display: block;",
                        "source": "https://www.youtube.com/watch?v=pKLPQ4ufo64",
                        "src": "https://www.youtube-nocookie.com/embed/pKLPQ4ufo64?showinfo=0&controls=1&rel=0",
                        "iframed": true,
                        "sandboxed": false,
                        "width": "560",
                        "height": "315",
                        "responsive": true,
                        "caption": "What is ELMS:LN? Why is it fundamentally different from any other educational technology that's ever existed? What is sustainable innovation? Why is this so ...",
                        "secondaryColor": "#fff9c4",
                        "textColor": "#000000",
                        "secondaryColorClass": "yellow lighten-4",
                        "textColorClass": "black-text",
                        "ytNocookie": true,
                        "ytSuggested": false,
                        "ytControls": true,
                        "ytTitle": false,
                        "vimeoTitle": false,
                        "vimeoByline": false,
                        "vimeoPortrait": false,
                        "videoColor": "FF031D",
                        "resource": "#86bfd28d-8b57-a3b9-b2e5",
                        "prefix": "oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org "
                    },
                    "content": ""
                },
                {
                    "tag": "h3",
                    "properties": {},
                    "content": "Pretest"
                },
                {
                    "tag": "self-check",
                    "properties": {
                        "style": "width: 50%; float: right;",
                        "title": "Self-Check",
                        "image": "https://farm1.staticflickr.com/642/21641107852_3602f9c1a8_b.jpg",
                        "alt": "A few stickers associated with ELMS:LN are shown presented on the back of a laptop.",
                        "correct": false,
                        "textColor": "#000000",
                        "textColorClass": "black-text",
                        "backgroundColor": "#b2dfdb",
                        "backgroundColorClass": "teal lighten-4",
                        "resource": "#08d09967-a7c9-3d02-8935",
                        "prefix": "oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org "
                    },
                    "content": "    <span slot=\"question\">True or False. ELMS:LN is a traditional learning management system.</span>\n\n    <span>FALSE. ELMS: Learning Network is considered to be a Next Generation Digital Learning Environment.\nLearn more about NGDLE in <a href=\"https://er.educause.edu/blogs/2018/3/ngdle-is-really-just-enigma-misspelled\" target=\"_blank\">this blog post on Educause</a>\n.</span>\n\n"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "If you think you already know about ELMS:LN, let's find out ahead of time! Take the self-check on the right to find out if ELMS:LN is a traditional Learning Management system or something more"
                },
                {
                    "tag": "hr",
                    "properties": {
                        "style": "width: 75%;"
                    },
                    "content": ""
                },
                {
                    "tag": "h3",
                    "properties": {},
                    "content": "History Review"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "Now that we've read about what ELMS:LN is (and is not). Let's take a different kind of self-check to illustrate the flexibility of the HAX authoring platform."
                },
                {
                    "tag": "multiple-choice",
                    "properties": {
                        "style": "width: 75%; margin: 0px auto; display: block;",
                        "checkLabel": "Check guess",
                        "resetLabel": "Clear",
                        "hideTitle": true,
                        "question": "Who founded the ELMS:LN Platform?",
                        "answers": [
                            {
                                "correct": true,
                                "label": "Bryan Ollendyke"
                            },
                            {
                                "correct": false,
                                "label": "Mythic Elves"
                            },
                            {
                                "correct": false,
                                "label": "Michael Potter"
                            },
                            {
                                "correct": false,
                                "label": "Nikki Massaro Kauffman"
                            },
                            {
                                "correct": false,
                                "label": "Charles Lavera"
                            }
                        ],
                        "correctText": "Great job!",
                        "incorrectText": "Try again",
                        "randomize": true,
                        "typeof": "oer:Assessment",
                        "resource": "#97ffed48-c928-39ae-1bea",
                        "prefix": "oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org "
                    },
                    "content": ""
                },
                {
                    "tag": "multiple-choice",
                    "properties": {
                        "style": "width: 75%; margin: 0px auto; display: block;",
                        "title": "ELMS Development team",
                        "checkLabel": "Check your guess",
                        "resetLabel": "Clear answers",
                        "hideTitle": false,
                        "question": "Who is responsible for ELMS:LN existing? Who improves it and wants it to be the best NGDLE solution to transform education and the world?",
                        "answers": [
                            {
                                "correct": true,
                                "label": "Nikki Massaro Kauffman"
                            },
                            {
                                "correct": true,
                                "label": "Michael Potter"
                            },
                            {
                                "correct": true,
                                "label": "Charles Lavera"
                            },
                            {
                                "correct": true,
                                "label": "Bryan Ollendyke"
                            },
                            {
                                "correct": true,
                                "label": "Anyone, ELMS:LN is an open community developed by multiple organizations!"
                            }
                        ],
                        "displayedAnswers": [
                            {
                                "correct": true,
                                "label": "Nikki Massaro Kauffman"
                            },
                            {
                                "correct": true,
                                "label": "Michael Potter"
                            },
                            {
                                "correct": true,
                                "label": "Charles Lavera"
                            },
                            {
                                "correct": true,
                                "label": "Bryan Ollendyke"
                            },
                            {
                                "correct": true,
                                "label": "Anyone, ELMS:LN is an open community developed by multiple organizations!"
                            }
                        ],
                        "correctText": "Great job! You got our trick question!",
                        "incorrectText": "Try again, there's some more answers...",
                        "randomize": true,
                        "typeof": "oer:Assessment",
                        "resource": "#59426af4-ecf2-f49d-06a6",
                        "prefix": "oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org "
                    },
                    "content": ""
                }
            ]
        },
        {
            "details": {
                "title": "About the course",
                "image": "",
                "author": "ELMS:LN",
                "description": "An example about the course page.",
                "status": "available",
                "rating": "0",
                "tags": [
                    "example"
                ]
            },
            "stax": [
                {
                    "tag": "h2",
                    "properties": {},
                    "content": "About this course"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "DMD 100: Digital Multimedia Design Foundations introduces design process and thinking skills to support and facilitate creative and reasoned approaches to ambiguous and ill-defined problem spaces. It introduces concepts, skills, language, and principles of practice related to art and design, communications, and information sciences — three discreet disciplines in which students can pursue further study while developing their learning pathways. With the aid of a standard design process, we walk through methods, tools, and mental attitudes necessary to approach ambiguous problems. This course is not meant to be a comprehensive design process catalog, and instead should inspire and build confidence in the act of design. The concept of \"design\" for DMD students is a frame through which complex issues can be discovered and defined and solutions can be best developed and delivered."
                },
                {
                    "tag": "h3",
                    "properties": {},
                    "content": "Course Structure"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "DMD 100 is comprised of 5 lessons that introduce design topics, approaches, and considerations. Each lesson will span one to 4 weeks depending on the semester. Students will read assigned chapters and course pages, review supplemental media including podcasts and videos, and complete design exercises employing the double-diamond method, culminating in a lesson project and critique. Students are expected to practice the design process throughout the course, and therefore will be assigned several activities a week to provide opportunity for practice and iteration."
                },
                {
                    "tag": "h3",
                    "properties": {},
                    "content": "Digital course technology"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "A course is not software or a website, but rather the delivery of pedagogy for particular subject matter over a set period of time. Without getting too far into learning theory, you can think of pedagogy as the todo list that an instructor gives students in order to meaningfully engage with and learn course content."
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "Delivering pedagogy online has its own set of challenges. We'll be using  a mix of online software to meet the needs of this online course.     <a href=\"http://canvas.psu.edu\">Canvas</a>\n\n\n\n\n is a Learning Management System (LMS) that stores the assignment calendar, grades, and provides an easy way to send messages to everyone in the course. We host the core course text and image-based content in ELMS Learning Network, which is similar to an LMS, but with some custom in-house built tools. One such tool is the Studio, which allows students to more easily share project progress with each other. You will be guided to perform actions through a combination of the Canvas calendar, emails, and explicit assignment instructions. Contact your course instructor via Penn State E-Mail if you are ever confused. It is your responsibility as a student to know when assignments are due."
                },
                {
                    "tag": "h3",
                    "properties": {},
                    "content": "Technical and material requirements"
                },
                {
                    "tag": "h4",
                    "properties": {},
                    "content": "Hardware"
                },
                {
                    "tag": "ol",
                    "properties": {},
                    "content": "\n    <li><strong>Computer:</strong>\n\n\n This fully online course will require access to a computer that meets the minimum requirements set by World Campus.</li>\n\n\n\n\n\n    <li><strong>Internet:</strong>\n\n\n You will need broadband Internet to view videos and other media content.</li>\n\n\n\n\n\n    <li><strong>Camera or cellphone camera:</strong>\n\n\n You will be asked to document various aspects of your work</li>\n\n\n\n\n\n    <li><strong>Printer/scanner:</strong>\n\n\n A printer will be helpful for printing out paper templates. A scanner is optional, but would be helpful.</li>\n\n\n\n\n\n"
                },
                {
                    "tag": "h4",
                    "properties": {},
                    "content": "Software"
                },
                {
                    "tag": "ol",
                    "properties": {},
                    "content": "\n    <li>Web browser: You will need to have the latest version of either Google Chrome, Safari, Firefox, or Microsoft Edge.</li>\n\n\n\n\n\n    <li>Accounts: In addition to general University account access, you will be required to create an account with InvisionApp.com</li>\n\n\n\n\n\n    <li>Software installs: You will need to download and install an open-source desktop application called Twine from Twinery.org. It is possible to use a web version of this software if you cannot or wish not to install it on your computer.</li>\n\n\n\n\n\n"
                },
                {
                    "tag": "h4",
                    "properties": {},
                    "content": "Materials"
                },
                {
                    "tag": "ol",
                    "properties": {},
                    "content": "\n    <li>Journal\n\n<ul>\n<li>Any journal is fine. I recommend the Moleskine Cahier Journal, Large, Squared, Kraft Brown, Soft Cover (5 x 8.25) <a href=\"https://www.amazon.com/Moleskine-Cahier-Journal-Large-Squared/dp/8883704991\">Amazon purchase link</a>\n\n\n</li>\n\n\n\n</ul>\n\n\n</li>\n\n\n\n\n\n    <li>Pens, pencils, markers\n\n<ul>\n<li>Any that you already own are fine, you do not need to purchase special ones for this course. However, the following recommendations are professional grade if you are so inclined to invest in quality drawing tools.\n\n<ul>\n<li>Pencil: Palomino Blackwing 602</li>\n\n\n\n<li>Pen: Copic Multiliner Marker 0.5 - Black</li>\n\n\n\n<li>Marker: Copic N2</li>\n\n\n\n</ul>\n\n\n</li>\n\n\n\n</ul>\n\n\n</li>\n\n\n\n\n\n    <li>Scissors</li>\n\n\n\n\n\n    <li>Post-it Notes</li>\n\n\n\n\n\n    <li>Poster board (or large open wall space) for the post-its</li>\n\n\n\n\n\n"
                },
                {
                    "tag": "h4",
                    "properties": {},
                    "content": "Book"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "We will be reading     <em>Design and Truth</em>\n\n\n\n\n by Robert Grudin. You will need to purchase a copy of this book."
                },
                {
                    "tag": "h4",
                    "properties": {},
                    "content": "Misc"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "FYI, students get     <a href=\"https://www.amazon.com/gp/help/customer/display.html?nodeId=201133690\">free Amazon Prime</a>\n\n\n\n\n shipping."
                },
                {
                    "tag": "license-element",
                    "properties": {
                        "style": "width: 100%;",
                        "title": "DMD 100",
                        "creator": "Michael Collins",
                        "source": "https://github.com/dmd-program/",
                        "licenseName": "Creative Commons: Attribution",
                        "licenseLink": "https://creativecommons.org/licenses/by/4.0/",
                        "license": "by",
                        "moreLabel": "by checking out the OER schema project",
                        "moreLink": "http://oerschema.org/",
                        "hasMore": true,
                        "resource": "#ee77aae6-561a-fbf8-d738",
                        "prefix": "oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org "
                    },
                    "content": ""
                }
            ]
        },
        {
            "details": {
                "title": "Example Assignment",
                "image": "",
                "author": "ELMS:LN",
                "description": "An example assignment with OER Schema.",
                "status": "available",
                "rating": "0",
                "tags": [
                    "example"
                ]
            },
            "stax": [
                {
                    "tag": "h2",
                    "properties": {},
                    "content": "\n\n"
                },
                {
                    "tag": "h3",
                    "properties": {
                        "class": " "
                    },
                    "content": "Description"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "\n\n"
                },
                {
                    "tag": "h3",
                    "properties": {},
                    "content": "Learning Objectives"
                },
                {
                    "tag": "ol",
                    "properties": {},
                    "content": "  <li><oer-schema resource=\"#76d6ed4d-57f1-5c2f-fdf9\" prefix=\"oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org \" text=\"Gain understanding of critical writing discourse.\" oer-property=\"name\" typeof=\"oer:LearningObjective\" related-resource=\"#550ea966-578a-cf6e-388c\">\n    \n    <link property=\"oer:forComponent\" class=\"style-scope oer-schema\" content=\"#550ea966-578a-cf6e-388c\">\n    <span property=\"oer:name\" class=\"style-scope oer-schema\">\n      \n      Gain understanding of critical writing discourse.\n    </span>\n  </oer-schema>\n\n</li>\n\n\n  <li><oer-schema resource=\"#d038ac12-7a86-d867-55eb\" prefix=\"oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org \" text=\"Apply relevant course topics and issues in a writing context.\" oer-property=\"name\" typeof=\"oer:LearningObjective\" related-resource=\"#550ea966-578a-cf6e-388c\">\n    \n    <link property=\"oer:forComponent\" class=\"style-scope oer-schema\" content=\"#550ea966-578a-cf6e-388c\">\n    <span property=\"oer:name\" class=\"style-scope oer-schema\">\n      \n      Apply relevant course topics and issues in a writing context.\n    </span>\n  </oer-schema>\n\n</li>\n\n\n"
                },
                {
                    "tag": "h3",
                    "properties": {},
                    "content": "Learning Resources"
                },
                {
                    "tag": "p",
                    "properties": {},
                    "content": "  <i><oer-schema resource=\"#2e347347-c973-000c-004f\" prefix=\"oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org \" text=\"Writing Essays for Dummies. Mary Page; Carrie Winstanley. Wiley. January, 2012\" oer-property=\"name\" typeof=\"oer:SupportingMaterial\">\n    \n    <link property=\"oer:forComponent\" class=\"style-scope oer-schema\">\n    <span property=\"oer:name\" class=\"style-scope oer-schema\">\n      \n      Writing Essays for Dummies. Mary Page; Carrie Winstanley. Wiley. January, 2012\n    </span>\n  </oer-schema>\n\n</i>\n\n\n:   <a href=\"http://google.com\" title=\"Download link\">Download&nbsp;Link</a>\n\n\n"
                },
                {
                    "tag": "h3",
                    "properties": {
                        "class": " "
                    },
                    "content": "Instructions"
                },
                {
                    "tag": "ol",
                    "properties": {},
                    "content": "  <li><oer-schema resource=\"#56d8be38-4088-995a-4d2c\" prefix=\"oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org \" text=\"Read the course texts and choose two critical issues to discuss.\" oer-property=\"name\" typeof=\"oer:Task\" related-resource=\"#550ea966-578a-cf6e-388c\">\n    \n    <link property=\"oer:forComponent\" class=\"style-scope oer-schema\" content=\"#550ea966-578a-cf6e-388c\">\n    <span property=\"oer:name\" class=\"style-scope oer-schema\">\n      \n      Read the course texts and choose two critical issues to discuss.\n    </span>\n  </oer-schema>\n\n</li>\n\n\n  <li><oer-schema resource=\"#7587e535-b185-d8bf-939d\" prefix=\"oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org \" text=\"&nbsp;Write a 400 word paper discussing these critical issues.\" oer-property=\"name\" typeof=\"oer:Task\" related-resource=\"#550ea966-578a-cf6e-388c\">\n    \n    <link property=\"oer:forComponent\" class=\"style-scope oer-schema\" content=\"#550ea966-578a-cf6e-388c\">\n    <span property=\"oer:name\" class=\"style-scope oer-schema\">\n      \n      &nbsp;Write a 400 word paper discussing these critical issues.\n    </span>\n  </oer-schema>\n\n</li>\n\n\n  <li><oer-schema resource=\"#3564f93f-b211-3d8b-6aeb\" prefix=\"oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org \" text=\"Proof read your writing.\" oer-property=\"name\" typeof=\"oer:Task\" related-resource=\"#550ea966-578a-cf6e-388c\">\n    \n    <link property=\"oer:forComponent\" class=\"style-scope oer-schema\" content=\"#550ea966-578a-cf6e-388c\">\n    <span property=\"oer:name\" class=\"style-scope oer-schema\">\n      \n      Proof read your writing.\n    </span>\n  </oer-schema>\n\n</li>\n\n\n  <li><oer-schema resource=\"#0dbd4872-90ff-681d-c572\" prefix=\"oer:http://oerschema.org/ schema:http://schema.org/ dc:http://purl.org/dc/terms/ foaf:http://xmlns.com/foaf/0.1/ cc:http://creativecommons.org/ns# bib:http://bib.schema.org \" text=\"Submit the digital file to the dropbox.\" oer-property=\"name\" typeof=\"oer:Task\" related-resource=\"#550ea966-578a-cf6e-388c\">\n    \n    <link property=\"oer:forComponent\" class=\"style-scope oer-schema\" content=\"#550ea966-578a-cf6e-388c\">\n    <span property=\"oer:name\" class=\"style-scope oer-schema\">\n      \n      Submit the digital file to the dropbox.\n    </span>\n  </oer-schema>\n\n</li>\n\n\n"
                }
            ]
        }
    ],
    "blox": [
        {
            "details": {
                "title": "50% columns",
                "author": "ELMS:LN",
                "icon": "hax:6/6",
                "status": "available",
                "layout": "6/6"
            },
            "blox": [
                {
                    "tag": "h2",
                    "properties": {
                        "slot": "col-1"
                    },
                    "content": "Heading"
                },
                {
                    "tag": "p",
                    "properties": {
                        "slot": "col-1"
                    },
                    "content": "A paragraph of text would go here to describe the work."
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-2",
                        "type": "image"
                    },
                    "content": ""
                }
            ]
        },
        {
            "details": {
                "title": "66 / 33 columns",
                "author": "ELMS:LN",
                "icon": "hax:8/4",
                "status": "available",
                "layout": "8/4"
            },
            "blox": [
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-1",
                        "type": "text"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-2",
                        "type": "image"
                    },
                    "content": ""
                }
            ]
        },
        {
            "details": {
                "title": "33% columns",
                "author": "ELMS:LN",
                "icon": "hax:4/4/4",
                "status": "available",
                "layout": "4/4/4"
            },
            "blox": [
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-1",
                        "type": "image"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-2",
                        "type": "image"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-3",
                        "type": "image"
                    },
                    "content": ""
                }
            ]
        },
        {
            "details": {
                "title": "33 / 66 columns",
                "author": "ELMS:LN",
                "icon": "hax:4/8",
                "status": "available",
                "layout": "4/8"
            },
            "blox": [
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-2",
                        "type": "text"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-1",
                        "type": "image"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-1",
                        "type": "image"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-1",
                        "type": "image"
                    },
                    "content": ""
                }
            ]
        },
        {
            "details": {
                "title": "25% columns",
                "author": "ELMS:LN",
                "icon": "hax:3/3/3/3",
                "status": "available",
                "layout": "3/3/3/3"
            },
            "blox": [
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-1",
                        "type": "image"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-2",
                        "type": "image"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-3",
                        "type": "image"
                    },
                    "content": ""
                },
                {
                    "tag": "place-holder",
                    "properties": {
                        "slot": "col-4",
                        "type": "image"
                    },
                    "content": ""
                }
            ]
        }
    ],
    "autoloader": {
        "lesson-overview": "@haxtheweb/haxcms-elements/lib/ui-components/lesson-overview/lesson-overview.js",
        "lesson-highlight": "@haxtheweb/haxcms-elements/lib/ui-components/lesson-overview/lib/lesson-highlight.js",
        "rpg-character": "@haxtheweb/rpg-character/rpg-character.js",
        "page-break": "@haxtheweb/page-break/page-break.js",
        "a11y-figure": "@haxtheweb/a11y-figure/a11y-figure.js",
        "accent-card": "@haxtheweb/accent-card/accent-card.js",
        "a11y-gif-player": "@haxtheweb/a11y-gif-player/a11y-gif-player.js",
        "code-sample": "@haxtheweb/code-sample/code-sample.js",
        "citation-element": "@haxtheweb/citation-element/citation-element.js",
        "hero-banner": "@haxtheweb/hero-banner/hero-banner.js",
        "image-compare-slider": "@haxtheweb/image-compare-slider/image-compare-slider.js",
        "license-element": "@haxtheweb/license-element/license-element.js",
        "lrn-math": "@haxtheweb/lrn-math/lrn-math.js",
        "lrn-table": "@haxtheweb/lrn-table/lrn-table.js",
        "lrn-vocab": "@haxtheweb/lrn-vocab/lrn-vocab.js",
        "lrndesign-blockquote": "@haxtheweb/lrndesign-blockquote/lrndesign-blockquote.js",
        "magazine-cover": "@haxtheweb/magazine-cover/magazine-cover.js",
        "media-image": "@haxtheweb/media-image/media-image.js",
        "meme-maker": "@haxtheweb/meme-maker/meme-maker.js",
        "music-player": "@haxtheweb/music-player/music-player.js",
        "twitter-embed": "@haxtheweb/twitter-embed/twitter-embed.js",
        "grid-plate": "@haxtheweb/grid-plate/grid-plate.js",
        "md-block": "@haxtheweb/md-block/md-block.js",
        "github-preview": "@haxtheweb/github-preview/github-preview.js",
        "multiple-choice": "@haxtheweb/multiple-choice/multiple-choice.js",
        "person-testimonial": "@haxtheweb/person-testimonial/person-testimonial.js",
        "place-holder": "@haxtheweb/place-holder/place-holder.js",
        "q-r": "@haxtheweb/q-r/q-r.js",
        "full-width-image": "@haxtheweb/full-width-image/full-width-image.js",
        "self-check": "@haxtheweb/self-check/self-check.js",
        "stop-note": "@haxtheweb/stop-note/stop-note.js",
        "task-list": "@haxtheweb/task-list/task-list.js",
        "video-player": "@haxtheweb/video-player/video-player.js",
        "wikipedia-query": "@haxtheweb/wikipedia-query/wikipedia-query.js",
        "lrndesign-gallery": "@haxtheweb/lrndesign-gallery/lrndesign-gallery.js",
        "lrndesign-timeline": "@haxtheweb/lrndesign-timeline/lrndesign-timeline.js",
        "html-block": "@haxtheweb/html-block/html-block.js",
        "user-action": "@haxtheweb/user-action/user-action.js",
        "date-card": "@haxtheweb/date-card/date-card.js",
        "flash-card": "@haxtheweb/flash-card/flash-card.js"
    }
}

================================================
FILE: dist/dev/archiveSite.json
================================================
{
    "status": 200,
    "data": {
        "detail": "Site archived",
        "name": "ist342"
    }
}

================================================
FILE: dist/dev/connectionSettings.json
================================================
{}

================================================
FILE: dist/dev/copySite.json
================================================
{
    "status": 200,
    "data": {
        "detail": "Site copied",
        "name": "ist342"
    }
}

================================================
FILE: dist/dev/createSite.json
================================================
{
    "status": 200,
    "data": {
        "id": "ddffg44-e00f-4033-ae3e-4692f6f5a73e",
        "title": "IST 342",
        "author": "",
        "description": "A great course",
        "license": "by-sa",
        "metadata": {
            "author": {
                "image": "files/ECrfY0IXUAA4qsQ.jpeg",
                "name": "Bryan Ollendyke",
                "email": "bto108@psu.edu",
                "socialLink": "https://twitter.com/btopro"
            },
            "site": {
                "name": "ist342",
                "created": 1565898366,
                "updated": 1615262120,
                "git": {
                    "autoPush": false,
                    "branch": "master",
                    "staticBranch": "gh-pages",
                    "vendor": "github",
                    "publicRepoUrl": "https://github.com/btopro/ist402/blob/master/",
                    "url": "git@github.com:btopro/ist402.git"
                },
                "version": "2.0.8",
                "domain": "",
                "logo": "files/1633609907554_48eae0bf5903e0f3b990_132.jpg",
                "static": {
                    "cdn": "build",
                    "offline": false
                },
                "settings": {
                    "pathauto": false,
                    "publishPagesOn": true,
                    "forceUpgrade": true,
                    "sw": false
                }
            },
            "theme": {
                "element": "clean-one",
                "path": "@haxtheweb/clean-one/clean-one.js",
                "name": "Course theme",
                "variables": {
                    "image": "assets/banner.jpg",
                    "hexCode": "#aeff00",
                    "cssVariable": "--simple-colors-default-theme-deep-purple-7",
                    "icon": "icons:cloud-circle"
                }
            },
            "node": {
                "fields": {}
            },
            "pageCount": 48
        },
        "indent": 0,
        "order": 0,
        "parent": null,
        "location": "/bto108/sites/ist342/",
        "slug": "/bto108/sites/ist342/"
    }
}

================================================
FILE: dist/dev/deleteSite.json
================================================
{
    "status": 200,
    "data": {
        "detail": "Site deleted",
        "name": "ist342"
    }
}

================================================
FILE: dist/dev/downloadSite.json
================================================
{
    "status": 200,
    "data": {
        "link": "/bto108/published/ist342.zip",
        "name": "ist342.zip"
    }
}

================================================
FILE: dist/dev/getConfigPath.json
================================================
{
  "schema": {
    "$schema": "http:\/\/json-schema.org\/schema#",
    "title": "HAXCMS Config",
    "type": "object",
    "properties": {
      "publishing": {
        "title": "Publishing settings",
        "type": "object",
        "properties": {
          "vendor": {
            "title": "Vendor",
            "type": "string",
            "value": "github",
            "component": {
              "name": "paper-input",
              "valueProperty": "value",
              "slot": "<div slot=\"suffix\">Name for this provided (github currently supported)<\/div>"
            }
          },
          "branch": {
            "title": "Branch",
            "type": "string",
            "value": "gh-pages",
            "component": {
              "name": "paper-input",
              "valueProperty": "value",
              "slot": "<div slot=\"suffix\">Project code branch (like master or gh-pages)<\/div>"
            }
          },
          "url": {
            "title": "Repo url",
            "type": "string",
            "value": "git@github.com:elmsln",
            "component": {
              "name": "paper-input",
              "valueProperty": "value",
              "slot": "<div slot=\"suffix\">Base address \/ organization that new sites will be saved under<\/div>"
            }
          },
          "user": {
            "title": "User \/ Org",
            "type": "string",
            "value": "btopro",
            "component": {
              "name": "paper-input",
              "valueProperty": "value",
              "slot": "<div slot=\"suffix\">Set, to change this manually edit _config\/config.json.<\/div>",
              "attributes": {
                "disabled": "disabled"
              }
            }
          },
          "email": {
            "title": "Email",
            "type": "string",
            "value": "bto108@psu.edu",
            "component": {
              "name": "paper-input",
              "valueProperty": "value",
              "slot": "<div slot=\"suffix\">Set, to change this manually edit _config\/config.json.<\/div>",
              "attributes": {
                "disabled": "disabled"
              }
            }
          },
          "cdn": {
            "title": "CDN",
            "type": "string",
            "value": "cdn.webcomponents.psu.edu",
            "component": {
              "name": "paper-input",
              "valueProperty": "value",
              "slot": "<div slot=\"suffix\">A CDN address that supports HAXCMS<\/div>"
            }
          }
        }
      },
      "apis": {
        "title": "API Connectivity",
        "type": "object",
        "properties": {
          "youtube": {
            "title": "YouTube",
            "type": "string",
            "value": "AIzaSyAF9zKXv-fxus9GNqn40SHzTn6F8A7h-Yo",
            "component": {
              "slot": "<div slot=\"suffix\"><a href=\"https:\/\/developers.google.com\/youtube\/v3\/getting-started\" target=\"_blank\">See YouTube developer docs.<\/a><\/div>",
              "name": "paper-input",
              "valueProperty": "value"
            }
          },
          "googlepoly": {
            "title": "Google Poly",
            "type": "string",
            "value": "AIzaSyDiSvloa49gHUJG0YAt3Ys_I6IEoiscPUM",
            "component": {
              "slot": "<div slot=\"suffix\"><a href=\"https:\/\/developers.google.com\/poly\/develop\/api\" target=\"_blank\">See Google Poly developer docs.<\/a><\/div>",
              "name": "paper-input",
              "valueProperty": "value"
            }
          },
          "memegenerator": {
            "title": "Meme generator",
            "type": "string",
            "value": "e7fbcd7f-8d76-4513-9698-e20de4362d99",
            "component": {
              "slot": "<div slot=\"suffix\"><a href=\"https:\/\/memegenerator.net\/Api\" target=\"_blank\">See Meme generator developer docs.<\/a><\/div>",
              "name": "paper-input",
              "valueProperty": "value"
            }
          },
          "vimeo": {
            "title": "Vimeo",
            "type": "string",
            "value": "0a718b853bad87571d52e9fb554e0a43",
            "component": {
              "slot": "<div slot=\"suffix\"><a href=\"https:\/\/developer.vimeo.com\/\" target=\"_blank\">See Vimeo developer docs.<\/a><\/div>",
              "name": "paper-input",
              "valueProperty": "value"
            }
          },
          "giphy": {
            "title": "Giphy",
            "type": "string",
            "value": "mr3blNkTT0HeTvtyPPT4TIftqUSgyHoO",
            "component": {
              "slot": "<div slot=\"suffix\"><a href=\"https:\/\/developers.giphy.com\/docs\/\" target=\"_blank\">See Giphy developer docs.<\/a><\/div>",
              "name": "paper-input",
              "valueProperty": "value"
            }
          },
          "unsplash": {
            "title": "Unsplash",
            "type": "string",
            "value": "0e1fa3a203724415c10c03581e8db8a43e8bc8906ad934e0f321d28be16281ff",
            "component": {
              "slot": "<div slot=\"suffix\"><a href=\"https:\/\/unsplash.com\/developers\" target=\"_blank\">See Unsplash developer docs.<\/a><\/div>",
              "name": "paper-input",
              "valueProperty": "value"
            }
          },
          "flickr": {
            "title": "Flickr",
            "type": "string",
            "value": "43ccc969703b7afd4e2a1b16f02ce84e",
            "component": {
              "slot": "<div slot=\"suffix\"><a href=\"https:\/\/www.flickr.com\/services\/developer\/api\/\" target=\"_blank\">See Flickr developer docs.<\/a><\/div>",
              "name": "paper-input",
              "valueProperty": "value"
            }
          },
          "pixabay": {
            "title": "Pixabay",
            "type": "string",
            "value": "7839766-f49bb4174cd49cb587944a5f7",
            "component": {
              "slot": "<div slot=\"suffix\"><a href=\"https:\/\/pixabay.com\/api\/docs\/\" target=\"_blank\">See Pixabay developer docs.<\/a><\/div>",
              "name": "paper-input",
              "valueProperty": "value"
            }
          }
        }
      }
    }
  },
  "values": {
    "themes": {
      "haxcms-dev-theme": {
        "element": "haxcms-dev-theme",
        "path": "@haxtheweb\/haxcms-elements\/lib\/haxcms-dev-theme.js",
        "name": "Developer theme"
      },
      "outline-player": {
        "element": "outline-player",
        "path": "@haxtheweb\/outline-player\/outline-player.js",
        "name": "Outline player"
      },
      "simple-blog": {
        "element": "simple-blog",
        "path": "@haxtheweb\/simple-blog\/simple-blog.js",
        "name": "Simple blog"
      },
      "haxcms-slide-theme": {
        "element": "haxcms-slide-theme",
        "path": "@haxtheweb\/haxcms-elements\/lib\/haxcms-slide-theme.js",
        "name": "Slide player"
      }
    },
    "appStore": {
      "apiKeys": {
        "youtube": "",
        "googlepoly": "",
        "memegenerator": "",
        "vimeo": "",
        "giphy": "",
        "unsplash": "",
        "flickr": "",
        "pixabay": ""
      }
    },
    "publishing": {
      "git": {
        "vendor": "github",
        "branch": "gh-pages",
        "url": "git@github.com:elmsln",
        "user": "",
        "email": "",
        "cdn": "cdn.webcomponents.psu.edu"
      }
    }
  }
}

================================================
FILE: dist/dev/getNodeFieldsPath.json
================================================
{
	"status": 200,
	"data": {
		"fields": [{
			"property": "node",
			"inputMethod": "tabs",
			"properties": [
      {
				"property": "configure",
				"title": "Configure",
				"description": "Change node settings",
				"properties": [
          {
            "property": "node-configure-title",
            "description": "Title of the page",
            "inputMethod": "textfield",
            "required": true,
            "icon": "editor:title"
          },
          {
            "property": "node-configure-slug",
            "description": "Location used in the URL",
            "inputMethod": "textfield",
            "required": true,
            "disabled": true,
            "icon": "device:gps-fixed"
          },
          {
            "property": "node-configure-description",
            "description": "Description for the post",
            "inputMethod": "textfield",
            "required": false,
            "icon": "editor:short-text"
          },
          {
            "property": "node-configure-images",
            "description": "List of images",
            "required": false,
            "icon": "image:collections",
            "title": "Other sources",
            "inputMethod": "array",
            "properties": [
              {
                "property": "src",
                "title": "Source",
                "description": "The URL for the image",
                "inputMethod": "textfield"
              },
              {
                "property": "alt",
                "title": "Alt",
                "description": "Alt text",
                "inputMethod": "textfield"
              }
            ]
          },
          {
            "property": "node-configure-subtitle",
            "title": "Subtitle",
            "description": "An additional subtitle",
            "inputMethod": "textfield",
            "icon": "editor:text-fields"
          },
          {
            "property": "node-configure-accentColor",
            "title": "Accent color",
            "description": "Select the accent color for the player.",
            "inputMethod": "colorpicker",
            "icon": "editor:format-color-fill"
          }
        ]
      },
      {
				"property": "advanced",
				"title": "Advanced",
        "description": "less common node settings",
        "properties": [
          {
            "property": "node-advanced-created",
            "description": "Created timestamp",
            "inputMethod": "textfield",
            "required": true,
            "icon": "device:access-time"
          },
          {
            "property": "node-advanced-theme",
            "description": "Page theme",
            "inputMethod": "select",
            "required": false,
            "icon": "editor:format-paint",
            "options": {
              "odl-haxtheme": "Eberly ODL",
              "key": "haxcms-theme-developer",
              "learn-two-theme": "Learn",
              "outline-player": "Documentation",
              "simple-blog": "Simple blog",
              "haxcms-basic-theme": "Basic site",
              "haxcms-minimalist-theme": "Minimalist site",
              "haxcms-slide-theme": "Slide deck",
              "haxcms-dev-theme": "DEVELOPER: Test theme",
              "haxcms-theme-developer": "EXPERIMENTAL: HAX Theme Maker"
            }
          }
        ]
      }
      ]}
    ],
    "value": {
      "node": {
        "configure": {
            "node-configure-title": "Functions",
            "node-configure-slug": "functions",
            "node-configure-description": ""
        },
        "advanced": {
          "node-advanced-created": 1552651607,
          "node-advanced-theme": "haxor-slevin"
        }
      }
    }
  }
}

================================================
FILE: dist/dev/getSiteFieldsPath.json
================================================
{
	"status": 200,
	"data": {
		"fields": [{
			"property": "manifest",
			"inputMethod": "tabs",
			"properties": [{
				"property": "site",
				"title": "Site",
				"description": "Settings directly related to the internals of the site",
				"properties": [{
					"property": "manifest-title",
					"title": "title",
					"description": "Name of the site",
					"inputMethod": "textfield",
					"required": true,
					"icon": "editor:title"
				}, {
					"property": "manifest-metadata-site-domain",
					"title": "Domain",
					"description": "Domain of this website",
					"inputMethod": "textfield",
					"required": false,
					"icon": "icons:open-in-browser"
				}, {
					"property": "manifest-description",
					"title": "Description",
					"description": "Simple description of the site",
					"inputMethod": "textfield",
					"required": false,
					"icon": "editor:short-text"
				}, {
					"property": "manifest-metadata-site-logo",
					"title": "Logo",
					"description": "Logo for thumbnails, browser tabs and used on phones",
					"inputMethod": "haxupload",
					"required": false,
					"noVoiceRecord": true
				}, {
					"property": "manifest-metadata-site-homePageId",
					"title": "Home page",
					"description": "Select a page for the home page of the site",
					"inputMethod": "select",
					"required": false,
					"icon": "icons:home"
				}]
			}, {
				"property": "theme",
				"title": "Theme",
				"description": "Theme and design settings applied to the entire site",
				"properties": [{
					"property": "manifest-metadata-theme-element",
					"title": "Theme",
					"description": "Design and presentation layer for your site",
					"inputMethod": "select",
					"required": false,
					"icon": "editor:format-paint",
					"options": {
						"clean-one": "Course theme",
						"clean-two": "Course theme 2",
						"learn-two-theme": "Course theme 3",
						"haxor-slevin": "Coder blog",
						"outline-player": "Documentation"
					}
				}, {
					"property": "manifest-metadata-theme-variables-image",
					"title": "Banner",
					"description": "Banner image aplied to themes that implement one",
					"inputMethod": "haxupload",
					"required": false,
					"icon": "image:image",
					"noVoiceRecord": true
				}, {
			
Download .txt
Showing preview only (266K chars total). Download the full file or copy to clipboard to get everything.
gitextract_7f7q_zj8/

├── .continue/
│   └── README.md
├── .devcontainer/
│   └── devcontainer.json
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   └── workflows/
│       ├── build.yml
│       ├── cla.yml
│       └── ossf_scorecard.yml
├── .gitignore
├── .jshintrc
├── .lvimrc
├── .prettierignore
├── .stylelintrc.json
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   └── settings.json
├── .wcflibcache.json
├── .well-known/
│   └── funding-manifest-urls
├── AGENTS.md
├── CHANGELOG.md
├── CLA-README.md
├── CLA.md
├── CODE_OF_CONDUCT.md
├── COMPONENT-GALLERY.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── SUPPORT.md
├── VERSION.txt
├── _optional_dev_patches/
│   └── @web+dev-server-core+0.7.2.patch
├── api/
│   ├── hydrateSsr.js
│   ├── package.json
│   └── patches/
│       └── @lit-labs+ssr+3.2.2.patch
├── automate-theme-screenshots.js
├── build-haxcms.js
├── build.js
├── dist/
│   ├── app.js
│   ├── build-cms.js
│   ├── build-elmsln.js
│   ├── build-full.js
│   ├── build-haxcms.js
│   ├── build-home.js
│   ├── build-install.js
│   ├── build-legacy.js
│   ├── build.html
│   ├── build.js
│   ├── dev/
│   │   ├── appstore.json
│   │   ├── archiveSite.json
│   │   ├── connectionSettings.json
│   │   ├── copySite.json
│   │   ├── createSite.json
│   │   ├── deleteSite.json
│   │   ├── downloadSite.json
│   │   ├── getConfigPath.json
│   │   ├── getNodeFieldsPath.json
│   │   ├── getSiteFieldsPath.json
│   │   ├── login.json
│   │   ├── logout.json
│   │   ├── saveManifestPath.json
│   │   ├── saveNode.json
│   │   ├── savePage.json
│   │   ├── sites.json
│   │   ├── sitesEmpty.json
│   │   └── userData.json
│   ├── dev.html
│   ├── hax-elements-registry.json
│   ├── sites.json
│   └── wc-registry.json
├── elements/
│   ├── .gitkeep
│   ├── .idea/
│   │   ├── .gitignore
│   │   ├── elements.iml
│   │   ├── modules.xml
│   │   └── vcs.xml
│   ├── .vscode/
│   │   └── settings.json
│   ├── README.md
│   ├── a11y-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-behaviors.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-behaviors.test.js
│   ├── a11y-carousel/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-carousel.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── a11y-carousel-button.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-carousel.test.js
│   ├── a11y-collapse/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-collapse.js
│   │   ├── demo/
│   │   │   ├── group.html
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── a11y-collapse-group.haxProperties.json
│   │   │   ├── a11y-collapse-group.js
│   │   │   └── a11y-collapse.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-collapse.test.js
│   ├── a11y-compare-image/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-compare-image.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-compare-image.test.js
│   ├── a11y-details/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-details.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-details.test.js
│   ├── a11y-figure/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-figure.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-figure.test.js
│   ├── a11y-gif-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-gif-player.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── a11y-gif-player.haxProperties.json
│   │   ├── locales/
│   │   │   └── a11y-gif-player.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-gif-player.test.js
│   ├── a11y-media-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-media-player.js
│   │   ├── demo/
│   │   │   ├── audio.html
│   │   │   ├── index.html
│   │   │   ├── samples/
│   │   │   │   ├── bueller.vtt
│   │   │   │   ├── sintel-de.vtt
│   │   │   │   ├── sintel-en.vtt
│   │   │   │   ├── sintel-es.vtt
│   │   │   │   ├── stclair.srt
│   │   │   │   └── stclair.vtt
│   │   │   └── youtube.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── a11y-media-button.js
│   │   │   ├── a11y-media-play-button.js
│   │   │   ├── a11y-media-state-manager.js
│   │   │   ├── a11y-media-transcript-cue.js
│   │   │   └── a11y-media-youtube.js
│   │   ├── locales/
│   │   │   ├── a11y-media-player.bg.json
│   │   │   ├── a11y-media-player.cy.json
│   │   │   ├── a11y-media-player.da.json
│   │   │   ├── a11y-media-player.en.json
│   │   │   ├── a11y-media-player.es.json
│   │   │   ├── a11y-media-player.et.json
│   │   │   ├── a11y-media-player.fa.json
│   │   │   ├── a11y-media-player.ga.json
│   │   │   ├── a11y-media-player.ha.json
│   │   │   ├── a11y-media-player.hr.json
│   │   │   ├── a11y-media-player.is.json
│   │   │   ├── a11y-media-player.ka.json
│   │   │   ├── a11y-media-player.km.json
│   │   │   ├── a11y-media-player.lt.json
│   │   │   ├── a11y-media-player.lv.json
│   │   │   ├── a11y-media-player.mk.json
│   │   │   ├── a11y-media-player.mt.json
│   │   │   ├── a11y-media-player.my.json
│   │   │   ├── a11y-media-player.sk.json
│   │   │   ├── a11y-media-player.sr.json
│   │   │   ├── a11y-media-player.sw.json
│   │   │   ├── a11y-media-player.ta.json
│   │   │   ├── a11y-media-player.te.json
│   │   │   └── a11y-media-player.yo.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-media-player.test.js
│   ├── a11y-menu-button/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-menu-button.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── a11y-menu-button-item.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-menu-button.test.js
│   ├── a11y-tabs/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-tabs.js
│   │   ├── demo/
│   │   │   ├── breakpoints.html
│   │   │   ├── index.html
│   │   │   ├── sticky.html
│   │   │   └── vertical.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── a11y-tab.js
│   │   │   └── a11y-tabs.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-tabs.test.js
│   ├── a11y-utils/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── a11y-utils.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── a11y-utils.test.js
│   ├── absolute-position-behavior/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── absolute-position-behavior.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── absolute-position-state-manager.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── absolute-position-behavior.test.js
│   ├── accent-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── accent-card.js
│   │   ├── demo/
│   │   │   ├── borders.html
│   │   │   ├── colors.html
│   │   │   ├── imageWidth.html
│   │   │   ├── images.html
│   │   │   ├── index.html
│   │   │   └── orientation.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── accent-card.test.js
│   ├── aframe-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── aframe-player.js
│   │   ├── demo/
│   │   │   ├── animatedbox.gltf
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── aframe-player.test.js
│   ├── ai-usage-license/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── ai-usage-license.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── v1.json
│   │   ├── locales/
│   │   │   ├── ai-usage-license.ar.haxProperties.json
│   │   │   ├── ai-usage-license.ar.json
│   │   │   ├── ai-usage-license.bn.haxProperties.json
│   │   │   ├── ai-usage-license.bn.json
│   │   │   ├── ai-usage-license.es.haxProperties.json
│   │   │   ├── ai-usage-license.es.json
│   │   │   ├── ai-usage-license.fr.haxProperties.json
│   │   │   ├── ai-usage-license.fr.json
│   │   │   ├── ai-usage-license.hi.haxProperties.json
│   │   │   ├── ai-usage-license.hi.json
│   │   │   ├── ai-usage-license.ja.haxProperties.json
│   │   │   ├── ai-usage-license.ja.json
│   │   │   ├── ai-usage-license.pt.haxProperties.json
│   │   │   ├── ai-usage-license.pt.json
│   │   │   ├── ai-usage-license.ru.haxProperties.json
│   │   │   ├── ai-usage-license.ru.json
│   │   │   ├── ai-usage-license.zh.haxProperties.json
│   │   │   └── ai-usage-license.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── ai-usage-license.test.js
│   │   └── web-dev-server.config.mjs
│   ├── air-horn/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── air-horn.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── air-horn.test.js
│   ├── anchor-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── anchor-behaviors.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── anchor-behaviors.test.js
│   ├── app-hax/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── app-hax.js
│   │   ├── demo/
│   │   │   ├── appstore.json
│   │   │   ├── archiveSite.json
│   │   │   ├── copySite.json
│   │   │   ├── createSite.json
│   │   │   ├── deleteSite.json
│   │   │   ├── downloadSite.json
│   │   │   ├── getUserData.json
│   │   │   ├── haxiamAddUserAccess.json
│   │   │   ├── home.html
│   │   │   ├── index.html
│   │   │   ├── login.json
│   │   │   ├── logout.json
│   │   │   ├── sites.json
│   │   │   ├── sitesEmpty.json
│   │   │   ├── skeletons/
│   │   │   │   ├── blog-site-template.json
│   │   │   │   ├── course-site-template.json
│   │   │   │   ├── documentation-site-template.json
│   │   │   │   └── portfolio-site-template.json
│   │   │   └── skeletons.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── app-hax-theme.js
│   │   │   ├── assets/
│   │   │   │   └── sounds/
│   │   │   │       └── LICENSE.txt
│   │   │   ├── random-word/
│   │   │   │   └── random-word.js
│   │   │   ├── rpg-character-toast/
│   │   │   │   └── rpg-character-toast.js
│   │   │   ├── v1/
│   │   │   │   ├── AppHaxBackendAPI.js
│   │   │   │   ├── AppHaxRouter.js
│   │   │   │   ├── AppHaxStore.js
│   │   │   │   ├── app-hax-button.js
│   │   │   │   ├── app-hax-hat-progress.js
│   │   │   │   ├── app-hax-label.js
│   │   │   │   ├── app-hax-search-bar.js
│   │   │   │   ├── app-hax-search-results.js
│   │   │   │   ├── app-hax-site-bar.js
│   │   │   │   ├── app-hax-site-button.js
│   │   │   │   ├── app-hax-site-details.js
│   │   │   │   ├── app-hax-site-login.js
│   │   │   │   ├── app-hax-steps.js
│   │   │   │   ├── app-hax-toast.js
│   │   │   │   ├── app-hax-top-bar.js
│   │   │   │   ├── app-hax-user-menu-button.js
│   │   │   │   ├── app-hax-user-menu.js
│   │   │   │   └── app-hax-wired-toggle.js
│   │   │   ├── v2/
│   │   │   │   ├── AppHaxBackendAPI.js
│   │   │   │   ├── AppHaxRouter.js
│   │   │   │   ├── AppHaxStore.js
│   │   │   │   ├── HAXIAM_API_SPEC.md
│   │   │   │   ├── app-hax-button.js
│   │   │   │   ├── app-hax-confirmation-modal.js
│   │   │   │   ├── app-hax-filter-tag.js
│   │   │   │   ├── app-hax-hat-progress.js
│   │   │   │   ├── app-hax-label.js
│   │   │   │   ├── app-hax-scroll-button.js
│   │   │   │   ├── app-hax-search-results.js
│   │   │   │   ├── app-hax-simple-hat-progress.js
│   │   │   │   ├── app-hax-site-bar.js
│   │   │   │   ├── app-hax-site-button.js
│   │   │   │   ├── app-hax-site-creation-modal.js
│   │   │   │   ├── app-hax-site-details.js
│   │   │   │   ├── app-hax-site-login.js
│   │   │   │   ├── app-hax-steps.js
│   │   │   │   ├── app-hax-toast.js
│   │   │   │   ├── app-hax-use-case-filter.js
│   │   │   │   ├── app-hax-use-case.js
│   │   │   │   ├── app-hax-user-access-modal.js
│   │   │   │   ├── app-hax-user-menu-button.js
│   │   │   │   ├── app-hax-user-menu.js
│   │   │   │   ├── app-hax-wired-toggle.js
│   │   │   │   ├── skeleton-loader.js
│   │   │   │   └── skeleton-uuid-manager.js
│   │   │   └── wired-darkmode-toggle/
│   │   │       └── wired-darkmode-toggle.js
│   │   ├── locales/
│   │   │   ├── app-hax.af.json
│   │   │   ├── app-hax.am.json
│   │   │   ├── app-hax.ar.json
│   │   │   ├── app-hax.az.json
│   │   │   ├── app-hax.be.json
│   │   │   ├── app-hax.bg.json
│   │   │   ├── app-hax.bn.json
│   │   │   ├── app-hax.bs.json
│   │   │   ├── app-hax.ca.json
│   │   │   ├── app-hax.co.json
│   │   │   ├── app-hax.cs.json
│   │   │   ├── app-hax.cy.json
│   │   │   ├── app-hax.da.json
│   │   │   ├── app-hax.de.json
│   │   │   ├── app-hax.el.json
│   │   │   ├── app-hax.en.json
│   │   │   ├── app-hax.eo.json
│   │   │   ├── app-hax.es.json
│   │   │   ├── app-hax.et.json
│   │   │   ├── app-hax.eu.json
│   │   │   ├── app-hax.fa.json
│   │   │   ├── app-hax.fi.json
│   │   │   ├── app-hax.fo.json
│   │   │   ├── app-hax.fr.json
│   │   │   ├── app-hax.fy.json
│   │   │   ├── app-hax.ga.json
│   │   │   ├── app-hax.gl.json
│   │   │   ├── app-hax.gn.json
│   │   │   ├── app-hax.gu.json
│   │   │   ├── app-hax.ha.json
│   │   │   ├── app-hax.haw.json
│   │   │   ├── app-hax.he.json
│   │   │   ├── app-hax.hi.json
│   │   │   ├── app-hax.hr.json
│   │   │   ├── app-hax.hu.json
│   │   │   ├── app-hax.hy.json
│   │   │   ├── app-hax.id.json
│   │   │   ├── app-hax.ig.json
│   │   │   ├── app-hax.is.json
│   │   │   ├── app-hax.it.json
│   │   │   ├── app-hax.ja.json
│   │   │   ├── app-hax.jv.json
│   │   │   ├── app-hax.ka.json
│   │   │   ├── app-hax.kk.json
│   │   │   ├── app-hax.km.json
│   │   │   ├── app-hax.kn.json
│   │   │   ├── app-hax.ko.json
│   │   │   ├── app-hax.ku.json
│   │   │   ├── app-hax.ky.json
│   │   │   ├── app-hax.lb.json
│   │   │   ├── app-hax.lo.json
│   │   │   ├── app-hax.lt.json
│   │   │   ├── app-hax.lv.json
│   │   │   ├── app-hax.mi.json
│   │   │   ├── app-hax.mk.json
│   │   │   ├── app-hax.ml.json
│   │   │   ├── app-hax.mn.json
│   │   │   ├── app-hax.mr.json
│   │   │   ├── app-hax.ms.json
│   │   │   ├── app-hax.mt.json
│   │   │   ├── app-hax.my.json
│   │   │   ├── app-hax.nb.json
│   │   │   ├── app-hax.ne.json
│   │   │   ├── app-hax.nl.json
│   │   │   ├── app-hax.no.json
│   │   │   ├── app-hax.ny.json
│   │   │   ├── app-hax.om.json
│   │   │   ├── app-hax.pa.json
│   │   │   ├── app-hax.pl.json
│   │   │   ├── app-hax.pnb.json
│   │   │   ├── app-hax.ps.json
│   │   │   ├── app-hax.pt.json
│   │   │   ├── app-hax.qu.json
│   │   │   ├── app-hax.ro.json
│   │   │   ├── app-hax.ru.json
│   │   │   ├── app-hax.sd.json
│   │   │   ├── app-hax.si.json
│   │   │   ├── app-hax.sk.json
│   │   │   ├── app-hax.sl.json
│   │   │   ├── app-hax.sn.json
│   │   │   ├── app-hax.so.json
│   │   │   ├── app-hax.sq.json
│   │   │   ├── app-hax.sr.json
│   │   │   ├── app-hax.sv.json
│   │   │   ├── app-hax.sw.json
│   │   │   ├── app-hax.ta.json
│   │   │   ├── app-hax.te.json
│   │   │   ├── app-hax.tg.json
│   │   │   ├── app-hax.th.json
│   │   │   ├── app-hax.tk.json
│   │   │   ├── app-hax.tl.json
│   │   │   ├── app-hax.tr.json
│   │   │   ├── app-hax.tt.json
│   │   │   ├── app-hax.uk.json
│   │   │   ├── app-hax.ur.json
│   │   │   ├── app-hax.uz.json
│   │   │   ├── app-hax.vi.json
│   │   │   ├── app-hax.wuu.json
│   │   │   ├── app-hax.xh.json
│   │   │   ├── app-hax.yi.json
│   │   │   ├── app-hax.yo.json
│   │   │   ├── app-hax.zh.json
│   │   │   ├── app-hax.zh_CN.json
│   │   │   └── app-hax.zu.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── app-hax.test.js
│   ├── audio-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── audio-player.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── audio-player.test.js
│   ├── author-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── author-card.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── author-card.haxProperties.json
│   │   ├── locales/
│   │   │   ├── author-card.ar.haxProperties.json
│   │   │   ├── author-card.ar.json
│   │   │   ├── author-card.bn.haxProperties.json
│   │   │   ├── author-card.bn.json
│   │   │   ├── author-card.en.json
│   │   │   ├── author-card.es.haxProperties.json
│   │   │   ├── author-card.es.json
│   │   │   ├── author-card.fr.haxProperties.json
│   │   │   ├── author-card.fr.json
│   │   │   ├── author-card.hi.haxProperties.json
│   │   │   ├── author-card.hi.json
│   │   │   ├── author-card.ja.haxProperties.json
│   │   │   ├── author-card.ja.json
│   │   │   ├── author-card.pt.haxProperties.json
│   │   │   ├── author-card.pt.json
│   │   │   ├── author-card.ru.haxProperties.json
│   │   │   ├── author-card.ru.json
│   │   │   ├── author-card.zh.haxProperties.json
│   │   │   └── author-card.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── author-card.test.js
│   │   └── web-dev-server.config.mjs
│   ├── awesome-explosion/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── awesome-explosion.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── awesome-explosion.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── awesome-explosion.test.js
│   ├── b-r/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .idea/
│   │   │   ├── .gitignore
│   │   │   ├── b-r.iml
│   │   │   ├── modules.xml
│   │   │   └── vcs.xml
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── b-r.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── b-r.test.js
│   ├── barcode-reader/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .idea/
│   │   │   ├── barcode-reader.iml
│   │   │   ├── modules.xml
│   │   │   ├── prettier.xml
│   │   │   ├── vcs.xml
│   │   │   └── workspace.xml
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── barcode-reader.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── zxing.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── barcode-reader.test.js
│   ├── baseline-build-hax/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── baseline-build-hax.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── baseline-build-hax.test.js
│   ├── beaker-broker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── beaker-broker.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── beaker-broker.test.js
│   ├── bootstrap-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── bootstrap-theme.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── BootstrapBreadcrumb.js
│   │   │   ├── BootstrapFooter.js
│   │   │   ├── BootstrapSearch.js
│   │   │   └── BootstrapUserStylesMenuMixin.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── bootstrap-theme.test.js
│   ├── chartist-render/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── chartist-render.js
│   │   ├── demo/
│   │   │   ├── bar.csv
│   │   │   ├── csv.html
│   │   │   ├── donut.csv
│   │   │   ├── index.html
│   │   │   ├── line.csv
│   │   │   └── pie.csv
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── chartist/
│   │   │   │   ├── CHANGELOG.md
│   │   │   │   ├── LICENSE-MIT
│   │   │   │   ├── LICENSE-WTFPL
│   │   │   │   ├── README.md
│   │   │   │   └── dist/
│   │   │   │       ├── chartist.css
│   │   │   │       └── chartist.js
│   │   │   ├── chartist-plugin-axistitle/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── README.md
│   │   │   │   └── dist/
│   │   │   │       ├── LICENSE
│   │   │   │       └── chartist-plugin-axistitle.js
│   │   │   ├── chartist-plugin-fill-donut/
│   │   │   │   ├── LICENSE-MIT
│   │   │   │   ├── README.md
│   │   │   │   ├── dist/
│   │   │   │   │   └── chartist-plugin-fill-donut.js
│   │   │   │   └── src/
│   │   │   │       └── scripts/
│   │   │   │           └── chartist-plugin-fill-donut.js
│   │   │   └── chartist-plugin-pointlabels/
│   │   │       ├── LICENSE
│   │   │       ├── README.md
│   │   │       └── dist/
│   │   │           ├── LICENSE
│   │   │           └── chartist-plugin-pointlabels.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── chartist-render.test.js
│   ├── chat-agent/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── chat-agent.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── chat-agent-store.js
│   │   │   ├── chat-button.js
│   │   │   ├── chat-control-bar.js
│   │   │   ├── chat-developer-panel.js
│   │   │   ├── chat-input.js
│   │   │   ├── chat-interface.js
│   │   │   ├── chat-message.js
│   │   │   └── chat-suggestion.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── chat-agent.test.js
│   ├── check-it-out/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── check-it-out.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── check-it-out.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── check-it-out.test.js
│   ├── citation-builder/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── citation-builder.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── citation-builder.haxProperties.json
│   │   │   └── citation-item.js
│   │   ├── locales/
│   │   │   ├── citation-builder.ar.haxProperties.json
│   │   │   ├── citation-builder.ar.json
│   │   │   ├── citation-builder.bn.haxProperties.json
│   │   │   ├── citation-builder.bn.json
│   │   │   ├── citation-builder.es.haxProperties.json
│   │   │   ├── citation-builder.es.json
│   │   │   ├── citation-builder.fr.haxProperties.json
│   │   │   ├── citation-builder.fr.json
│   │   │   ├── citation-builder.hi.haxProperties.json
│   │   │   ├── citation-builder.hi.json
│   │   │   ├── citation-builder.ja.haxProperties.json
│   │   │   ├── citation-builder.ja.json
│   │   │   ├── citation-builder.pt.haxProperties.json
│   │   │   ├── citation-builder.pt.json
│   │   │   ├── citation-builder.ru.haxProperties.json
│   │   │   ├── citation-builder.ru.json
│   │   │   ├── citation-builder.zh.haxProperties.json
│   │   │   └── citation-builder.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── citation-builder.test.js
│   │   └── web-dev-server.config.mjs
│   ├── citation-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── citation-element.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── citation-element.test.js
│   ├── clean-one/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── clean-one.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── clean-one-search-box.js
│   │   ├── locales/
│   │   │   ├── clean-one.de.json
│   │   │   ├── clean-one.es.json
│   │   │   ├── clean-one.fr.json
│   │   │   └── clean-one.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── clean-one.test.js
│   ├── clean-portfolio-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── clean-portfolio-theme.js
│   │   ├── index.html
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── clean-portfolio-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── clean-two/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── clean-two.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── clean-two.test.js
│   ├── cms-hax/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── cms-hax.js
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── sample-store.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── cms-block.js
│   │   │   ├── cms-entity.js
│   │   │   ├── cms-token.js
│   │   │   └── cms-views.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── cms-hax.test.js
│   ├── code-editor/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── code-editor.js
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── updating.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── code-pen-button.js
│   │   │   └── monaco-element/
│   │   │       ├── LICENSE
│   │   │       ├── README.md
│   │   │       ├── monaco-element.js
│   │   │       ├── monaco.js
│   │   │       └── utils.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── code-editor.test.js
│   ├── code-sample/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── code-sample.js
│   │   ├── demo/
│   │   │   ├── code-sample-theme.js
│   │   │   ├── css/
│   │   │   │   └── demo.css
│   │   │   ├── demo.js
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── highlightjs/
│   │   │   │   ├── highlight.js
│   │   │   │   ├── languages/
│   │   │   │   │   ├── css.js
│   │   │   │   │   ├── javascript.js
│   │   │   │   │   ├── json.js
│   │   │   │   │   ├── php.js
│   │   │   │   │   ├── xml.js
│   │   │   │   │   └── yaml.js
│   │   │   │   └── styles/
│   │   │   │       ├── a11y-dark.css
│   │   │   │       ├── a11y-light.css
│   │   │   │       ├── agate.css
│   │   │   │       ├── an-old-hope.css
│   │   │   │       ├── androidstudio.css
│   │   │   │       ├── arduino-light.css
│   │   │   │       ├── arta.css
│   │   │   │       ├── ascetic.css
│   │   │   │       ├── atelier-cave-dark.css
│   │   │   │       ├── atelier-cave-light.css
│   │   │   │       ├── atelier-dune-dark.css
│   │   │   │       ├── atelier-dune-light.css
│   │   │   │       ├── atelier-estuary-dark.css
│   │   │   │       ├── atelier-estuary-light.css
│   │   │   │       ├── atelier-forest-dark.css
│   │   │   │       ├── atelier-forest-light.css
│   │   │   │       ├── atelier-heath-dark.css
│   │   │   │       ├── atelier-heath-light.css
│   │   │   │       ├── atelier-lakeside-dark.css
│   │   │   │       ├── atelier-lakeside-light.css
│   │   │   │       ├── atelier-plateau-dark.css
│   │   │   │       ├── atelier-plateau-light.css
│   │   │   │       ├── atelier-savanna-dark.css
│   │   │   │       ├── atelier-savanna-light.css
│   │   │   │       ├── atelier-seaside-dark.css
│   │   │   │       ├── atelier-seaside-light.css
│   │   │   │       ├── atelier-sulphurpool-dark.css
│   │   │   │       ├── atelier-sulphurpool-light.css
│   │   │   │       ├── atom-one-dark-reasonable.css
│   │   │   │       ├── atom-one-dark.css
│   │   │   │       ├── atom-one-light.css
│   │   │   │       ├── brown-paper.css
│   │   │   │       ├── codepen-embed.css
│   │   │   │       ├── color-brewer.css
│   │   │   │       ├── darcula.css
│   │   │   │       ├── dark.css
│   │   │   │       ├── darkula.css
│   │   │   │       ├── default.css
│   │   │   │       ├── docco.css
│   │   │   │       ├── dracula.css
│   │   │   │       ├── far.css
│   │   │   │       ├── foundation.css
│   │   │   │       ├── github-gist.css
│   │   │   │       ├── github.css
│   │   │   │       ├── gml.css
│   │   │   │       ├── googlecode.css
│   │   │   │       ├── grayscale.css
│   │   │   │       ├── gruvbox-dark.css
│   │   │   │       ├── gruvbox-light.css
│   │   │   │       ├── hopscotch.css
│   │   │   │       ├── hybrid.css
│   │   │   │       ├── idea.css
│   │   │   │       ├── ir-black.css
│   │   │   │       ├── isbl-editor-dark.css
│   │   │   │       ├── isbl-editor-light.css
│   │   │   │       ├── kimbie.dark.css
│   │   │   │       ├── kimbie.light.css
│   │   │   │       ├── lightfair.css
│   │   │   │       ├── magula.css
│   │   │   │       ├── mono-blue.css
│   │   │   │       ├── monokai-sublime.css
│   │   │   │       ├── monokai.css
│   │   │   │       ├── nord.css
│   │   │   │       ├── obsidian.css
│   │   │   │       ├── ocean.css
│   │   │   │       ├── paraiso-dark.css
│   │   │   │       ├── paraiso-light.css
│   │   │   │       ├── pojoaque.css
│   │   │   │       ├── purebasic.css
│   │   │   │       ├── qtcreator_dark.css
│   │   │   │       ├── qtcreator_light.css
│   │   │   │       ├── railscasts.css
│   │   │   │       ├── rainbow.css
│   │   │   │       ├── routeros.css
│   │   │   │       ├── school-book.css
│   │   │   │       ├── shades-of-purple.css
│   │   │   │       ├── solarized-dark.css
│   │   │   │       ├── solarized-light.css
│   │   │   │       ├── sunburst.css
│   │   │   │       ├── tomorrow-night-blue.css
│   │   │   │       ├── tomorrow-night-bright.css
│   │   │   │       ├── tomorrow-night-eighties.css
│   │   │   │       ├── tomorrow-night.css
│   │   │   │       ├── tomorrow.css
│   │   │   │       ├── vs.css
│   │   │   │       ├── vs2015.css
│   │   │   │       ├── xcode.css
│   │   │   │       ├── xt256.css
│   │   │   │       └── zenburn.css
│   │   │   └── themes/
│   │   │       ├── default.js
│   │   │       ├── github.js
│   │   │       ├── kustom-dark.js
│   │   │       ├── kustom-light.js
│   │   │       ├── one-dark.js
│   │   │       ├── one-light.js
│   │   │       ├── solarized-dark.js
│   │   │       └── solarized-light.js
│   │   ├── locales/
│   │   │   └── code-sample.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── code-sample.test.js
│   ├── collection-list/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── collection-list.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── collection-item.haxProperties.json
│   │   │   ├── collection-item.js
│   │   │   ├── collection-list.haxProperties.json
│   │   │   ├── collection-row.js
│   │   │   ├── collections-theme-banner.js
│   │   │   └── collections-theme.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── collection-list.test.js
│   ├── count-up/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── count-up.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── countup.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── count-up.test.js
│   ├── course-design/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── course-design.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── activity-box.haxProperties.json
│   │   │   ├── activity-box.js
│   │   │   ├── block-quote.haxProperties.json
│   │   │   ├── block-quote.js
│   │   │   ├── course-intro-footer.js
│   │   │   ├── course-intro-header.js
│   │   │   ├── course-intro-lesson-plan.js
│   │   │   ├── course-intro-lesson-plans.js
│   │   │   ├── course-intro.js
│   │   │   ├── ebook-button.js
│   │   │   ├── learning-component.js
│   │   │   ├── lrn-h5p.js
│   │   │   ├── responsive-iframe.js
│   │   │   └── worksheet-download.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── course-design.test.js
│   ├── course-model/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── course-model.js
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── models/
│   │   │       ├── arm/
│   │   │       │   └── models_arm.gltf
│   │   │       └── guns/
│   │   │           └── colt-1911/
│   │   │               ├── colt_1911_clip.gltf
│   │   │               ├── colt_1911_full.gltf
│   │   │               ├── colt_1911_half.gltf
│   │   │               └── colt_1911_parts.gltf
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── course-model.haxProperties.json
│   │   │   ├── model-info.js
│   │   │   └── model-option.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── course-model.test.js
│   ├── csv-render/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── csv-render.js
│   │   ├── demo/
│   │   │   ├── demo.csv
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── csv-render.test.js
│   ├── d-d-d/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .todo
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── d-d-d.js
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── mini-map.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── DDDPaletteRegistry.js
│   │   │   ├── DDDStyleGuidePresets.js
│   │   │   ├── DDDStyles.js
│   │   │   ├── DesignSystemManager.js
│   │   │   ├── ddd-brochure-theme.js
│   │   │   ├── ddd-card.haxProperties.json
│   │   │   ├── ddd-card.js
│   │   │   ├── ddd-steps-list-item.haxProperties.json
│   │   │   ├── ddd-steps-list-item.js
│   │   │   ├── ddd-steps-list.haxProperties.json
│   │   │   ├── ddd-steps-list.js
│   │   │   ├── hax-palette-picker.js
│   │   │   └── mini-map.js
│   │   ├── locales/
│   │   │   └── ddd-card.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── d-d-d.test.js
│   ├── d-d-docs/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── d-d-docs.js
│   │   ├── index.html
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── d-d-docs.test.js
│   │   └── web-dev-server.config.mjs
│   ├── data-viz/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── data-viz.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── data-viz.test.js
│   ├── date-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── date-card.js
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── date-card.haxProperties.json
│   │   │   └── date-chip.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── date-card.test.js
│   ├── deduping-fix/
│   │   ├── README.md
│   │   ├── deduping-fix.js
│   │   ├── gulpfile.cjs
│   │   └── package.json
│   ├── demo-snippet/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── demo-snippet.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── demo-snippet.haxProperties.json
│   │   ├── locales/
│   │   │   ├── demo-snippet.ar.haxProperties.json
│   │   │   ├── demo-snippet.ar.json
│   │   │   ├── demo-snippet.bn.haxProperties.json
│   │   │   ├── demo-snippet.bn.json
│   │   │   ├── demo-snippet.es.haxProperties.json
│   │   │   ├── demo-snippet.es.json
│   │   │   ├── demo-snippet.fr.haxProperties.json
│   │   │   ├── demo-snippet.fr.json
│   │   │   ├── demo-snippet.hi.haxProperties.json
│   │   │   ├── demo-snippet.hi.json
│   │   │   ├── demo-snippet.ja.haxProperties.json
│   │   │   ├── demo-snippet.ja.json
│   │   │   ├── demo-snippet.pt.haxProperties.json
│   │   │   ├── demo-snippet.pt.json
│   │   │   ├── demo-snippet.ru.haxProperties.json
│   │   │   ├── demo-snippet.ru.json
│   │   │   ├── demo-snippet.zh.haxProperties.json
│   │   │   └── demo-snippet.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── demo-snippet.test.js
│   │   └── web-dev-server.config.mjs
│   ├── discord-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── discord-embed.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── discord-embed.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── discord-embed.test.js
│   ├── disqus-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── disqus-embed.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── haxcms-site-disqus.haxProperties.json
│   │   │   └── haxcms-site-disqus.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── disqus-embed.test.js
│   ├── dl-behavior/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── dl-behavior.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── dl-behavior.test.js
│   ├── documentation-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── documentation-player.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── documentation-player.test.js
│   ├── dynamic-import-registry/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── dynamic-import-registry.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── dynamic-import-registry.test.js
│   ├── editable-table/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── advanced.html
│   │   │   ├── display.html
│   │   │   ├── editmode.html
│   │   │   ├── exporting.html
│   │   │   ├── foods.csv
│   │   │   ├── game.csv
│   │   │   ├── importing.html
│   │   │   ├── index.html
│   │   │   ├── local-import.html
│   │   │   └── numeric.html
│   │   ├── editable-table.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── editable-table-behaviors.js
│   │   │   ├── editable-table-display.js
│   │   │   ├── editable-table-edit.js
│   │   │   ├── editable-table-editor-rowcol.js
│   │   │   ├── editable-table-filter.js
│   │   │   ├── editable-table-sort.js
│   │   │   └── editable-table.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── editable-table.test.js
│   ├── elmsln-loading/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── elmsln-loading.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── elmsln-loading.test.js
│   ├── enhanced-text/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── enhanced-text.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── enhanced-text.test.js
│   ├── es-global-bridge/
│   │   ├── README.md
│   │   ├── es-global-bridge.js
│   │   ├── gulpfile.cjs
│   │   ├── package.json
│   │   └── test/
│   │       └── es-global-bridge.test.js
│   ├── event-badge/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── event-badge.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── event-badge.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── event-badge.test.js
│   ├── example-hax-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── example-hax-element.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── example-hax-element.haxProperties.json
│   │   ├── locales/
│   │   │   ├── example-hax-element.ar.haxProperties.json
│   │   │   ├── example-hax-element.ar.json
│   │   │   ├── example-hax-element.es.haxProperties.json
│   │   │   ├── example-hax-element.es.json
│   │   │   ├── example-hax-element.hi.haxProperties.json
│   │   │   ├── example-hax-element.hi.json
│   │   │   ├── example-hax-element.zh.haxProperties.json
│   │   │   └── example-hax-element.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── example-hax-element.test.js
│   │   └── web-dev-server.config.mjs
│   ├── example-haxcms-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── site.json
│   │   ├── example-haxcms-theme.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── example-haxcms-theme.haxProperties.json
│   │   ├── locales/
│   │   │   ├── example-haxcms-theme.ar.haxProperties.json
│   │   │   ├── example-haxcms-theme.ar.json
│   │   │   ├── example-haxcms-theme.es.haxProperties.json
│   │   │   ├── example-haxcms-theme.es.json
│   │   │   ├── example-haxcms-theme.hi.haxProperties.json
│   │   │   ├── example-haxcms-theme.hi.json
│   │   │   ├── example-haxcms-theme.zh.haxProperties.json
│   │   │   └── example-haxcms-theme.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── example-haxcms-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── figure-label/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── figure-label.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── figure-label.test.js
│   ├── file-system-broker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── MOBILE_SUPPORT.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── docx.html
│   │   │   ├── index.html
│   │   │   ├── mobile-test.html
│   │   │   └── xlsx.html
│   │   ├── file-system-broker.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── docx-file-system-broker.js
│   │   │   ├── mammoth/
│   │   │   │   └── LICENSE
│   │   │   ├── xlsx/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── dist/
│   │   │   │   │   ├── LICENSE
│   │   │   │   │   └── cpexcel.js
│   │   │   │   ├── jszip.js
│   │   │   │   ├── xlsx.js
│   │   │   │   └── xlsxworker.js
│   │   │   └── xlsx-file-system-broker.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── file-system-broker.test.js
│   ├── fill-in-the-blanks/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── fill-in-the-blanks.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── fill-in-the-blanks.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── fill-in-the-blanks.test.js
│   │       ├── fill-in-the-blanks_test.html
│   │       └── index.html
│   ├── flash-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── flash-card.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── flash-card-answer-box.js
│   │   │   ├── flash-card-prompt-img.js
│   │   │   ├── flash-card-set.js
│   │   │   └── flash-card.haxProperties.json
│   │   ├── locales/
│   │   │   ├── flash-card-answer-box.es.json
│   │   │   ├── flash-card-answer-box.fr.json
│   │   │   └── flash-card-answer-box.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── flash-card.test.js
│   ├── fluid-type/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── fluid-type.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── fluid-type.test.js
│   ├── full-width-image/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── full-width-image.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── full-width-image.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── full-width-image.test.js
│   ├── fullscreen-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── fullscreen-behaviors-demo.js
│   │   │   └── index.html
│   │   ├── fullscreen-behaviors.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── fullscreen-behaviors.test.js
│   ├── future-terminal-text/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── future-terminal-text.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── FutureTerminalTextSuper.js
│   │   │   └── future-terminal-text-lite.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── future-terminal-text.test.js
│   ├── git-corner/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── git-corner.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── git-corner.test.js
│   ├── github-preview/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── github-preview.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── github-rpg-contributors.haxProperties.json
│   │   │   ├── github-rpg-contributors.js
│   │   │   └── wc-markdown.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── github-preview.test.js
│   ├── glossy-portfolio-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── glossy-portfolio-theme.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── data.json
│   │   │   ├── glossy-portfolio-about.js
│   │   │   ├── glossy-portfolio-breadcrumb.js
│   │   │   ├── glossy-portfolio-card.js
│   │   │   ├── glossy-portfolio-footer.js
│   │   │   ├── glossy-portfolio-grid.js
│   │   │   ├── glossy-portfolio-header.js
│   │   │   ├── glossy-portfolio-home.js
│   │   │   └── graphic-portfolio.haxProperties.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── glossy-portfolio-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── grade-book/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── backend.json
│   │   │   ├── index.html
│   │   │   ├── letter-grade-picker.html
│   │   │   └── lite.html
│   │   ├── grade-book.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── GradeBookUIPieces.js
│   │   │   ├── grade-book-lite.js
│   │   │   ├── grade-book-pop-up.js
│   │   │   ├── grade-book-store.js
│   │   │   ├── grade-book-student-block.js
│   │   │   ├── grade-book-table.js
│   │   │   ├── letter-grade-picker.js
│   │   │   └── letter-grade.js
│   │   ├── locales/
│   │   │   ├── grade-book.de.json
│   │   │   ├── grade-book.es.json
│   │   │   └── grade-book.fr.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── grade-book.test.js
│   ├── grid-plate/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── grid-plate.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── grid-plate.test.js
│   ├── h-a-x/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── appstore.json
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── h-a-x.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── h-a-x-dependencies.js
│   │   ├── package.json
│   │   └── test/
│   │       └── h-a-x.test.js
│   ├── h5p-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── h5p-element.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── h5p/
│   │   │   │   ├── LICENSE.txt
│   │   │   │   ├── README.txt
│   │   │   │   ├── composer.json
│   │   │   │   ├── doc/
│   │   │   │   │   └── spec_en.html
│   │   │   │   ├── js/
│   │   │   │   │   ├── h5p-action-bar.js
│   │   │   │   │   ├── h5p-confirmation-dialog.js
│   │   │   │   │   ├── h5p-content-type.js
│   │   │   │   │   ├── h5p-content-upgrade-process.js
│   │   │   │   │   ├── h5p-content-upgrade-worker.js
│   │   │   │   │   ├── h5p-content-upgrade.js
│   │   │   │   │   ├── h5p-data-view.js
│   │   │   │   │   ├── h5p-display-options.js
│   │   │   │   │   ├── h5p-embed.js
│   │   │   │   │   ├── h5p-event-dispatcher.js
│   │   │   │   │   ├── h5p-library-details.js
│   │   │   │   │   ├── h5p-library-list.js
│   │   │   │   │   ├── h5p-resizer.js
│   │   │   │   │   ├── h5p-utils.js
│   │   │   │   │   ├── h5p-version.js
│   │   │   │   │   ├── h5p-x-api-event.js
│   │   │   │   │   ├── h5p-x-api.js
│   │   │   │   │   ├── h5p.js
│   │   │   │   │   ├── jquery.js
│   │   │   │   │   └── settings/
│   │   │   │   │       └── h5p-disable-hub.js
│   │   │   │   └── styles/
│   │   │   │       ├── h5p-admin.css
│   │   │   │       ├── h5p-confirmation-dialog.css
│   │   │   │       ├── h5p-core-button.css
│   │   │   │       └── h5p.css
│   │   │   ├── h5p-element.haxProperties.json
│   │   │   ├── h5p-resizer.js
│   │   │   └── h5p-wrapped-element.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── h5p-element.test.js
│   ├── hal-9000/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hal-9000.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── hal-9000-ui/
│   │   │       └── hal-9000-ui.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hal-9000.test.js
│   ├── hax-body/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── allthethings.html
│   │   │   ├── app-item.html
│   │   │   ├── appstore.json
│   │   │   ├── bueller.vtt
│   │   │   ├── index.html
│   │   │   ├── local-save.html
│   │   │   ├── shoelace.html
│   │   │   └── shoelace.json
│   │   ├── gulpfile.cjs
│   │   ├── hax-body.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── buttons/
│   │   │   │   ├── hax-text-editor-alignment-picker.js
│   │   │   │   ├── hax-text-editor-heading-picker.js
│   │   │   │   └── hax-text-editor-tag-toggle.js
│   │   │   ├── hax-app-picker.js
│   │   │   ├── hax-app-search.js
│   │   │   ├── hax-app.js
│   │   │   ├── hax-autoloader.js
│   │   │   ├── hax-cancel-dialog.js
│   │   │   ├── hax-context-behaviors.js
│   │   │   ├── hax-context-item-textop.js
│   │   │   ├── hax-context-item.js
│   │   │   ├── hax-element-demo.js
│   │   │   ├── hax-export-dialog.js
│   │   │   ├── hax-gizmo-browser.js
│   │   │   ├── hax-map.js
│   │   │   ├── hax-picker.js
│   │   │   ├── hax-plate-context.js
│   │   │   ├── hax-preferences-dialog.js
│   │   │   ├── hax-stax-browser.js
│   │   │   ├── hax-store.js
│   │   │   ├── hax-text-editor-button.js
│   │   │   ├── hax-text-editor-paste-button.js
│   │   │   ├── hax-text-editor-toolbar.js
│   │   │   ├── hax-text-editor.js
│   │   │   ├── hax-toolbar-item.js
│   │   │   ├── hax-toolbar-menu.js
│   │   │   ├── hax-toolbar.js
│   │   │   ├── hax-tray-button.js
│   │   │   ├── hax-tray-upload.js
│   │   │   ├── hax-tray.js
│   │   │   ├── hax-ui-styles.js
│   │   │   ├── hax-upload-field.js
│   │   │   └── hax-view-source.js
│   │   ├── locales/
│   │   │   ├── hax.af.json
│   │   │   ├── hax.am.json
│   │   │   ├── hax.ar.json
│   │   │   ├── hax.az.json
│   │   │   ├── hax.be.json
│   │   │   ├── hax.bg.json
│   │   │   ├── hax.bn.json
│   │   │   ├── hax.bs.json
│   │   │   ├── hax.ca.json
│   │   │   ├── hax.co.json
│   │   │   ├── hax.cs.json
│   │   │   ├── hax.cy.json
│   │   │   ├── hax.da.json
│   │   │   ├── hax.de.json
│   │   │   ├── hax.el.json
│   │   │   ├── hax.eo.json
│   │   │   ├── hax.es.json
│   │   │   ├── hax.et.json
│   │   │   ├── hax.eu.json
│   │   │   ├── hax.fa.json
│   │   │   ├── hax.fi.json
│   │   │   ├── hax.fo.json
│   │   │   ├── hax.fr.json
│   │   │   ├── hax.fy.json
│   │   │   ├── hax.ga.json
│   │   │   ├── hax.gl.json
│   │   │   ├── hax.gn.json
│   │   │   ├── hax.gu.json
│   │   │   ├── hax.ha.json
│   │   │   ├── hax.haw.json
│   │   │   ├── hax.he.json
│   │   │   ├── hax.hi.json
│   │   │   ├── hax.hr.json
│   │   │   ├── hax.hu.json
│   │   │   ├── hax.hy.json
│   │   │   ├── hax.id.json
│   │   │   ├── hax.ig.json
│   │   │   ├── hax.is.json
│   │   │   ├── hax.it.json
│   │   │   ├── hax.ja.json
│   │   │   ├── hax.jv.json
│   │   │   ├── hax.ka.json
│   │   │   ├── hax.kk.json
│   │   │   ├── hax.km.json
│   │   │   ├── hax.kn.json
│   │   │   ├── hax.ko.json
│   │   │   ├── hax.ku.json
│   │   │   ├── hax.ky.json
│   │   │   ├── hax.lb.json
│   │   │   ├── hax.lo.json
│   │   │   ├── hax.lt.json
│   │   │   ├── hax.lv.json
│   │   │   ├── hax.mi.json
│   │   │   ├── hax.mk.json
│   │   │   ├── hax.ml.json
│   │   │   ├── hax.mn.json
│   │   │   ├── hax.mr.json
│   │   │   ├── hax.ms.json
│   │   │   ├── hax.mt.json
│   │   │   ├── hax.my.json
│   │   │   ├── hax.nb.json
│   │   │   ├── hax.ne.json
│   │   │   ├── hax.nl.json
│   │   │   ├── hax.no.json
│   │   │   ├── hax.ny.json
│   │   │   ├── hax.om.json
│   │   │   ├── hax.pa.json
│   │   │   ├── hax.pl.json
│   │   │   ├── hax.pnb.json
│   │   │   ├── hax.ps.json
│   │   │   ├── hax.pt.json
│   │   │   ├── hax.qu.json
│   │   │   ├── hax.ro.json
│   │   │   ├── hax.ru.json
│   │   │   ├── hax.sd.json
│   │   │   ├── hax.si.json
│   │   │   ├── hax.sk.json
│   │   │   ├── hax.sl.json
│   │   │   ├── hax.sn.json
│   │   │   ├── hax.so.json
│   │   │   ├── hax.sq.json
│   │   │   ├── hax.sr.json
│   │   │   ├── hax.sv.json
│   │   │   ├── hax.sw.json
│   │   │   ├── hax.ta.json
│   │   │   ├── hax.te.json
│   │   │   ├── hax.tg.json
│   │   │   ├── hax.th.json
│   │   │   ├── hax.tk.json
│   │   │   ├── hax.tr.json
│   │   │   ├── hax.tt.json
│   │   │   ├── hax.uk.json
│   │   │   ├── hax.ur.json
│   │   │   ├── hax.uz.json
│   │   │   ├── hax.vi.json
│   │   │   ├── hax.wuu.json
│   │   │   ├── hax.xh.json
│   │   │   ├── hax.yi.json
│   │   │   ├── hax.yo.json
│   │   │   ├── hax.zh.json
│   │   │   └── hax.zu.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── hax-body.test.js
│   │       └── hax-text-editor-toolbar.test.js
│   ├── hax-body-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hax-body-behaviors.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── HAXFields.js
│   │   │   ├── HAXLayouts.js
│   │   │   └── HAXWiring.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-body-behaviors.test.js
│   ├── hax-bookmarklet/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── BOOKMARKLET-SOURCE.js
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── appstore.json
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hax-bookmarklet.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-bookmarklet.test.js
│   ├── hax-cloud/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── dist/
│   │   │   │   ├── app.js
│   │   │   │   ├── build-cms.js
│   │   │   │   ├── build-elmsln.js
│   │   │   │   ├── build-full.js
│   │   │   │   ├── build-haxcms.js
│   │   │   │   ├── build-home.js
│   │   │   │   ├── build-install.js
│   │   │   │   ├── build-legacy.js
│   │   │   │   ├── build.html
│   │   │   │   ├── build.js
│   │   │   │   ├── dev/
│   │   │   │   │   ├── appstore.json
│   │   │   │   │   ├── connectionSettings.json
│   │   │   │   │   ├── createNodePath.json
│   │   │   │   │   ├── getConfigPath.json
│   │   │   │   │   ├── getNodeFieldsPath.json
│   │   │   │   │   ├── getSiteFieldsPath.json
│   │   │   │   │   ├── login.json
│   │   │   │   │   ├── logout.json
│   │   │   │   │   ├── saveManifestPath.json
│   │   │   │   │   ├── saveNode.json
│   │   │   │   │   ├── savePage.json
│   │   │   │   │   └── userData.json
│   │   │   │   ├── dev.html
│   │   │   │   ├── my-custom-elements.js
│   │   │   │   └── sites.json
│   │   │   ├── index.html
│   │   │   ├── package.json
│   │   │   └── wc-registry.json
│   │   ├── gulpfile.cjs
│   │   ├── hax-cloud.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── appstore.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-cloud.test.js
│   ├── hax-iconset/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── iconset.html
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hax-iconset.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── build.sh
│   │   │   ├── elmsln-custom-iconset.js
│   │   │   ├── hax-iconset-manifest.js
│   │   │   ├── simple-hax-iconset.js
│   │   │   └── svgs/
│   │   │       └── mdi-social/
│   │   │           └── iconlist.txt
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-iconset.test.js
│   ├── hax-logo/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── site.html
│   │   ├── gulpfile.cjs
│   │   ├── hax-logo.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── hax-logo.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hax-logo.test.js
│   ├── haxcms-elements/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── KEYBOARD_SHORTCUTS.md
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── automation/
│   │   │   ├── README.md
│   │   │   ├── check-status.js
│   │   │   ├── package.json
│   │   │   └── puppeteer-theme-automation.js
│   │   ├── demo/
│   │   │   ├── 404.html
│   │   │   ├── CNAME
│   │   │   ├── LICENSE.md
│   │   │   ├── README.md
│   │   │   ├── assets/
│   │   │   │   ├── build-legacy.js
│   │   │   │   ├── build-polyfills.js
│   │   │   │   ├── legacy-outline.css
│   │   │   │   └── upgrade-browser.html
│   │   │   ├── atom.xml
│   │   │   ├── beaker.html
│   │   │   ├── browserconfig.xml
│   │   │   ├── build-haxcms.js
│   │   │   ├── build-legacy-es5-support.js
│   │   │   ├── build-legacy.js
│   │   │   ├── build-polyfills.js
│   │   │   ├── build.js
│   │   │   ├── create-cli.recipe
│   │   │   ├── custom/
│   │   │   │   ├── Dockerfile
│   │   │   │   ├── README.md
│   │   │   │   ├── package.json
│   │   │   │   ├── rollup.config.js
│   │   │   │   └── src/
│   │   │   │       ├── custom-journey-theme.js
│   │   │   │       └── custom.js
│   │   │   ├── dat.json
│   │   │   ├── dist/
│   │   │   │   ├── app.js
│   │   │   │   ├── build-cms.js
│   │   │   │   ├── build-elmsln.js
│   │   │   │   ├── build-full.js
│   │   │   │   ├── build-haxcms.js
│   │   │   │   ├── build-home.js
│   │   │   │   ├── build-install.js
│   │   │   │   ├── build-legacy.js
│   │   │   │   ├── build.html
│   │   │   │   ├── build.js
│   │   │   │   ├── dev/
│   │   │   │   │   ├── appstore.json
│   │   │   │   │   ├── connectionSettings.json
│   │   │   │   │   ├── contentSearchPath.json
│   │   │   │   │   ├── createNodePath.json
│   │   │   │   │   ├── getConfigPath.json
│   │   │   │   │   ├── getNodeFieldsPath.json
│   │   │   │   │   ├── getSiteFieldsPath.json
│   │   │   │   │   ├── login.json
│   │   │   │   │   ├── logout.json
│   │   │   │   │   ├── saveAllowedBlocksPath.json
│   │   │   │   │   ├── saveAppearanceSettingsPath.json
│   │   │   │   │   ├── saveEditorSettingsPath.json
│   │   │   │   │   ├── saveManifestPath.json
│   │   │   │   │   ├── saveNode.json
│   │   │   │   │   ├── savePage.json
│   │   │   │   │   ├── savePlatformSettingsPath.json
│   │   │   │   │   ├── saveSeoSettingsPath.json
│   │   │   │   │   └── userData.json
│   │   │   │   ├── dev.html
│   │   │   │   ├── my-custom-elements.js
│   │   │   │   └── sites.json
│   │   │   ├── fake/
│   │   │   │   └── dev/
│   │   │   │       ├── ._.DS_Store
│   │   │   │       ├── appstore.json
│   │   │   │       ├── contentSearchPath.json
│   │   │   │       ├── getConfigPath.json
│   │   │   │       ├── getNodeFieldsPath.json
│   │   │   │       ├── getSiteFieldsPath.json
│   │   │   │       ├── login.json
│   │   │   │       ├── logout.json
│   │   │   │       ├── saveManifestPath.json
│   │   │   │       ├── saveNode.json
│   │   │   │       ├── savePage.json
│   │   │   │       └── saveSeoSettingsPath.json
│   │   │   ├── false
│   │   │   ├── index.html
│   │   │   ├── index.php
│   │   │   ├── legacy-outline.html
│   │   │   ├── lunrSearchIndex.json
│   │   │   ├── manifest.json
│   │   │   ├── package.json
│   │   │   ├── pages/
│   │   │   │   ├── .gitkeep
│   │   │   │   ├── item-012ec894-f7a5-4d12-b0e5-f8e131d7c2b8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0265920d-6055-404d-a0e6-1ae71c4ce258/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-06108b56-48b5-4c50-b262-81659edc750e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0714dbb2-8908-463c-9945-05be546b4c11/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0842ac8e-9e65-4715-be25-e3ef4c0baf8b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0ae1c6fb-3f57-4917-8caa-91853eda4982/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0af79ce5-d4ef-4602-8207-b67c711d8cc7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0d0372ea-0057-45bb-8625-0f921921701e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0d30bca9-c852-4b30-ae4e-abc519262d31/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-0e12b64d-2eb5-4cea-8a85-829ec279cfc7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-104df0b1-7f96-4c26-96f4-d445fff8a868/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-12563166-de6a-42ed-baa6-9d9f694e8312/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-13056366-d039-4d51-b3ae-a3fcd12cd107/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-13bfe233-f320-41ef-94c0-855fe639e778/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-14b2032a-5465-43dc-b1b3-122e9f09d5e4/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-14ee9de9-51d1-4a0d-9944-3ba6856ac053/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-15525242-f6e9-4201-bbb1-cdd8f29176f6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-178875ba-a955-48b5-855a-9e1435d5d840/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-1d680323-87f4-4f28-bbd2-7268c9d4e172/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-1fa59985-6bf9-4ac7-802b-bc52035f9323/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-20addb32-74be-47bb-ab21-a8237d545b07/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-22596832-8320-4c7f-b7ae-f403d1d9ca31/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-225b6f65-9b18-4960-9ae8-7dd9face20a7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-23eb212e-a523-4d7b-862a-0a00cb786321/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2a102879-1110-4db4-a6b8-3b687f0fd2b1/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2b292b5e-6eb5-4031-9c82-7f3b7f87b236/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2ba3a0b9-8b5b-4e3f-bfed-a19c1a5edff3/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2bb2159d-c18b-4819-9760-988f227e2c3b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2eccc2a9-90b2-4dab-a4cb-f36bc45bc0ff/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-2fdd27a1-190a-47c8-8192-910bc1afe0f5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-348f69b5-8bbb-4cf8-8eda-26b4141fffa6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3577db8a-6017-4df6-a2bb-8ecad1a2bbe7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3938a1cf-d097-473e-8e27-47d34c2e8e4b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-39d2b3f7-0ebc-43a6-88a3-5c1efd876b25/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-39f2e47c-f0fb-4d87-9180-f0f8dedfbe44/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3af50499-d450-4068-b2d2-5893283d0e27/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3be9e67a-53cb-4b3a-9f5b-dc0b40cda743/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3c1bf773-d9e2-4658-84f8-6ab5e3f42ab2/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3c4f0dbd-ef6a-4c8d-acaa-27b295243948/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3e882dd4-4f71-4035-9ea0-26d840853c29/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-3f3cc6fc-18c9-47cb-95bf-0295b6a9e82d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-40583b55-32bf-40c7-8e81-99c054b9a764/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-41d063cb-b6b6-4c42-8a0e-6208a4f98a89/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4277ed25-a0ca-414c-a4ca-62e7d093d2f8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-42b47c5a-8ad2-4507-bef1-0488c65cc54a/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4550bc1f-bef7-4891-85f0-58647624a26b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4622057f-76f3-40dd-962b-0b6e640e4058/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4b504f9b-4efd-46a1-81a6-ec67c349c835/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4b62f800-7fb9-4a42-b28a-eacefa7bb53c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4b788e81-94f5-4699-b885-37b664eb8d7f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4bb1088a-8d44-4c7c-bf7c-89abe3787458/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4c29eaf9-75db-4e33-8cd3-de1f4d64d6ca/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-4d1a84b2-ddcb-4dbc-9b37-2d135442c32d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-50802aa4-f49e-4207-98d2-7ef3745568fc/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-51b1acee-9e5c-4756-998e-d6f3ba97882c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-52613cf2-1d34-47ed-9a53-dcc1d84dd5f4/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-526ae84e-2f82-4007-a443-7dbe1115571c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-54584e9b-9350-45aa-8b4f-cf92272cb53d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-56f0a907-0dad-40eb-8302-c18aa6bbc374/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-585825f8-7d6a-4cf3-80cd-8fbed78053e6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-58846489-4cbe-496e-8330-444fa9c69252/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-5931cf01-9b8d-4bdd-990b-6f4465174dcf/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-59855d23-c026-4b44-9c9f-d5414cc80e55/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-5bcfc9da-de7b-4e0c-858d-1f7adde911a9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-5d3a6d3d-fd0d-4075-b9da-4116eefdca0b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-5e315843-9d4e-4b67-b046-faa245b67716/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-62df18a5-fe1c-416e-9429-8d3288e7afa7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-635fe9b5-9bda-4658-a1af-3a366d123657/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-63badd6e-1fda-4773-a747-5ac79dbaeb45/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-642b98a6-d2f7-4e66-9278-9f7a59ed44f8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6516e05a-35ca-4e30-94c9-da8f32ed7ac8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6527bda6-5e79-4530-a7b2-1c8885bcd89e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-680a9a59-5691-424e-8f84-ee9019e39849/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-68ecb822-ae89-466a-bce2-20b33332451a/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6cf36319-fe20-4a72-9cb3-97e44e80f8b9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6dd95e13-27ae-449b-9c6f-816636d849f5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-6ecf99f9-5623-4892-a651-9472ec0c74a5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-73d866cd-ebd0-4124-ad99-b1b18455327d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-73fd1ab6-ba79-472d-9cc2-7828277a8e27/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7607700d-d318-4479-a588-837ea13ecd8b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-76c7ae2d-0520-48f6-957c-f4ec9f623736/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-76e43829-027c-481b-8b39-5d215b2b9670/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-778bd19b-566a-422b-99d1-20f564f12489/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7a54e617-a1cf-456d-866c-442b200d9e53/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7b57c34b-d8b4-4401-baed-01e39cc0cd77/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7c0ed8c2-f65d-41a6-93df-ccdc3fc43c9b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7c4e5edc-892b-4272-8513-248dd4d4efe5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7d7e9a33-1d6a-4b29-a442-35cef09ee666/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-7ee4ecbe-f90d-4745-a164-9bbd11ddd763/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-80c5b6c1-cbe0-4955-b80e-b2acccf7a3fe/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-82db2727-136d-4ee0-b965-9d847d8631c6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-846f3fba-27bb-4e82-ba0e-fc1b381f7d17/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8477c368-ebc7-403d-b576-5d1c450a629c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-861b84da-33c7-49e8-bf25-7aa8d9206d3b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-86b505f8-dc95-4b86-8fdd-5104ecc4f02b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-873f7ad0-8fdd-4c51-81e0-e8f55ea612a5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8991f223-d78f-42c3-a5f4-da79658ad80e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8a5bf844-d498-4f75-bf96-110eaedb42d9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8c122112-a265-4ef1-8968-1f12423da119/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8dfd19ae-77ec-4737-9981-72e4d5880cb9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8ec9cf78-ab0c-42ec-abee-7c906be0a487/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-8f14a636-3409-4174-890d-560ac20ad8d7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-903151c6-bd94-4bbb-9335-4649de2f9445/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-90f04b0e-75f3-424d-9e6f-4841af66ab6c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-9622913f-bd24-4595-bbc7-23cf38e2d668/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-96fcae63-7aa1-4bd5-a847-e8b2a49de877/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-99c45cf5-0c3b-4911-83de-70886b9d0c0d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-9cdc0d02-056e-4171-ac0a-207fb3dd6678/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-9e33c86c-9065-4313-b384-853d8fa2e97f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-9ffa23ac-c130-4a0c-92ee-481698e444a0/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a13f6fde-9c55-4a1c-bd64-cf8498be649d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a1b1587a-b40a-463f-ad4a-e5a05a98fd8c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a54cdc47-2f1c-4d82-8baf-fce180194a81/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a806cf22-5f68-4b66-b255-150adf678ea4/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a9108086-6b38-43b0-84b0-0447cab9c123/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a92e0dfc-e26f-4a7c-aa1d-f0d977b27d8f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-a9fbc83f-b923-4af7-b998-5da6864a527a/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-aae73811-4bb1-44ba-9215-05c90b9f9007/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ac8baab4-f493-4fd9-9826-5f79e2e44c03/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ad0933f8-c4c7-4e67-94dc-879abe4d1a12/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ad71d26c-8288-4a47-9b38-7e93baa49c53/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-adb4f6d7-5f7a-4620-ad3a-b0ff14343e60/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-af1b0cec-dcf5-4974-9b3b-8d82e8ce1dab/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-af5ebc9a-83b4-48e6-9465-7f2e94f305b5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-af6cc6b8-3436-48fd-89c5-987cf0fa1e0b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-author-card-test/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b1a951b6-6989-4c62-aca2-e446bdc17bc9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b1cf2586-d6a6-44b7-ba16-82fdfee99f01/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b29033b8-b3a4-4025-8f6a-f869e044a1be/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b2b17986-f13e-4d6e-93a6-6bd21c930c3c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b88f694c-46ef-4b3c-91aa-a5d1e8a0cf1b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-b8f8fb5d-b05d-448d-814d-fac40fac14f6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ba8ad453-896b-4890-b536-f769981e1d67/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-bcbf0a5d-9a15-43c7-809a-cd079036197c/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-bfaeda43-323f-4da7-b441-a9fe170deb19/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-bfe943ba-4746-494a-b184-932c63b60909/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c1713fc0-f797-405a-b293-46a1d755bf57/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c47bf439-54fa-4c41-8f39-a72dc0d40b60/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c7a62f87-28f5-4049-95ce-10b1ddb94201/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c835c36d-38f5-43ac-9296-0b1be7851ce6/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-c8edb5fb-6fa9-4d47-b07f-e030d26c2a9f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ca6807b1-e87c-4cb5-989c-cb4331b5d031/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ca708b68-1af2-47b5-83d9-7cb94b42da91/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-cb3070a2-9525-41df-a6bb-91c2844c5ed5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-cd65aa07-4bab-4f8f-8ffc-c2184f49ce9a/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ce9cfcf5-e94f-4fc7-bdce-bda88e477a7f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d090faf0-5374-4039-8aee-c6dad760c5e1/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d0e6ac0b-fc44-4be3-8e32-3647ddaeddd7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d131e688-d93c-4cbc-b32d-f0d052aeb8d0/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d161c1a3-d246-44fd-ad22-f321e355d0e9/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d345a07f-c3ee-4d20-909f-ec7293bd83b3/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d4b650a4-47af-4734-b891-7a6db766ca3e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d57321c6-4106-45ec-89a4-8ebdf0af67f2/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d597021d-28f9-402d-9d2c-8edff8c96e59/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d64f8a31-bd4c-499d-a0e0-e97ad1c9d1cb/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d673110e-8d91-4294-b80f-74a38cf51533/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d7a7736b-3262-4d0e-8df7-a9af7823a2b7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-d8ea3243-d6e0-43e6-894a-1f595f952d7e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-da269799-25d5-4389-9e02-12ba64c14845/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-db474841-bf84-4cbd-a2dc-a337b38b5991/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-dd03f4e6-1fa8-47e8-8c32-b7f36856e6db/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-de9dbbb5-949b-49c0-95ad-dbbc84835db0/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-dec72ecf-71ad-480d-bb4b-105c4c83b676/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e0580363-6b05-4092-8711-7413ae36a221/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e115dd47-3a78-4e40-963e-46466a268290/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e1c254e5-af7b-47ed-a25b-ced6ce8c0f77/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e26fa70d-3b7b-4523-9779-909bc83b073d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e56349a0-bcf9-427b-8b68-e092ae15061f/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e5e58d0e-aa0b-4749-a9cb-e791b08d4105/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e6b422fc-8920-45b1-9068-173399ca50b2/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-e730662d-1e5e-4519-b2cc-6689657eeced/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ec1d856c-fc63-49c5-a405-6391feb4b1ea/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ecd1ac41-cf5f-412c-9a1b-a4fe62e4167d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ed0d786a-105e-46ac-b848-49073917809b/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-ed31d08a-a26c-4357-a2a5-249705a63b81/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-edcd6f86-05b5-43a9-8766-8a56709451c8/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-eddf89ce-60f6-417b-8295-c0525219c230/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f37eeda2-e9b9-4039-84d5-f983ece1a6e5/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f3c9734c-89d9-41a9-b886-55d782c63114/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f424af2a-f6a2-46fb-b052-ef69836a1e2e/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f44c0f01-32e2-4e61-b965-3b24778abba0/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f5fc4e19-d3a6-48c3-bab5-a272ab4b288d/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f74ecc94-2b62-44c7-bb23-820e3d0cf9f3/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-f826380c-963c-49ff-a558-9337edbc6245/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-fbb47697-aa83-4b41-a3b4-ed8f9b2709c7/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-fcf11a73-7e2a-4034-8fbd-545893c621dd/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-fd8d0496-8026-4f47-bd7f-8182e32cda98/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-link-github-repo/
│   │   │   │   │   └── index.html
│   │   │   │   ├── item-link-haxtheweb-homepage/
│   │   │   │   │   └── index.html
│   │   │   │   └── mlid-1483/
│   │   │   │       └── index.html
│   │   │   ├── polymer.json
│   │   │   ├── push-manifest.json
│   │   │   ├── robots.txt
│   │   │   ├── rss.xml
│   │   │   ├── service-worker.js
│   │   │   ├── site-random-content-test.html
│   │   │   ├── site.json
│   │   │   ├── sitemap.xml
│   │   │   ├── system/
│   │   │   │   └── listFiles
│   │   │   ├── theme/
│   │   │   │   ├── ._.DS_Store
│   │   │   │   ├── style-guide.html
│   │   │   │   ├── theme.css
│   │   │   │   └── theme.html
│   │   │   ├── upgrade-browser.html
│   │   │   └── wc-registry.json
│   │   ├── full-theme-automation.js
│   │   ├── gulpfile.cjs
│   │   ├── haxcms-elements.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── base.css
│   │   │   ├── core/
│   │   │   │   ├── HAXCMSLitElementTheme.js
│   │   │   │   ├── HAXCMSPolymerElementTheme.js
│   │   │   │   ├── HAXCMSThemeWiring.js
│   │   │   │   ├── backends/
│   │   │   │   │   ├── haxcms-backend-beaker.js
│   │   │   │   │   ├── haxcms-backend-demo.js
│   │   │   │   │   ├── haxcms-backend-nodejs.js
│   │   │   │   │   ├── haxcms-backend-php.js
│   │   │   │   │   └── haxcms-backend-userfs.js
│   │   │   │   ├── haxcms-appearance-admin-dialog.js
│   │   │   │   ├── haxcms-cheat-codes.js
│   │   │   │   ├── haxcms-content-admin-dialog.js
│   │   │   │   ├── haxcms-darkmode-toggle.js
│   │   │   │   ├── haxcms-editor-builder.js
│   │   │   │   ├── haxcms-files-admin-dialog.js
│   │   │   │   ├── haxcms-outline-editor-dialog.js
│   │   │   │   ├── haxcms-seo-admin-dialog.js
│   │   │   │   ├── haxcms-site-builder.js
│   │   │   │   ├── haxcms-site-dashboard.js
│   │   │   │   ├── haxcms-site-editor-ui.js
│   │   │   │   ├── haxcms-site-editor.js
│   │   │   │   ├── haxcms-site-insights.js
│   │   │   │   ├── haxcms-site-router.js
│   │   │   │   ├── haxcms-site-settings-dashboard.js
│   │   │   │   ├── haxcms-site-store.js
│   │   │   │   ├── haxcms-theme-picker.js
│   │   │   │   ├── haxcms-toast.js
│   │   │   │   ├── micros/
│   │   │   │   │   ├── haxcms-button-add.js
│   │   │   │   │   └── haxcms-page-operations.js
│   │   │   │   ├── themes/
│   │   │   │   │   ├── haxcms-basic-theme.js
│   │   │   │   │   ├── haxcms-blank-theme.js
│   │   │   │   │   ├── haxcms-custom-theme.js
│   │   │   │   │   ├── haxcms-json-theme.js
│   │   │   │   │   ├── haxcms-minimalist-theme.js
│   │   │   │   │   ├── haxcms-print-theme.js
│   │   │   │   │   └── haxcms-slide-theme.js
│   │   │   │   ├── ui/
│   │   │   │   │   ├── app-hax-top-bar.js
│   │   │   │   │   ├── app-hax-user-menu-button.js
│   │   │   │   │   ├── app-hax-user-menu.js
│   │   │   │   │   ├── hax-confirm-dialog.js
│   │   │   │   │   ├── haxcms-about-dialog-ui.js
│   │   │   │   │   ├── haxcms-allowed-blocks-ui.js
│   │   │   │   │   ├── haxcms-editor-settings-dialog-ui.js
│   │   │   │   │   ├── haxcms-page-get-started.js
│   │   │   │   │   ├── haxcms-site-platform-ui.js
│   │   │   │   │   ├── haxcms-theme-preview-panel.js
│   │   │   │   │   ├── rpg-character-toast/
│   │   │   │   │   │   └── rpg-character-toast.js
│   │   │   │   │   └── wired-darkmode-toggle/
│   │   │   │   │       └── wired-darkmode-toggle.js
│   │   │   │   └── utils/
│   │   │   │       ├── EditDescriptionProgram.js
│   │   │   │       ├── EditSlugProgram.js
│   │   │   │       ├── EditTagsProgram.js
│   │   │   │       ├── EditTitleProgram.js
│   │   │   │       ├── EmailPageMixin.js
│   │   │   │       ├── ExportPageProgram.js
│   │   │   │       ├── ExportSiteProgram.js
│   │   │   │       ├── HAXCMSButton.js
│   │   │   │       ├── HAXCMSI18NMixin.js
│   │   │   │       ├── HAXCMSKeyboardShortcuts.js
│   │   │   │       ├── HAXCMSMobileMenu.js
│   │   │   │       ├── HAXCMSOperationButtons.js
│   │   │   │       ├── HAXCMSRememberRoute.js
│   │   │   │       ├── HAXCMSThemeParts.js
│   │   │   │       ├── HAXCMSUserStylesMenu.js
│   │   │   │       ├── LTIResizingMixin.js
│   │   │   │       ├── PDFPageMixin.js
│   │   │   │       ├── PrintBranchMixin.js
│   │   │   │       ├── PrintProgram.js
│   │   │   │       ├── QRCodeMixin.js
│   │   │   │       ├── example-restricted-skeleton.json
│   │   │   │       └── site-skeleton-generator.js
│   │   │   ├── development/
│   │   │   │   ├── haxcms-dev-theme.js
│   │   │   │   └── haxcms-theme-developer.js
│   │   │   ├── hax-elements-registry.json
│   │   │   ├── themes.json
│   │   │   └── ui-components/
│   │   │       ├── active-item/
│   │   │       │   ├── site-active-fields.js
│   │   │       │   ├── site-active-media-banner.js
│   │   │       │   ├── site-active-tags.js
│   │   │       │   ├── site-active-title.js
│   │   │       │   ├── site-git-corner.js
│   │   │       │   └── site-share-widget.js
│   │   │       ├── blocks/
│   │   │       │   ├── site-children-block.js
│   │   │       │   ├── site-outline-block.js
│   │   │       │   └── site-recent-content-block.js
│   │   │       ├── layout/
│   │   │       │   ├── site-drawer.js
│   │   │       │   ├── site-footer.js
│   │   │       │   ├── site-modal.js
│   │   │       │   └── site-region.js
│   │   │       ├── lesson-overview/
│   │   │       │   ├── lesson-overview.js
│   │   │       │   └── lib/
│   │   │       │       ├── .gitkeep
│   │   │       │       ├── lesson-highlight.haxProperties.json
│   │   │       │       ├── lesson-highlight.js
│   │   │       │       └── lesson-overview.haxProperties.json
│   │   │       ├── magic/
│   │   │       │   ├── active-when-visible.js
│   │   │       │   ├── site-ai-chat.js
│   │   │       │   ├── site-collection-list.haxProperties.json
│   │   │       │   ├── site-collection-list.js
│   │   │       │   └── site-view.js
│   │   │       ├── navigation/
│   │   │       │   ├── site-breadcrumb.js
│   │   │       │   ├── site-dot-indicator.js
│   │   │       │   ├── site-menu-button.js
│   │   │       │   ├── site-menu-content.js
│   │   │       │   ├── site-menu.js
│   │   │       │   └── site-top-menu.js
│   │   │       ├── query/
│   │   │       │   ├── site-query-menu-slice.js
│   │   │       │   ├── site-query.js
│   │   │       │   └── site-render-query.js
│   │   │       ├── routes/
│   │   │       │   ├── site-home-route.js
│   │   │       │   ├── site-print-route.js
│   │   │       │   ├── site-random-route.js
│   │   │       │   ├── site-tags-route.js
│   │   │       │   ├── site-theme-style-guide-route.js
│   │   │       │   └── site-views-route.js
│   │   │       ├── site/
│   │   │       │   ├── site-print-button.js
│   │   │       │   ├── site-random-content.js
│   │   │       │   ├── site-remote-content.js
│   │   │       │   ├── site-rss-button.js
│   │   │       │   ├── site-search.js
│   │   │       │   ├── site-title.js
│   │   │       │   └── site-uuid-link.js
│   │   │       ├── templates/
│   │   │       │   ├── basic-template.js
│   │   │       │   └── minimalist-template.js
│   │   │       └── utilities/
│   │   │           └── site-available-themes.js
│   │   ├── locales/
│   │   │   ├── haxcms.af.json
│   │   │   ├── haxcms.am.json
│   │   │   ├── haxcms.ar.json
│   │   │   ├── haxcms.az.json
│   │   │   ├── haxcms.be.json
│   │   │   ├── haxcms.bg.json
│   │   │   ├── haxcms.bn.json
│   │   │   ├── haxcms.bs.json
│   │   │   ├── haxcms.ca.json
│   │   │   ├── haxcms.co.json
│   │   │   ├── haxcms.cs.json
│   │   │   ├── haxcms.cy.json
│   │   │   ├── haxcms.da.json
│   │   │   ├── haxcms.de.json
│   │   │   ├── haxcms.el.json
│   │   │   ├── haxcms.eo.json
│   │   │   ├── haxcms.es.json
│   │   │   ├── haxcms.et.json
│   │   │   ├── haxcms.eu.json
│   │   │   ├── haxcms.fa.json
│   │   │   ├── haxcms.fi.json
│   │   │   ├── haxcms.fo.json
│   │   │   ├── haxcms.fr.json
│   │   │   ├── haxcms.fy.json
│   │   │   ├── haxcms.ga.json
│   │   │   ├── haxcms.gl.json
│   │   │   ├── haxcms.gn.json
│   │   │   ├── haxcms.gu.json
│   │   │   ├── haxcms.ha.json
│   │   │   ├── haxcms.haw.json
│   │   │   ├── haxcms.he.json
│   │   │   ├── haxcms.hi.json
│   │   │   ├── haxcms.hr.json
│   │   │   ├── haxcms.hu.json
│   │   │   ├── haxcms.hy.json
│   │   │   ├── haxcms.id.json
│   │   │   ├── haxcms.ig.json
│   │   │   ├── haxcms.is.json
│   │   │   ├── haxcms.it.json
│   │   │   ├── haxcms.ja.json
│   │   │   ├── haxcms.jv.json
│   │   │   ├── haxcms.ka.json
│   │   │   ├── haxcms.kk.json
│   │   │   ├── haxcms.km.json
│   │   │   ├── haxcms.kn.json
│   │   │   ├── haxcms.ko.json
│   │   │   ├── haxcms.ku.json
│   │   │   ├── haxcms.ky.json
│   │   │   ├── haxcms.lb.json
│   │   │   ├── haxcms.lo.json
│   │   │   ├── haxcms.lt.json
│   │   │   ├── haxcms.lv.json
│   │   │   ├── haxcms.mi.json
│   │   │   ├── haxcms.mk.json
│   │   │   ├── haxcms.ml.json
│   │   │   ├── haxcms.mn.json
│   │   │   ├── haxcms.mr.json
│   │   │   ├── haxcms.ms.json
│   │   │   ├── haxcms.mt.json
│   │   │   ├── haxcms.my.json
│   │   │   ├── haxcms.nb.json
│   │   │   ├── haxcms.ne.json
│   │   │   ├── haxcms.nl.json
│   │   │   ├── haxcms.no.json
│   │   │   ├── haxcms.ny.json
│   │   │   ├── haxcms.om.json
│   │   │   ├── haxcms.pl.json
│   │   │   ├── haxcms.pnb.json
│   │   │   ├── haxcms.ps.json
│   │   │   ├── haxcms.pt.json
│   │   │   ├── haxcms.qu.json
│   │   │   ├── haxcms.ro.json
│   │   │   ├── haxcms.ru.json
│   │   │   ├── haxcms.sd.json
│   │   │   ├── haxcms.si.json
│   │   │   ├── haxcms.sk.json
│   │   │   ├── haxcms.sl.json
│   │   │   ├── haxcms.sn.json
│   │   │   ├── haxcms.so.json
│   │   │   ├── haxcms.sq.json
│   │   │   ├── haxcms.sr.json
│   │   │   ├── haxcms.sv.json
│   │   │   ├── haxcms.sw.json
│   │   │   ├── haxcms.ta.json
│   │   │   ├── haxcms.te.json
│   │   │   ├── haxcms.tg.json
│   │   │   ├── haxcms.th.json
│   │   │   ├── haxcms.tk.json
│   │   │   ├── haxcms.tr.json
│   │   │   ├── haxcms.tt.json
│   │   │   ├── haxcms.uk.json
│   │   │   ├── haxcms.ur.json
│   │   │   ├── haxcms.uz.json
│   │   │   ├── haxcms.vi.json
│   │   │   ├── haxcms.wuu.json
│   │   │   ├── haxcms.xh.json
│   │   │   ├── haxcms.yi.json
│   │   │   ├── haxcms.yo.json
│   │   │   ├── haxcms.zh.json
│   │   │   └── haxcms.zu.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── haxcms-elements.test.js
│   │   └── theme-screenshot-automation.js
│   ├── haxma-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── haxma-theme.js
│   │   ├── index.html
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── haxma-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── haxor-slevin/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── haxor-slevin.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── haxor-slevin.test.js
│   ├── hex-picker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hex-picker.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hex-picker.test.js
│   ├── hexagon-loader/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── hexagon.html
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── hexagon-loader.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── hex-a-gon.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── hexagon-loader.test.js
│   ├── html-block/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── html-block.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── html-block.test.js
│   ├── i18n-manager/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── i18n-manager.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── I18NMixin.js
│   │   │   └── translation-manifest.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── i18n-manager.test.js
│   ├── iframe-loader/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── iframe-loader.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── iframe-loader.haxProperties.json
│   │   │   └── loading-indicator.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── iframe-loader.test.js
│   ├── image-compare-slider/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── image-compare-slider.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── image-compare-slider.haxProperties.json
│   │   ├── locales/
│   │   │   └── image-compare-slider.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── image-compare-slider.test.js
│   ├── image-inspector/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── image-inspector.js
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── image-inspector.test.js
│   ├── img-pan-zoom/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── img-pan-zoom.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── img-loader.js
│   │   │   └── openseadragon/
│   │   │       └── LICENSE.txt
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── img-pan-zoom.test.js
│   ├── img-view-modal/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── viewer.html
│   │   ├── gulpfile.cjs
│   │   ├── img-view-modal.js
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── img-view-viewer.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── img-view-modal.test.js
│   ├── inline-audio/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── inline-audio.js
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── inline-audio.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── inline-audio.test.js
│   ├── intersection-element/
│   │   ├── README.md
│   │   ├── gulpfile.cjs
│   │   ├── lib/
│   │   │   └── IntersectionObserverMixin.js
│   │   ├── package.json
│   │   └── test/
│   │       └── intersection-observer-mixin.test.js
│   ├── journey-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── journey-theme.js
│   │   ├── lib/
│   │   │   ├── journey-menu.js
│   │   │   ├── journey-sidebar-theme-styles.js
│   │   │   ├── journey-sidebar-theme.js
│   │   │   ├── journey-topbar-theme-styles.js
│   │   │   └── journey-topbar-theme.js
│   │   ├── locales/
│   │   │   ├── journey-theme.ar.json
│   │   │   ├── journey-theme.es.json
│   │   │   ├── journey-theme.hi.json
│   │   │   └── journey-theme.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   ├── journey-sidebar-theme.test.js
│   │   │   └── journey-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── json-outline-schema/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   ├── listing.html
│   │   │   ├── site.json
│   │   │   └── siteList.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── json-outline-schema.js
│   │   ├── lib/
│   │   │   ├── jos-render.js
│   │   │   └── json-outline-schema-item.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── json-outline-schema.test.js
│   ├── jwt-login/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── jwt-request-flow.drawio
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── jwt-login.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── jwt-login.test.js
│   ├── la-tex/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── la-tex.js
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── la-tex.haxProperties.json
│   │   │   └── latex2html5.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── la-tex.test.js
│   ├── lazy-image-helpers/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lazy-image-helpers.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lazy-image-helpers.test.js
│   ├── lazy-import-discover/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lazy-import-discover.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lazy-import-discover.test.js
│   ├── learn-two-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── learn-two-theme.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── learn-two-theme.test.js
│   ├── license-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── license-element.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── license-element.test.js
│   ├── lorem-data/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── lorem-data-behaviors.js
│   │   ├── lorem-data.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lorem-data.test.js
│   ├── lrn-gitgraph/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── api.json
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── gitgraphjs/
│   │   │       └── src/
│   │   │           ├── gitgraph.css
│   │   │           └── gitgraph.js
│   │   ├── lrn-gitgraph.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrn-gitgraph.test.js
│   ├── lrn-math/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lrn-math.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrn-math.test.js
│   ├── lrn-table/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── demo.csv
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── lrn-table.haxProperties.json
│   │   ├── lrn-table.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrn-table.test.js
│   ├── lrn-vocab/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lrn-vocab.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrn-vocab.test.js
│   ├── lrndesign-chart/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── bar.csv
│   │   │   ├── bar.html
│   │   │   ├── index.html
│   │   │   ├── line.csv
│   │   │   ├── line.html
│   │   │   ├── pie.csv
│   │   │   └── pie.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── lrndesign-bar.js
│   │   │   ├── lrndesign-line.js
│   │   │   └── lrndesign-pie.js
│   │   ├── lrndesign-chart.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrndesign-chart.test.js
│   ├── lrndesign-imagemap/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── process.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── lrndesign-imagemap-hotspot.js
│   │   ├── lrndesign-imagemap.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrndesign-imagemap.test.js
│   ├── lrndesign-timeline/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lrndesign-timeline.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrndesign-timeline.test.js
│   ├── lrs-elements/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── lrs-bridge-haxcms.js
│   │   │   ├── lrs-bridge.js
│   │   │   └── lrs-emitter.js
│   │   ├── lrs-elements.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lrs-elements.test.js
│   ├── lunr-search/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── lunrSearchIndex.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lunr-search.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── lunr-search.test.js
│   ├── map-menu/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── map-menu-builder.js
│   │   │   ├── map-menu-container.js
│   │   │   ├── map-menu-header.js
│   │   │   ├── map-menu-item.js
│   │   │   └── map-menu-submenu.js
│   │   ├── locales/
│   │   │   └── map-menu.es.json
│   │   ├── map-menu.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── map-menu.test.js
│   ├── mark-the-words/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── mark-the-words.haxProperties.json
│   │   ├── mark-the-words.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── mark-the-words.test.js
│   ├── matching-question/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── matching-question.haxProperties.json
│   │   ├── matching-question.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── index.html
│   │       ├── matching-question.test.js
│   │       └── matching-question_test.html
│   ├── md-block/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── md-block.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── md-block.test.js
│   ├── media-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── media-behaviors.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── media-behaviors.test.js
│   ├── media-image/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── media-image.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── media-image.test.js
│   ├── media-quote/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── media-quote.haxProperties.json
│   │   ├── media-quote.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── index.html
│   │       ├── media-quote.test.js
│   │       └── media-quote_test.html
│   ├── meme-maker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── meme-maker.haxProperties.json
│   │   ├── locales/
│   │   │   ├── meme-maker.haxProperties.ar.json
│   │   │   ├── meme-maker.haxProperties.bn.json
│   │   │   ├── meme-maker.haxProperties.de.json
│   │   │   ├── meme-maker.haxProperties.es.json
│   │   │   ├── meme-maker.haxProperties.fr.json
│   │   │   ├── meme-maker.haxProperties.gu.json
│   │   │   ├── meme-maker.haxProperties.he.json
│   │   │   ├── meme-maker.haxProperties.hi.json
│   │   │   ├── meme-maker.haxProperties.id.json
│   │   │   ├── meme-maker.haxProperties.it.json
│   │   │   ├── meme-maker.haxProperties.ja.json
│   │   │   ├── meme-maker.haxProperties.kn.json
│   │   │   ├── meme-maker.haxProperties.ko.json
│   │   │   ├── meme-maker.haxProperties.ml.json
│   │   │   ├── meme-maker.haxProperties.mr.json
│   │   │   ├── meme-maker.haxProperties.my.json
│   │   │   ├── meme-maker.haxProperties.nl.json
│   │   │   ├── meme-maker.haxProperties.pl.json
│   │   │   ├── meme-maker.haxProperties.pnb.json
│   │   │   ├── meme-maker.haxProperties.pt.json
│   │   │   ├── meme-maker.haxProperties.ro.json
│   │   │   ├── meme-maker.haxProperties.ru.json
│   │   │   ├── meme-maker.haxProperties.sv.json
│   │   │   ├── meme-maker.haxProperties.ta.json
│   │   │   ├── meme-maker.haxProperties.te.json
│   │   │   ├── meme-maker.haxProperties.th.json
│   │   │   ├── meme-maker.haxProperties.tl.json
│   │   │   ├── meme-maker.haxProperties.tr.json
│   │   │   ├── meme-maker.haxProperties.uk.json
│   │   │   ├── meme-maker.haxProperties.ur.json
│   │   │   ├── meme-maker.haxProperties.uz.json
│   │   │   ├── meme-maker.haxProperties.vi.json
│   │   │   ├── meme-maker.haxProperties.wuu.json
│   │   │   └── meme-maker.haxProperties.zh.json
│   │   ├── meme-maker.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       ├── meme-maker-i18n.test.js
│   │       └── meme-maker.test.js
│   ├── merit-badge/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── badge-sticker.js
│   │   │   ├── date-title.js
│   │   │   └── locked-badge.js
│   │   ├── merit-badge.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── merit-badge.test.js
│   ├── micro-frontend-registry/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── docx-example.js
│   │   │   ├── index.html
│   │   │   └── mf-htmlmd-example.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── microServices.js
│   │   ├── micro-frontend-registry.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── micro-frontend-registry.test.js
│   ├── moar-sarcasm/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── moar-sarcasm.haxProperties.json
│   │   ├── moar-sarcasm.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── moar-sarcasm.test.js
│   ├── moment-element/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── moment/
│   │   │       ├── LICENSE
│   │   │       └── moment.js
│   │   ├── moment-element.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── moment-element.test.js
│   ├── multiple-choice/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── QuestionElement.js
│   │   │   ├── confetti-container.js
│   │   │   ├── multiple-choice.haxProperties.json
│   │   │   ├── short-answer-question.haxProperties.json
│   │   │   ├── short-answer-question.js
│   │   │   ├── true-false-question.haxProperties.json
│   │   │   └── true-false-question.js
│   │   ├── multiple-choice.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── multiple-choice.test.js
│   ├── music-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── html-midi-player.js
│   │   │   └── music-player.haxProperties.json
│   │   ├── music-player.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── music-player.test.js
│   ├── mutation-observer-import-mixin/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── MutationObserverImportMixin.js
│   │   ├── mutation-observer-import-mixin.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── mutation-observer-import-mixin.test.js
│   ├── oer-schema/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── oerschema.js
│   │   ├── oer-schema.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── oer-schema.test.js
│   ├── outline-designer/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── ANALYSIS_AND_RECOMMENDATIONS.md
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── example.json
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── outline-designer.es.json
│   │   ├── outline-designer.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── outline-designer.test.js
│   ├── outline-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── content/
│   │   │   │   ├── Welcome%20to%20the%20jungle.html
│   │   │   │   ├── page1.html
│   │   │   │   ├── page2.html
│   │   │   │   ├── page3.html
│   │   │   │   ├── page4.html
│   │   │   │   ├── page5.html
│   │   │   │   └── page6.html
│   │   │   ├── index.html
│   │   │   └── outline.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── outline-player.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   └── test/
│   │       └── outline-player.test.js
│   ├── page-break/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── page-anchor.haxProperties.json
│   │   │   ├── page-anchor.js
│   │   │   ├── page-break-manager.js
│   │   │   ├── page-break-outline.js
│   │   │   ├── page-break.haxProperties.json
│   │   │   └── page-template.js
│   │   ├── locales/
│   │   │   ├── page-break.af.json
│   │   │   ├── page-break.am.json
│   │   │   ├── page-break.ar.json
│   │   │   ├── page-break.az.json
│   │   │   ├── page-break.be.json
│   │   │   ├── page-break.bg.json
│   │   │   ├── page-break.bn.json
│   │   │   ├── page-break.bs.json
│   │   │   ├── page-break.ca.json
│   │   │   ├── page-break.co.json
│   │   │   ├── page-break.cs.json
│   │   │   ├── page-break.cy.json
│   │   │   ├── page-break.da.json
│   │   │   ├── page-break.de.json
│   │   │   ├── page-break.el.json
│   │   │   ├── page-break.eo.json
│   │   │   ├── page-break.es.json
│   │   │   ├── page-break.et.json
│   │   │   ├── page-break.eu.json
│   │   │   ├── page-break.fa.json
│   │   │   ├── page-break.fi.json
│   │   │   ├── page-break.fo.json
│   │   │   ├── page-break.fr.json
│   │   │   ├── page-break.fy.json
│   │   │   ├── page-break.ga.json
│   │   │   ├── page-break.gl.json
│   │   │   ├── page-break.gn.json
│   │   │   ├── page-break.gu.json
│   │   │   ├── page-break.ha.json
│   │   │   ├── page-break.haw.json
│   │   │   ├── page-break.he.json
│   │   │   ├── page-break.hi.json
│   │   │   ├── page-break.hr.json
│   │   │   ├── page-break.hu.json
│   │   │   ├── page-break.hy.json
│   │   │   ├── page-break.id.json
│   │   │   ├── page-break.ig.json
│   │   │   ├── page-break.is.json
│   │   │   ├── page-break.it.json
│   │   │   ├── page-break.ja.json
│   │   │   ├── page-break.jv.json
│   │   │   ├── page-break.ka.json
│   │   │   ├── page-break.kk.json
│   │   │   ├── page-break.km.json
│   │   │   ├── page-break.kn.json
│   │   │   ├── page-break.ko.json
│   │   │   ├── page-break.ku.json
│   │   │   ├── page-break.ky.json
│   │   │   ├── page-break.lb.json
│   │   │   ├── page-break.lo.json
│   │   │   ├── page-break.lt.json
│   │   │   ├── page-break.lv.json
│   │   │   ├── page-break.mi.json
│   │   │   ├── page-break.mk.json
│   │   │   ├── page-break.ml.json
│   │   │   ├── page-break.mn.json
│   │   │   ├── page-break.mr.json
│   │   │   ├── page-break.ms.json
│   │   │   ├── page-break.mt.json
│   │   │   ├── page-break.my.json
│   │   │   ├── page-break.nb.json
│   │   │   ├── page-break.ne.json
│   │   │   ├── page-break.nl.json
│   │   │   ├── page-break.no.json
│   │   │   ├── page-break.ny.json
│   │   │   ├── page-break.om.json
│   │   │   ├── page-break.pa.json
│   │   │   ├── page-break.pl.json
│   │   │   ├── page-break.pnb.json
│   │   │   ├── page-break.ps.json
│   │   │   ├── page-break.pt.json
│   │   │   ├── page-break.qu.json
│   │   │   ├── page-break.ro.json
│   │   │   ├── page-break.ru.json
│   │   │   ├── page-break.sd.json
│   │   │   ├── page-break.si.json
│   │   │   ├── page-break.sk.json
│   │   │   ├── page-break.sl.json
│   │   │   ├── page-break.sn.json
│   │   │   ├── page-break.so.json
│   │   │   ├── page-break.sq.json
│   │   │   ├── page-break.sr.json
│   │   │   ├── page-break.sv.json
│   │   │   ├── page-break.sw.json
│   │   │   ├── page-break.ta.json
│   │   │   ├── page-break.te.json
│   │   │   ├── page-break.tg.json
│   │   │   ├── page-break.th.json
│   │   │   ├── page-break.tk.json
│   │   │   ├── page-break.tr.json
│   │   │   ├── page-break.tt.json
│   │   │   ├── page-break.uk.json
│   │   │   ├── page-break.ur.json
│   │   │   ├── page-break.uz.json
│   │   │   ├── page-break.vi.json
│   │   │   ├── page-break.wuu.json
│   │   │   ├── page-break.xh.json
│   │   │   ├── page-break.yi.json
│   │   │   ├── page-break.yo.json
│   │   │   ├── page-break.zh.json
│   │   │   └── page-break.zu.json
│   │   ├── package.json
│   │   ├── page-break.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-break.test.js
│   ├── page-contents-menu/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── page-contents-menu.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-contents-menu.test.js
│   ├── page-flag/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── page-flag-comment.js
│   │   │   └── page-flag.haxProperties.json
│   │   ├── package.json
│   │   ├── page-flag.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-flag.test.js
│   ├── page-scroll-position/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── page-scroll-position.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-scroll-position.test.js
│   ├── page-section/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── page-section.haxProperties.json
│   │   ├── package.json
│   │   ├── page-section.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── page-section.test.js
│   ├── paper-input-flagged/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── paper-input-flagged.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── paper-input-flagged.test.js
│   ├── paper-stepper/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── paper-icon-step.js
│   │   │   ├── paper-icon-stepper.js
│   │   │   └── paper-step.js
│   │   ├── package.json
│   │   ├── paper-stepper.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── paper-stepper.test.js
│   ├── parallax-image/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── parallax-image.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── parallax-image.test.js
│   ├── pdf-browser-viewer/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── pdf-browser-viewer.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── pdf-browser-viewer.test.js
│   ├── person-testimonial/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── person-testimonial.haxProperties.json
│   │   ├── package.json
│   │   ├── person-testimonial.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── person-testimonial.test.js
│   ├── place-holder/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── place-holder.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── place-holder.test.js
│   ├── play-list/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── SLStyleManager.js
│   │   │   ├── dark.css
│   │   │   ├── light.css
│   │   │   └── play-list.haxProperties.json
│   │   ├── package.json
│   │   ├── play-list.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── play-list.test.js
│   ├── polaris-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── polaris-cta.js
│   │   │   ├── polaris-flex-sidebar.js
│   │   │   ├── polaris-flex-theme.js
│   │   │   ├── polaris-invent-theme.js
│   │   │   ├── polaris-mark.js
│   │   │   ├── polaris-story-card.js
│   │   │   └── polaris-tile.js
│   │   ├── package.json
│   │   ├── polaris-theme.js
│   │   ├── polymer.json
│   │   └── test/
│   │       └── polaris-theme.test.js
│   ├── portal-launcher/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── portal-launcher.js
│   │   └── test/
│   │       └── portal-launcher.test.js
│   ├── post-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── PostCardPhoto.js
│   │   │   ├── PostCardPostmark.js
│   │   │   ├── PostCardStamp.js
│   │   │   └── post-card.haxProperties.json
│   │   ├── locales/
│   │   │   ├── post-card.de.json
│   │   │   ├── post-card.es.json
│   │   │   ├── post-card.fr.json
│   │   │   ├── post-card.it.json
│   │   │   ├── post-card.ja.json
│   │   │   └── post-card.zh_CN.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── post-card.js
│   │   └── test/
│   │       └── post-card.test.js
│   ├── pouch-db/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── pouch-db.js
│   │   └── test/
│   │       └── pouch-db.test.js
│   ├── product-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── hax.html
│   │   │   ├── index.html
│   │   │   └── wc-registry.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── course-card.js
│   │   │   ├── fields.json
│   │   │   ├── hax-element-card-list.js
│   │   │   ├── hax-element-list-selector.js
│   │   │   └── product-banner.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── product-card.js
│   │   └── test/
│   │       └── product-card.test.js
│   ├── product-glance/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── product-glance.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── product-glance.js
│   │   └── test/
│   │       ├── product-glance-basic.test.js
│   │       ├── product-glance-minimal.test.js
│   │       └── product-glance.test.js
│   ├── product-offering/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── product-offering.js
│   │   └── test/
│   │       └── product-offering.test.js
│   ├── progress-donut/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── progress-donut.js
│   │   └── test/
│   │       └── progress-donut.test.js
│   ├── promise-progress/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── basic.html
│   │   │   ├── index.html
│   │   │   ├── registry.json
│   │   │   └── wc-preload.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── promise-progress-lite.js
│   │   │   └── wc-preload-progress.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── promise-progress.js
│   │   └── test/
│   │       └── promise-progress.test.js
│   ├── q-r/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── q-r.haxProperties.json
│   │   │   ├── qr-code.js
│   │   │   └── qr.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── q-r.js
│   │   └── test/
│   │       └── q-r.test.js
│   ├── radio-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── figure-carousel.js
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── radio-behaviors.js
│   │   └── test/
│   │       └── radio-behaviors.test.js
│   ├── relative-heading/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── demo.css
│   │   │   ├── demo.js
│   │   │   ├── index.html
│   │   │   ├── lite.html
│   │   │   ├── nolinks.html
│   │   │   └── rightalign.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── relative-heading-lite.js
│   │   │   └── relative-heading-state-manager.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── relative-heading.js
│   │   └── test/
│   │       └── relative-heading.test.js
│   ├── replace-tag/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── magicDeviceMethod.html
│   │   │   ├── magicMethod.html
│   │   │   ├── performance/
│   │   │   │   └── dist/
│   │   │   │       ├── assets/
│   │   │   │       │   ├── babel-top.js
│   │   │   │       │   ├── build-legacy.js
│   │   │   │       │   ├── build-polyfills.js
│   │   │   │       │   └── upgrade-browser.html
│   │   │   │       └── build.js
│   │   │   ├── traditionalDeviceMethod.html
│   │   │   ├── traditionalMethod.html
│   │   │   └── wc-registry.json
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── LoadingHelper.js
│   │   │   ├── PerformanceDetect.js
│   │   │   ├── loading-styles.css
│   │   │   └── loading-styles.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── replace-tag.js
│   │   └── test/
│   │       └── replace-tag.test.js
│   ├── responsive-grid/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── performancetest.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── responsive-grid-clear.js
│   │   │   ├── responsive-grid-col.js
│   │   │   └── responsive-grid-row.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── responsive-grid.js
│   │   └── test/
│   │       └── responsive-grid.test.js
│   ├── responsive-utility/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── responsive-utility-behaviors.js
│   │   │   └── responsive-utility-element.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── responsive-utility.js
│   │   └── test/
│   │       └── responsive-utility.test.js
│   ├── retro-card/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── retro-card.js
│   │   └── test/
│   │       └── retro-card.test.js
│   ├── rich-text-editor/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── button.html
│   │   │   ├── buttons.html
│   │   │   ├── config.html
│   │   │   ├── full.html
│   │   │   ├── index.html
│   │   │   ├── mini.html
│   │   │   ├── rawhtml.html
│   │   │   ├── selection.html
│   │   │   └── toolbar.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── buttons/
│   │   │   │   ├── rich-text-editor-button.js
│   │   │   │   ├── rich-text-editor-emoji-picker.js
│   │   │   │   ├── rich-text-editor-heading-picker.js
│   │   │   │   ├── rich-text-editor-icon-picker.js
│   │   │   │   ├── rich-text-editor-image.js
│   │   │   │   ├── rich-text-editor-link.js
│   │   │   │   ├── rich-text-editor-picker.js
│   │   │   │   ├── rich-text-editor-prompt-button.js
│   │   │   │   ├── rich-text-editor-source-code.js
│   │   │   │   ├── rich-text-editor-symbol-picker.js
│   │   │   │   ├── rich-text-editor-underline.js
│   │   │   │   └── rich-text-editor-unlink.js
│   │   │   ├── open-apis/
│   │   │   │   └── link-preview-card.js
│   │   │   ├── singletons/
│   │   │   │   ├── rich-text-editor-clipboard.js
│   │   │   │   ├── rich-text-editor-highlight.js
│   │   │   │   ├── rich-text-editor-prompt.js
│   │   │   │   ├── rich-text-editor-range-behaviors.js
│   │   │   │   └── rich-text-editor-source.js
│   │   │   └── toolbars/
│   │   │       ├── rich-text-editor-breadcrumbs.js
│   │   │       ├── rich-text-editor-toolbar-full.js
│   │   │       ├── rich-text-editor-toolbar-mini.js
│   │   │       └── rich-text-editor-toolbar.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── rich-text-editor.js
│   │   └── test/
│   │       └── rich-text-editor.test.js
│   ├── rpg-character/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── rpg-character.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── rpg-character.js
│   │   └── test/
│   │       └── rpg-character.test.js
│   ├── runkit-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── runkit-embed.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── runkit-embed.js
│   │   └── test/
│   │       ├── index.html
│   │       ├── runkit-embed.test.js
│   │       └── runkit-embed_test.html
│   ├── schema-behaviors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── schema-behaviors.js
│   │   └── test/
│   │       └── schema-behaviors.test.js
│   ├── screen-recorder/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── screen-recorder.haxProperties.json
│   │   ├── locales/
│   │   │   ├── screen-recorder.ar.haxProperties.json
│   │   │   ├── screen-recorder.ar.json
│   │   │   ├── screen-recorder.bn.haxProperties.json
│   │   │   ├── screen-recorder.bn.json
│   │   │   ├── screen-recorder.es.haxProperties.json
│   │   │   ├── screen-recorder.es.json
│   │   │   ├── screen-recorder.fr.haxProperties.json
│   │   │   ├── screen-recorder.fr.json
│   │   │   ├── screen-recorder.hi.haxProperties.json
│   │   │   ├── screen-recorder.hi.json
│   │   │   ├── screen-recorder.ja.haxProperties.json
│   │   │   ├── screen-recorder.ja.json
│   │   │   ├── screen-recorder.pt.haxProperties.json
│   │   │   ├── screen-recorder.pt.json
│   │   │   ├── screen-recorder.ru.haxProperties.json
│   │   │   ├── screen-recorder.ru.json
│   │   │   ├── screen-recorder.zh.haxProperties.json
│   │   │   └── screen-recorder.zh.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── screen-recorder.js
│   │   ├── test/
│   │   │   └── screen-recorder.test.js
│   │   └── web-dev-server.config.mjs
│   ├── scroll-button/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── locales/
│   │   │   └── scroll-button.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── scroll-button.js
│   │   └── test/
│   │       └── scroll-button.test.js
│   ├── self-check/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── self-check.haxProperties.json
│   │   ├── locales/
│   │   │   ├── self-check.es.json
│   │   │   ├── self-check.he.json
│   │   │   └── self-check.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── self-check.js
│   │   └── test/
│   │       └── self-check.test.js
│   ├── shadow-style/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── shadow-style.js
│   │   └── test/
│   │       └── shadow-style.test.js
│   ├── simple-autocomplete/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── simple-autocomplete-text-trigger.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-autocomplete.js
│   │   └── test/
│   │       └── simple-autocomplete.test.js
│   ├── simple-blog/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-blog-footer.js
│   │   │   ├── simple-blog-header.js
│   │   │   ├── simple-blog-listing.js
│   │   │   ├── simple-blog-overview.js
│   │   │   └── simple-blog-post.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-blog.js
│   │   └── test/
│   │       └── simple-blog.test.js
│   ├── simple-colors/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── colors.html
│   │   │   ├── extending.html
│   │   │   ├── how.html
│   │   │   ├── index.html
│   │   │   └── picker.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── demo/
│   │   │   │   ├── simple-colors-swatch-info.js
│   │   │   │   └── simple-colors-swatches.js
│   │   │   └── simple-colors-picker.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-colors.js
│   │   └── test/
│   │       └── simple-colors.test.js
│   ├── simple-colors-shared-styles/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-colors-shared-styles.js
│   │   └── test/
│   │       └── simple-colors-shared-styles.test.js
│   ├── simple-cta/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── lrnsys-button.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-cta.js
│   │   └── test/
│   │       └── simple-cta.test.js
│   ├── simple-datetime/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── LICENSE
│   │   │   └── date.format.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-datetime.js
│   │   └── test/
│   │       └── simple-datetime.test.js
│   ├── simple-emoji/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-emoji.js
│   │   └── test/
│   │       └── simple-emoji.test.js
│   ├── simple-fields/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── backend.json
│   │   │   ├── conditional.html
│   │   │   ├── container.html
│   │   │   ├── data/
│   │   │   │   ├── fields.json
│   │   │   │   └── schema.json
│   │   │   ├── field.html
│   │   │   ├── form-lite.html
│   │   │   ├── form.html
│   │   │   ├── index.html
│   │   │   ├── lite.html
│   │   │   ├── schema.html
│   │   │   ├── subschema.html
│   │   │   ├── tags.html
│   │   │   └── upload.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-context-menu.js
│   │   │   ├── simple-fields-array-item.js
│   │   │   ├── simple-fields-array.js
│   │   │   ├── simple-fields-code.js
│   │   │   ├── simple-fields-combo.js
│   │   │   ├── simple-fields-container.js
│   │   │   ├── simple-fields-field.js
│   │   │   ├── simple-fields-fieldset.js
│   │   │   ├── simple-fields-form-lite.js
│   │   │   ├── simple-fields-form.js
│   │   │   ├── simple-fields-html-block.js
│   │   │   ├── simple-fields-lite.js
│   │   │   ├── simple-fields-tab.js
│   │   │   ├── simple-fields-tabs.js
│   │   │   ├── simple-fields-tag-list.js
│   │   │   ├── simple-fields-ui.js
│   │   │   ├── simple-fields-upload.js
│   │   │   ├── simple-fields-url-combo-item.js
│   │   │   ├── simple-fields-url-combo.js
│   │   │   ├── simple-tag-lite.js
│   │   │   ├── simple-tag.js
│   │   │   ├── simple-tags.haxProperties.json
│   │   │   └── simple-tags.js
│   │   ├── locales/
│   │   │   └── simple-fields.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-fields.js
│   │   └── test/
│   │       └── simple-fields.test.js
│   ├── simple-filter/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-filter.js
│   │   └── test/
│   │       └── simple-filter.test.js
│   ├── simple-icon/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── button-lite.html
│   │   │   ├── button.html
│   │   │   ├── iconset.html
│   │   │   ├── index.html
│   │   │   └── lite.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── build.sh
│   │   │   ├── simple-icon-button-lite.js
│   │   │   ├── simple-icon-button.js
│   │   │   ├── simple-icon-lite.js
│   │   │   ├── simple-icon.haxProperties.json
│   │   │   ├── simple-icons.js
│   │   │   ├── simple-iconset-demo.js
│   │   │   ├── simple-iconset-manifest.js
│   │   │   └── simple-iconset.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-icon.js
│   │   └── test/
│   │       └── simple-icon.test.js
│   ├── simple-icon-picker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-icon-picker.js
│   │   └── test/
│   │       └── simple-icon-picker.test.js
│   ├── simple-img/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── simple-img.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-img.js
│   │   └── test/
│   │       └── simple-img.test.js
│   ├── simple-login/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-camera-snap.js
│   │   │   ├── simple-login-avatar.js
│   │   │   └── simple-login-camera.js
│   │   ├── locales/
│   │   │   └── simple-login.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-login.js
│   │   └── test/
│   │       └── simple-login.test.js
│   ├── simple-modal/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── css.html
│   │   │   ├── details.html
│   │   │   ├── index.html
│   │   │   └── template.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-modal-handler.js
│   │   │   └── simple-modal-template.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-modal.js
│   │   └── test/
│   │       └── simple-modal.test.js
│   ├── simple-picker/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── SimplePickerEmojis.js
│   │   │   ├── simple-emoji-picker.js
│   │   │   ├── simple-picker-option.js
│   │   │   └── simple-symbol-picker.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-picker.js
│   │   ├── simple-picker.js.rej
│   │   └── test/
│   │       └── simple-picker.test.js
│   ├── simple-popover/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── tour.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── SimpleTourFinder.js
│   │   │   ├── simple-popover-manager.js
│   │   │   ├── simple-popover-selection.js
│   │   │   └── simple-tour.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-popover.js
│   │   └── test/
│   │       └── simple-popover.test.js
│   ├── simple-progress/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-progress.js
│   │   └── test/
│   │       └── simple-progress.test.js
│   ├── simple-range-input/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-range-input.js
│   │   └── test/
│   │       └── simple-range-input.test.js
│   ├── simple-search/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── selector.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-search-content.js
│   │   │   └── simple-search-match.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-search.js
│   │   └── test/
│   │       └── simple-search.test.js
│   ├── simple-toast/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── simple-toast-el.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-toast.js
│   │   └── test/
│   │       └── simple-toast.test.js
│   ├── simple-toolbar/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── buttons.html
│   │   │   ├── grid.html
│   │   │   ├── index.html
│   │   │   └── menu.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── simple-button-grid.js
│   │   │   ├── simple-toolbar-button-group.js
│   │   │   ├── simple-toolbar-button.js
│   │   │   ├── simple-toolbar-field.js
│   │   │   ├── simple-toolbar-menu-item.js
│   │   │   ├── simple-toolbar-menu.js
│   │   │   └── simple-toolbar-more-button.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-toolbar.js
│   │   └── test/
│   │       └── simple-toolbar.test.js
│   ├── simple-tooltip/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-tooltip.js
│   │   └── test/
│   │       └── simple-tooltip.test.js
│   ├── simple-wc/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── index.html
│   │   │   └── simple-wc-demo.js
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── simple-wc.js
│   │   └── test/
│   │       └── simple-wc.test.js
│   ├── social-share-link/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── social-share-link.js
│   │   └── test/
│   │       └── social-share-link.test.js
│   ├── sorting-question/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── sorting-option.js
│   │   │   └── sorting-question.haxProperties.json
│   │   ├── locales/
│   │   │   ├── sorting-question.es.json
│   │   │   ├── sorting-question.he.json
│   │   │   └── sorting-question.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── sorting-question.js
│   │   └── test/
│   │       └── sorting-question.test.js
│   ├── spacebook-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── spacebook-theme.js
│   │   ├── test/
│   │   │   └── spacebook-theme.test.js
│   │   └── web-dev-server.config.mjs
│   ├── spotify-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── spotify-embed.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── spotify-embed.js
│   │   └── test/
│   │       └── spotify-embed.test.js
│   ├── star-rating/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── star-rating.js
│   │   └── test/
│   │       └── star-rating.test.js
│   ├── stop-note/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── iconsets.json
│   │   │   └── stop-note.haxProperties.json
│   │   ├── locales/
│   │   │   └── stop-note.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── stop-note.js
│   │   └── test/
│   │       └── stop-note.test.js
│   ├── super-daemon/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── super-daemon-row.js
│   │   │   ├── super-daemon-search.js
│   │   │   ├── super-daemon-toast.js
│   │   │   └── super-daemon-ui.js
│   │   ├── locales/
│   │   │   ├── super-daemon.af.json
│   │   │   ├── super-daemon.am.json
│   │   │   ├── super-daemon.ar.json
│   │   │   ├── super-daemon.az.json
│   │   │   ├── super-daemon.be.json
│   │   │   ├── super-daemon.bn.json
│   │   │   ├── super-daemon.cs.json
│   │   │   ├── super-daemon.de.json
│   │   │   ├── super-daemon.el.json
│   │   │   ├── super-daemon.en.json
│   │   │   ├── super-daemon.es.json
│   │   │   ├── super-daemon.eu.json
│   │   │   ├── super-daemon.fi.json
│   │   │   ├── super-daemon.fr.json
│   │   │   ├── super-daemon.he.json
│   │   │   ├── super-daemon.hi.json
│   │   │   ├── super-daemon.hy.json
│   │   │   ├── super-daemon.id.json
│   │   │   ├── super-daemon.it.json
│   │   │   ├── super-daemon.ja.json
│   │   │   ├── super-daemon.ko.json
│   │   │   ├── super-daemon.ms.json
│   │   │   ├── super-daemon.nl.json
│   │   │   ├── super-daemon.no.json
│   │   │   ├── super-daemon.pl.json
│   │   │   ├── super-daemon.pt.json
│   │   │   ├── super-daemon.ro.json
│   │   │   ├── super-daemon.ru.json
│   │   │   ├── super-daemon.sq.json
│   │   │   ├── super-daemon.sv.json
│   │   │   ├── super-daemon.th.json
│   │   │   ├── super-daemon.tr.json
│   │   │   ├── super-daemon.uk.json
│   │   │   ├── super-daemon.ur.json
│   │   │   ├── super-daemon.vi.json
│   │   │   └── super-daemon.zh.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── super-daemon.js
│   │   └── test/
│   │       └── super-daemon.test.js
│   ├── tagging-question/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── _.gitignore
│   │   ├── _.npmignore
│   │   ├── custom-elements.json
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── tagging-question.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── tagging-question.js
│   │   └── test/
│   │       ├── index.html
│   │       ├── tagging-question.test.js
│   │       └── tagging-question_test.html
│   ├── terrible-themes/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── terrible-best-themes.js
│   │   │   ├── terrible-outlet-themes.js
│   │   │   ├── terrible-productionz-themes.js
│   │   │   └── terrible-resume-themes.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── terrible-themes.js
│   │   └── test/
│   │       └── terrible-themes.test.js
│   ├── training-theme/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   ├── training-button.js
│   │   │   └── training-top.js
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── training-theme.test.js
│   │   └── training-theme.js
│   ├── twitter-embed/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── twitter-embed-vanilla.js
│   │   │   └── twitter-embed.haxProperties.json
│   │   ├── locales/
│   │   │   └── twitter-embed.haxProperties.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── twitter-embed.test.js
│   │   └── twitter-embed.js
│   ├── type-writer/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── type-writer.test.js
│   │   └── type-writer.js
│   ├── un-sdg/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── un-sdg.haxProperties.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── un-sdg.test.js
│   │   ├── un-sdg.js
│   │   └── web-dev-server.config.mjs
│   ├── undo-manager/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── undo-manager.test.js
│   │   └── undo-manager.js
│   ├── unity-webgl/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── example/
│   │   │   │   ├── build web.data.unityweb
│   │   │   │   ├── build web.framework.js.unityweb
│   │   │   │   ├── build web.loader.js
│   │   │   │   └── build web.wasm.unityweb
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── unity-webgl.test.js
│   │   └── unity-webgl.js
│   ├── user-action/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── UserActionBroker.js
│   │   │   └── user-action.haxProperties.json
│   │   ├── locales/
│   │   │   └── user-action.haxProperties.es.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── user-action.test.js
│   │   └── user-action.js
│   ├── user-scaffold/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── .gitkeep
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── user-scaffold.test.js
│   │   └── user-scaffold.js
│   ├── utils/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── lib/
│   │   │   ├── activeStateBehavior.js
│   │   │   ├── demo/
│   │   │   │   └── index.html
│   │   │   ├── gSheetsInterface.js
│   │   │   ├── marked.js
│   │   │   ├── nodejs-fake-dom-polyfill.cjs
│   │   │   └── remoteLinkBehavior.js
│   │   ├── package.json
│   │   ├── test/
│   │   │   └── utils.test.js
│   │   ├── utils.js
│   │   └── web-dev-server.config.mjs
│   ├── video-player/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── audio-description.html
│   │   │   ├── index.html
│   │   │   ├── lecture-player.html
│   │   │   └── samples/
│   │   │       ├── HAXshort.vtt
│   │   │       ├── bueller.vtt
│   │   │       ├── sintel-de.vtt
│   │   │       ├── sintel-en.vtt
│   │   │       ├── sintel-es.vtt
│   │   │       ├── stclair-images.vtt
│   │   │       ├── stclair.srt
│   │   │       └── stclair.vtt
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── lecture-anchor.js
│   │   │   └── lecture-player.js
│   │   ├── locales/
│   │   │   ├── video-player.af.json
│   │   │   ├── video-player.am.json
│   │   │   ├── video-player.ar.json
│   │   │   ├── video-player.az.json
│   │   │   ├── video-player.be.json
│   │   │   ├── video-player.bg.json
│   │   │   ├── video-player.bn.json
│   │   │   ├── video-player.bs.json
│   │   │   ├── video-player.ca.json
│   │   │   ├── video-player.co.json
│   │   │   ├── video-player.cs.json
│   │   │   ├── video-player.cy.json
│   │   │   ├── video-player.da.json
│   │   │   ├── video-player.de.json
│   │   │   ├── video-player.el.json
│   │   │   ├── video-player.en.json
│   │   │   ├── video-player.eo.json
│   │   │   ├── video-player.es.json
│   │   │   ├── video-player.et.json
│   │   │   ├── video-player.eu.json
│   │   │   ├── video-player.fa.json
│   │   │   ├── video-player.fi.json
│   │   │   ├── video-player.fo.json
│   │   │   ├── video-player.fr.json
│   │   │   ├── video-player.fy.json
│   │   │   ├── video-player.ga.json
│   │   │   ├── video-player.gl.json
│   │   │   ├── video-player.gn.json
│   │   │   ├── video-player.gu.json
│   │   │   ├── video-player.ha.json
│   │   │   ├── video-player.haw.json
│   │   │   ├── video-player.he.json
│   │   │   ├── video-player.hi.json
│   │   │   ├── video-player.hr.json
│   │   │   ├── video-player.hu.json
│   │   │   ├── video-player.hy.json
│   │   │   ├── video-player.id.json
│   │   │   ├── video-player.ig.json
│   │   │   ├── video-player.is.json
│   │   │   ├── video-player.it.json
│   │   │   ├── video-player.ja.json
│   │   │   ├── video-player.jv.json
│   │   │   ├── video-player.ka.json
│   │   │   ├── video-player.kk.json
│   │   │   ├── video-player.km.json
│   │   │   ├── video-player.kn.json
│   │   │   ├── video-player.ko.json
│   │   │   ├── video-player.ku.json
│   │   │   ├── video-player.ky.json
│   │   │   ├── video-player.lb.json
│   │   │   ├── video-player.lo.json
│   │   │   ├── video-player.lt.json
│   │   │   ├── video-player.lv.json
│   │   │   ├── video-player.mi.json
│   │   │   ├── video-player.mk.json
│   │   │   ├── video-player.ml.json
│   │   │   ├── video-player.mn.json
│   │   │   ├── video-player.mr.json
│   │   │   ├── video-player.ms.json
│   │   │   ├── video-player.mt.json
│   │   │   ├── video-player.my.json
│   │   │   ├── video-player.nb.json
│   │   │   ├── video-player.ne.json
│   │   │   ├── video-player.nl.json
│   │   │   ├── video-player.no.json
│   │   │   ├── video-player.ny.json
│   │   │   ├── video-player.om.json
│   │   │   ├── video-player.pa.json
│   │   │   ├── video-player.pl.json
│   │   │   ├── video-player.pnb.json
│   │   │   ├── video-player.ps.json
│   │   │   ├── video-player.pt.json
│   │   │   ├── video-player.qu.json
│   │   │   ├── video-player.ro.json
│   │   │   ├── video-player.ru.json
│   │   │   ├── video-player.sd.json
│   │   │   ├── video-player.si.json
│   │   │   ├── video-player.sk.json
│   │   │   ├── video-player.sl.json
│   │   │   ├── video-player.sn.json
│   │   │   ├── video-player.so.json
│   │   │   ├── video-player.sq.json
│   │   │   ├── video-player.sr.json
│   │   │   ├── video-player.sv.json
│   │   │   ├── video-player.sw.json
│   │   │   ├── video-player.ta.json
│   │   │   ├── video-player.te.json
│   │   │   ├── video-player.tg.json
│   │   │   ├── video-player.th.json
│   │   │   ├── video-player.tk.json
│   │   │   ├── video-player.tr.json
│   │   │   ├── video-player.tt.json
│   │   │   ├── video-player.uk.json
│   │   │   ├── video-player.ur.json
│   │   │   ├── video-player.uz.json
│   │   │   ├── video-player.vi.json
│   │   │   ├── video-player.wuu.json
│   │   │   ├── video-player.xh.json
│   │   │   ├── video-player.yi.json
│   │   │   ├── video-player.yo.json
│   │   │   ├── video-player.zh.json
│   │   │   └── video-player.zu.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── video-player.test.js
│   │   └── video-player.js
│   ├── vocab-term/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── .gitkeep
│   │   │   └── vocab-term.haxProperties.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── vocab-term.test.js
│   │   └── vocab-term.js
│   ├── voice-recorder/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── vmsg-fork.js
│   │   │   └── vmsg.wasm
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── voice-recorder.test.js
│   │   └── voice-recorder.js
│   ├── wc-autoload/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   ├── cantvas.html
│   │   │   ├── elmsln.html
│   │   │   ├── index.html
│   │   │   ├── mixed-registries.html
│   │   │   ├── multiple-registries.html
│   │   │   ├── thing1.json
│   │   │   ├── thing2.json
│   │   │   └── wc-registry-tag.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── wc-autoload.test.js
│   │   └── wc-autoload.js
│   ├── web-container/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .github/
│   │   │   └── workflows/
│   │   │       └── main.yml
│   │   ├── .gitignore
│   │   ├── .nojekyll
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── index.html
│   │   ├── lib/
│   │   │   ├── loading.html
│   │   │   ├── web-container-doc-player.haxProperties.json
│   │   │   ├── web-container-doc-player.js
│   │   │   ├── web-container-wc-registry-docs.js
│   │   │   └── web-container.haxProperties.json
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── rollup.config.js
│   │   ├── test/
│   │   │   └── web-container.test.js
│   │   ├── web-container.js
│   │   └── web-dev-server.config.mjs
│   ├── wikipedia-query/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── lib/
│   │   │   └── wikipedia-query.haxProperties.json
│   │   ├── locales/
│   │   │   ├── wikipedia-query.haxProperties.es.json
│   │   │   └── wikipedia-query.haxProperties.fr.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── wikipedia-query.test.js
│   │   └── wikipedia-query.js
│   ├── word-count/
│   │   ├── .dddignore
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .surgeignore
│   │   ├── .travis.yml
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── demo/
│   │   │   └── index.html
│   │   ├── gulpfile.cjs
│   │   ├── index.html
│   │   ├── locales/
│   │   │   ├── word-count.es.json
│   │   │   ├── word-count.fr.json
│   │   │   └── word-count.ja.json
│   │   ├── package.json
│   │   ├── polymer.json
│   │   ├── test/
│   │   │   └── word-count.test.js
│   │   └── word-count.js
│   └── wysiwyg-hax/
│       ├── .dddignore
│       ├── .editorconfig
│       ├── .gitignore
│       ├── .npmignore
│       ├── .surgeignore
│       ├── .travis.yml
│       ├── LICENSE.md
│       ├── README.md
│       ├── demo/
│       │   ├── index.html
│       │   └── sample-store.json
│       ├── gulpfile.cjs
│       ├── index.html
│       ├── package.json
│       ├── polymer.json
│       ├── test/
│       │   └── wysiwyg-hax.test.js
│       └── wysiwyg-hax.js
├── generate-theme-screenshots-with-server.js
├── generate-theme-screenshots.js
├── gulpfile.mjs
├── hax-elements-registry.json
├── lerna.json
├── package.json
├── patches/
│   ├── @lit-labs+ssr+3.2.2.patch
│   ├── @lit-labs+ssr+3.3.1.patch
│   └── polymer-build+3.1.4.patch
├── polymer.json
├── prettier.config.cjs
├── publishnpm.sh
├── renovate.json
├── scripts/
│   ├── build-component-gallery.js
│   ├── gallery-dev-server.js
│   ├── generate-translation-manifest.js
│   ├── hax-elements-discovery.js
│   ├── haxthewebme.ps1
│   ├── haxthewebme.sh
│   ├── postinstall.js
│   ├── preinstall.js
│   ├── stats.sh
│   ├── theme-discovery.js
│   ├── ubiquity-push.sh
│   └── ubiquity-testing.sh
├── signatures/
│   └── version1/
│       └── cla.json
├── utilities/
│   ├── package.json
│   └── requestHelpers.js
├── vercel.json
├── wc-registry.json
├── wct.conf.json
├── web-dev-server.config.mjs
├── web-dev-server.haxcms.config.cjs
└── web-test-runner.config.mjs
Download .txt
Showing preview only (1,140K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (15302 symbols across 732 files)

FILE: api/hydrateSsr.js
  function handler (line 12) | async function handler(req, res) {

FILE: automate-theme-screenshots.js
  constant THEMES_JSON_PATH (line 19) | const THEMES_JSON_PATH = join(__dirname, 'elements/haxcms-elements/lib/t...
  constant SCREENSHOTS_DIR (line 20) | const SCREENSHOTS_DIR = join(dirname(THEMES_JSON_PATH), 'theme-screensho...

FILE: build-haxcms.js
  function haxcmsFallbackStylesError (line 93) | function haxcmsFallbackStylesError(e) {

FILE: build.js
  function animationPolyfillTest (line 1) | function animationPolyfillTest(){if(!Element.prototype.animate){var ani=...

FILE: elements/a11y-behaviors/a11y-behaviors.js
  method getTextContrastColor (line 8) | getTextContrastColor(bgColor) {
  method computeTextPropContrast (line 33) | computeTextPropContrast(textprop, bgprop) {

FILE: elements/a11y-behaviors/test/a11y-behaviors.test.js
  class TestA11yBehaviors (line 6) | class TestA11yBehaviors extends A11yBehaviors(LitElement) {
    method properties (line 7) | static get properties() {
    method constructor (line 14) | constructor() {
    method render (line 20) | render() {
    method set (line 34) | set(prop, value) {
    method tag (line 38) | static get tag() {

FILE: elements/a11y-carousel/a11y-carousel.js
  class a11yCarousel (line 12) | class a11yCarousel extends RadioBehaviors(LitElement) {
    method styles (line 14) | static get styles() {
    method render (line 106) | render() {
    method properties (line 152) | static get properties() {
    method tag (line 176) | static get tag() {
    method constructor (line 179) | constructor() {
    method __query (line 190) | get __query() {
    method __selected (line 198) | get __selected() {
    method __selectEvent (line 205) | get __selectEvent() {
    method first (line 214) | get first() {
    method prev (line 224) | get prev() {
    method last (line 236) | get last() {
    method next (line 248) | get next() {
    method firstUpdated (line 254) | firstUpdated(changedProperties) {
    method _getImage (line 264) | _getImage() {
    method _handleSelectionChange (line 274) | _handleSelectionChange() {

FILE: elements/a11y-carousel/lib/a11y-carousel-button.js
  class a11yCarouselButton (line 8) | class a11yCarouselButton extends LitElement {
    method styles (line 10) | static get styles() {
    method render (line 35) | render() {
    method properties (line 39) | static get properties() {
    method tag (line 73) | static get tag() {
    method constructor (line 76) | constructor() {
    method disconnectedCallback (line 87) | disconnectedCallback() {
    method updated (line 93) | updated(changedProperties) {
    method _handleClick (line 106) | _handleClick(e) {

FILE: elements/a11y-collapse/a11y-collapse.js
  class A11yCollapse (line 8) | class A11yCollapse extends DDD {
    method styles (line 9) | static get styles() {
    method render (line 172) | render() {
    method tag (line 191) | static get tag() {
    method properties (line 195) | static get properties() {
    method constructor (line 282) | constructor() {
    method haxProperties (line 297) | static get haxProperties() {
    method connectedCallback (line 301) | connectedCallback() {
    method disconnectedCallback (line 323) | disconnectedCallback() {
    method collapse (line 343) | collapse() {
    method toggle (line 353) | toggle(open = !this.expanded) {
    method updated (line 357) | updated(changedProperties) {
    method _fireToggleEvents (line 369) | _fireToggleEvents() {
    method _getExpanded (line 437) | _getExpanded(defaultProp, expandedProp, expanded) {
    method _makeHeadingButton (line 444) | _makeHeadingButton() {
    method _makeIconButton (line 493) | _makeIconButton() {
    method _onClick (line 535) | _onClick() {
    method _makeAccordionButton (line 559) | _makeAccordionButton() {

FILE: elements/a11y-collapse/lib/a11y-collapse-group.js
  class A11yCollapseGroup (line 21) | class A11yCollapseGroup extends LitElement {
    method styles (line 22) | static get styles() {
    method render (line 45) | render() {
    method constructor (line 48) | constructor() {
    method tag (line 74) | static get tag() {
    method properties (line 78) | static get properties() {
    method haxProperties (line 109) | static get haxProperties() {
    method items (line 113) | get items() {
    method _attachItem (line 121) | _attachItem(item) {
    method updated (line 130) | updated(changedProperties) {
    method _updateItem (line 137) | _updateItem(item, propName, oldValue = undefined) {
    method _detachItem (line 157) | _detachItem(item) {
    method radioToggle (line 169) | radioToggle(item) {

FILE: elements/a11y-compare-image/a11y-compare-image.js
  class a11yCompareImage (line 10) | class a11yCompareImage extends SimpleColors {
    method styles (line 14) | static get styles() {
    method constructor (line 95) | constructor() {
    method render (line 104) | render() {
    method _valueChanged (line 142) | _valueChanged(e) {
    method tag (line 145) | static get tag() {
    method properties (line 148) | static get properties() {
    method firstUpdated (line 181) | firstUpdated(changedProperties) {
    method updated (line 186) | updated(changedProperties) {
    method _slide (line 197) | _slide() {
    method _updateMarkers (line 242) | _updateMarkers(total) {

FILE: elements/a11y-details/a11y-details.js
  class A11yDetails (line 56) | class A11yDetails extends LitElement {
    method styles (line 58) | static get styles() {
    method render (line 177) | render() {
    method haxProperties (line 195) | static get haxProperties() {
    method properties (line 269) | static get properties() {
    method tag (line 298) | static get tag() {
    method constructor (line 303) | constructor() {
    method disconnectedCallback (line 312) | disconnectedCallback() {
    method firstUpdated (line 316) | firstUpdated() {
    method details (line 327) | get details() {
    method summaryClasses (line 338) | get summaryClasses() {
    method observer (line 354) | get observer() {
    method detailsObserver (line 364) | get detailsObserver() {
    method _handleClick (line 374) | _handleClick(e) {
    method _handleKeyup (line 387) | _handleKeyup(e) {
    method toggleOpen (line 402) | toggleOpen() {
    method _updateElement (line 416) | _updateElement() {
    method _watchChildren (line 433) | _watchChildren(mutationsList) {
    method _hasMutations (line 457) | _hasMutations(mutationsList, nodeListType = "addedNodes") {
    method _copyToSlot (line 478) | _copyToSlot(slotName, clone, tagName = "span") {
    method _getSlot (line 500) | _getSlot(slotName, tagName = "span") {

FILE: elements/a11y-figure/a11y-figure.js
  class A11yFigure (line 58) | class A11yFigure extends A11yDetails {
    method styles (line 60) | static get styles() {
    method render (line 106) | render() {
    method haxProperties (line 131) | static get haxProperties() {
    method properties (line 231) | static get properties() {
    method tag (line 252) | static get tag() {
    method constructor (line 257) | constructor() {
    method observer (line 267) | get observer() {
    method figureObserver (line 277) | get figureObserver() {
    method _updateElement (line 286) | _updateElement() {
    method _copyAndFilter (line 309) | _copyAndFilter(clone, nodenames = [], i = 0) {
    method _watchChildren (line 327) | _watchChildren(mutationsList) {

FILE: elements/a11y-gif-player/a11y-gif-player.js
  class A11yGifPlayer (line 37) | class A11yGifPlayer extends I18NMixin(
    method constructor (line 40) | constructor() {
    method styles (line 58) | static get styles() {
    method __imageLoaded (line 140) | __imageLoaded(e) {
    method render (line 143) | render() {
    method tag (line 206) | static get tag() {
    method properties (line 212) | static get properties() {
    method updated (line 271) | updated(changedProperties) {
    method generateStill (line 302) | async generateStill(src) {
    method observer (line 321) | get observer() {
    method connectedCallback (line 325) | connectedCallback() {
    method disconnectedCallback (line 347) | disconnectedCallback() {
    method play (line 355) | play() {
    method stop (line 361) | stop() {
    method toggle (line 367) | toggle() {
    method toggleAnimation (line 377) | toggleAnimation() {
    method _updateFromSlot (line 387) | _updateFromSlot() {
    method haxProperties (line 410) | static get haxProperties() {

FILE: elements/a11y-media-player/a11y-media-player.js
  class A11yMediaPlayer (line 108) | class A11yMediaPlayer extends I18NMixin(FullscreenBehaviors(DDD)) {
    method styles (line 110) | static get styles() {
    method render (line 933) | render() {
    method properties (line 1414) | static get properties() {
    method tag (line 1816) | static get tag() {
    method _getTranslation (line 1826) | _getTranslation(key, fallback) {
    method constructor (line 1830) | constructor() {
    method anchor (line 1946) | get anchor() {
    method aspect (line 1959) | get aspect() {
    method audioNoThumb (line 1972) | get audioNoThumb() {
    method buffered (line 1984) | get buffered() {
    method captionCues (line 1995) | get captionCues() {
    method captionsPicker (line 2019) | get captionsPicker() {
    method captionsTrackKey (line 2037) | get captionsTrackKey() {
    method cues (line 2044) | get cues() {
    method duration (line 2053) | get duration() {
    method flexLayout (line 2067) | get flexLayout() {
    method fullFlex (line 2081) | get fullFlex() {
    method fullscreenButton (line 2093) | get fullscreenButton() {
    method hasCaptions (line 2105) | get hasCaptions() {
    method isYoutube (line 2114) | get isYoutube() {
    method loadedTracks (line 2123) | get loadedTracks() {
    method media (line 2131) | get media() {
    method mediaCaption (line 2140) | get mediaCaption() {
    method mediaEnd (line 2162) | get mediaEnd() {
    method mediaMaxWidth (line 2173) | get mediaMaxWidth() {
    method mediaSeekable (line 2186) | get mediaSeekable() {
    method mediaStart (line 2197) | get mediaStart() {
    method playing (line 2208) | get playing() {
    method playerStyle (line 2217) | get playerStyle() {
    method poster (line 2235) | get poster() {
    method printCaption (line 2254) | get printCaption() {
    method currentTime (line 2277) | get currentTime() {
    method shareLink (line 2293) | get shareLink() {
    method showCustomCaptions (line 2307) | get showCustomCaptions() {
    method status (line 2317) | get status() {
    method stickyMode (line 2335) | get stickyMode() {
    method initialTimecode (line 2344) | get initialTimecode() {
    method transcriptCues (line 2357) | get transcriptCues() {
    method transcriptPicker (line 2368) | get transcriptPicker() {
    method transcriptTrackKey (line 2386) | get transcriptTrackKey() {
    method videoData (line 2390) | get videoData() {
    method videoId (line 2404) | get videoId() {
    method youtube (line 2413) | get youtube() {
    method _setAttribute (line 2419) | _setAttribute(attr, val) {
    method updated (line 2430) | updated(changedProperties) {
    method _captionsChanged (line 2520) | _captionsChanged() {
    method _captionsOptionChanged (line 2534) | _captionsOptionChanged() {
    method _handleMuteChanged (line 2546) | _handleMuteChanged() {
    method download (line 2568) | download() {
    method goToYoutube (line 2611) | goToYoutube() {
    method print (line 2619) | print() {
    method play (line 2680) | play() {
    method pause (line 2712) | pause() {
    method stop (line 2732) | stop() {
    method restart (line 2752) | restart() {
    method rewind (line 2773) | rewind(amt) {
    method forward (line 2794) | forward(amt) {
    method seek (line 2815) | seek(time = 0) {
    method selectCaptionByKeyEvent (line 2858) | selectCaptionByKeyEvent(e) {
    method selectCaptionByKey (line 2864) | selectCaptionByKey(id) {
    method selectTranscriptByKeyEvent (line 2872) | selectTranscriptByKeyEvent(e) {
    method selectTranscriptByKey (line 2881) | selectTranscriptByKey(id) {
    method getloadedTracks (line 2891) | getloadedTracks() {
    method _getTrack (line 2970) | _getTrack(track) {
    method selectTranscript (line 2986) | selectTranscript(track) {
    method setPlaybackRate (line 2994) | setPlaybackRate(value) {
    method setVolume (line 3015) | setVolume(value = 70) {
    method toggleCC (line 3038) | toggleCC(mode) {
    method fullscreenTarget (line 3059) | get fullscreenTarget() {
    method toggleFullscreen (line 3069) | toggleFullscreen(mode) {
    method toggleLoop (line 3090) | toggleLoop(mode) {
    method togglePlay (line 3112) | togglePlay() {
    method toggleMute (line 3136) | toggleMute(mode) {
    method toggleSettings (line 3151) | toggleSettings(mode) {
    method _toggleAudioDescription (line 3171) | _toggleAudioDescription(e) {
    method _handleAudioDescriptionButtonClick (line 3194) | _handleAudioDescriptionButtonClick() {
    method toggleSticky (line 3213) | toggleSticky(mode) {
    method toggleTranscript (line 3236) | toggleTranscript(mode) {
    method _addSourcesAndTracks (line 3258) | _addSourcesAndTracks(media) {
    method _handleCloseLink (line 3286) | _handleCloseLink() {
    method _handleCopyLink (line 3297) | _handleCopyLink() {
    method _handleCueSeek (line 3319) | _handleCueSeek(cue) {
    method _handleMediaLoaded (line 3328) | _handleMediaLoaded(e) {
    method _handleSearchAdded (line 3343) | _handleSearchAdded(e) {
    method _handleSpeedChanged (line 3351) | _handleSpeedChanged(e) {
    method _handleSliderDragging (line 3360) | _handleSliderDragging(e) {
    method _handleSliderChanged (line 3381) | _handleSliderChanged(e) {
    method _handleTimeUpdate (line 3393) | _handleTimeUpdate() {
    method _getTrackId (line 3413) | _getTrackId(track) {
    method _handleVolumeChanged (line 3425) | _handleVolumeChanged(e) {
    method _onAddTrack (line 3434) | _onAddTrack(track) {
    method _onRemoveTrack (line 3455) | _onRemoveTrack(track) {
    method firstUpdated (line 3464) | firstUpdated(changedProperties) {
    method _setActiveCue (line 3515) | _setActiveCue(e) {
    method _transcriptScroll (line 3543) | _transcriptScroll(e) {
    method _getHHMMSS (line 3555) | _getHHMMSS(val, max) {
    method _onSettingsKeydown (line 3575) | _onSettingsKeydown(event) {
    method _onSettingsDocumentClick (line 3588) | _onSettingsDocumentClick(event) {
    method _getSeconds (line 3617) | _getSeconds(time = 0) {
    method disconnectedCallback (line 3628) | disconnectedCallback() {

FILE: elements/a11y-media-player/lib/a11y-media-button.js
  class A11yMediaButton (line 14) | class A11yMediaButton extends LitElement {
    method properties (line 16) | static get properties() {
    method tag (line 84) | static get tag() {
    method constructor (line 89) | constructor() {
    method styles (line 100) | static get styles() {
    method buttonStyles (line 154) | static get buttonStyles() {
    method render (line 179) | render() {
    method _buttonClick (line 206) | _buttonClick(e) {

FILE: elements/a11y-media-player/lib/a11y-media-play-button.js
  class A11yMediaPlayButton (line 19) | class A11yMediaPlayButton extends A11yMediaButton {
    method constructor (line 21) | constructor() {
    method tag (line 29) | static get tag() {
    method styles (line 33) | static get styles() {
    method properties (line 81) | static get properties() {
    method render (line 92) | render() {

FILE: elements/a11y-media-player/lib/a11y-media-state-manager.js
  class A11yMediaStateManager (line 27) | class A11yMediaStateManager extends LitElement {
    method tag (line 31) | static get tag() {
    method properties (line 36) | static get properties() {
    method constructor (line 57) | constructor() {
    method checkConcurrentPlayers (line 74) | checkConcurrentPlayers() {
    method setActivePlayer (line 94) | setActivePlayer(player) {
    method observer (line 107) | get observer() {
    method _handleIntersect (line 129) | _handleIntersect(entries, observer) {
    method setStickyPlayer (line 145) | setStickyPlayer(player) {
    method _handleFullscreen (line 156) | _handleFullscreen(player) {
    method connectedCallback (line 160) | connectedCallback() {
    method disconnectedCallback (line 184) | disconnectedCallback() {

FILE: elements/a11y-media-player/lib/a11y-media-transcript-cue.js
  class A11yMediaTranscriptCue (line 28) | class A11yMediaTranscriptCue extends LitElement {
    method properties (line 30) | static get properties() {
    method tag (line 76) | static get tag() {
    method constructor (line 81) | constructor() {
    method styles (line 91) | static get styles() {
    method render (line 162) | render() {
    method updated (line 170) | updated(changedProperties) {

FILE: elements/a11y-media-player/lib/a11y-media-youtube.js
  class A11yMediaYoutube (line 25) | class A11yMediaYoutube extends LitElement {
    method tag (line 32) | static get tag() {
    method styles (line 37) | static get styles() {
    method render (line 48) | render() {
    method properties (line 53) | static get properties() {
    method constructor (line 148) | constructor() {
    method warmConnections (line 164) | static warmConnections() {
    method addPrefetch (line 190) | static addPrefetch(kind, url, as) {
    method api (line 204) | get api() {
    method buffered (line 224) | get buffered() {
    method currentTime (line 235) | get currentTime() {
    method duration (line 246) | get duration() {
    method paused (line 255) | get paused() {
    method seekable (line 266) | get seekable() {
    method init (line 280) | init() {
    method updated (line 297) | updated(changedProperties) {
    method play (line 335) | play() {
    method pause (line 356) | pause() {
    method seek (line 364) | seek(time = 0) {
    method setLoop (line 375) | setLoop(loop) {
    method setMute (line 383) | setMute(muted) {
    method setPlaybackRate (line 397) | setPlaybackRate(value) {
    method setVolume (line 407) | setVolume(volume = 0.7) {
    method _getSeconds (line 415) | _getSeconds(time = 0) {
    method _handleMediaStateChange (line 430) | _handleMediaStateChange(e) {
    method _handleMediaLoaded (line 444) | _handleMediaLoaded(e) {
    method _handleTimeupdate (line 459) | _handleTimeupdate() {
    method _autoMetadata (line 473) | _autoMetadata() {
    method _loadVideo (line 497) | _loadVideo(preload = this.preload) {
    method _preloadVideo (line 507) | _preloadVideo(auto = false) {
    method _removeIframe (line 566) | _removeIframe() {
    method connectedCallback (line 577) | connectedCallback() {
    method disconnectedCallback (line 581) | disconnectedCallback() {

FILE: elements/a11y-menu-button/a11y-menu-button.js
  method menuButtonCoreStyles (line 18) | static get menuButtonCoreStyles() {
  method menuButtonThemeStyles (line 65) | static get menuButtonThemeStyles() {
  method styles (line 135) | static get styles() {
  method render (line 138) | render() {
  method tag (line 142) | static get tag() {
  method properties (line 145) | static get properties() {
  method constructor (line 228) | constructor() {
  method menuTemplate (line 263) | get menuTemplate() {
  method buttonTemplate (line 293) | get buttonTemplate() {
  method listItemTemplate (line 311) | get listItemTemplate() {
  method keyCode (line 320) | get keyCode() {
  method close (line 342) | close(force = false) {
  method open (line 373) | open() {
  method focus (line 399) | focus() {
  method focusOn (line 410) | focusOn(item) {
  method focusByCharacter (line 425) | focusByCharacter(char) {
  method firstItem (line 463) | get firstItem() {
  method previousItem (line 472) | get previousItem() {
  method nextItem (line 481) | get nextItem() {
  method lastItem (line 490) | get lastItem() {
  method firstChars (line 498) | get firstChars() {
  method getItemIndex (line 509) | getItemIndex() {
  method getItem (line 522) | getItem(offset = 1) {
  method _onDocumentClick (line 534) | _onDocumentClick(event) {
  method itemListeners (line 552) | get itemListeners() {
  method addItem (line 567) | addItem(item) {
  method removeItem (line 580) | removeItem(item) {
  method _handleAddItem (line 595) | _handleAddItem(event) {
  method _handleRemoveItem (line 606) | _handleRemoveItem(event) {
  method _handleItemClick (line 617) | _handleItemClick(event) {
  method _excludeEvent (line 639) | _excludeEvent(event) {
  method _handleItemKeydown (line 650) | _handleItemKeydown(event) {
  method _handleKeydown (line 774) | _handleKeydown(event) {
  method _handleClick (line 830) | _handleClick(event) {
  method _handleFocus (line 849) | _handleFocus(event) {
  method _handleBlur (line 859) | _handleBlur(event) {
  method _handleMouseover (line 884) | _handleMouseover(event) {
  method _handleMouseout (line 895) | _handleMouseout(event) {
  method disconnectedCallback (line 899) | disconnectedCallback() {
  class A11yMenuButton (line 958) | class A11yMenuButton extends A11yMenuButtonBehaviors(LitElement) {}

FILE: elements/a11y-menu-button/lib/a11y-menu-button-item.js
  method styles (line 9) | static get styles() {
  method render (line 95) | render() {
  method tag (line 101) | static get tag() {
  method properties (line 104) | static get properties() {
  method constructor (line 142) | constructor() {
  method linkTemplate (line 151) | get linkTemplate() {
  method buttonTemplate (line 168) | get buttonTemplate() {
  method menuItem (line 187) | get menuItem() {
  method focus (line 197) | focus() {
  method connectedCallback (line 200) | connectedCallback() {
  method disconnectedCallback (line 215) | disconnectedCallback() {
  class A11yMenuButtonItem (line 266) | class A11yMenuButtonItem extends A11yMenuButtonItemBehaviors(LitElement) {}

FILE: elements/a11y-tabs/a11y-tabs.js
  class A11yTabs (line 87) | class A11yTabs extends ResponsiveUtilityBehaviors(LitElement) {
    method A11yTabsCoreStyles (line 88) | static get A11yTabsCoreStyles() {
    method A11yTabsThemeStyles (line 203) | static get A11yTabsThemeStyles() {
    method styles (line 369) | static get styles() {
    method render (line 374) | render() {
    method haxProperties (line 389) | static get haxProperties() {
    method properties (line 395) | static get properties() {
    method tag (line 508) | static get tag() {
    method constructor (line 511) | constructor() {
    method buttons (line 522) | get buttons() {
    method iconsOnly (line 530) | get iconsOnly() {
    method observer (line 543) | get observer() {
    method tabQuery (line 555) | get tabQuery() {
    method tabs (line 564) | get tabs() {
    method vertical (line 577) | get vertical() {
    method connectedCallback (line 586) | connectedCallback() {
    method firstUpdated (line 594) | firstUpdated(changedProperties) {
    method disconnectedCallback (line 606) | disconnectedCallback() {
    method updated (line 614) | updated(changedProperties) {
    method selectTab (line 639) | selectTab(id) {
    method updateTabs (line 656) | updateTabs(e) {
    method _activeTabChanged (line 665) | _activeTabChanged(newValue, oldValue) {
    method _generateUUID (line 685) | _generateUUID() {
    method _handleTab (line 697) | _handleTab(tab) {
    method _handleKey (line 700) | _handleKey(i, e) {
    method _idChanged (line 736) | _idChanged(newValue, oldValue) {
    method _tabButton (line 747) | _tabButton(tab, i) {
    method _tabFlag (line 780) | _tabFlag(tab) {
    method _tabIcon (line 795) | _tabIcon(tab, icon) {
    method _tabLabel (line 825) | _tabLabel(tab) {
    method _tabTooltip (line 837) | _tabTooltip(tab) {

FILE: elements/a11y-tabs/lib/a11y-tab.js
  class A11yTab (line 26) | class A11yTab extends LitElement {
    method styles (line 27) | static get styles() {
    method render (line 79) | render() {
    method haxProperties (line 100) | static get haxProperties() {
    method properties (line 157) | static get properties() {
    method constructor (line 239) | constructor() {
    method observer (line 256) | get observer() {
    method xOfY (line 266) | get xOfY() {
    method connectedCallback (line 270) | connectedCallback() {
    method disconnectedCallback (line 276) | disconnectedCallback() {
    method updated (line 285) | updated(changedProperties) {
    method tag (line 306) | static get tag() {
    method _handleFlag (line 314) | _handleFlag(e) {
    method _labelChanged (line 321) | _labelChanged() {
    method _fireTabChanged (line 331) | _fireTabChanged() {

FILE: elements/absolute-position-behavior/absolute-position-behavior.js
  method styles (line 14) | static get styles() {
  method render (line 36) | render() {
  method properties (line 41) | static get properties() {
  method tag (line 142) | static get tag() {
  method constructor (line 146) | constructor() {
  method updated (line 162) | updated(changedProperties) {
  method setPosition (line 196) | setPosition() {
  method unsetPosition (line 207) | unsetPosition() {
  method updatePosition (line 218) | updatePosition() {
  method disconnectedCallback (line 234) | disconnectedCallback() {
  class AbsolutePositionBehavior (line 247) | class AbsolutePositionBehavior extends AbsolutePositionBehaviorClass(

FILE: elements/absolute-position-behavior/lib/absolute-position-state-manager.js
  class AbsolutePositionStateManager (line 31) | class AbsolutePositionStateManager extends LitElement {
    method tag (line 35) | static get tag() {
    method properties (line 40) | static get properties() {
    method constructor (line 75) | constructor() {
    method loadElement (line 89) | loadElement(el) {
    method unloadElement (line 123) | unloadElement(el) {
    method _handleScroll (line 131) | _handleScroll() {
    method _handleResize (line 142) | _handleResize() {
    method checkMutations (line 159) | checkMutations(mutations) {
    method findTarget (line 193) | findTarget(el) {
    method removeEventListeners (line 217) | removeEventListeners() {
    method updateElements (line 229) | updateElements() {
    method updateStickyElements (line 237) | updateStickyElements() {
    method loadSticky (line 247) | loadSticky() {
    method _getParentNode (line 270) | _getParentNode(node) {
    method positionElement (line 287) | positionElement(el) {
    method disconnectedCallback (line 440) | disconnectedCallback() {

FILE: elements/accent-card/accent-card.js
  class AccentCard (line 24) | class AccentCard extends IntersectionObserverMixin(DDD) {
    method tag (line 29) | static get tag() {
    method styles (line 33) | static get styles() {
    method render (line 321) | render() {
    method haxProperties (line 374) | static get haxProperties() {
    method constructor (line 542) | constructor() {
    method firstUpdated (line 559) | firstUpdated(changedProperties) {
    method properties (line 567) | static get properties() {

FILE: elements/aframe-player/aframe-player.js
  class AframePlayer (line 15) | class AframePlayer extends SchemaBehaviors(LitElement) {
    method styles (line 19) | static get styles() {
    method render (line 32) | render() {
    method tag (line 47) | static get tag() {
    method constructor (line 50) | constructor() {
    method updated (line 63) | updated(changedProperties) {
    method properties (line 79) | static get properties() {
    method createRenderRoot (line 139) | createRenderRoot() {
    method disconnectedCallback (line 142) | disconnectedCallback() {
    method haxProperties (line 146) | static get haxProperties() {
    method connectedCallback (line 230) | connectedCallback() {
    method _aframeLoaded (line 245) | _aframeLoaded(el) {
    method _computePosition (line 257) | _computePosition(x, y, z, width, height) {
    method _positionChanged (line 268) | _positionChanged(position) {

FILE: elements/ai-usage-license/ai-usage-license.js
  class AiUsageLicense (line 16) | class AiUsageLicense extends I18NMixin(DDDSuper(LitElement)) {
    method styles (line 20) | static get styles() {
    method render (line 71) | render() {
    method tag (line 108) | static get tag() {
    method properties (line 112) | static get properties() {
    method constructor (line 165) | constructor() {
    method _setAIULData (line 178) | async _setAIULData() {
    method _getHaxSelectOptions (line 198) | _getHaxSelectOptions() {
    method updated (line 219) | updated(changedProperties) {
    method haxHooks (line 229) | haxHooks() {
    method haxsetupActiveElementForm (line 235) | async haxsetupActiveElementForm(props) {
    method haxProperties (line 248) | static get haxProperties() {
    method _licenseUpdated (line 313) | async _licenseUpdated(license, modifier) {

FILE: elements/air-horn/air-horn.js
  class AirHorn (line 16) | class AirHorn extends HTMLElement {
    method html (line 18) | get html() {
    method tag (line 35) | static get tag() {
    method constructor (line 41) | constructor(delayRender = false) {
    method _playSound (line 60) | _playSound(e) {
    method render (line 65) | render() {

FILE: elements/app-hax/app-hax.js
  function darkToggle (line 22) | function darkToggle(e) {
  function soundToggle (line 32) | function soundToggle() {
  class AppHax (line 38) | class AppHax extends I18NMixin(ResponsiveUtilityBehaviors(DDD)) {
    method tag (line 39) | static get tag() {
    method _syncResponsiveStoreState (line 43) | _syncResponsiveStoreState() {
    method _openExternalLink (line 53) | _openExternalLink(link) {
    method _haxStoreContribute (line 57) | async _haxStoreContribute(type, tags, daemonTerm = null) {
    method playSound (line 98) | playSound(sound = "coin2") {
    method _tokenRefreshFailed (line 132) | _tokenRefreshFailed(e) {
    method connectedCallback (line 146) | connectedCallback() {
    method goToLocation (line 171) | goToLocation(location) {
    method disconnectedCallback (line 175) | disconnectedCallback() {
    method constructor (line 180) | constructor() {
    method properties (line 601) | static get properties() {
    method reset (line 627) | reset(reload = false, logout = false) {
    method fireTerrible (line 660) | fireTerrible() {
    method fireHiddenTemplates (line 675) | fireHiddenTemplates() {
    method fireUnlocked (line 684) | fireUnlocked() {
    method logout (line 697) | logout() {
    method _jwtLoggedIn (line 710) | _jwtLoggedIn(e) {
    method login (line 725) | login() {
    method styles (line 777) | static get styles() {
    method updated (line 1370) | updated(changedProperties) {
    method firstUpdated (line 1391) | firstUpdated(changedProperties) {
    method toggleMenu (line 1461) | toggleMenu() {
    method closeMenu (line 1466) | closeMenu() {
    method _syncHeaderPreSlot (line 1470) | _syncHeaderPreSlot(e) {
    method _isDashboardModalOpen (line 1480) | _isDashboardModalOpen() {
    method _handleSuperDaemonClose (line 1507) | _handleSuperDaemonClose(e) {
    method openMerlin (line 1536) | openMerlin() {
    method render (line 1541) | render() {
    method siteReadyToGo (line 1647) | siteReadyToGo(e) {

FILE: elements/app-hax/lib/app-hax-theme.js
  class AppHaxTheme (line 36) | class AppHaxTheme extends HAXCMSRememberRoute(
    method styles (line 50) | static get styles() {
    method render (line 479) | render() {
    method tag (line 534) | static get tag() {
    method constructor (line 540) | constructor() {
    method firstUpdated (line 553) | firstUpdated(changedProperties) {
    method HAXCMSGlobalStyleSheetContent (line 568) | HAXCMSGlobalStyleSheetContent() {
    method disconnectedCallback (line 781) | disconnectedCallback() {

FILE: elements/app-hax/lib/random-word/random-word.js
  class RandomWord (line 3) | class RandomWord extends LitElement {
    method tag (line 4) | static get tag() {
    method constructor (line 8) | constructor() {
    method properties (line 15) | static get properties() {
    method updated (line 23) | updated(changedProperties) {
    method getNewWord (line 40) | getNewWord() {
    method render (line 49) | render() {

FILE: elements/app-hax/lib/rpg-character-toast/rpg-character-toast.js
  class RPGCharacterToast (line 14) | class RPGCharacterToast extends SimpleToastEl {
    method tag (line 15) | static get tag() {
    method constructor (line 19) | constructor() {
    method styles (line 40) | static get styles() {
    method properties (line 203) | static get properties() {
    method render (line 269) | render() {
    method updated (line 327) | updated(changedProperties) {
    method connectedCallback (line 342) | connectedCallback() {
    method hideSimpleToast (line 356) | hideSimpleToast(e) {
    method disconnectedCallback (line 365) | disconnectedCallback() {
    method showSimpleToast (line 373) | showSimpleToast(e) {
    method show (line 412) | show() {
    method hide (line 418) | hide() {

FILE: elements/app-hax/lib/v1/AppHaxBackendAPI.js
  class AppHaxBackendAPI (line 11) | class AppHaxBackendAPI extends LitElement {
    method tag (line 12) | static get tag() {
    method constructor (line 16) | constructor() {
    method properties (line 41) | static get properties() {
    method render (line 51) | render() {
    method jwtFailed (line 66) | jwtFailed(e) {
    method jwtChanged (line 71) | async jwtChanged(e) {
    method makeCall (line 88) | async makeCall(call, data = {}, save = false, callback = false) {
    method refreshRequest (line 171) | refreshRequest(jwt, response) {
    method firstUpdated (line 182) | firstUpdated(changedProperties) {
    method _formatSitePostData (line 197) | _formatSitePostData() {
    method updated (line 231) | updated(changedProperties) {

FILE: elements/app-hax/lib/v1/AppHaxRouter.js
  class AppHaxRouter (line 8) | class AppHaxRouter extends HTMLElement {
    method tag (line 13) | static get tag() {
    method constructor (line 20) | constructor() {
    method connectedCallback (line 49) | connectedCallback() {
    method disconnectedCallback (line 60) | disconnectedCallback() {
    method _updateRouter (line 67) | _updateRouter(routerItems) {
    method _routerLocationChanged (line 77) | _routerLocationChanged(e) {

FILE: elements/app-hax/lib/v1/AppHaxStore.js
  class Store (line 7) | class Store {
    method constructor (line 8) | constructor() {
    method setPageTitle (line 205) | setPageTitle(title) {
    method refreshSiteListing (line 211) | refreshSiteListing() {
    method activeSite (line 217) | get activeSite() {
    method evaluateBadDevice (line 229) | async evaluateBadDevice() {
    method stepTest (line 237) | stepTest(current) {
    method isLoggedIn (line 272) | get isLoggedIn() {
    method isNewUser (line 278) | get isNewUser() {
    method activeItem (line 285) | get activeItem() {
    method toast (line 302) | toast(msg, duration = 3000, extras = {}) {

FILE: elements/app-hax/lib/v1/app-hax-button.js
  class AppHaxButton (line 9) | class AppHaxButton extends LitElement {
    method tag (line 11) | static get tag() {
    method constructor (line 15) | constructor() {
    method _handleFocus (line 36) | _handleFocus() {
    method _handleBlur (line 43) | _handleBlur() {
    method _handleClick (line 50) | _handleClick() {
    method properties (line 56) | static get properties() {
    method firstUpdated (line 71) | firstUpdated(changedProperties) {
    method styles (line 148) | static get styles() {
    method render (line 243) | render() {

FILE: elements/app-hax/lib/v1/app-hax-hat-progress.js
  class AppHaxHatProgress (line 7) | class AppHaxHatProgress extends SimpleColors {
    method tag (line 8) | static get tag() {
    method constructor (line 12) | constructor() {
    method properties (line 24) | static get properties() {
    method process (line 31) | process() {
    method firstUpdated (line 35) | firstUpdated(changedProperties) {
    method styles (line 142) | static get styles() {
    method render (line 215) | render() {

FILE: elements/app-hax/lib/v1/app-hax-label.js
  class AppHaxLabel (line 4) | class AppHaxLabel extends LitElement {
    method tag (line 6) | static get tag() {
    method constructor (line 10) | constructor() {
    method properties (line 16) | static get properties() {
    method styles (line 24) | static get styles() {
    method render (line 80) | render() {

FILE: elements/app-hax/lib/v1/app-hax-search-bar.js
  class AppHaxSearchBar (line 6) | class AppHaxSearchBar extends LitElement {
    method tag (line 8) | static get tag() {
    method constructor (line 12) | constructor() {
    method properties (line 21) | static get properties() {
    method updated (line 29) | updated(changedProperties) {
    method styles (line 43) | static get styles() {
    method testKeydown (line 107) | testKeydown(e) {
    method search (line 113) | search() {
    method render (line 118) | render() {
    method toggleSearch (line 144) | toggleSearch() {

FILE: elements/app-hax/lib/v1/app-hax-search-results.js
  class AppHaxSearchResults (line 10) | class AppHaxSearchResults extends SimpleColors {
    method tag (line 12) | static get tag() {
    method constructor (line 16) | constructor() {
    method properties (line 39) | static get properties() {
    method updated (line 48) | updated(changedProperties) {
    method styles (line 71) | static get styles() {
    method render (line 125) | render() {
    method getItemDetails (line 173) | getItemDetails(item) {
    method openedChanged (line 183) | openedChanged(e) {

FILE: elements/app-hax/lib/v1/app-hax-site-bar.js
  class AppHaxSiteBars (line 16) | class AppHaxSiteBars extends SimpleColors {
    method tag (line 18) | static get tag() {
    method constructor (line 23) | constructor() {
    method properties (line 34) | static get properties() {
    method updated (line 48) | updated(changedProperties) {
    method styles (line 66) | static get styles() {
    method __clickButton (line 172) | __clickButton() {
    method render (line 177) | render() {

FILE: elements/app-hax/lib/v1/app-hax-site-button.js
  class AppHaxSiteButton (line 13) | class AppHaxSiteButton extends SimpleColors {
    method tag (line 15) | static get tag() {
    method constructor (line 20) | constructor() {
    method properties (line 36) | static get properties() {
    method styles (line 48) | static get styles() {
    method _handleFocus (line 104) | _handleFocus() {
    method _handleBlur (line 111) | _handleBlur() {
    method _handleClick (line 118) | _handleClick() {
    method render (line 125) | render() {

FILE: elements/app-hax/lib/v1/app-hax-site-details.js
  function makeSlug (line 9) | function makeSlug(url) {
  class AppHaxSiteDetails (line 21) | class AppHaxSiteDetails extends SimpleColors {
    method tag (line 23) | static get tag() {
    method constructor (line 28) | constructor() {
    method properties (line 53) | static get properties() {
    method styles (line 62) | static get styles() {
    method siteOperation (line 189) | siteOperation(e) {
    method cancelOperation (line 253) | cancelOperation() {
    method confirmOperation (line 265) | async confirmOperation() {
    method render (line 309) | render() {

FILE: elements/app-hax/lib/v1/app-hax-site-login.js
  class AppHaxSiteLogin (line 7) | class AppHaxSiteLogin extends SimpleColors {
    method tag (line 9) | static get tag() {
    method constructor (line 14) | constructor() {
    method properties (line 25) | static get properties() {
    method firstUpdated (line 36) | firstUpdated() {
    method styles (line 51) | static get styles() {
    method checkUsername (line 130) | checkUsername() {
    method checkPassword (line 143) | async checkPassword() {
    method reset (line 163) | reset() {
    method nameChange (line 170) | nameChange() {
    method connectedCallback (line 174) | connectedCallback() {
    method disconnectedCallback (line 186) | disconnectedCallback() {
    method _jwtLoginFailed (line 191) | _jwtLoginFailed(e) {
    method _jwtLoggedIn (line 196) | _jwtLoggedIn(e) {
    method passChange (line 218) | passChange(e) {
    method toggleViewPass (line 226) | toggleViewPass(e) {
    method render (line 234) | render() {

FILE: elements/app-hax/lib/v1/app-hax-steps.js
  class AppHaxSteps (line 41) | class AppHaxSteps extends SimpleColors {
    method tag (line 42) | static get tag() {
    method constructor (line 46) | constructor() {
    method properties (line 90) | static get properties() {
    method chooseStructure (line 113) | chooseStructure(e) {
    method chooseType (line 144) | chooseType(e) {
    method docxImport (line 152) | async docxImport(e) {
    method gbImport (line 208) | async gbImport(e) {
    method importFromURL (line 249) | async importFromURL(e) {
    method notionImport (line 290) | async notionImport(e) {
    method pressbooksImport (line 332) | async pressbooksImport(e) {
    method setProcessingVisual (line 388) | setProcessingVisual() {
    method chooseTheme (line 401) | chooseTheme(e) {
    method chooseName (line 410) | chooseName() {
    method progressReady (line 418) | progressReady(e) {
    method updated (line 429) | updated(changedProperties) {
    method connectedCallback (line 477) | connectedCallback() {
    method disconnectedCallback (line 487) | disconnectedCallback() {
    method popstateListener (line 493) | popstateListener(e) {
    method maintainScroll (line 519) | maintainScroll() {
    method firstUpdated (line 537) | firstUpdated(changedProperties) {
    method scrollToThing (line 610) | scrollToThing(sel, props) {
    method styles (line 627) | static get styles() {
    method progressFinished (line 851) | progressFinished(e) {
    method typeKey (line 865) | typeKey() {
    method keydown (line 868) | keydown(e) {
    method stepLinkClick (line 906) | stepLinkClick(e) {
    method renderTypes (line 943) | renderTypes(step) {
    method render (line 1048) | render() {

FILE: elements/app-hax/lib/v1/app-hax-toast.js
  class AppHaxToast (line 6) | class AppHaxToast extends RPGCharacterToast {
    method tag (line 7) | static get tag() {
    method styles (line 10) | static get styles() {
    method constructor (line 199) | constructor() {
    method connectedCallback (line 212) | connectedCallback() {
    method hideSimpleToast (line 227) | hideSimpleToast(e) {
    method disconnectedCallback (line 234) | disconnectedCallback() {

FILE: elements/app-hax/lib/v1/app-hax-top-bar.js
  class AppHaxTopBar (line 7) | class AppHaxTopBar extends LitElement {
    method tag (line 9) | static get tag() {
    method constructor (line 13) | constructor() {
    method properties (line 18) | static get properties() {
    method styles (line 28) | static get styles() {
    method render (line 123) | render() {

FILE: elements/app-hax/lib/v1/app-hax-user-menu-button.js
  class AppHaxUserMenuButton (line 6) | class AppHaxUserMenuButton extends LitElement {
    method tag (line 8) | static get tag() {
    method constructor (line 12) | constructor() {
    method properties (line 18) | static get properties() {
    method styles (line 25) | static get styles() {
    method render (line 61) | render() {

FILE: elements/app-hax/lib/v1/app-hax-user-menu.js
  class AppHaxUserMenu (line 7) | class AppHaxUserMenu extends LitElement {
    method tag (line 9) | static get tag() {
    method constructor (line 13) | constructor() {
    method properties (line 19) | static get properties() {
    method styles (line 26) | static get styles() {
    method render (line 86) | render() {

FILE: elements/app-hax/lib/v1/app-hax-wired-toggle.js
  class AppHAXWiredToggle (line 7) | class AppHAXWiredToggle extends SimpleTourFinder(WiredDarkmodeToggle) {
    method constructor (line 8) | constructor() {
    method tag (line 21) | static get tag() {
    method updated (line 25) | updated(changedProperties) {
    method render (line 36) | render() {

FILE: elements/app-hax/lib/v2/AppHaxBackendAPI.js
  class AppHaxBackendAPI (line 9) | class AppHaxBackendAPI extends LitElement {
    method tag (line 10) | static get tag() {
    method constructor (line 14) | constructor() {
    method properties (line 39) | static get properties() {
    method render (line 49) | render() {
    method jwtFailed (line 64) | jwtFailed(e) {
    method jwtChanged (line 69) | async jwtChanged(e) {
    method makeCall (line 92) | async makeCall(call, data = {}, save = false, callback = false) {
    method refreshRequest (line 175) | refreshRequest(jwt, response) {
    method firstUpdated (line 186) | firstUpdated(changedProperties) {
    method _formatSitePostData (line 201) | _formatSitePostData() {
    method updated (line 232) | updated(changedProperties) {

FILE: elements/app-hax/lib/v2/AppHaxRouter.js
  class AppHaxRouter (line 8) | class AppHaxRouter extends HTMLElement {
    method tag (line 13) | static get tag() {
    method constructor (line 20) | constructor() {
    method connectedCallback (line 49) | connectedCallback() {
    method disconnectedCallback (line 60) | disconnectedCallback() {
    method _updateRouter (line 67) | _updateRouter(routerItems) {
    method _routerLocationChanged (line 77) | _routerLocationChanged(e) {

FILE: elements/app-hax/lib/v2/AppHaxStore.js
  function hasStoredSoundPreference (line 7) | function hasStoredSoundPreference() {
  function getDefaultSoundStatus (line 15) | function getDefaultSoundStatus() {
  class Store (line 22) | class Store {
    method constructor (line 23) | constructor() {
    method setPageTitle (line 232) | setPageTitle(title) {
    method refreshSiteListing (line 238) | refreshSiteListing() {
    method activeSite (line 244) | get activeSite() {
    method evaluateBadDevice (line 256) | async evaluateBadDevice() {
    method stepTest (line 264) | stepTest(current) {
    method isLoggedIn (line 299) | get isLoggedIn() {
    method isMobile (line 305) | get isMobile() {
    method isNewUser (line 309) | get isNewUser() {
    method activeItem (line 316) | get activeItem() {
    method loadThemesData (line 333) | async loadThemesData() {
    method toast (line 351) | toast(msg, duration = 3000, extras = {}) {

FILE: elements/app-hax/lib/v2/app-hax-button.js
  class AppHaxButton (line 9) | class AppHaxButton extends LitElement {
    method tag (line 11) | static get tag() {
    method constructor (line 16) | constructor() {
    method _handleFocus (line 37) | _handleFocus() {
    method _handleBlur (line 44) | _handleBlur() {
    method _handleClick (line 51) | _handleClick() {
    method properties (line 57) | static get properties() {
    method firstUpdated (line 72) | firstUpdated(changedProperties) {
    method styles (line 153) | static get styles() {
    method render (line 260) | render() {

FILE: elements/app-hax/lib/v2/app-hax-confirmation-modal.js
  class AppHaxConfirmationModal (line 8) | class AppHaxConfirmationModal extends DDDSuper(LitElement) {
    method tag (line 9) | static get tag() {
    method constructor (line 13) | constructor() {
    method properties (line 28) | static get properties() {
    method styles (line 39) | static get styles() {
    method openModal (line 212) | openModal() {
    method closeModal (line 225) | closeModal() {
    method handleModalClosed (line 236) | handleModalClosed(e) {
    method confirmModal (line 265) | confirmModal() {
    method render (line 290) | render() {

FILE: elements/app-hax/lib/v2/app-hax-filter-tag.js
  class AppHaxFilterTag (line 5) | class AppHaxFilterTag extends LitElement {
    method tag (line 6) | static get tag() {
    method constructor (line 10) | constructor() {
    method properties (line 15) | static get properties() {
    method updated (line 21) | updated(changedProperties) {}
    method styles (line 23) | static get styles() {
    method removeTag (line 56) | removeTag() {
    method render (line 66) | render() {

FILE: elements/app-hax/lib/v2/app-hax-hat-progress.js
  class AppHaxHatProgress (line 7) | class AppHaxHatProgress extends SimpleColors {
    method tag (line 8) | static get tag() {
    method constructor (line 12) | constructor() {
    method properties (line 24) | static get properties() {
    method process (line 31) | process() {
    method firstUpdated (line 35) | firstUpdated(changedProperties) {
    method styles (line 164) | static get styles() {
    method render (line 235) | render() {

FILE: elements/app-hax/lib/v2/app-hax-label.js
  class AppHaxLabel (line 4) | class AppHaxLabel extends LitElement {
    method tag (line 6) | static get tag() {
    method constructor (line 10) | constructor() {
    method properties (line 16) | static get properties() {
    method styles (line 24) | static get styles() {
    method render (line 103) | render() {

FILE: elements/app-hax/lib/v2/app-hax-scroll-button.js
  class AppHaxScrollButton (line 5) | class AppHaxScrollButton extends LitElement {
    method tag (line 6) | static get tag() {
    method constructor (line 10) | constructor() {
    method properties (line 18) | static get properties() {
    method scrollToTarget (line 26) | scrollToTarget() {
    method connectedCallback (line 55) | connectedCallback() {
    method disconnectedCallback (line 66) | disconnectedCallback() {
    method styles (line 73) | static get styles() {
    method render (line 131) | render() {
    method _handleKeydown (line 157) | _handleKeydown(e) {
    method _announceNavigation (line 167) | _announceNavigation() {

FILE: elements/app-hax/lib/v2/app-hax-search-results.js
  class AppHaxSearchResults (line 11) | class AppHaxSearchResults extends SimpleColors {
    method tag (line 13) | static get tag() {
    method constructor (line 17) | constructor() {
    method properties (line 46) | static get properties() {
    method styles (line 59) | static get styles() {
    method getSortedItems (line 369) | getSortedItems() {
    method render (line 424) | render() {
    method isAtStart (line 529) | get isAtStart() {
    method isAtEnd (line 534) | get isAtEnd() {
    method scrollLeft (line 542) | scrollLeft() {
    method scrollRight (line 557) | scrollRight() {
    method handleScroll (line 565) | handleScroll(e) {
    method goToPage (line 592) | goToPage(pageNumber) {
    method getThemeImage (line 605) | getThemeImage(item) {
    method getItemDetails (line 622) | getItemDetails(item) {
    method openedChanged (line 632) | openedChanged(e) {

FILE: elements/app-hax/lib/v2/app-hax-simple-hat-progress.js
  class AppHaxSimpleHatProgress (line 4) | class AppHaxSimpleHatProgress extends DDDSuper(LitElement) {
    method tag (line 5) | static get tag() {
    method constructor (line 9) | constructor() {
    method properties (line 15) | static get properties() {
    method styles (line 22) | static get styles() {
    method updated (line 88) | updated(changedProperties) {
    method render (line 101) | render() {

FILE: elements/app-hax/lib/v2/app-hax-site-bar.js
  class AppHaxSiteBars (line 17) | class AppHaxSiteBars extends SimpleColors {
    method tag (line 19) | static get tag() {
    method constructor (line 24) | constructor() {
    method properties (line 37) | static get properties() {
    method toggleOptionsMenu (line 54) | toggleOptionsMenu() {
    method closeOptionsMenu (line 62) | closeOptionsMenu() {
    method handleKeydown (line 69) | handleKeydown(e, callback) {
    method getSiteMachineName (line 77) | getSiteMachineName() {
    method copySite (line 83) | copySite() {
    method downloadSite (line 88) | downloadSite() {
    method archiveSite (line 93) | archiveSite() {
    method openUserAccess (line 98) | openUserAccess() {
    method siteOperation (line 156) | siteOperation(op, opName, icon) {
    method cancelOperation (line 201) | cancelOperation() {
    method confirmOperation (line 214) | async confirmOperation() {
    method styles (line 285) | static get styles() {
    method __clickButton (line 436) | __clickButton() {
    method render (line 441) | render() {

FILE: elements/app-hax/lib/v2/app-hax-site-button.js
  class AppHaxSiteButton (line 13) | class AppHaxSiteButton extends SimpleColors {
    method tag (line 15) | static get tag() {
    method constructor (line 20) | constructor() {
    method properties (line 36) | static get properties() {
    method styles (line 48) | static get styles() {
    method _handleFocus (line 103) | _handleFocus() {
    method _handleBlur (line 110) | _handleBlur() {
    method _handleClick (line 117) | _handleClick() {
    method render (line 124) | render() {

FILE: elements/app-hax/lib/v2/app-hax-site-creation-modal.js
  class AppHaxSiteCreationModal (line 11) | class AppHaxSiteCreationModal extends DDDSuper(LitElement) {
    method tag (line 12) | static get tag() {
    method constructor (line 16) | constructor() {
    method properties (line 40) | static get properties() {
    method styles (line 63) | static get styles() {
    method _getNameParamFromUrl (line 519) | _getNameParamFromUrl() {
    method _sanitizeNameForUrl (line 528) | _sanitizeNameForUrl(raw) {
    method _updateUrlQueryParam (line 541) | _updateUrlQueryParam(param, value) {
    method _syncUrlNameParam (line 562) | _syncUrlNameParam() {
    method _handleSiteNameInput (line 579) | _handleSiteNameInput(e) {
    method openModal (line 586) | openModal() {
    method closeModal (line 639) | closeModal() {
    method handleModalClosed (line 683) | handleModalClosed(e) {
    method handleKeyDown (line 720) | handleKeyDown(e) {
    method validateSiteName (line 726) | validateSiteName() {
    method _extractSkeletonMachineName (line 749) | _extractSkeletonMachineName() {
    method createSite (line 784) | async createSite() {
    method generateConfetti (line 840) | generateConfetti() {
    method progressValueChanged (line 864) | progressValueChanged(e) {
    method progressMaxChanged (line 876) | progressMaxChanged(e) {
    method promiseProgressFinished (line 880) | async promiseProgressFinished(e) {
    method _refreshSiteListingFromServer (line 936) | async _refreshSiteListingFromServer() {
    method triggerMainPageConfetti (line 1012) | triggerMainPageConfetti() {
    method goToSite (line 1034) | goToSite() {
    method renderStepIndicator (line 1044) | renderStepIndicator() {
    method renderNamingStep (line 1062) | renderNamingStep() {
    method renderNamingButtons (line 1104) | renderNamingButtons() {
    method renderCreatingStep (line 1122) | renderCreatingStep() {
    method renderSuccessStep (line 1155) | renderSuccessStep() {
    method renderSuccessButtons (line 1172) | renderSuccessButtons() {
    method render (line 1187) | render() {

FILE: elements/app-hax/lib/v2/app-hax-site-details.js
  function makeSlug (line 12) | function makeSlug(url) {
  class AppHaxSiteDetails (line 24) | class AppHaxSiteDetails extends SimpleColors {
    method tag (line 26) | static get tag() {
    method constructor (line 31) | constructor() {
    method properties (line 56) | static get properties() {
    method styles (line 65) | static get styles() {
    method siteOperation (line 198) | siteOperation(e) {
    method cancelOperation (line 243) | cancelOperation() {
    method confirmOperation (line 256) | async confirmOperation() {
    method render (line 317) | render() {

FILE: elements/app-hax/lib/v2/app-hax-site-login.js
  class AppHaxSiteLogin (line 7) | class AppHaxSiteLogin extends DDDSuper(LitElement) {
    method tag (line 9) | static get tag() {
    method constructor (line 14) | constructor() {
    method properties (line 25) | static get properties() {
    method firstUpdated (line 36) | firstUpdated() {
    method styles (line 51) | static get styles() {
    method checkUsername (line 213) | checkUsername() {
    method checkPassword (line 226) | async checkPassword() {
    method reset (line 246) | reset() {
    method nameChange (line 253) | nameChange() {
    method connectedCallback (line 257) | connectedCallback() {
    method disconnectedCallback (line 269) | disconnectedCallback() {
    method _jwtLoginFailed (line 274) | _jwtLoginFailed(e) {
    method _jwtLoggedIn (line 279) | _jwtLoggedIn(e) {
    method passChange (line 301) | passChange(e) {
    method toggleViewPass (line 309) | toggleViewPass(e) {
    method handleKeyDown (line 317) | handleKeyDown(e) {
    method render (line 327) | render() {

FILE: elements/app-hax/lib/v2/app-hax-steps.js
  class AppHaxSteps (line 41) | class AppHaxSteps extends SimpleColors {
    method tag (line 42) | static get tag() {
    method constructor (line 46) | constructor() {
    method properties (line 90) | static get properties() {
    method chooseStructure (line 113) | chooseStructure(e) {
    method chooseType (line 144) | chooseType(e) {
    method docxImport (line 152) | async docxImport(e) {
    method evoImport (line 208) | async evoImport(e) {
    method gbImport (line 265) | async gbImport(e) {
    method importFromURL (line 306) | async importFromURL(e) {
    method notionImport (line 347) | async notionImport(e) {
    method pressbooksImport (line 389) | async pressbooksImport(e) {
    method setProcessingVisual (line 445) | setProcessingVisual() {
    method chooseTheme (line 458) | chooseTheme(e) {
    method chooseName (line 467) | chooseName() {
    method progressReady (line 475) | progressReady(e) {
    method updated (line 486) | updated(changedProperties) {
    method connectedCallback (line 534) | connectedCallback() {
    method disconnectedCallback (line 544) | disconnectedCallback() {
    method popstateListener (line 550) | popstateListener(e) {
    method maintainScroll (line 576) | maintainScroll() {
    method firstUpdated (line 594) | firstUpdated(changedProperties) {
    method scrollToThing (line 667) | scrollToThing(sel, props) {
    method styles (line 684) | static get styles() {
    method progressFinished (line 906) | progressFinished(e) {
    method typeKey (line 920) | typeKey() {
    method keydown (line 923) | keydown(e) {
    method stepLinkClick (line 961) | stepLinkClick(e) {
    method renderTypes (line 998) | renderTypes(step) {
    method render (line 1121) | render() {

FILE: elements/app-hax/lib/v2/app-hax-toast.js
  class AppHaxToast (line 6) | class AppHaxToast extends RPGCharacterToast {
    method tag (line 7) | static get tag() {
    method styles (line 10) | static get styles() {
    method constructor (line 208) | constructor() {
    method connectedCallback (line 221) | connectedCallback() {
    method hideSimpleToast (line 236) | hideSimpleToast(e) {
    method disconnectedCallback (line 243) | disconnectedCallback() {

FILE: elements/app-hax/lib/v2/app-hax-use-case-filter.js
  class AppHaxUseCaseFilter (line 14) | class AppHaxUseCaseFilter extends LitElement {
    method tag (line 15) | static get tag() {
    method constructor (line 19) | constructor() {
    method properties (line 123) | static get properties() {
    method styles (line 151) | static get styles() {
    method _getUseCaseParamFromUrl (line 619) | _getUseCaseParamFromUrl() {
    method _updateUrlQueryParam (line 640) | _updateUrlQueryParam(param, value) {
    method _getUseCaseMachineNameForTemplate (line 661) | _getUseCaseMachineNameForTemplate(template) {
    method _normalizeUseCaseMachineName (line 672) | _normalizeUseCaseMachineName(raw) {
    method _looseNormalizeUseCaseMachineName (line 698) | _looseNormalizeUseCaseMachineName(raw) {
    method _deriveTemplateMachineName (line 714) | _deriveTemplateMachineName(primary, fallbackTitle = '') {
    method _getTemplateMachineNameCandidates (line 722) | _getTemplateMachineNameCandidates(template) {
    method _matchesUseCaseParam (line 753) | _matchesUseCaseParam(template, rawParam) {
    method _scrollUseCaseIndexIntoView (line 774) | _scrollUseCaseIndexIntoView(index) {
    method _findTemplateByUseCaseParam (line 792) | _findTemplateByUseCaseParam(rawParam) {
    method _maybeAutoOpenUseCaseFromUrl (line 829) | async _maybeAutoOpenUseCaseFromUrl() {
    method testKeydown (line 894) | testKeydown(e) {
    method toggleFilterVisibility (line 900) | toggleFilterVisibility() {
    method handleFilterKeydown (line 904) | handleFilterKeydown(e, filter) {
    method scrollToGroup (line 912) | scrollToGroup(headingId, dataTypeToFocus) {
    method focusFirstOption (line 925) | focusFirstOption(dataType) {
    method render (line 965) | render() {
    method getImportItems (line 1373) | getImportItems() {
    method iconForFilter (line 1464) | iconForFilter(filter) {
    method toggleFilterByButton (line 1482) | toggleFilterByButton(filter) {
    method _handleOutsideSortClick (line 1492) | _handleOutsideSortClick(e) {
    method connectedCallback (line 1504) | connectedCallback() {
    method disconnectedCallback (line 1516) | disconnectedCallback() {
    method _jwtLoggedIn (line 1523) | _jwtLoggedIn(e) {
    method firstUpdated (line 1534) | firstUpdated() {
    method updated (line 1539) | updated(changedProperties) {
    method toggleSearch (line 1555) | toggleSearch() {
    method toggleSelection (line 1566) | toggleSelection(index) {
    method handleSearch (line 1575) | handleSearch(event) {
    method handleSortChange (line 1584) | handleSortChange(value) {
    method toggleFilter (line 1591) | toggleFilter(event) {
    method applyFilters (line 1604) | applyFilters() {
    method removeFilter (line 1690) | removeFilter(event) {
    method resetFilters (line 1697) | resetFilters() {
    method updateSkeletonResults (line 1721) | updateSkeletonResults() {
    method updateSiteResults (line 2000) | updateSiteResults() {
    method toggleDisplay (line 2111) | toggleDisplay(index, event) {
    method continueAction (line 2141) | async continueAction(index) {
    method _resolveSameOriginPath (line 2210) | _resolveSameOriginPath(rawUrl) {
    method openTemplateModal (line 2238) | async openTemplateModal(selectedTemplate) {
    method _normalizeImportedName (line 2403) | _normalizeImportedName(rawName) {
    method processImportTemplate (line 2414) | async processImportTemplate(selectedTemplate, modal) {
    method handleModalClosed (line 2507) | handleModalClosed(event) {

FILE: elements/app-hax/lib/v2/app-hax-use-case.js
  class AppHaxUseCase (line 7) | class AppHaxUseCase extends LitElement {
    method tag (line 8) | static get tag() {
    method constructor (line 12) | constructor() {
    method properties (line 23) | static get properties() {
    method styles (line 35) | static get styles() {
    method toggleDisplay (line 276) | toggleDisplay() {
    method continueAction (line 296) | continueAction() {
    method openDemo (line 311) | openDemo() {
    method render (line 317) | render() {

FILE: elements/app-hax/lib/v2/app-hax-user-access-modal.js
  class AppHaxUserAccessModal (line 20) | class AppHaxUserAccessModal extends I18NMixin(DDD) {
    method tag (line 24) | static get tag() {
    method constructor (line 28) | constructor() {
    method properties (line 47) | static get properties() {
    method styles (line 77) | static get styles() {
    method render (line 307) | render() {
    method _handleUsernameInput (line 383) | _handleUsernameInput(e) {
    method _handleKeydown (line 394) | _handleKeydown(e) {
    method _handleAddUser (line 405) | async _handleAddUser() {
    method _handleCancel (line 440) | _handleCancel() {
    method _addUserAccess (line 448) | async _addUserAccess(username) {
    method _showSuccessToast (line 479) | _showSuccessToast() {
    method _closeModal (line 490) | _closeModal() {
    method firstUpdated (line 507) | firstUpdated() {
    method connectedCallback (line 526) | connectedCallback() {

FILE: elements/app-hax/lib/v2/app-hax-user-menu-button.js
  class AppHaxUserMenuButton (line 8) | class AppHaxUserMenuButton extends DDDSuper(LitElement) {
    method tag (line 10) | static get tag() {
    method constructor (line 14) | constructor() {
    method handleClick (line 20) | handleClick(e) {
    method properties (line 29) | static get properties() {
    method styles (line 36) | static get styles() {
    method render (line 111) | render() {

FILE: elements/app-hax/lib/v2/app-hax-user-menu.js
  class AppHaxUserMenu (line 9) | class AppHaxUserMenu extends DDDSuper(LitElement) {
    method tag (line 11) | static get tag() {
    method constructor (line 15) | constructor() {
    method properties (line 22) | static get properties() {
    method styles (line 29) | static get styles() {
    method render (line 138) | render() {
    method _handleMenuToggleKeydown (line 179) | _handleMenuToggleKeydown(e) {
    method _handleKeydown (line 192) | _handleKeydown(e) {
    method _toggleMenu (line 226) | _toggleMenu() {
    method _closeMenu (line 242) | _closeMenu() {
    method _focusToggle (line 249) | _focusToggle() {
    method _getMenuItems (line 259) | _getMenuItems() {
    method _getCurrentMenuItemIndex (line 283) | _getCurrentMenuItemIndex(menuItems) {
    method _focusNextItem (line 292) | _focusNextItem(menuItems, currentIndex) {
    method _focusPreviousItem (line 303) | _focusPreviousItem(menuItems, currentIndex) {
    method _focusFirstItem (line 314) | _focusFirstItem(menuItems) {
    method _focusLastItem (line 323) | _focusLastItem(menuItems) {

FILE: elements/app-hax/lib/v2/app-hax-wired-toggle.js
  class AppHAXWiredToggle (line 7) | class AppHAXWiredToggle extends SimpleTourFinder(WiredDarkmodeToggle) {
    method constructor (line 8) | constructor() {
    method tag (line 34) | static get tag() {
    method disconnectedCallback (line 38) | disconnectedCallback() {
    method updated (line 49) | updated(changedProperties) {
    method styles (line 60) | static get styles() {
    method render (line 79) | render() {

FILE: elements/app-hax/lib/v2/skeleton-loader.js
  class SkeletonLoader (line 9) | class SkeletonLoader {
    method loadSkeleton (line 16) | static loadSkeleton(skeletonData, options = {}) {
    method extractTags (line 60) | static extractTags(skeleton) {
    method isValidSkeleton (line 90) | static isValidSkeleton(skeleton) {
    method loadSkeletons (line 113) | static loadSkeletons(skeletonArray, options = {}) {
    method applyCustomizations (line 139) | static applyCustomizations(skeleton, customizations = {}) {
    method generateSkeletonMetadata (line 174) | static generateSkeletonMetadata(skeleton) {

FILE: elements/app-hax/lib/v2/skeleton-uuid-manager.js
  class SkeletonUuidManager (line 6) | class SkeletonUuidManager {
    method constructor (line 7) | constructor() {
    method generateUuid (line 16) | generateUuid() {
    method getUuidForItem (line 33) | getUuidForItem(originalId) {
    method createRelationshipMap (line 53) | createRelationshipMap(items) {
    method rewriteSkeletonUuids (line 81) | rewriteSkeletonUuids(skeleton) {
    method reset (line 122) | reset() {

FILE: elements/app-hax/lib/wired-darkmode-toggle/wired-darkmode-toggle.js
  class WiredDarkmodeToggle (line 14) | class WiredDarkmodeToggle extends WiredToggle {
    method constructor (line 15) | constructor() {
    method canvasSize (line 23) | canvasSize() {
    method tag (line 27) | static get tag() {
    method draw (line 31) | draw(svg, size) {
    method toggleMode (line 50) | toggleMode(checked) {
    method onChange (line 64) | onChange(event) {
    method properties (line 70) | static get properties() {
    method render (line 86) | render() {
    method styles (line 102) | static get styles() {

FILE: elements/audio-player/audio-player.js
  class AudioPlayer (line 12) | class AudioPlayer extends VideoPlayer {
    method constructor (line 16) | constructor() {
    method audioOnly (line 19) | get audioOnly() {
    method tag (line 25) | static get tag() {
    method haxProperties (line 29) | static get haxProperties() {

FILE: elements/author-card/author-card.js
  class AuthorCard (line 15) | class AuthorCard extends DDDSuper(I18NMixin(LitElement)) {
    method tag (line 17) | static get tag() {
    method constructor (line 21) | constructor() {
    method properties (line 50) | static get properties() {
    method styles (line 67) | static get styles() {
    method render (line 206) | render() {
    method haxProperties (line 257) | static get haxProperties() {

FILE: elements/awesome-explosion/awesome-explosion.js
  class AwesomeExplosion (line 15) | class AwesomeExplosion extends DDDSuper(LitElement) {
    method styles (line 19) | static get styles() {
    method constructor (line 121) | constructor() {
    method render (line 153) | render() {
    method tag (line 173) | static get tag() {
    method haxProperties (line 180) | static get haxProperties() {
    method updated (line 184) | updated(changedProperties) {
    method properties (line 193) | static get properties() {
    method _calculateStopped (line 279) | _calculateStopped(newValue, oldValue) {
    method _calculatePlaying (line 302) | _calculatePlaying(newValue, oldValue) {
    method _calculatePaused (line 322) | _calculatePaused(newValue, oldValue) {
    method _stopSound (line 342) | _stopSound() {
    method _handleClick (line 354) | _handleClick(e) {
    method _handleKeydown (line 367) | _handleKeydown(e) {
    method _handleMouseOver (line 380) | _handleMouseOver(e) {
    method _handleMouseOut (line 392) | _handleMouseOut(e) {
    method _checkUserPreferences (line 400) | _checkUserPreferences() {
    method _getAltText (line 423) | _getAltText() {
    method _getAriaLabel (line 432) | _getAriaLabel() {
    method _setPlaySound (line 441) | _setPlaySound(e) {
    method _setStopSound (line 448) | _setStopSound(e) {
    method _playSound (line 455) | _playSound() {

FILE: elements/b-r/b-r.js
  class BR (line 12) | class BR extends LitElement {
    method constructor (line 16) | constructor() {
    method render (line 23) | render() {
    method properties (line 27) | static get properties() {
    method renderBR (line 34) | renderBR(amount) {
    method tag (line 49) | static get tag() {

FILE: elements/barcode-reader/barcode-reader.js
  class BarcodeReader (line 17) | class BarcodeReader extends LitElement {
    method styles (line 21) | static get styles() {
    method properties (line 42) | static get properties() {
    method render (line 53) | render() {
    method constructor (line 88) | constructor() {
    method _control (line 102) | _control() {
    method tag (line 310) | static get tag() {
    method updated (line 313) | updated(changedProperties) {
    method firstUpdated (line 327) | firstUpdated() {
    method _onFrame (line 339) | async _onFrame() {
    method _drawFrame (line 346) | _drawFrame(frameData) {
    method start (line 360) | async start() {
    method _renderVideo (line 371) | async _renderVideo() {

FILE: elements/barcode-reader/lib/zxing.js
  function assert (line 4) | function assert(condition,text){if(!condition){abort("Assertion failed: ...
  function getCFunc (line 4) | function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot ...
  function ccall (line 4) | function ccall(ident,returnType,argTypes,args,opts){var func=getCFunc(id...
  function setValue (line 4) | function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(...
  function allocate (line 4) | function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof ...
  function getMemory (line 4) | function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(siz...
  function Pointer_stringify (line 4) | function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var ...
  function UTF8ArrayToString (line 4) | function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[end...
  function UTF8ToString (line 4) | function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}
  function stringToUTF8Array (line 4) | function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(m...
  function stringToUTF8 (line 4) | function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Arr...
  function lengthBytesUTF8 (line 4) | function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){va...
  function demangle (line 4) | function demangle(func){return func}
  function demangleAll (line 4) | function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(...
  function jsStackTrace (line 4) | function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new E...
  function stackTrace (line 4) | function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"]...
  function updateGlobalBufferViews (line 4) | function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(b...
  function abortOnCannotGrowMemory (line 4) | function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. ...
  function enlargeMemory (line 4) | function enlargeMemory(){abortOnCannotGrowMemory()}
  function getTotalMemory (line 4) | function getTotalMemory(){return TOTAL_MEMORY}
  function callRuntimeCallbacks (line 4) | function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var c...
  function preRun (line 4) | function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="func...
  function ensureInitRuntime (line 4) | function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitial...
  function preMain (line 4) | function preMain(){callRuntimeCallbacks(__ATMAIN__)}
  function exitRuntime (line 4) | function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}
  function postRun (line 4) | function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="f...
  function addOnPreRun (line 4) | function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}
  function addOnPostRun (line 4) | function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}
  function writeArrayToMemory (line 4) | function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}
  function writeAsciiToMemory (line 4) | function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.le...
  function getUniqueRunDependency (line 4) | function getUniqueRunDependency(id){return id}
  function addRunDependency (line 4) | function addRunDependency(id){runDependencies++;if(Module["monitorRunDep...
  function removeRunDependency (line 4) | function removeRunDependency(id){runDependencies--;if(Module["monitorRun...
  function __ZSt18uncaught_exceptionv (line 4) | function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv...
  function ___assert_fail (line 4) | function ___assert_fail(condition,filename,line,func){ABORT=true;throw"A...
  function ___cxa_allocate_exception (line 4) | function ___cxa_allocate_exception(size){return _malloc(size)}
  function ___cxa_begin_catch (line 4) | function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&...
  function ___cxa_call_unexpected (line 4) | function ___cxa_call_unexpected(exception){Module.printErr("Unexpected e...
  function ___cxa_free_exception (line 4) | function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}
  function ___cxa_end_catch (line 4) | function ___cxa_end_catch(){Module["setThrew"](0);var ptr=EXCEPTIONS.cau...
  function ___cxa_find_matching_catch_2 (line 4) | function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catc...
  function ___cxa_find_matching_catch_3 (line 4) | function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catc...
  function ___cxa_find_matching_catch_4 (line 4) | function ___cxa_find_matching_catch_4(){return ___cxa_find_matching_catc...
  function ___cxa_find_matching_catch_6 (line 4) | function ___cxa_find_matching_catch_6(){return ___cxa_find_matching_catc...
  function ___cxa_pure_virtual (line 4) | function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function ca...
  function ___cxa_rethrow (line 4) | function ___cxa_rethrow(){var ptr=EXCEPTIONS.caught.pop();if(!EXCEPTIONS...
  function ___resumeException (line 4) | function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=pt...
  function ___cxa_find_matching_catch (line 4) | function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thr...
  function ___cxa_throw (line 4) | function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:pt...
  function ___gxx_personality_v0 (line 4) | function ___gxx_personality_v0(){}
  function ___lock (line 4) | function ___lock(){}
  function ___setErrNo (line 4) | function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module...
  function ___map_file (line 4) | function ___map_file(pathname,size){___setErrNo(ERRNO_CODES.EPERM);retur...
  function trim (line 4) | function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[sta...
  function isRealDir (line 4) | function isRealDir(p){return p!=="."&&p!==".."}
  function toAbsolute (line 4) | function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}
  function done (line 4) | function done(err){if(err){if(!done.errored){done.errored=true;return ca...
  function ensureParent (line 4) | function ensureParent(path){var parts=path.split("/");var parent=root;fo...
  function base (line 4) | function base(path){var parts=path.split("/");return parts[parts.length-1]}
  function doCallback (line 4) | function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--...
  function done (line 4) | function done(err){if(err){if(!done.errored){done.errored=true;return do...
  function LazyUint8Array (line 4) | function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}
  function processData (line 4) | function processData(byteArray){function finish(byteArray){if(preFinish)...
  function finish (line 4) | function finish(){if(fail==0)onload();else onerror()}
  function finish (line 4) | function finish(){if(fail==0)onload();else onerror()}
  function ___syscall140 (line 4) | function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var s...
  function ___syscall146 (line 4) | function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var s...
  function ___syscall6 (line 4) | function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var str...
  function ___syscall91 (line 4) | function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var ad...
  function ___unlock (line 4) | function ___unlock(){}
  function getShiftFromSize (line 4) | function getShiftFromSize(size){switch(size){case 1:return 0;case 2:retu...
  function embind_init_charCodes (line 4) | function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<...
  function readLatin1String (line 4) | function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret...
  function makeLegalFunctionName (line 4) | function makeLegalFunctionName(name){if(undefined===name){return"_unknow...
  function createNamedFunction (line 4) | function createNamedFunction(name,body){name=makeLegalFunctionName(name)...
  function extendError (line 4) | function extendError(baseErrorType,errorName){var errorClass=createNamed...
  function throwBindingError (line 4) | function throwBindingError(message){throw new BindingError(message)}
  function throwInternalError (line 4) | function throwInternalError(message){throw new InternalError(message)}
  function whenDependentTypesAreResolved (line 4) | function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeCon...
  function registerType (line 4) | function registerType(rawType,registeredInstance,options){options=option...
  function __embind_register_bool (line 4) | function __embind_register_bool(rawType,name,size,trueValue,falseValue){...
  function __emval_decref (line 4) | function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[ha...
  function count_emval_handles (line 4) | function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_ar...
  function get_first_emval (line 4) | function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){...
  function init_emval (line 4) | function init_emval(){Module["count_emval_handles"]=count_emval_handles;...
  function __emval_register (line 4) | function __emval_register(value){switch(value){case undefined:{return 1}...
  function simpleReadValueFromPointer (line 4) | function simpleReadValueFromPointer(pointer){return this["fromWireType"]...
  function __embind_register_emval (line 4) | function __embind_register_emval(rawType,name){name=readLatin1String(nam...
  function _embind_repr (line 4) | function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==...
  function floatReadValueFromPointer (line 4) | function floatReadValueFromPointer(name,shift){switch(shift){case 2:retu...
  function __embind_register_float (line 4) | function __embind_register_float(rawType,name,size){var shift=getShiftFr...
  function integerReadValueFromPointer (line 4) | function integerReadValueFromPointer(name,shift,signed){switch(shift){ca...
  function __embind_register_integer (line 4) | function __embind_register_integer(primitiveType,name,size,minRange,maxR...
  function __embind_register_memory_view (line 4) | function __embind_register_memory_view(rawType,dataTypeIndex,name){var t...
  function __embind_register_std_string (line 4) | function __embind_register_std_string(rawType,name){name=readLatin1Strin...
  function __embind_register_std_wstring (line 4) | function __embind_register_std_wstring(rawType,charSize,name){name=readL...
  function __embind_register_void (line 4) | function __embind_register_void(rawType,name){name=readLatin1String(name...
  function _abort (line 4) | function _abort(){Module["abort"]()}
  function ___buildEnvironment (line 4) | function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SI...
  function _getenv (line 4) | function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name)...
  function _llvm_eh_typeid_for (line 4) | function _llvm_eh_typeid_for(type){return type}
  function _emscripten_memcpy_big (line 4) | function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray...
  function _pthread_cond_wait (line 4) | function _pthread_cond_wait(){return 0}
  function _pthread_getspecific (line 4) | function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}
  function _pthread_key_create (line 4) | function _pthread_key_create(key,destructor){if(key==0){return ERRNO_COD...
  function _pthread_once (line 4) | function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.se...
  function _pthread_setspecific (line 4) | function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){...
  function __isLeapYear (line 4) | function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400==...
  function __arraySum (line 4) | function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=arr...
  function __addDays (line 4) | function __addDays(date,days){var newDate=new Date(date.getTime());while...
  function _strftime (line 4) | function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var...
  function _strftime_l (line 4) | function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,for...
  function intArrayFromString (line 4) | function intArrayFromString(stringy,dontAddNull,length){var len=length>0...
  function intArrayToString (line 4) | function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i...
  function intArrayFromBase64 (line 4) | function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"...
  function tryParseAsDataURI (line 4) | function tryParseAsDataURI(filename){var dataURIPrefix="data:application...
  function invoke_di (line 4) | function invoke_di(index,a1){try{return Module["dynCall_di"](index,a1)}c...
  function jsCall_di (line 4) | function jsCall_di(index,a1){return Runtime.functionPointers[index](a1)}
  function invoke_dii (line 4) | function invoke_dii(index,a1,a2){try{return Module["dynCall_dii"](index,...
  function jsCall_dii (line 4) | function jsCall_dii(index,a1,a2){return Runtime.functionPointers[index](...
  function invoke_diii (line 4) | function invoke_diii(index,a1,a2,a3){try{return Module["dynCall_diii"](i...
  function jsCall_diii (line 4) | function jsCall_diii(index,a1,a2,a3){return Runtime.functionPointers[ind...
  function invoke_diiii (line 4) | function invoke_diiii(index,a1,a2,a3,a4){try{return Module["dynCall_diii...
  function jsCall_diiii (line 4) | function jsCall_diiii(index,a1,a2,a3,a4){return Runtime.functionPointers...
  function invoke_i (line 4) | function invoke_i(index){try{return Module["dynCall_i"](index)}catch(e){...
  function jsCall_i (line 4) | function jsCall_i(index){return Runtime.functionPointers[index]()}
  function invoke_ii (line 4) | function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}c...
  function jsCall_ii (line 4) | function jsCall_ii(index,a1){return Runtime.functionPointers[index](a1)}
  function invoke_iiddd (line 4) | function invoke_iiddd(index,a1,a2,a3,a4){try{return Module["dynCall_iidd...
  function jsCall_iiddd (line 4) | function jsCall_iiddd(index,a1,a2,a3,a4){return Runtime.functionPointers...
  function invoke_iii (line 4) | function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,...
  function jsCall_iii (line 4) | function jsCall_iii(index,a1,a2){return Runtime.functionPointers[index](...
  function invoke_iiii (line 4) | function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](i...
  function jsCall_iiii (line 4) | function jsCall_iiii(index,a1,a2,a3){return Runtime.functionPointers[ind...
  function invoke_iiiid (line 4) | function invoke_iiiid(index,a1,a2,a3,a4){try{return Module["dynCall_iiii...
  function jsCall_iiiid (line 4) | function jsCall_iiiid(index,a1,a2,a3,a4){return Runtime.functionPointers...
  function invoke_iiiii (line 4) | function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiii...
  function jsCall_iiiii (line 4) | function jsCall_iiiii(index,a1,a2,a3,a4){return Runtime.functionPointers...
  function invoke_iiiiid (line 4) | function invoke_iiiiid(index,a1,a2,a3,a4,a5){try{return Module["dynCall_...
  function jsCall_iiiiid (line 4) | function jsCall_iiiiid(index,a1,a2,a3,a4,a5){return Runtime.functionPoin...
  function invoke_iiiiidddddddd (line 4) | function invoke_iiiiidddddddd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a...
  function jsCall_iiiiidddddddd (line 4) | function jsCall_iiiiidddddddd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a...
  function invoke_iiiiii (line 4) | function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_...
  function jsCall_iiiiii (line 4) | function jsCall_iiiiii(index,a1,a2,a3,a4,a5){return Runtime.functionPoin...
  function invoke_iiiiiid (line 4) | function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){try{return Module["dynC...
  function jsCall_iiiiiid (line 4) | function jsCall_iiiiiid(index,a1,a2,a3,a4,a5,a6){return Runtime.function...
  function invoke_iiiiiii (line 4) | function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynC...
  function jsCall_iiiiiii (line 4) | function jsCall_iiiiiii(index,a1,a2,a3,a4,a5,a6){return Runtime.function...
  function invoke_iiiiiiii (line 4) | function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{return Module["...
  function jsCall_iiiiiiii (line 4) | function jsCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){return Runtime.func...
  function invoke_iiiiiiiii (line 4) | function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{return Modu...
  function jsCall_iiiiiiiii (line 4) | function jsCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){return Runtime....
  function invoke_iiiiiiiiiii (line 4) | function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{re...
  function jsCall_iiiiiiiiiii (line 4) | function jsCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){return...
  function invoke_iiiiiiiiiiii (line 4) | function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){t...
  function jsCall_iiiiiiiiiiii (line 4) | function jsCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){r...
  function invoke_iiiiiiiiiiiii (line 4) | function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a...
  function jsCall_iiiiiiiiiiiii (line 4) | function jsCall_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a...
  function invoke_v (line 4) | function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(type...
  function jsCall_v (line 4) | function jsCall_v(index){Runtime.functionPointers[index]()}
  function invoke_vi (line 4) | function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e)...
  function jsCall_vi (line 4) | function jsCall_vi(index,a1){Runtime.functionPointers[index](a1)}
  function invoke_vidd (line 4) | function invoke_vidd(index,a1,a2,a3){try{Module["dynCall_vidd"](index,a1...
  function jsCall_vidd (line 4) | function jsCall_vidd(index,a1,a2,a3){Runtime.functionPointers[index](a1,...
  function invoke_viddd (line 4) | function invoke_viddd(index,a1,a2,a3,a4){try{Module["dynCall_viddd"](ind...
  function jsCall_viddd (line 4) | function jsCall_viddd(index,a1,a2,a3,a4){Runtime.functionPointers[index]...
  function invoke_vidddddddd (line 4) | function invoke_vidddddddd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){try{Module[...
  function jsCall_vidddddddd (line 4) | function jsCall_vidddddddd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){Runtime.fun...
  function invoke_vidddi (line 4) | function invoke_vidddi(index,a1,a2,a3,a4,a5){try{Module["dynCall_vidddi"...
  function jsCall_vidddi (line 4) | function jsCall_vidddi(index,a1,a2,a3,a4,a5){Runtime.functionPointers[in...
  function invoke_vii (line 4) | function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}...
  function jsCall_vii (line 4) | function jsCall_vii(index,a1,a2){Runtime.functionPointers[index](a1,a2)}
  function invoke_viiddd (line 4) | function invoke_viiddd(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiddd"...
  function jsCall_viiddd (line 4) | function jsCall_viiddd(index,a1,a2,a3,a4,a5){Runtime.functionPointers[in...
  function invoke_viidiid (line 4) | function invoke_viidiid(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_vii...
  function jsCall_viidiid (line 4) | function jsCall_viidiid(index,a1,a2,a3,a4,a5,a6){Runtime.functionPointer...
  function invoke_viii (line 4) | function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1...
  function jsCall_viii (line 4) | function jsCall_viii(index,a1,a2,a3){Runtime.functionPointers[index](a1,...
  function invoke_viiii (line 4) | function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](ind...
  function jsCall_viiii (line 4) | function jsCall_viiii(index,a1,a2,a3,a4){Runtime.functionPointers[index]...
  function invoke_viiiidddddddddddddddd (line 4) | function invoke_viiiidddddddddddddddd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a...
  function jsCall_viiiidddddddddddddddd (line 4) | function jsCall_viiiidddddddddddddddd(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a...
  function invoke_viiiii (line 4) | function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"...
  function jsCall_viiiii (line 4) | function jsCall_viiiii(index,a1,a2,a3,a4,a5){Runtime.functionPointers[in...
  function invoke_viiiiii (line 4) | function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_vii...
  function jsCall_viiiiii (line 4) | function jsCall_viiiiii(index,a1,a2,a3,a4,a5,a6){Runtime.functionPointer...
  function invoke_viiiiiidi (line 4) | function invoke_viiiiiidi(index,a1,a2,a3,a4,a5,a6,a7,a8){try{Module["dyn...
  function jsCall_viiiiiidi (line 4) | function jsCall_viiiiiidi(index,a1,a2,a3,a4,a5,a6,a7,a8){Runtime.functio...
  function invoke_viiiiiii (line 4) | function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall...
  function jsCall_viiiiiii (line 4) | function jsCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){Runtime.functionPoi...
  function invoke_viiiiiiii (line 4) | function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{Module["dyn...
  function jsCall_viiiiiiii (line 4) | function jsCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){Runtime.functio...
  function invoke_viiiiiiiii (line 4) | function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){try{Module[...
  function jsCall_viiiiiiiii (line 4) | function jsCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){Runtime.fun...
  function invoke_viiiiiiiiii (line 4) | function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{Mo...
  function jsCall_viiiiiiiiii (line 4) | function jsCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){Runtim...
  function invoke_viiiiiiiiiiiiiii (line 4) | function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a1...
  function jsCall_viiiiiiiiiiiiiii (line 4) | function jsCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a1...
  function fQ (line 8) | function fQ(e,f,g,h,i,j,k,m,n,p,q){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k...
  function gQ (line 8) | function gQ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function hQ (line 8) | function hQ(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0<c>>>0|0}
  function iQ (line 8) | function iQ(b,d,e,f,g,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i...
  function jQ (line 8) | function jQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=a+4|0...
  function kQ (line 8) | function kQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=a+4|0...
  function lQ (line 8) | function lQ(a){a=a|0;BL(a);return}
  function mQ (line 8) | function mQ(a){a=a|0;BL(a);cU(a);return}
  function nQ (line 8) | function nQ(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function oQ (line 8) | function oQ(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function pQ (line 8) | function pQ(b,e,f,g,h,i,j,k,m,n,p){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j...
  function qQ (line 8) | function qQ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function rQ (line 8) | function rQ(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0<c>>>0|0}
  function sQ (line 8) | function sQ(b,d,e,f,g,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i...
  function tQ (line 8) | function tQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=a+4|0...
  function uQ (line 8) | function uQ(a){a=a|0;BL(a);return}
  function vQ (line 8) | function vQ(a){a=a|0;BL(a);cU(a);return}
  function wQ (line 8) | function wQ(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=+i;var j=0,k=0,...
  function xQ (line 8) | function xQ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function yQ (line 8) | function yQ(b,d,e,f,g,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i...
  function zQ (line 8) | function zQ(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0...
  function AQ (line 8) | function AQ(a){a=a|0;BL(a);return}
  function BQ (line 8) | function BQ(a){a=a|0;BL(a);cU(a);return}
  function CQ (line 8) | function CQ(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=+i;var j=0,k=0,...
  function DQ (line 8) | function DQ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function EQ (line 8) | function EQ(b,d,e,f,g,h,i,j,k,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i...
  function FQ (line 8) | function FQ(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0...
  function GQ (line 8) | function GQ(a){a=a|0;BL(a);return}
  function HQ (line 8) | function HQ(a){a=a|0;BL(a);cU(a);return}
  function IQ (line 8) | function IQ(b,d,e){b=b|0;d=d|0;e=e|0;e=KJ((a[d+11>>0]|0)<0?c[d>>2]|0:d,1...
  function JQ (line 8) | function JQ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function KQ (line 8) | function KQ(a,b){a=a|0;b=b|0;return}
  function LQ (line 8) | function LQ(a){a=a|0;BL(a);return}
  function MQ (line 8) | function MQ(a){a=a|0;BL(a);cU(a);return}
  function NQ (line 8) | function NQ(b,d,e){b=b|0;d=d|0;e=e|0;e=KJ((a[d+11>>0]|0)<0?c[d>>2]|0:d,1...
  function OQ (line 8) | function OQ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function PQ (line 8) | function PQ(a,b){a=a|0;b=b|0;return}
  function QQ (line 8) | function QQ(a){a=a|0;BL(a);cU(a);return}
  function RQ (line 8) | function RQ(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i...
  function SQ (line 8) | function SQ(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i...
  function TQ (line 8) | function TQ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}
  function UQ (line 8) | function UQ(a){a=a|0;return 0}
  function VQ (line 8) | function VQ(a){a=a|0;return 0}
  function WQ (line 8) | function WQ(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return YQ(c,d,e,111...
  function XQ (line 8) | function XQ(a){a=a|0;return 4}
  function YQ (line 8) | function YQ(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function ZQ (line 8) | function ZQ(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k...
  function _Q (line 8) | function _Q(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j...
  function $Q (line 8) | function $Q(a){a=a|0;BL(a);cU(a);return}
  function aR (line 8) | function aR(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i...
  function bR (line 8) | function bR(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i...
  function cR (line 8) | function cR(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}
  function dR (line 8) | function dR(a){a=a|0;return 1}
  function eR (line 8) | function eR(a){a=a|0;return 1}
  function fR (line 8) | function fR(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;d=d-c|0;return (d>>...
  function gR (line 8) | function gR(a){a=a|0;return 1}
  function hR (line 8) | function hR(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j...
  function iR (line 8) | function iR(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j...
  function jR (line 8) | function jR(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=l;l=l...
  function kR (line 8) | function kR(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=a+8|0;o=0;d=fa(165,c[b>>2...
  function lR (line 8) | function lR(a){a=a|0;return 0}
  function mR (line 8) | function mR(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function nR (line 8) | function nR(a){a=a|0;var b=0,d=0,e=0,f=0;a=c[a+8>>2]|0;a:do if(!a)d=1;el...
  function oR (line 8) | function oR(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=40320;b=a+8|0;d=c[b>>2]...
  function pR (line 8) | function pR(a){a=a|0;oR(a);cU(a);return}
  function qR (line 8) | function qR(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i...
  function rR (line 8) | function rR(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i...
  function sR (line 8) | function sR(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}
  function tR (line 8) | function tR(a){a=a|0;return 0}
  function uR (line 8) | function uR(a){a=a|0;return 0}
  function vR (line 8) | function vR(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return xR(c,d,e,111...
  function wR (line 8) | function wR(a){a=a|0;return 4}
  function xR (line 8) | function xR(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function yR (line 8) | function yR(e,f,g,h,i,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l...
  function zR (line 8) | function zR(d,f,g,h,i,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l...
  function AR (line 8) | function AR(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=40368;e=a+8|0;f=a+12|0;...
  function BR (line 8) | function BR(a){a=a|0;AR(a);cU(a);return}
  function CR (line 8) | function CR(b){b=b|0;var d=0,e=0,f=0,g=0;d=c[b>>2]|0;do if(d|0){e=b+4|0;...
  function DR (line 8) | function DR(b){b=b|0;var d=0;c[b>>2]=40388;d=c[b+8>>2]|0;if(d|0?a[b+12>>...
  function ER (line 8) | function ER(a){a=a|0;DR(a);cU(a);return}
  function FR (line 8) | function FR(a,b){a=a|0;b=b|0;if(b<<24>>24>-1)b=c[(OR()|0)+((b&255)<<2)>>...
  function GR (line 8) | function GR(b,d,e){b=b|0;d=d|0;e=e|0;while(1){if((d|0)==(e|0))break;b=a[...
  function HR (line 8) | function HR(a,b){a=a|0;b=b|0;if(b<<24>>24>-1)b=c[(NR()|0)+(b<<24>>24<<2)...
  function IR (line 8) | function IR(b,d,e){b=b|0;d=d|0;e=e|0;while(1){if((d|0)==(e|0))break;b=a[...
  function JR (line 8) | function JR(a,b){a=a|0;b=b|0;return b|0}
  function KR (line 8) | function KR(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;while(1){if((c|0)==(d|0))br...
  function LR (line 8) | function LR(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}
  function MR (line 8) | function MR(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;while(1){if((c|0)==...
  function NR (line 8) | function NR(){var a=0,b=0;o=0;a=da(46)|0;b=o;o=0;if(b&1){b=Gb(0)|0;_g(b)...
  function OR (line 8) | function OR(){var a=0,b=0;o=0;a=da(47)|0;b=o;o=0;if(b&1){b=Gb(0)|0;_g(b)...
  function PR (line 8) | function PR(){var a=0,b=0;o=0;a=da(48)|0;b=o;o=0;if(b&1){b=Gb(0)|0;_g(b)...
  function QR (line 8) | function QR(a){a=a|0;c[a>>2]=40440;pU(a+12|0);BL(a);return}
  function RR (line 8) | function RR(a){a=a|0;QR(a);cU(a);return}
  function SR (line 8) | function SR(b){b=b|0;return a[b+8>>0]|0}
  function TR (line 8) | function TR(b){b=b|0;return a[b+9>>0]|0}
  function UR (line 8) | function UR(a,b){a=a|0;b=b|0;nU(a,b+12|0);return}
  function VR (line 8) | function VR(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;c[b>>2...
  function WR (line 8) | function WR(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;c[b>>2...
  function XR (line 8) | function XR(a){a=a|0;c[a>>2]=40480;pU(a+16|0);BL(a);return}
  function YR (line 8) | function YR(a){a=a|0;XR(a);cU(a);return}
  function ZR (line 8) | function ZR(a){a=a|0;return c[a+8>>2]|0}
  function _R (line 8) | function _R(a){a=a|0;return c[a+12>>2]|0}
  function $R (line 8) | function $R(a,b){a=a|0;b=b|0;nU(a,b+16|0);return}
  function aS (line 8) | function aS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;c[b>>2...
  function bS (line 8) | function bS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;c[b>>2...
  function cS (line 8) | function cS(a){a=a|0;BL(a);cU(a);return}
  function dS (line 8) | function dS(a){a=a|0;BL(a);cU(a);return}
  function eS (line 8) | function eS(a,c,d){a=a|0;c=c|0;d=d|0;if(d>>>0<128)a=(b[(PR()|0)+(d<<1)>>...
  function fS (line 8) | function fS(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;while(1){if((d|0)==(f|0))br...
  function gS (line 8) | function gS(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0)){e...
  function hS (line 8) | function hS(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0)){e...
  function iS (line 8) | function iS(a,b){a=a|0;b=b|0;if(b>>>0<128)b=c[(OR()|0)+(b<<2)>>2]|0;retu...
  function jS (line 8) | function jS(a,b,d){a=a|0;b=b|0;d=d|0;while(1){if((b|0)==(d|0))break;a=c[...
  function kS (line 8) | function kS(a,b){a=a|0;b=b|0;if(b>>>0<128)b=c[(NR()|0)+(b<<2)>>2]|0;retu...
  function lS (line 8) | function lS(a,b,d){a=a|0;b=b|0;d=d|0;while(1){if((b|0)==(d|0))break;a=c[...
  function mS (line 8) | function mS(a,b){a=a|0;b=b|0;return b<<24>>24|0}
  function nS (line 8) | function nS(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;while(1){if((d|0)==(e|0))br...
  function oS (line 8) | function oS(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}
  function pS (line 8) | function pS(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=(e-d|...
  function qS (line 8) | function qS(a){a=a|0;BL(a);cU(a);return}
  function rS (line 8) | function rS(a){a=a|0;BL(a);cU(a);return}
  function sS (line 8) | function sS(a){a=a|0;BL(a);cU(a);return}
  function tS (line 8) | function tS(a){a=a|0;c[a>>2]=40796;return}
  function uS (line 8) | function uS(a){a=a|0;c[a>>2]=40832;return}
  function vS (line 8) | function vS(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;c[b+4>>2]=f+-1;c[b>>2]=4038...
  function wS (line 8) | function wS(a){a=a|0;var b=0;a=Ab(8)|0;o=0;Xa(98,a|0,56808);b=o;o=0;if(b...
  function xS (line 8) | function xS(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l;l=l...
  function yS (line 8) | function yS(b,d){b=b|0;d=d|0;var e=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a...
  function zS (line 8) | function zS(){c[14531]=0;c[14530]=38032;return}
  function AS (line 8) | function AS(a,b){a=a|0;b=b|0;BT(a,b,_L(59864)|0);return}
  function BS (line 8) | function BS(){c[14533]=0;c[14532]=38064;return}
  function CS (line 8) | function CS(a,b){a=a|0;b=b|0;BT(a,b,_L(59872)|0);return}
  function DS (line 8) | function DS(){vS(58136,0,0,1);return}
  function ES (line 8) | function ES(a,b){a=a|0;b=b|0;BT(a,b,_L(59880)|0);return}
  function FS (line 8) | function FS(){c[14539]=0;c[14538]=40584;return}
  function GS (line 8) | function GS(a,b){a=a|0;b=b|0;BT(a,b,_L(59912)|0);return}
  function HS (line 8) | function HS(){c[14541]=0;c[14540]=40652;return}
  function IS (line 8) | function IS(a,b){a=a|0;b=b|0;BT(a,b,_L(61672)|0);return}
  function JS (line 8) | function JS(){NT(58168,1);return}
  function KS (line 8) | function KS(a,b){a=a|0;b=b|0;BT(a,b,_L(61680)|0);return}
  function LS (line 8) | function LS(){c[14547]=0;c[14546]=40700;return}
  function MS (line 8) | function MS(a,b){a=a|0;b=b|0;BT(a,b,_L(61688)|0);return}
  function NS (line 8) | function NS(){c[14549]=0;c[14548]=40748;return}
  function OS (line 8) | function OS(a,b){a=a|0;b=b|0;BT(a,b,_L(61696)|0);return}
  function PS (line 8) | function PS(){MT(58200,1);return}
  function QS (line 8) | function QS(a,b){a=a|0;b=b|0;BT(a,b,_L(59896)|0);return}
  function RS (line 8) | function RS(){LT(58224,1);return}
  function SS (line 8) | function SS(a,b){a=a|0;b=b|0;BT(a,b,_L(59920)|0);return}
  function TS (line 8) | function TS(){c[14565]=0;c[14564]=38096;return}
  function US (line 8) | function US(a,b){a=a|0;b=b|0;BT(a,b,_L(59904)|0);return}
  function VS (line 8) | function VS(){c[14567]=0;c[14566]=38160;return}
  function WS (line 8) | function WS(a,b){a=a|0;b=b|0;BT(a,b,_L(59928)|0);return}
  function XS (line 8) | function XS(){c[14569]=0;c[14568]=38224;return}
  function YS (line 8) | function YS(a,b){a=a|0;b=b|0;BT(a,b,_L(59936)|0);return}
  function ZS (line 8) | function ZS(){c[14571]=0;c[14570]=38276;return}
  function _S (line 8) | function _S(a,b){a=a|0;b=b|0;BT(a,b,_L(59944)|0);return}
  function $S (line 8) | function $S(){c[14573]=0;c[14572]=39824;return}
  function aT (line 8) | function aT(a,b){a=a|0;b=b|0;BT(a,b,_L(61592)|0);return}
  function bT (line 8) | function bT(){c[14575]=0;c[14574]=39880;return}
  function cT (line 8) | function cT(a,b){a=a|0;b=b|0;BT(a,b,_L(61600)|0);return}
  function dT (line 8) | function dT(){c[14577]=0;c[14576]=39936;return}
  function eT (line 8) | function eT(a,b){a=a|0;b=b|0;BT(a,b,_L(61608)|0);return}
  function fT (line 8) | function fT(){c[14579]=0;c[14578]=39992;return}
  function gT (line 8) | function gT(a,b){a=a|0;b=b|0;BT(a,b,_L(61616)|0);return}
  function hT (line 8) | function hT(){c[14581]=0;c[14580]=40048;return}
  function iT (line 8) | function iT(a,b){a=a|0;b=b|0;BT(a,b,_L(61624)|0);return}
  function jT (line 8) | function jT(){c[14583]=0;c[14582]=40076;return}
  function kT (line 8) | function kT(a,b){a=a|0;b=b|0;BT(a,b,_L(61632)|0);return}
  function lT (line 8) | function lT(){c[14585]=0;c[14584]=40104;return}
  function mT (line 8) | function mT(a,b){a=a|0;b=b|0;BT(a,b,_L(61640)|0);return}
  function nT (line 8) | function nT(){c[14587]=0;c[14586]=40132;return}
  function oT (line 8) | function oT(a,b){a=a|0;b=b|0;BT(a,b,_L(61648)|0);return}
  function pT (line 8) | function pT(){c[14589]=0;c[14588]=40564;tS(58360);c[14588]=38328;c[14590...
  function qT (line 8) | function qT(a,b){a=a|0;b=b|0;BT(a,b,_L(60756)|0);return}
  function rT (line 8) | function rT(){c[14593]=0;c[14592]=40564;uS(58376);c[14592]=38412;c[14594...
  function sT (line 8) | function sT(a,b){a=a|0;b=b|0;BT(a,b,_L(61568)|0);return}
  function tT (line 8) | function tT(){var a=0,b=0;c[14597]=0;c[14596]=40564;o=0;a=da(44)|0;b=o;o...
  function uT (line 8) | function uT(a,b){a=a|0;b=b|0;BT(a,b,_L(61576)|0);return}
  function vT (line 8) | function vT(){var a=0,b=0;c[14601]=0;c[14600]=40564;o=0;a=da(44)|0;b=o;o...
  function wT (line 8) | function wT(a,b){a=a|0;b=b|0;BT(a,b,_L(61584)|0);return}
  function xT (line 8) | function xT(){c[14605]=0;c[14604]=40160;return}
  function yT (line 8) | function yT(a,b){a=a|0;b=b|0;BT(a,b,_L(61656)|0);return}
  function zT (line 8) | function zT(){c[14607]=0;c[14606]=40192;return}
  function AT (line 8) | function AT(a,b){a=a|0;b=b|0;BT(a,b,_L(61664)|0);return}
  function BT (line 8) | function BT(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;XT(b);f=a+8|0;e=c[f...
  function CT (line 8) | function CT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c...
  function DT (line 8) | function DT(a){a=a|0;ZT(a)|0;return}
  function ET (line 8) | function ET(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=l;l=l...
  function FT (line 8) | function FT(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=...
  function GT (line 8) | function GT(a){a=a|0;return 1073741823}
  function HT (line 8) | function HT(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;c[b+12>>2]=0;c[b+16...
  function IT (line 8) | function IT(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{c[b>>2]=...
  function JT (line 8) | function JT(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0...
  function KT (line 8) | function KT(b){b=b|0;var d=0,e=0,f=0,g=0;d=c[b+4>>2]|0;e=b+8|0;f=c[e>>2]...
  function LT (line 8) | function LT(a,b){a=a|0;b=b|0;c[a+4>>2]=b+-1;c[a>>2]=40480;c[a+8>>2]=46;c...
  function MT (line 8) | function MT(b,d){b=b|0;d=d|0;c[b+4>>2]=d+-1;c[b>>2]=40440;a[b+8>>0]=46;a...
  function NT (line 8) | function NT(a,b){a=a|0;b=b|0;var d=0;c[a+4>>2]=b+-1;c[a>>2]=40320;o=0;b=...
  function OT (line 8) | function OT(b,d){b=b|0;d=d|0;var e=0;if((GT(b)|0)>>>0<d>>>0)wS(b);e=b+12...
  function PT (line 8) | function PT(){var b=0;do if((a[58432]|0)==0?cW(58432)|0:0){o=0;da(49)|0;...
  function QT (line 8) | function QT(){RT();c[15426]=58440;return 61704}
  function RT (line 8) | function RT(){xS(58440,1);return}
  function ST (line 8) | function ST(){TT(61712,PT()|0);return 61712}
  function TT (line 8) | function TT(a,b){a=a|0;b=b|0;b=c[b>>2]|0;c[a>>2]=b;XT(b);return}
  function UT (line 8) | function UT(){var b=0;do if((a[58600]|0)==0?cW(58600)|0:0){o=0;da(50)|0;...
  function VT (line 8) | function VT(a){a=a|0;var b=0,d=0;o=0;b=da(51)|0;d=o;o=0;if(d&1){d=Gb(0)|...
  function WT (line 8) | function WT(a){a=a|0;return}
  function XT (line 8) | function XT(a){a=a|0;YT(a+4|0);return}
  function YT (line 8) | function YT(a){a=a|0;c[a>>2]=(c[a>>2]|0)+1;return}
  function ZT (line 8) | function ZT(a){a=a|0;if((_T(a+4|0)|0)==-1){fd[c[(c[a>>2]|0)+8>>2]&511](a...
  function _T (line 8) | function _T(a){a=a|0;var b=0;b=c[a>>2]|0;c[a>>2]=b+-1;return b+-1|0}
  function $T (line 8) | function $T(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;AW(61720)|0;while(1){if((c[...
  function aU (line 8) | function aU(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){c=nI(b)|0;if(c|...
  function bU (line 8) | function bU(a){a=a|0;return aU(a)|0}
  function cU (line 8) | function cU(a){a=a|0;oI(a);return}
  function dU (line 8) | function dU(a){a=a|0;cU(a);return}
  function eU (line 8) | function eU(){var a=0;a=Ab(4)|0;fW(a);Mb(a|0,3128,295)}
  function fU (line 8) | function fU(a,b){a=a|0;b=b|0;var d=0,e=0;e=LJ(b)|0;d=aU(e+13|0)|0;c[d>>2...
  function gU (line 8) | function gU(a){a=a|0;return a+12|0}
  function hU (line 8) | function hU(a,b){a=a|0;b=b|0;c[a>>2]=41012;o=0;Xa(408,a+4|0,b|0);b=o;o=0...
  function iU (line 8) | function iU(a){a=a|0;return 1}
  function jU (line 8) | function jU(b,d){b=b|0;d=d|0;c[b>>2]=41032;o=0;Xa(408,b+4|0,((a[d+11>>0]...
  function kU (line 8) | function kU(a,b){a=a|0;b=b|0;c[a>>2]=41032;o=0;Xa(408,a+4|0,b|0);b=o;o=0...
  function lU (line 8) | function lU(a){a=a|0;var b=0;a=Ab(8)|0;o=0;Xa(98,a|0,56840);b=o;o=0;if(b...
  function mU (line 8) | function mU(a){a=a|0;var b=0;a=Ab(8)|0;o=0;Xa(98,a|0,56840);b=o;o=0;if(b...
  function nU (line 8) | function nU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=l;l=l+16|0;e=g;c[...
  function oU (line 8) | function oU(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;j=l...
  function pU (line 8) | function pU(b){b=b|0;if((a[b+11>>0]|0)<0)cU(c[b>>2]|0);return}
  function qU (line 8) | function qU(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d+11>>0]|0...
  function rU (line 8) | function rU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l...
  function sU (line 8) | function sU(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)xW(a|0,b|0,c|0)|0;return a|0}
  function tU (line 8) | function tU(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j...
  function uU (line 8) | function uU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(d>>>0>429496...
  function vU (line 8) | function vU(a,b){a=a|0;b=b|0;return rU(a,b,Uh(b)|0)|0}
  function wU (line 8) | function wU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|...
  function xU (line 8) | function xU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l...
  function yU (line 8) | function yU(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function zU (line 8) | function zU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function AU (line 8) | function AU(a,b){a=a|0;b=b|0;return zU(a,b,Uh(b)|0)|0}
  function BU (line 8) | function BU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;h=...
  function CU (line 8) | function CU(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0...
  function DU (line 8) | function DU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l...
  function EU (line 8) | function EU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|0;g=h;f=...
  function FU (line 8) | function FU(b){b=b|0;if((a[b+8+3>>0]|0)<0)cU(c[b>>2]|0);return}
  function GU (line 8) | function GU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l...
  function HU (line 8) | function HU(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)!=0?(o=0,la(110,a|0...
  function IU (line 8) | function IU(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j...
  function JU (line 8) | function JU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(...
  function KU (line 8) | function KU(a,b){a=a|0;b=b|0;return GU(a,b,FO(b)|0)|0}
  function LU (line 8) | function LU(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function MU (line 8) | function MU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l...
  function NU (line 8) | function NU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+16|...
  function OU (line 8) | function OU(a){a=a|0;return}
  function PU (line 8) | function PU(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=d;c[a+4>>2]=b;return}
  function QU (line 8) | function QU(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;nd[c[(...
  function RU (line 8) | function RU(a,b,d){a=a|0;b=b|0;d=d|0;return ((c[b>>2]|0)==(d|0)?(c[b+4>>...
  function SU (line 8) | function SU(a,b,c){a=a|0;b=b|0;c=c|0;TU(a,c);return}
  function TU (line 8) | function TU(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l;l=l+104...
  function UU (line 8) | function UU(a){a=a|0;JV(a);return}
  function VU (line 8) | function VU(a){a=a|0;UU(a);cU(a);return}
  function WU (line 8) | function WU(a,b){a=a|0;b=b|0;var d=0;d=c[b+4>>2]|0;nd[c[(c[d>>2]|0)+24>>...
  function XU (line 8) | function XU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|0;g=h;do...
  function YU (line 8) | function YU(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;j=l...
  function ZU (line 8) | function ZU(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0;f=l;l=l+48|0;h=f+32|0;...
  function _U (line 8) | function _U(){var a=0,b=0;a=l;l=l+16|0;if(!(qc(61796,78)|0)){b=oc(c[1545...
  function $U (line 8) | function $U(a,b){a=a|0;b=b|0;var d=0;d=l;l=l+16|0;c[d>>2]=b;b=c[8554]|0;...
  function aV (line 8) | function aV(a){a=a|0;return}
  function bV (line 8) | function bV(a){a=a|0;aV(a);cU(a);return}
  function cV (line 8) | function cV(a){a=a|0;return}
  function dV (line 8) | function dV(a){a=a|0;return}
  function eV (line 8) | function eV(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+64|0;f=...
  function fV (line 8) | function fV(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(iV(a,c[b...
  function gV (line 8) | function gV(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;do if(!(iV(...
  function hV (line 8) | function hV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(iV(a,c[b+8>>2]|0,0)|0)jV...
  function iV (line 8) | function iV(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}
  function jV (line 8) | function jV(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;b=d+16|0;g=...
  function kV (line 8) | function kV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((c[b+4>>2]|0)==(...
  function lV (line 8) | function lV(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function mV (line 8) | function mV(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0...
  function nV (line 8) | function nV(a){a=a|0;aV(a);cU(a);return}
  function oV (line 8) | function oV(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(iV(a,c[b...
  function pV (line 8) | function pV(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function qV (line 8) | function qV(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(iV(a,c[b+8>>2]|0,0)|0)jV...
  function rV (line 8) | function rV(a){a=a|0;return}
  function sV (line 8) | function sV(){var a=0;a=l;l=l+16|0;if(!(pc(61800,357)|0)){l=a;return}els...
  function tV (line 8) | function tV(a){a=a|0;var b=0;b=l;l=l+16|0;oI(a);if(!(rc(c[15450]|0,0)|0)...
  function uV (line 8) | function uV(){var a=0,b=0,d=0;o=0;a=da(52)|0;d=o;o=0;if(d&1){d=Gb(0)|0;_...
  function vV (line 8) | function vV(a){a=a|0;var b=0;b=l;l=l+16|0;o=0;La(a|0);a=o;o=0;if(!(a&1))...
  function wV (line 8) | function wV(){var a=0;a=c[10220]|0;c[10220]=a+0;return a|0}
  function xV (line 8) | function xV(a){a=a|0;return}
  function yV (line 8) | function yV(a){a=a|0;xV(a);cU(a);return}
  function zV (line 8) | function zV(a){a=a|0;return 57641}
  function AV (line 8) | function AV(a){a=a|0;return}
  function BV (line 8) | function BV(a){a=a|0;cU(a);return}
  function CV (line 8) | function CV(a){a=a|0;return 57669}
  function DV (line 8) | function DV(a){a=a|0;c[a>>2]=41012;HV(a+4|0);return}
  function EV (line 8) | function EV(a){a=a|0;DV(a);cU(a);return}
  function FV (line 8) | function FV(a){a=a|0;return GV(a+4|0)|0}
  function GV (line 8) | function GV(a){a=a|0;return c[a>>2]|0}
  function HV (line 8) | function HV(a){a=a|0;var b=0,d=0;if(iU(a)|0?(b=IV(c[a>>2]|0)|0,d=b+8|0,a...
  function IV (line 8) | function IV(a){a=a|0;return a+-12|0}
  function JV (line 8) | function JV(a){a=a|0;c[a>>2]=41032;HV(a+4|0);return}
  function KV (line 8) | function KV(a){a=a|0;JV(a);cU(a);return}
  function LV (line 8) | function LV(a){a=a|0;return GV(a+4|0)|0}
  function MV (line 8) | function MV(a){a=a|0;DV(a);cU(a);return}
  function NV (line 8) | function NV(a){a=a|0;DV(a);cU(a);return}
  function OV (line 8) | function OV(a){a=a|0;return}
  function PV (line 8) | function PV(a){a=a|0;OV(a);cU(a);return}
  function QV (line 8) | function QV(a){a=a|0;return 57752}
  function RV (line 8) | function RV(a){a=a|0;aV(a);cU(a);return}
  function SV (line 8) | function SV(a,b,c){a=a|0;b=b|0;c=c|0;return iV(a,b,0)|0}
  function TV (line 8) | function TV(a){a=a|0;aV(a);cU(a);return}
  function UV (line 8) | function UV(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l...
  function VV (line 8) | function VV(a,b,c){a=a|0;b=b|0;c=c|0;if(iV(a,b,0)|0)a=1;else a=iV(b,3280...
  function WV (line 8) | function WV(a){a=a|0;aV(a);cU(a);return}
  function XV (line 8) | function XV(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function YV (line 8) | function YV(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function ZV (line 8) | function ZV(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if(!(iV(b,...
  function _V (line 8) | function _V(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+4>>2]|0;f...
  function $V (line 8) | function $V(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function aW (line 8) | function aW(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=c[a+4...
  function bW (line 8) | function bW(a){a=a|0;c[a>>2]=41092;return}
  function cW (line 8) | function cW(b){b=b|0;if((a[b>>0]|0)==1)b=0;else{a[b>>0]=1;b=1}return b|0}
  function dW (line 8) | function dW(a){a=a|0;return}
  function eW (line 8) | function eW(a){a=a|0;return}
  function fW (line 8) | function fW(a){a=a|0;c[a>>2]=40972;return}
  function gW (line 8) | function gW(){var a=0;a=c[15451]|0;c[15451]=a+0;return a|0}
  function hW (line 8) | function hW(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=l;l=l+16|0;e=f;c[e>>2...
  function iW (line 8) | function iW(a){a=a|0;if(!a)a=0;else a=(mV(a,3088,3240,0)|0)!=0;return a&...
  function jW (line 8) | function jW(){}
  function kW (line 8) | function kW(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=O...
  function lW (line 8) | function lW(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=kW(e,...
  function mW (line 8) | function mW(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (z=b+d+(c>...
  function nW (line 8) | function nW(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;r...
  function oW (line 8) | function oW(b){b=b|0;var c=0;c=a[n+(b&255)>>0]|0;if((c|0)<8)return c|0;c...
  function pW (line 8) | function pW(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function qW (line 8) | function qW(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return pW(a,b,c,d,0)|0}
  function rW (line 8) | function rW(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l+16|0;f=...
  function sW (line 8) | function sW(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b>>c;return a>>>c|(b...
  function tW (line 8) | function tW(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b>>>c;return a>>>c|(...
  function uW (line 8) | function uW(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){z=b<<c|(a&(1<<c)-1<<32...
  function vW (line 8) | function vW(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>...
  function wW (line 8) | function wW(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)retu...
  function xW (line 8) | function xW(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0...
  function yW (line 8) | function yW(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255...
  function zW (line 8) | function zW(a){a=a|0;return 0}
  function AW (line 8) | function AW(a){a=a|0;return 0}
  function BW (line 8) | function BW(a){a=a|0;return 0}
  function CW (line 8) | function CW(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|...
  function DW (line 8) | function DW(a,b){a=a|0;b=b|0;return +Lc[a&63](b|0)}
  function EW (line 8) | function EW(a){a=a|0;return +Y(0,a|0)}
  function FW (line 8) | function FW(a){a=a|0;return +Y(1,a|0)}
  function GW (line 8) | function GW(a){a=a|0;return +Y(2,a|0)}
  function HW (line 8) | function HW(a){a=a|0;return +Y(3,a|0)}
  function IW (line 8) | function IW(a){a=a|0;return +Y(4,a|0)}
  function JW (line 8) | function JW(a){a=a|0;return +Y(5,a|0)}
  function KW (line 8) | function KW(a){a=a|0;return +Y(6,a|0)}
  function LW (line 8) | function LW(a){a=a|0;return +Y(7,a|0)}
  function MW (line 8) | function MW(a){a=a|0;return +Y(8,a|0)}
  function NW (line 8) | function NW(a){a=a|0;return +Y(9,a|0)}
  function OW (line 8) | function OW(a){a=a|0;return +Y(10,a|0)}
  function PW (line 8) | function PW(a){a=a|0;return +Y(11,a|0)}
  function QW (line 8) | function QW(a){a=a|0;return +Y(12,a|0)}
  function RW (line 8) | function RW(a){a=a|0;return +Y(13,a|0)}
  function SW (line 8) | function SW(a){a=a|0;return +Y(14,a|0)}
  function TW (line 8) | function TW(a){a=a|0;return +Y(15,a|0)}
  function UW (line 8) | function UW(a){a=a|0;return +Y(16,a|0)}
  function VW (line 8) | function VW(a){a=a|0;return +Y(17,a|0)}
  function WW (line 8) | function WW(a){a=a|0;return +Y(18,a|0)}
  function XW (line 8) | function XW(a){a=a|0;return +Y(19,a|0)}
  function YW (line 8) | function YW(a,b,c){a=a|0;b=b|0;c=c|0;return +Mc[a&63](b|0,c|0)}
  function ZW (line 8) | function ZW(a,b){a=a|0;b=b|0;return +_(0,a|0,b|0)}
  function _W (line 8) | function _W(a,b){a=a|0;b=b|0;return +_(1,a|0,b|0)}
  function $W (line 8) | function $W(a,b){a=a|0;b=b|0;return +_(2,a|0,b|0)}
  function aX (line 8) | function aX(a,b){a=a|0;b=b|0;return +_(3,a|0,b|0)}
  function bX (line 8) | function bX(a,b){a=a|0;b=b|0;return +_(4,a|0,b|0)}
  function cX (line 8) | function cX(a,b){a=a|0;b=b|0;return +_(5,a|0,b|0)}
  function dX (line 8) | function dX(a,b){a=a|0;b=b|0;return +_(6,a|0,b|0)}
  function eX (line 8) | function eX(a,b){a=a|0;b=b|0;return +_(7,a|0,b|0)}
  function fX (line 8) | function fX(a,b){a=a|0;b=b|0;return +_(8,a|0,b|0)}
  function gX (line 8) | function gX(a,b){a=a|0;b=b|0;return +_(9,a|0,b|0)}
  function hX (line 8) | function hX(a,b){a=a|0;b=b|0;return +_(10,a|0,b|0)}
  function iX (line 8) | function iX(a,b){a=a|0;b=b|0;return +_(11,a|0,b|0)}
  function jX (line 8) | function jX(a,b){a=a|0;b=b|0;return +_(12,a|0,b|0)}
  function kX (line 8) | function kX(a,b){a=a|0;b=b|0;return +_(13,a|0,b|0)}
  function lX (line 8) | function lX(a,b){a=a|0;b=b|0;return +_(14,a|0,b|0)}
  function mX (line 8) | function mX(a,b){a=a|0;b=b|0;return +_(15,a|0,b|0)}
  function nX (line 8) | function nX(a,b){a=a|0;b=b|0;return +_(16,a|0,b|0)}
  function oX (line 8) | function oX(a,b){a=a|0;b=b|0;return +_(17,a|0,b|0)}
  function pX (line 8) | function pX(a,b){a=a|0;b=b|0;return +_(18,a|0,b|0)}
  function qX (line 8) | function qX(a,b){a=a|0;b=b|0;return +_(19,a|0,b|0)}
  function rX (line 8) | function rX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +Nc[a&63](b|0,c|0,d|0)}
  function sX (line 8) | function sX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(0,a|0,b|0,c|0)}
  function tX (line 8) | function tX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(1,a|0,b|0,c|0)}
  function uX (line 8) | function uX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(2,a|0,b|0,c|0)}
  function vX (line 8) | function vX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(3,a|0,b|0,c|0)}
  function wX (line 8) | function wX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(4,a|0,b|0,c|0)}
  function xX (line 8) | function xX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(5,a|0,b|0,c|0)}
  function yX (line 8) | function yX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(6,a|0,b|0,c|0)}
  function zX (line 8) | function zX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(7,a|0,b|0,c|0)}
  function AX (line 8) | function AX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(8,a|0,b|0,c|0)}
  function BX (line 8) | function BX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(9,a|0,b|0,c|0)}
  function CX (line 8) | function CX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(10,a|0,b|0,c|0)}
  function DX (line 8) | function DX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(11,a|0,b|0,c|0)}
  function EX (line 8) | function EX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(12,a|0,b|0,c|0)}
  function FX (line 8) | function FX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(13,a|0,b|0,c|0)}
  function GX (line 8) | function GX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(14,a|0,b|0,c|0)}
  function HX (line 8) | function HX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(15,a|0,b|0,c|0)}
  function IX (line 8) | function IX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(16,a|0,b|0,c|0)}
  function JX (line 8) | function JX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(17,a|0,b|0,c|0)}
  function KX (line 8) | function KX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(18,a|0,b|0,c|0)}
  function LX (line 8) | function LX(a,b,c){a=a|0;b=b|0;c=c|0;return +aa(19,a|0,b|0,c|0)}
  function MX (line 8) | function MX(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return +Oc[a&63](b|...
  function NX (line 8) | function NX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(0,a|0,b|0,c|0,d|0)}
  function OX (line 8) | function OX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(1,a|0,b|0,c|0,d|0)}
  function PX (line 8) | function PX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(2,a|0,b|0,c|0,d|0)}
  function QX (line 8) | function QX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(3,a|0,b|0,c|0,d|0)}
  function RX (line 8) | function RX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(4,a|0,b|0,c|0,d|0)}
  function SX (line 8) | function SX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(5,a|0,b|0,c|0,d|0)}
  function TX (line 8) | function TX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(6,a|0,b|0,c|0,d|0)}
  function UX (line 8) | function UX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(7,a|0,b|0,c|0,d|0)}
  function VX (line 8) | function VX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(8,a|0,b|0,c|0,d|0)}
  function WX (line 8) | function WX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(9,a|0,b|0,c|0,d|0)}
  function XX (line 8) | function XX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(10,a|0,b|0,c|0,d...
  function YX (line 8) | function YX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(11,a|0,b|0,c|0,d...
  function ZX (line 8) | function ZX(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(12,a|0,b|0,c|0,d...
  function _X (line 8) | function _X(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(13,a|0,b|0,c|0,d...
  function $X (line 8) | function $X(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(14,a|0,b|0,c|0,d...
  function aY (line 8) | function aY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(15,a|0,b|0,c|0,d...
  function bY (line 8) | function bY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(16,a|0,b|0,c|0,d...
  function cY (line 8) | function cY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(17,a|0,b|0,c|0,d...
  function dY (line 8) | function dY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(18,a|0,b|0,c|0,d...
  function eY (line 8) | function eY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ca(19,a|0,b|0,c|0,d...
  function fY (line 8) | function fY(a){a=a|0;return Pc[a&63]()|0}
  function gY (line 8) | function gY(){return ea(0)|0}
  function hY (line 8) | function hY(){return ea(1)|0}
  function iY (line 8) | function iY(){return ea(2)|0}
  function jY (line 8) | function jY(){return ea(3)|0}
  function kY (line 8) | function kY(){return ea(4)|0}
  function lY (line 8) | function lY(){return ea(5)|0}
  function mY (line 8) | function mY(){return ea(6)|0}
  function nY (line 8) | function nY(){return ea(7)|0}
  function oY (line 8) | function oY(){return ea(8)|0}
  function pY (line 8) | function pY(){return ea(9)|0}
  function qY (line 8) | function qY(){return ea(10)|0}
  function rY (line 8) | function rY(){return ea(11)|0}
  function sY (line 8) | function sY(){return ea(12)|0}
  function tY (line 8) | function tY(){return ea(13)|0}
  function uY (line 8) | function uY(){return ea(14)|0}
  function vY (line 8) | function vY(){return ea(15)|0}
  function wY (line 8) | function wY(){return ea(16)|0}
  function xY (line 8) | function xY(){return ea(17)|0}
  function yY (line 8) | function yY(){return ea(18)|0}
  function zY (line 8) | function zY(){return ea(19)|0}
  function AY (line 8) | function AY(a,b){a=a|0;b=b|0;return Qc[a&255](b|0)|0}
  function BY (line 8) | function BY(a){a=a|0;return ga(0,a|0)|0}
  function CY (line 8) | function CY(a){a=a|0;return ga(1,a|0)|0}
  function DY (line 8) | function DY(a){a=a|0;return ga(2,a|0)|0}
  function EY (line 8) | function EY(a){a=a|0;return ga(3,a|0)|0}
  function FY (line 8) | function FY(a){a=a|0;return ga(4,a|0)|0}
  function GY (line 8) | function GY(a){a=a|0;return ga(5,a|0)|0}
  function HY (line 8) | function HY(a){a=a|0;return ga(6,a|0)|0}
  function IY (line 8) | function IY(a){a=a|0;return ga(7,a|0)|0}
  function JY (line 8) | function JY(a){a=a|0;return ga(8,a|0)|0}
  function KY (line 8) | function KY(a){a=a|0;return ga(9,a|0)|0}
  function LY (line 8) | function LY(a){a=a|0;return ga(10,a|0)|0}
  function MY (line 8) | function MY(a){a=a|0;return ga(11,a|0)|0}
  function NY (line 8) | function NY(a){a=a|0;return ga(12,a|0)|0}
  function OY (line 8) | function OY(a){a=a|0;return ga(13,a|0)|0}
  function PY (line 8) | function PY(a){a=a|0;return ga(14,a|0)|0}
  function QY (line 8) | function QY(a){a=a|0;return ga(15,a|0)|0}
  function RY (line 8) | function RY(a){a=a|0;return ga(16,a|0)|0}
  function SY (line 8) | function SY(a){a=a|0;return ga(17,a|0)|0}
  function TY (line 8) | function TY(a){a=a|0;return ga(18,a|0)|0}
  function UY (line 8) | function UY(a){a=a|0;return ga(19,a|0)|0}
  function VY (line 8) | function VY(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=+e;return Rc[a&63](b|0,+c...
  function WY (line 8) | function WY(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(0,a|0,+b,+c,+d)|0}
  function XY (line 8) | function XY(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(1,a|0,+b,+c,+d)|0}
  function YY (line 8) | function YY(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(2,a|0,+b,+c,+d)|0}
  function ZY (line 8) | function ZY(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(3,a|0,+b,+c,+d)|0}
  function _Y (line 8) | function _Y(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(4,a|0,+b,+c,+d)|0}
  function $Y (line 8) | function $Y(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(5,a|0,+b,+c,+d)|0}
  function aZ (line 8) | function aZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(6,a|0,+b,+c,+d)|0}
  function bZ (line 8) | function bZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(7,a|0,+b,+c,+d)|0}
  function cZ (line 8) | function cZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(8,a|0,+b,+c,+d)|0}
  function dZ (line 8) | function dZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(9,a|0,+b,+c,+d)|0}
  function eZ (line 8) | function eZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(10,a|0,+b,+c,+d)|0}
  function fZ (line 8) | function fZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(11,a|0,+b,+c,+d)|0}
  function gZ (line 8) | function gZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(12,a|0,+b,+c,+d)|0}
  function hZ (line 8) | function hZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(13,a|0,+b,+c,+d)|0}
  function iZ (line 8) | function iZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(14,a|0,+b,+c,+d)|0}
  function jZ (line 8) | function jZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(15,a|0,+b,+c,+d)|0}
  function kZ (line 8) | function kZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(16,a|0,+b,+c,+d)|0}
  function lZ (line 8) | function lZ(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return ia(17,a|0,+b,+c,+d)|0}
  function wM (line 9) | function wM(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0...
  function xM (line 9) | function xM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l...
  function yM (line 9) | function yM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function zM (line 9) | function zM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l...
  function AM (line 9) | function AM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function BM (line 9) | function BM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=l;l=l...
  function CM (line 9) | function CM(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function DM (line 9) | function DM(a){a=a|0;BL(a);return}
  function EM (line 9) | function EM(a){a=a|0;BL(a);cU(a);return}
  function FM (line 9) | function FM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function GM (line 9) | function GM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function HM (line 9) | function HM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function IM (line 9) | function IM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function JM (line 9) | function JM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function KM (line 9) | function KM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function LM (line 9) | function LM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function MM (line 9) | function MM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function NM (line 9) | function NM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function OM (line 9) | function OM(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function PM (line 9) | function PM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function QM (line 9) | function QM(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i...
  function RM (line 9) | function RM(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k...
  function SM (line 9) | function SM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function TM (line 9) | function TM(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0...
  function UM (line 9) | function UM(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k...
  function VM (line 9) | function VM(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0.0,k...
  function WM (line 9) | function WM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function XM (line 9) | function XM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=l...
  function YM (line 9) | function YM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function ZM (line 9) | function ZM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function _M (line 9) | function _M(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0...
  function $M (line 9) | function $M(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function aN (line 9) | function aN(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function bN (line 9) | function bN(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function cN (line 9) | function cN(a){a=a|0;BL(a);return}
  function dN (line 9) | function dN(a){a=a|0;BL(a);cU(a);return}
  function eN (line 9) | function eN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function fN (line 9) | function fN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function gN (line 9) | function gN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function hN (line 9) | function hN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function iN (line 9) | function iN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function jN (line 9) | function jN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,...
  function kN (line 9) | function kN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,...
  function lN (line 9) | function lN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function mN (line 9) | function mN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=l;l=l...
  function nN (line 9) | function nN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;a:do switch((c[e+4>>2]&...
  function oN (line 9) | function oN(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;if(d&2048){a[b>...
  function pN (line 9) | function pN(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=...
  function qN (line 9) | function qN(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function rN (line 9) | function rN(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;if(e&2048){a[b>>0]=...
  function sN (line 9) | function sN(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function tN (line 9) | function tN(a){a=a|0;BL(a);return}
  function uN (line 9) | function uN(a){a=a|0;BL(a);cU(a);return}
  function vN (line 9) | function vN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function wN (line 9) | function wN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function xN (line 9) | function xN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function yN (line 9) | function yN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function zN (line 9) | function zN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function AN (line 9) | function AN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,...
  function BN (line 9) | function BN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0,k=0,...
  function CN (line 9) | function CN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function DN (line 9) | function DN(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function EN (line 9) | function EN(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((b|0)!=0?(o=0,la(103,a|0...
  function FN (line 9) | function FN(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function GN (line 9) | function GN(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function HN (line 9) | function HN(a){a=a|0;BL(a);return}
  function IN (line 9) | function IN(a){a=a|0;BL(a);cU(a);return}
  function JN (line 9) | function JN(a){a=a|0;return 2}
  function KN (line 9) | function KN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function LN (line 9) | function LN(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function MN (line 9) | function MN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function NN (line 9) | function NN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function ON (line 9) | function ON(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function PN (line 9) | function PN(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j...
  function QN (line 9) | function QN(b){b=b|0;do if((a[58024]|0)==0?cW(58024)|0:0){o=0;La(46);b=o...
  function RN (line 9) | function RN(b){b=b|0;do if((a[58008]|0)==0?cW(58008)|0:0){o=0;La(47);b=o...
  function SN (line 9) | function SN(b){b=b|0;do if((a[57992]|0)==0?cW(57992)|0:0){o=0;La(48);b=o...
  function TN (line 9) | function TN(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do if((a...
  function UN (line 9) | function UN(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do if((a...
  function VN (line 9) | function VN(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do if((a...
  function WN (line 9) | function WN(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do if((a...
  function XN (line 9) | function XN(){var b=0,d=0;if((a[58e3]|0)==0?cW(58e3)|0:0){d=6e4;do{c[d>>...
  function YN (line 9) | function YN(){var b=0,d=0;if((a[58016]|0)==0?cW(58016)|0:0){d=60292;do{c...
  function ZN (line 9) | function ZN(){var b=0,d=0;if((a[58032]|0)==0?cW(58032)|0:0){d=60584;do{c...
  function _N (line 9) | function _N(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function $N (line 9) | function $N(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function aO (line 9) | function aO(d,e,f,g,h,i,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k...
  function bO (line 9) | function bO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function cO (line 9) | function cO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function dO (line 9) | function dO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function eO (line 9) | function eO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function fO (line 9) | function fO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function gO (line 9) | function gO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function hO (line 9) | function hO(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;j=h...
  function iO (line 9) | function iO(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function jO (line 9) | function jO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function kO (line 9) | function kO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function lO (line 9) | function lO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function mO (line 9) | function mO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function nO (line 9) | function nO(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function oO (line 9) | function oO(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0...
  function pO (line 9) | function pO(a){a=a|0;BL(a);return}
  function qO (line 9) | function qO(a){a=a|0;BL(a);cU(a);return}
  function rO (line 9) | function rO(a){a=a|0;return 2}
  function sO (line 9) | function sO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function tO (line 9) | function tO(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function uO (line 9) | function uO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function vO (line 9) | function vO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function wO (line 9) | function wO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function xO (line 9) | function xO(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j...
  function yO (line 9) | function yO(b){b=b|0;do if((a[58104]|0)==0?cW(58104)|0:0){o=0;La(49);b=o...
  function zO (line 9) | function zO(b){b=b|0;do if((a[58088]|0)==0?cW(58088)|0:0){o=0;La(50);b=o...
  function AO (line 9) | function AO(b){b=b|0;do if((a[58072]|0)==0?cW(58072)|0:0){o=0;La(51);b=o...
  function BO (line 9) | function BO(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do if((a...
  function CO (line 9) | function CO(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do if((a...
  function DO (line 9) | function DO(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do if((a...
  function EO (line 9) | function EO(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=l;l=l+16|0;e=g;a:do if((a...
  function FO (line 9) | function FO(a){a=a|0;var b=0;o=0;a=fa(166,a|0)|0;b=o;o=0;if(b&1){b=Gb(0)...
  function GO (line 9) | function GO(){var b=0,d=0;if((a[58080]|0)==0?cW(58080)|0:0){d=60812;do{c...
  function HO (line 9) | function HO(){var b=0,d=0;if((a[58096]|0)==0?cW(58096)|0:0){d=61104;do{c...
  function IO (line 9) | function IO(){var b=0,d=0;if((a[58112]|0)==0?cW(58112)|0:0){d=61396;do{c...
  function JO (line 9) | function JO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function KO (line 9) | function KO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function LO (line 9) | function LO(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i...
  function MO (line 9) | function MO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function NO (line 9) | function NO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function OO (line 9) | function OO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function PO (line 9) | function PO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function QO (line 9) | function QO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function RO (line 9) | function RO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function SO (line 9) | function SO(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:w...
  function TO (line 9) | function TO(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function UO (line 9) | function UO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function VO (line 9) | function VO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function WO (line 9) | function WO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function XO (line 9) | function XO(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function YO (line 9) | function YO(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function ZO (line 9) | function ZO(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function _O (line 9) | function _O(a){a=a|0;dP(a+8|0);BL(a);return}
  function $O (line 9) | function $O(a){a=a|0;dP(a+8|0);BL(a);cU(a);return}
  function aP (line 9) | function aP(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function bP (line 9) | function bP(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function cP (line 9) | function cP(a,b){a=a|0;b=b|0;return b-a|0}
  function dP (line 9) | function dP(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;o=0;d=da(44)|0;e=o;o=0;...
  function eP (line 9) | function eP(a){a=a|0;dP(a+8|0);BL(a);return}
  function fP (line 9) | function fP(a){a=a|0;dP(a+8|0);BL(a);cU(a);return}
  function gP (line 9) | function gP(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var...
  function hP (line 9) | function hP(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function iP (line 9) | function iP(a,b){a=a|0;b=b|0;return b-a>>2|0}
  function jP (line 9) | function jP(a){a=a|0;var b=0;b=Ab(8)|0;o=0;Xa(371,b|0,a|0);a=o;o=0;if(a&...
  function kP (line 9) | function kP(a){a=a|0;BL(a);return}
  function lP (line 9) | function lP(a){a=a|0;BL(a);cU(a);return}
  function mP (line 9) | function mP(a){a=a|0;return 127}
  function nP (line 9) | function nP(a){a=a|0;return 127}
  function oP (line 9) | function oP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function pP (line 9) | function pP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function qP (line 9) | function qP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function rP (line 9) | function rP(b,d){b=b|0;d=d|0;var e=0;d=l;l=l+16|0;e=d;c[b>>2]=0;c[b+4>>2...
  function sP (line 9) | function sP(a){a=a|0;return 0}
  function tP (line 9) | function tP(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]...
  function uP (line 9) | function uP(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]...
  function vP (line 9) | function vP(a){a=a|0;BL(a);return}
  function wP (line 9) | function wP(a){a=a|0;BL(a);cU(a);return}
  function xP (line 9) | function xP(a){a=a|0;return 127}
  function yP (line 9) | function yP(a){a=a|0;return 127}
  function zP (line 9) | function zP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function AP (line 9) | function AP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function BP (line 9) | function BP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function CP (line 9) | function CP(b,d){b=b|0;d=d|0;var e=0;d=l;l=l+16|0;e=d;c[b>>2]=0;c[b+4>>2...
  function DP (line 9) | function DP(a){a=a|0;return 0}
  function EP (line 9) | function EP(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]...
  function FP (line 9) | function FP(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]...
  function GP (line 9) | function GP(a){a=a|0;BL(a);return}
  function HP (line 9) | function HP(a){a=a|0;BL(a);cU(a);return}
  function IP (line 9) | function IP(a){a=a|0;return 2147483647}
  function JP (line 9) | function JP(a){a=a|0;return 2147483647}
  function KP (line 9) | function KP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function LP (line 9) | function LP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function MP (line 9) | function MP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function NP (line 9) | function NP(b,d){b=b|0;d=d|0;var e=0;d=l;l=l+16|0;e=d;c[b>>2]=0;c[b+4>>2...
  function OP (line 9) | function OP(a){a=a|0;return 0}
  function PP (line 9) | function PP(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]...
  function QP (line 9) | function QP(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]...
  function RP (line 9) | function RP(a){a=a|0;BL(a);return}
  function SP (line 9) | function SP(a){a=a|0;BL(a);cU(a);return}
  function TP (line 9) | function TP(a){a=a|0;return 2147483647}
  function UP (line 9) | function UP(a){a=a|0;return 2147483647}
  function VP (line 9) | function VP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function WP (line 9) | function WP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function XP (line 9) | function XP(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while...
  function YP (line 9) | function YP(b,d){b=b|0;d=d|0;var e=0;d=l;l=l+16|0;e=d;c[b>>2]=0;c[b+4>>2...
  function ZP (line 9) | function ZP(a){a=a|0;return 0}
  function _P (line 9) | function _P(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]...
  function $P (line 9) | function $P(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]...
  function aQ (line 9) | function aQ(a){a=a|0;BL(a);return}
  function bQ (line 9) | function bQ(a){a=a|0;BL(a);cU(a);return}
  function cQ (line 9) | function cQ(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function dQ (line 9) | function dQ(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var...
  function eQ (line 9) | function eQ(a){a=a|0;return}
  function IH (line 10) | function IH(){return JH()|0}
  function JH (line 10) | function JH(){return 1704}
  function KH (line 10) | function KH(){return LH()|0}
  function LH (line 10) | function LH(){return 1712}
  function MH (line 10) | function MH(){return 1720}
  function NH (line 10) | function NH(){return 1728}
  function OH (line 10) | function OH(){return 1760}
  function PH (line 10) | function PH(){return 1784}
  function QH (line 10) | function QH(){return RH()|0}
  function RH (line 10) | function RH(){return 3392}
  function SH (line 10) | function SH(){return TH()|0}
  function TH (line 10) | function TH(){return 3384}
  function UH (line 10) | function UH(){return VH()|0}
  function VH (line 10) | function VH(){return 3376}
  function WH (line 10) | function WH(){return XH()|0}
  function XH (line 10) | function XH(){return 3368}
  function YH (line 10) | function YH(){return ZH()|0}
  function ZH (line 10) | function ZH(){return 3360}
  function _H (line 10) | function _H(){return $H()|0}
  function $H (line 10) | function $H(){return 3352}
  function aI (line 10) | function aI(){return bI()|0}
  function bI (line 10) | function bI(){return 3344}
  function cI (line 10) | function cI(){return dI()|0}
  function dI (line 10) | function dI(){return 3336}
  function eI (line 10) | function eI(){return fI()|0}
  function fI (line 10) | function fI(){return 3320}
  function gI (line 10) | function gI(){return hI()|0}
  function hI (line 10) | function hI(){return 3328}
  function iI (line 10) | function iI(){return jI()|0}
  function jI (line 10) | function jI(){return 3296}
  function kI (line 10) | function kI(){return 3288}
  function lI (line 10) | function lI(){return 3272}
  function mI (line 10) | function mI(a){a=a|0;return fK(c[a+4>>2]|0)|0}
  function nI (line 10) | function nI(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0...
  function oI (line 10) | function oI(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=...
  function pI (line 10) | function pI(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=nI(b)|0;return b|0}if(...
  function qI (line 10) | function qI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0...
  function rI (line 10) | function rI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=a+b|0;d=c...
  function sI (line 10) | function sI(){return 59756}
  function tI (line 10) | function tI(a){a=a|0;var b=0,d=0;b=l;l=l+16|0;d=b;c[d>>2]=AI(c[a+60>>2]|...
  function uI (line 10) | function uI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0...
  function vI (line 10) | function vI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+32|0;g=f;e=...
  function wI (line 10) | function wI(a){a=a|0;if(a>>>0>4294963200){c[(xI()|0)>>2]=0-a;a=-1}return...
  function xI (line 10) | function xI(){return (yI()|0)+64|0}
  function yI (line 10) | function yI(){return zI()|0}
  function zI (line 10) | function zI(){return 34344}
  function AI (line 10) | function AI(a){a=a|0;return a|0}
  function BI (line 10) | function BI(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=CI(a,b,c)|0;return d|0}
  function CI (line 10) | function CI(a,b,c){a=a|0;b=b|0;c=c|0;c=DI(a,b,c,-1,-1)|0;return c|0}
  function DI (line 10) | function DI(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function EI (line 10) | function EI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+8>>2]|0...
  function FI (line 10) | function FI(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0...
  function GI (line 10) | function GI(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=b+104|0;j=c[f>>2]...
  function HI (line 10) | function HI(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}
  function II (line 10) | function II(a){a=a|0;var b=0,e=0;e=l;l=l+16|0;b=e;if((JI(a)|0)==0?(Tc[c[...
  function JI (line 10) | function JI(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=...
  function KI (line 10) | function KI(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=LI(a,b,c)|0;return d|0}
  function LI (line 10) | function LI(a,b,c){a=a|0;b=b|0;c=c|0;c=DI(a,b,c,0,-2147483648)|0;return ...
  function MI (line 10) | function MI(a,b){a=+a;b=+b;var d=0,e=0;h[j>>3]=a;e=c[j>>2]|0;d=c[j+4>>2]...
  function NI (line 10) | function NI(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<2...
  function OI (line 10) | function OI(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{whi...
  function PI (line 10) | function PI(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0...
  function QI (line 10) | function QI(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function RI (line 10) | function RI(d,e,f,g,i){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,m=0,n=0...
  function SI (line 10) | function SI(a){a=a|0;return 0}
  function TI (line 10) | function TI(a){a=a|0;return}
  function UI (line 10) | function UI(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))oJ(b,d,a)|0;return}
  function VI (line 10) | function VI(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]|0;f=(a[e>>0]|0)+-48|0;if(...
  function WI (line 10) | function WI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20...
  function XI (line 10) | function XI(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{...
  function YI (line 10) | function YI(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0...
  function ZI (line 10) | function ZI(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4...
  function _I (line 10) | function _I(a){a=a|0;return jJ(a,c[(iJ()|0)+188>>2]|0)|0}
  function $I (line 10) | function $I(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)...
  function aJ (line 10) | function aJ(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=l;l=l...
  function bJ (line 10) | function bJ(a,b){a=a|0;b=b|0;if(!a)a=0;else a=gJ(a,b,0)|0;return a|0}
  function cJ (line 10) | function cJ(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,...
  function dJ (line 10) | function dJ(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;z=c[j+4>>2]|0;return b|0}
  function eJ (line 10) | function eJ(a,b){a=+a;b=b|0;return +(+fJ(a,b))}
  function fJ (line 10) | function fJ(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[j>>3]=a;d=c[j>>2]|0;e=c[j+...
  function gJ (line 10) | function gJ(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=...
  function hJ (line 10) | function hJ(){return zI()|0}
  function iJ (line 10) | function iJ(){return zI()|0}
  function jJ (line 10) | function jJ(b,e){b=b|0;e=e|0;var f=0,g=0;g=0;while(1){if((d[52276+g>>0]|...
  function kJ (line 10) | function kJ(a,b){a=a|0;b=b|0;return lJ(a,b)|0}
  function lJ (line 10) | function lJ(a,b){a=a|0;b=b|0;if(!b)b=0;else b=mJ(c[b>>2]|0,c[b+4>>2]|0,a...
  function mJ (line 10) | function mJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0...
  function nJ (line 10) | function nJ(a,b){a=a|0;b=b|0;var c=0;c=vW(a|0)|0;return ((b|0)==0?a:c)|0}
  function oJ (line 10) | function oJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=e+16|0;g=...
  function pJ (line 10) | function pJ(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=...
  function qJ (line 10) | function qJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=...
  function rJ (line 10) | function rJ(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+...
  function sJ (line 10) | function sJ(a){a=a|0;return ((a+-48|0)>>>0<10|((a|32)+-97|0)>>>0<6)&1|0}
  function tJ (line 10) | function tJ(){return 34712}
  function uJ (line 10) | function uJ(){var a=0;a=(c[c[(vJ()|0)+188>>2]>>2]|0)!=0;return (a?4:1)|0}
  function vJ (line 10) | function vJ(){return zI()|0}
  function wJ (line 10) | function wJ(){return 34716}
  function xJ (line 10) | function xJ(){return 36256}
  function yJ (line 10) | function yJ(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n...
  function zJ (line 10) | function zJ(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0.0,i=0,j=0,k...
  function AJ (line 10) | function AJ(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0.0,j...
  function BJ (line 10) | function BJ(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=a+4|0;e=c...
  function CJ (line 10) | function CJ(a,b){a=+a;b=b|0;var d=0,e=0;if((b|0)<=1023){if((b|0)<-1022){...
  function DJ (line 10) | function DJ(a,b){a=+a;b=+b;return +(+MI(a,b))}
  function EJ (line 10) | function EJ(a,b){a=+a;b=+b;return +(+GJ(a,b))}
  function FJ (line 10) | function FJ(a,b){a=+a;b=b|0;return +(+CJ(a,b))}
  function GJ (line 10) | function GJ(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p...
  function HJ (line 10) | function HJ(a){a=+a;var b=0;h[j>>3]=a;b=c[j>>2]|0;z=c[j+4>>2]|0;return b|0}
  function IJ (line 10) | function IJ(a){a=a|0;return 0}
  function JJ (line 10) | function JJ(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}
  function KJ (line 10) | function KJ(a,b){a=a|0;b=b|0;return -1|0}
  function LJ (line 10) | function LJ(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=f;whi...
  function MJ (line 10) | function MJ(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;c[e>>2]=a;c[e+...
  function NJ (line 10) | function NJ(b,c){b=b|0;c=c|0;b=OJ(b,c)|0;return ((a[b>>0]|0)==(c&255)<<2...
  function OJ (line 10) | function OJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(LJ(...
  function PJ (line 10) | function PJ(){return}
  function QJ (line 10) | function QJ(a){a=a|0;if(RJ(a)|0)oI(a);return}
  function RJ (line 10) | function RJ(a){a=a|0;return (a|0)!=33988&((a|0)!=0&(a|0)!=59820)&1|0}
  function SJ (line 10) | function SJ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0...
  function TJ (line 10) | function TJ(){return zI()|0}
  function UJ (line 10) | function UJ(a,b){a=a|0;b=b|0;return (a+-48|0)>>>0<10|0}
  function VJ (line 10) | function VJ(a,b){a=a|0;b=b|0;return sJ(a)|0}
  function WJ (line 10) | function WJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0...
  function XJ (line 10) | function XJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=l;l=l...
  function YJ (line 10) | function YJ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=...
  function ZJ (line 10) | function ZJ(a,b){a=a|0;b=b|0;_J(a,b)|0;return a|0}
  function _J (line 10) | function _J(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)...
  function $J (line 10) | function $J(a){a=a|0;var b=0,d=0;b=(aK()|0)+188|0;d=c[b>>2]|0;if(a|0)c[b...
  function aK (line 10) | function aK(){return zI()|0}
  function bK (line 10) | function bK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1...
  function cK (line 10) | function cK(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+16|...
  function dK (line 10) | function dK(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l+16|0;g=...
  function eK (line 10) | function eK(){return zI()|0}
  function fK (line 10) | function fK(a){a=a|0;var b=0,c=0;c=(LJ(a)|0)+1|0;b=nI(c)|0;if(!b)b=0;els...
  function gK (line 10) | function gK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2...
  function hK (line 10) | function hK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l+128|0;e...
  function iK (line 10) | function iK(a,b,c){a=a|0;b=b|0;c=c|0;return nK(a,b,c)|0}
  function jK (line 10) | function jK(b,e,f){b=b|0;e=e|0;f=f|0;var i=0,j=0,k=0,m=0,n=0,o=0.0,p=0,q...
  function kK (line 10) | function kK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=l;l=l+16|0;d=e;c[d>>2]=c[...
  function lK (line 10) | function lK(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;a:do if(d|0)switch(e|0){cas...
  function mK (line 10) | function mK(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0;return a&1|0}
  function nK (line 10) | function nK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>...
  function oK (line 10) | function oK(a,b,c){a=a|0;b=b|0;c=c|0;return SJ(0,a,b,c|0?c:59860)|0}
  function pK (line 10) | function pK(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function qK (line 10) | function qK(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=c...
  function rK (line 10) | function rK(){return zI()|0}
  function sK (line 10) | function sK(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function tK (line 10) | function tK(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l...
  function uK (line 10) | function uK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;e=...
  function vK (line 10) | function vK(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=b&255;e=b...
  function wK (line 10) | function wK(a,b){a=a|0;b=b|0;return +(+xK(a,b,1))}
  function xK (line 10) | function xK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=l;l=l+1...
  function yK (line 10) | function yK(a,b){a=a|0;b=b|0;return +(+xK(a,b,0))}
  function zK (line 10) | function zK(a,b){a=a|0;b=b|0;return +(+xK(a,b,2))}
  function AK (line 10) | function AK(a,b,c){a=a|0;b=b|0;c=c|0;return +(+yK(a,b))}
  function BK (line 10) | function BK(a,b,c){a=a|0;b=b|0;c=c|0;return +(+wK(a,b))}
  function CK (line 10) | function CK(a,b,c){a=a|0;b=b|0;c=c|0;return +(+zK(a,b))}
  function DK (line 10) | function DK(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=_I(b)|0;b=LJ(e)|0;if(b>>>...
  function EK (line 10) | function EK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1...
  function FK (line 10) | function FK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(a-b>>2>>>0>=d>>>0){if(d|...
  function GK (line 10) | function GK(a){a=a|0;HK(a);return}
  function HK (line 10) | function HK(a){a=a|0;var b=0;c[a>>2]=37844;o=0;Xa(370,a|0,0);b=o;o=0;if(...
  function IK (line 10) | function IK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+32|0;f=a+36|0;d=c[a...
  function JK (line 10) | function JK(a){a=a|0;HK(a);cU(a);return}
  function KK (line 10) | function KK(a){a=a|0;c[a>>2]=37860;WL(a+4|0);return}
  function LK (line 10) | function LK(a){a=a|0;KK(a);cU(a);return}
  function MK (line 10) | function MK(a,b){a=a|0;b=b|0;return}
  function NK (line 10) | function NK(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}
  function OK (line 10) | function OK(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=a;c[g>>2]...
  function PK (line 10) | function PK(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a;c[e>>2]=0;c[e+4>>2]=0;e...
  function QK (line 10) | function QK(a){a=a|0;return 0}
  function RK (line 10) | function RK(a){a=a|0;return 0}
  function SK (line 10) | function SK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;Qg()|0;...
  function TK (line 10) | function TK(a){a=a|0;return Qg()|0}
  function UK (line 10) | function UK(b){b=b|0;var d=0;d=Qc[c[(c[b>>2]|0)+36>>2]&255](b)|0;if((d|0...
  function VK (line 10) | function VK(a,b){a=a|0;b=b|0;return Qg()|0}
  function WK (line 10) | function WK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=Q...
  function XK (line 10) | function XK(a,b){a=a|0;b=b|0;return Qg()|0}
  function YK (line 10) | function YK(){return -1}
  function ZK (line 10) | function ZK(a){a=a|0;return a|0}
  function _K (line 10) | function _K(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)!=0?(o=0,la(100,a|0...
  function $K (line 10) | function $K(a){a=a|0;dL(a,37956);GK(a+4|0);return}
  function aL (line 10) | function aL(a){a=a|0;$K(a);cU(a);return}
  function bL (line 10) | function bL(a){a=a|0;$K(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}
  function cL (line 10) | function cL(a){a=a|0;aL(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}
  function dL (line 10) | function dL(a,b){a=a|0;b=b|0;return}
  function eL (line 10) | function eL(a){a=a|0;cU(a);return}
  function fL (line 10) | function fL(a){a=a|0;return 54484}
  function gL (line 10) | function gL(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=l;l=l+16|0;f=g;if...
  function hL (line 10) | function hL(a){a=a|0;UU(a);return}
  function iL (line 10) | function iL(a){a=a|0;hL(a);cU(a);return}
  function jL (line 10) | function jL(a,b){a=a|0;b=b|0;var d=0,e=0;d=l;l=l+16|0;e=d;b=(c[a+24>>2]|...
  function kL (line 10) | function kL(){(a[57944]|0)==0?cW(57944)|0:0;return 38020}
  function lL (line 10) | function lL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=l;l=l+16|...
  function mL (line 10) | function mL(a,b){a=a|0;b=b|0;var d=0;c[a+24>>2]=b;c[a+16>>2]=(b|0)==0&1;...
  function nL (line 10) | function nL(a,b){a=a|0;b=b|0;TT(a,b+28|0);return}
  function oL (line 10) | function oL(a,b){a=a|0;b=b|0;return (a|0)==(b|0)|0}
  function pL (line 10) | function pL(a){a=a|0;c[a>>2]=37860;VT(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]...
  function qL (line 10) | function qL(b){b=b|0;var d=0,e=0,f=0,g=0;f=l;l=l+16|0;d=f;a:do if(c[b+(c...
  function rL (line 10) | function rL(b,d){b=b|0;d=d|0;a[b>>0]=0;c[b+4>>2]=d;d=d+(c[(c[d>>2]|0)+-1...
  function sL (line 10) | function sL(a){a=a|0;var b=0,d=0;a=a+4|0;b=c[a>>2]|0;b=b+(c[(c[b>>2]|0)+...
  function tL (line 10) | function tL(a){a=a|0;var b=0;b=a+16|0;c[b>>2]=c[b>>2]|1;if(!(c[a+20>>2]&...
  function uL (line 10) | function uL(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,p=0...
  function vL (line 10) | function vL(a){a=a|0;BL(a);return}
  function wL (line 10) | function wL(a){a=a|0;vL(a);cU(a);return}
  function xL (line 10) | function xL(a){a=a|0;if(a|0)fd[c[(c[a>>2]|0)+4>>2]&511](a);return}
  function yL (line 10) | function yL(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=c;whi...
  function zL (line 10) | function zL(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l...
  function AL (line 10) | function AL(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;b=0;while(1){if((c|0)==...
  function BL (line 10) | function BL(a){a=a|0;return}
  function CL (line 10) | function CL(a){a=a|0;BL(a);return}
  function DL (line 10) | function DL(a){a=a|0;CL(a);cU(a);return}
  function EL (line 10) | function EL(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a=b;whi...
  function FL (line 10) | function FL(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=l;l=l...
  function GL (line 10) | function GL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=0;while(1){if((b|0)==...
  function HL (line 10) | function HL(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];return}
  function IL (line 10) | function IL(a){a=a|0;BL(a);return}
  function JL (line 10) | function JL(a){a=a|0;BL(a);cU(a);return}
  function KL (line 10) | function KL(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function LL (line 10) | function LL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function ML (line 10) | function ML(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function NL (line 10) | function NL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function OL (line 10) | function OL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function PL (line 10) | function PL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function QL (line 10) | function QL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function RL (line 10) | function RL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function SL (line 10) | function SL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function TL (line 10) | function TL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0...
  function UL (line 10) | function UL(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function VL (line 10) | function VL(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return $L(a,_L(b)|0)|0}
  function WL (line 10) | function WL(a){a=a|0;ZT(c[a>>2]|0)|0;return}
  function XL (line 10) | function XL(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i...
  function YL (line 10) | function YL(){var b=0,d=0;do if((a[57952]|0)==0?cW(57952)|0:0){o=0;b=la(...
  function ZL (line 10) | function ZL(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=l;l=l+16|0;g=...
  function _L (line 10) | function _L(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=l;l=l+48|0;b=f+32|0;d=f+2...
  function $L (line 10) | function $L(a,b){a=a|0;b=b|0;if(aM(a,b)|0)return c[(c[a+8>>2]|0)+(b<<2)>...
  function aM (line 10) | function aM(a,b){a=a|0;b=b|0;var d=0;d=c[a+8>>2]|0;if((c[a+12>>2]|0)-d>>...
  function bM (line 10) | function bM(a){a=a|0;var b=0;b=c[14973]|0;c[14973]=b+1;c[a+4>>2]=b+1;ret...
  function cM (line 10) | function cM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b>>2]|0;b=c[b+4>>2]|0;c...
  function dM (line 10) | function dM(a){a=a|0;eM(c[c[a>>2]>>2]|0);return}
  function eM (line 10) | function eM(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;e=c[a+8>>2]|0;d=(c[a>...
  function fM (line 10) | function fM(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k...
  function gM (line 10) | function gM(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0...
  function hM (line 10) | function hM(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0...
  function iM (line 10) | function iM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=l;l=l+1...
  function jM (line 10) | function jM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0...
  function kM (line 10) | function kM(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k...
  function lM (line 10) | function lM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=l;l=l+1...
  function mM (line 10) | function mM(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0.0,k...
  function nM (line 10) | function nM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=l;l=l+1...
  function oM (line 10) | function oM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function pM (line 10) | function pM(a){a=a|0;switch(c[a+4>>2]&74){case 64:{a=8;break}case 8:{a=1...
  function qM (line 10) | function qM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=l...
  function rM (line 10) | function rM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=l...
  function sM (line 10) | function sM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function tM (line 10) | function tM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l...
  function uM (line 10) | function uM(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function vM (line 10) | function vM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=l;l=l...
  function nB (line 11) | function nB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=l;l=l+16|0;e=f;c[...
  function oB (line 11) | function oB(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}
  function pB (line 11) | function pB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=l;l=l+16|0;f=e;c[f>>2...
  function qB (line 11) | function qB(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var...
  function rB (line 11) | function rB(a,b){a=a|0;b=b|0;c[a>>2]=0;HB(a,b);return}
  function sB (line 11) | function sB(a,b){a=a|0;b=b|0;c[a>>2]=0;HB(a,c[b>>2]|0);return}
  function tB (line 11) | function tB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l...
  function uB (line 11) | function uB(a){a=a|0;a=c[a>>2]|0;if(a|0)af(a);return}
  function vB (line 11) | function vB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=l;l=l+16|...
  function wB (line 11) | function wB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[a>>2]=0;e=a+4|0;c[e>>...
  function xB (line 11) | function xB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l...
  function yB (line 11) | function yB(a){a=a|0;return 1073741823}
  function zB (line 11) | function zB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;d...
  function AB (line 11) | function AB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0...
  function BB (line 11) | function BB(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]...
  function CB (line 11) | function CB(a,b){a=a|0;b=b|0;var d=0;if((yB(a)|0)>>>0<b>>>0)wS(a);if(b>>...
  function DB (line 11) | function DB(a){a=a|0;return 1073741823}
  function EB (line 11) | function EB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;d...
  function FB (line 11) | function FB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0...
  function GB (line 11) | function GB(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[...
  function HB (line 11) | function HB(a,b){a=a|0;b=b|0;var d=0;if(b|0)$e(b)|0;d=c[a>>2]|0;if(d|0)a...
  function IB (line 11) | function IB(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d...
  function JB (line 11) | function JB(a){a=a|0;return c[a>>2]|0}
  function KB (line 11) | function KB(a){a=a|0;return a+4|0}
  function LB (line 11) | function LB(a){a=a|0;return c[a>>2]|0}
  function MB (line 11) | function MB(a){a=a|0;return c[a+4>>2]|0}
  function NB (line 11) | function NB(a,b){a=a|0;b=b|0;var d=0;if((PB(a)|0)>>>0<b>>>0)wS(a);if(b>>...
  function OB (line 11) | function OB(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=...
  function PB (line 11) | function PB(a){a=a|0;return 1073741823}
  function QB (line 11) | function QB(a){a=a|0;return c[a+8>>2]|0}
  function RB (line 11) | function RB(a){a=a|0;return c[a+12>>2]|0}
  function SB (line 11) | function SB(a){a=a|0;return c[a+28>>2]|0}
  function TB (line 11) | function TB(a){a=a|0;return (c[a+8>>2]<<2)+17|0}
  function UB (line 11) | function UB(a,b){a=a|0;b=b|0;b=KA(b)|0;return c[(c[a+16>>2]|0)+(b<<2)>>2...
  function VB (line 11) | function VB(a){a=a|0;var b=0,c=0;do if(((a|0)%4|0|0)==1){o=0;a=fa(143,a+...
  function WB (line 11) | function WB(a){a=a|0;if((a|0)<1|(c[14751]|0)<(a|0)){a=Ab(8)|0;hg(a,48225...
  function XB (line 11) | function XB(a){a=a|0;return c[a>>2]|0}
  function YB (line 11) | function YB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=2147483647;d=0;b=0;wh...
  function ZB (line 11) | function ZB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0...
  function _B (line 11) | function _B(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return (xj(be(a+8|0)|0,b,c)...
  function $B (line 11) | function $B(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;cf(a);c[a>>2]=33620;e=a+8|0...
  function aC (line 11) | function aC(a){a=a|0;c[a>>2]=33620;WA(a+16|0);de(a+8|0);ff(a);return}
  function bC (line 11) | function bC(a){a=a|0;aC(a);cU(a);return}
  function cC (line 11) | function cC(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l...
  function dC (line 11) | function dC(a,b){a=a|0;b=b|0;XA(a,c[b>>2]|0);return a|0}
  function eC (line 11) | function eC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=a+12|0;b=...
  function fC (line 11) | function fC(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function gC (line 11) | function gC(a){a=a|0;return c[a>>2]|0}
  function hC (line 11) | function hC(a){a=a|0;return c[a>>2]|0}
  function iC (line 11) | function iC(a,b,d){a=a|0;b=b|0;d=d|0;cf(a);c[a>>2]=33636;c[a+8>>2]=b;o=0...
  function jC (line 11) | function jC(a){a=a|0;c[a>>2]=33636;Nd(a+12|0);ff(a);return}
  function kC (line 11) | function kC(a){a=a|0;jC(a);cU(a);return}
  function lC (line 11) | function lC(a){a=a|0;return c[a+8>>2]|0}
  function mC (line 11) | function mC(a,b){a=a|0;b=b|0;Gd(a,b+12|0);return}
  function nC (line 11) | function nC(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0...
  function oC (line 11) | function oC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8...
  function pC (line 11) | function pC(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d...
  function qC (line 11) | function qC(a){a=a|0;return c[a>>2]|0}
  function rC (line 11) | function rC(a,b){a=a|0;b=b|0;c[a>>2]=0;vC(a,b);return}
  function sC (line 11) | function sC(a,b){a=a|0;b=b|0;vC(a,c[b>>2]|0);return a|0}
  function tC (line 11) | function tC(a){a=a|0;a=c[a>>2]|0;if(a|0)af(a);return}
  function uC (line 11) | function uC(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b|0){d=a+4|0;while(1...
  function vC (line 11) | function vC(a,b){a=a|0;b=b|0;var d=0;if(b|0)$e(b)|0;d=c[a>>2]|0;if(d|0)a...
  function wC (line 11) | function wC(a,b){a=a|0;b=b|0;var d=0;if((yC(a)|0)>>>0<b>>>0)wS(a);if(b>>...
  function xC (line 11) | function xC(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{rC(b,0);...
  function yC (line 11) | function yC(a){a=a|0;return 1073741823}
  function zC (line 11) | function zC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a+4|0;a=d-b|0;if((a|0)>0)...
  function AC (line 11) | function AC(a){a=a|0;ff(a);return}
  function BC (line 11) | function BC(a){a=a|0;AC(a);cU(a);return}
  function CC (line 11) | function CC(){DC();EC();return}
  function DC (line 11) | function DC(){c[14752]=0;c[14753]=0;c[14754]=0;return}
  function EC (line 11) | function EC(){FC()|0;return}
  function FC (line 11) | function FC(){var a=0,b=0,d=0,e=0,f=0;d=l;l=l+16|0;b=d;a=aU(8)|0;f=a;c[f...
  function GC (line 11) | function GC(a){a=a|0;SC(a);c[a>>2]=33812;return}
  function HC (line 11) | function HC(a,b){a=a|0;b=b|0;c[a>>2]=0;jD(a,b);return}
  function IC (line 11) | function IC(a,b){a=a|0;b=b|0;c[a>>2]=0;jD(a,c[b>>2]|0);return}
  function JC (line 11) | function JC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l...
  function KC (line 11) | function KC(a){a=a|0;a=c[a>>2]|0;if(a|0)af(a);return}
  function LC (line 11) | function LC(a){a=a|0;SC(a);c[a>>2]=33792;return}
  function MC (line 11) | function MC(a){a=a|0;SC(a);c[a>>2]=33772;return}
  function NC (line 11) | function NC(a){a=a|0;SC(a);c[a>>2]=33752;return}
  function OC (line 11) | function OC(a){a=a|0;SC(a);c[a>>2]=33732;return}
  function PC (line 11) | function PC(a){a=a|0;SC(a);c[a>>2]=33712;return}
  function QC (line 11) | function QC(a){a=a|0;SC(a);c[a>>2]=33692;return}
  function RC (line 11) | function RC(a){a=a|0;SC(a);c[a>>2]=33672;return}
  function SC (line 11) | function SC(a){a=a|0;cf(a);c[a>>2]=33652;return}
  function TC (line 11) | function TC(a){a=a|0;AC(a);cU(a);return}
  function UC (line 11) | function UC(a,b,c){a=a|0;b=b|0;c=c|0;return (c+b+(((O(c,b)|0)>>>0)%3|0)&...
  function VC (line 11) | function VC(a){a=a|0;AC(a);cU(a);return}
  function WC (line 11) | function WC(a,b,c){a=a|0;b=b|0;c=c|0;c=O(c,b)|0;return (((c>>>0)%3|0)+c&...
  function XC (line 11) | function XC(a){a=a|0;AC(a);cU(a);return}
  function YC (line 11) | function YC(a,b,c){a=a|0;b=b|0;c=c|0;c=O(c,b)|0;return (c&1|0)==(0-((c>>...
  function ZC (line 11) | function ZC(a){a=a|0;AC(a);cU(a);return}
  function _C (line 11) | function _C(a,b,c){a=a|0;b=b|0;c=c|0;return (((c>>>0)/3|0)+(b>>>1)&1|0)=...
  function $C (line 11) | function $C(a){a=a|0;AC(a);cU(a);return}
  function aD (line 11) | function aD(a,b,c){a=a|0;b=b|0;c=c|0;return (((c+b|0)>>>0)%3|0|0)==0|0}
  function bD (line 11) | function bD(a){a=a|0;AC(a);cU(a);return}
  function cD (line 11) | function cD(a,b,c){a=a|0;b=b|0;c=c|0;return ((c>>>0)%3|0|0)==0|0}
  function dD (line 11) | function dD(a){a=a|0;AC(a);cU(a);return}
  function eD (line 11) | function eD(a,b,c){a=a|0;b=b|0;c=c|0;return (b&1|0)==0|0}
  function fD (line 11) | function fD(a){a=a|0;return 1073741823}
  function gD (line 11) | function gD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;d...
  function hD (line 11) | function hD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0...
  function iD (line 11) | function iD(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[...
  function jD (line 11) | function jD(a,b){a=a|0;b=b|0;var d=0;if(b|0)$e(b)|0;d=c[a>>2]|0;if(d|0)a...
  function kD (line 11) | function kD(a){a=a|0;AC(a);cU(a);return}
  function lD (line 11) | function lD(a,b,c){a=a|0;b=b|0;c=c|0;return (c+b&1|0)==0|0}
  function mD (line 11) | function mD(a){a=a|0;var b=0;if(a>>>0<=7)return nD((c[14752]|0)+(a<<2)|0...
  function nD (line 11) | function nD(a){a=a|0;return c[a>>2]|0}
  function oD (line 11) | function oD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=0;while(1){if((f|0)==...
  function pD (line 11) | function pD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;e=a[d+11>>0]|0;f=e<<24>>24<...
  function qD (line 11) | function qD(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;zU(a,b,c)|0;return}
  function rD (line 11) | function rD(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=sD(b)|0;d...
  function sD (line 11) | function sD(a){a=a|0;return c[a>>2]|0}
  function tD (line 11) | function tD(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=d<<1;g=bU...
  function uD (line 11) | function uD(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function vD (line 11) | function vD(a){a=a|0;return c[a+8>>2]|0}
  function wD (line 11) | function wD(a){a=a|0;return c[a+8>>2]|0}
  function xD (line 11) | function xD(a){a=a|0;return a+8|0}
  function yD (line 11) | function yD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l...
  function zD (line 11) | function zD(a){a=a|0;return 357913941}
  function AD (line 11) | function AD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;d...
  function BD (line 11) | function BD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0...
  function CD (line 11) | function CD(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[...
  function DD (line 11) | function DD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function ED (line 11) | function ED(b){b=b|0;var c=0;if(b>>>0<=44)return a[48819+b>>0]|0;b=Ab(8)...
  function FD (line 11) | function FD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0...
  function GD (line 11) | function GD(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0...
  function HD (line 11) | function HD(a,b){a=a|0;b=b|0;var d=0,e=0;cf(a);c[a>>2]=5632;c[a+8>>2]=0;...
  function ID (line 11) | function ID(a,b){a=a|0;b=b|0;au(a,b);c[a>>2]=5724;return}
  function JD (line 11) | function JD(a){a=a|0;var b=0;b=$k(a,8)|0;do if(b&128){if((b&192|0)==128)...
  function KD (line 11) | function KD(a,b){a=a|0;b=b|0;var d=0,e=0;e=l;l=l+16|0;d=e;cf(a);c[a>>2]=...
  function LD (line 11) | function LD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[a>>2]=0;f=a+4|0;c[f>>...
  function MD (line 11) | function MD(a,b){a=a|0;b=b|0;var d=0;if((zD(a)|0)>>>0<b>>>0)wS(a);if(b>>...
  function ND (line 11) | function ND(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(b|0){d=a+4|0;while(1...
  function OD (line 11) | function OD(a){a=a|0;c[a>>2]=33832;ND(a+8|0);ff(a);return}
  function PD (line 11) | function PD(a){a=a|0;OD(a);cU(a);return}
  function QD (line 11) | function QD(a){a=a|0;var b=0,c=0;c=l;l=l+16|0;b=c;dj(b,58700);o=0;Xa(137...
  function RD (line 11) | function RD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function SD (line 11) | function SD(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function TD (line 11) | function TD(a,b){a=a|0;b=b|0;c[a>>2]=0;vC(a,c[b>>2]|0);return}
  function UD (line 11) | function UD(a,b){a=a|0;b=b|0;c[a+4>>2]=0;c[a+8>>2]=0;c[a>>2]=a+4;return}
  function VD (line 11) | function VD(a){a=a|0;WD(a);return}
  function WD (line 11) | function WD(a){a=a|0;XD(a,c[a+4>>2]|0);return}
  function XD (line 11) | function XD(a,b){a=a|0;b=b|0;if(!b)return;else{XD(a,c[b>>2]|0);XD(a,c[b+...
  function YD (line 11) | function YD(a){a=a|0;pU(a+4|0);return}
  function ZD (line 11) | function ZD(){_D();$D();aE();bE();cE();dE();eE();fE();gE();hE();return}
  function _D (line 11) | function _D(){iE(59020,0,0,0,0,49112);return}
  function $D (line 11) | function $D(){iE(59044,10,12,14,0,49104);return}
  function aE (line 11) | function aE(){iE(59068,9,11,13,0,49091);return}
  function bE (line 11) | function bE(){iE(59092,0,0,0,0,49073);return}
  function cE (line 11) | function cE(){iE(59116,8,16,16,0,49068);return}
  function dE (line 11) | function dE(){iE(59140,0,0,0,0,49064);return}
  function eE (line 11) | function eE(){iE(59164,8,10,12,0,49058);return}
  function fE (line 11) | function fE(){iE(59188,0,0,0,0,49038);return}
  function gE (line 11) | function gE(){iE(59212,0,0,0,0,49017);return}
  function hE (line 11) | function hE(){iE(59236,8,10,12,0,49011);return}
  function iE (line 11) | function iE(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0...
  function jE (line 11) | function jE(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=l;l=l+160|0;h=e+1...
  function kE (line 11) | function kE(a,b){a=a|0;b=b|0;b=QB(b)|0;do if((b|0)>=10)if((b|0)<27){a=a+...
  function lE (line 11) | function lE(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;Zh(a,b,d);c[a>>2]=33848;g[a+16...
  function mE (line 11) | function mE(a){a=a|0;Vh(a);cU(a);return}
  function nE (line 11) | function nE(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;if(+B(+(d-+Lc[c[(c[a>>2]|0)+12...
  function oE (line 11) | function oE(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=+f;var h=0,i=0.0;i=(+Lc[c...
  function pE (line 11) | function pE(a,b){a=a|0;b=b|0;c[a>>2]=0;qE(a,b);return}
  function qE (line 11) | function qE(a,b){a=a|0;b=b|0;var d=0;if(b|0)$e(b)|0;d=c[a>>2]|0;if(d|0)a...
  function rE (line 11) | function rE(a){a=a|0;var b=0,d=0,e=0,f=0;c[a>>2]=33872;d=a+12|0;b=0;whil...
  function sE (line 11) | function sE(a){a=a|0;rE(a);cU(a);return}
  function tE (line 11) | function tE(a){a=a|0;var b=0,d=0,e=0;d=c[a>>2]|0;if(d|0){a=a+4|0;b=c[a>>...
  function uE (line 11) | function uE(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return +(+(b-(c[a+8>>2]|0)|0)-+...
  function vE (line 11) | function vE(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;d=+g[a+32>>2];e=d*.5;b=c[b>...
  function wE (line 11) | function wE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j...
  function xE (line 11) | function xE(){return +s}
  function yE (line 11) | function yE(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j...
  function zE (line 11) | function zE(a){a=+a;return ((IE(a)|0)&2147483647)>>>0>2139095040|0}
  function AE (line 11) | function AE(a){a=a|0;return c[a>>2]|0}
  function BE (line 11) | function BE(a){a=a|0;a=c[a>>2]|0;if(a|0)af(a);return}
  function CE (line 11) | function CE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=l;l=l...
  function DE (line 11) | function DE(a,b){a=a|0;b=b|0;c[a>>2]=0;qE(a,c[b>>2]|0);return}
  function EE (line 11) | function EE(a){a=a|0;return 1073741823}
  function FE (line 11) | function FE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+12>>2]=0;c[a+16>>2]=e;d...
  function GE (line 11) | function GE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0...
  function HE (line 11) | function HE(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]...
  function IE (line 11) | function IE(a){a=+a;return (g[j>>2]=a,c[j>>2]|0)|0}
  function JE (line 11) | function JE(a,b,d,e,f,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;j=...
  function KE (line 11) | function KE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function LE (line 11) | function LE(a,b){a=a|0;b=b|0;return (ME(a,b)|0)^1|0}
  function ME (line 11) | function ME(a,b){a=a|0;b=b|0;return (c[a>>2]|0)==(b|0)|0}
  function NE (line 11) | function NE(a){a=a|0;ss(a);cU(a);return}
  function OE (line 11) | function OE(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var...
  function PE (line 11) | function PE(a,b){a=a|0;b=b|0;var d=0;cf(a);c[a>>2]=33888;d=a+8|0;o=0;Xa(...
  function QE (line 11) | function QE(a,b){a=a|0;b=b|0;ki(a,b+8|0);return}
  function RE (line 11) | function RE(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=l...
  function SE (line 11) | function SE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0,h=0.0,i=0,j=0.0...
  function TE (line 11) | function TE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,g=0,h=0,i=0...
  function UE (line 11) | function UE(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var g=0.0,h=0,i=0,j=0,k=0,m=...
  function VE (line 11) | function VE(a,b,c,d,e,f){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;f=+f;var g=0,h=0,i...
  function WE (line 11) | function WE(a,b){a=a|0;b=b|0;qE(a,c[b>>2]|0);return a|0}
  function XE (line 11) | function XE(a,b){a=a|0;b=b|0;c[a>>2]=0;gi(a,c[b>>2]|0);return}
  function YE (line 11) | function YE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;g=l;l=l...
  function ZE (line 11) | function ZE(a){a=a|0;return c[a>>2]|0}
  function _E (line 11) | function _E(a){a=a|0;return c[a>>2]|0}
  function $E (line 11) | function $E(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0,h=0,i=0,j=0;j=P...
  function aF (line 11) | function aF(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0,h=0.0...
  function bF (line 11) | function bF(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,g=0,h=0,i...
  function cF (line 11) | function cF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a-c|0;d=b-d|0;return +(+C...
  function dF (line 11) | function dF(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;Zh(a,b,d);c[a>>2]=33908;g[a+16...
  function eF (line 11) | function eF(a){a=a|0;Vh(a);cU(a);return}
  function fF (line 11) | function fF(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=f|0;Zh(a,b,d);c[a>>2]=3390...
  function gF (line 11) | function gF(a){a=a|0;return c[a+20>>2]|0}
  function hF (line 11) | function hF(a){a=a|0;return +(+g[a+16>>2])}
  function iF (line 11) | function iF(a,b,d,e){a=a|0;b=+b;d=+d;e=+e;if(+B(+(d-+Lc[c[(c[a>>2]|0)+12...
  function jF (line 11) | function jF(a,b,d,e,f){a=a|0;b=b|0;d=+d;e=+e;f=+f;var g=0,h=0.0,i=0.0,j=...
  function kF (line 11) | function kF(a,b){a=a|0;b=b|0;c[a>>2]=0;Ns(a,b);return}
  function lF (line 11) | function lF(a,b){a=a|0;b=b|0;return +(+(b-(c[a+16>>2]|0)-(c[a+12>>2]|0)|...
  function mF (line 11) | function mF(a){a=a|0;var b=0,d=0,e=0.0,f=0,g=0.0,h=0;b=0;d=0;while(1){if...
  function nF (line 11) | function nF(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j...
  function oF (line 11) | function oF(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j...
  function pF (line 11) | function pF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0.0,i=0.0,j=0...
  function qF (line 11) | function qF(a){a=a|0;return c[a>>2]|0}
  function rF (line 11) | function rF(b){b=b|0;var d=0,e=0.0,f=0.0,g=0.0,h=0,i=0,j=0,k=0,m=0,n=0,p...
  function sF (line 11) | function sF(a,b){a=a|0;b=b|0;return (c[a>>2]|0)==(b|0)|0}
  function tF (line 11) | function tF(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0.0,g=0,h=0,i=0,j=0,k=0,m=0...
  function uF (line 11) | function uF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0.0,g=0.0,h=0,i=0,j=0.0,k=0,m...
  function vF (line 11) | function vF(a,b){a=a|0;b=+b;g[a>>2]=b;return}
  function wF (line 11) | function wF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0...
  function xF (line 11) | function xF(a,b){a=a|0;b=+b;g[a>>2]=b;return}
  function yF (line 11) | function yF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0...
  function zF (line 11) | function zF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=c[a>>2]|0;f=c[b>>...
  function AF (line 11) | function AF(a,b){a=a|0;b=b|0;var d=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;d...
  function BF (line 11) | function BF(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{kF(b,0);...
  function CF (line 11) | function CF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0;d=gF(Ss(b)|0)|0...
  function DF (line 11) | function DF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0...
  function EF (line 11) | function EF(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0...
  function FF (line 11) | function FF(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0...
  function GF (line 11) | function GF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0...
  function HF (line 11) | function HF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0...
  function IF (line 11) | function IF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;e=+hF(Ss(b)|0);e=+B...
  function JF (line 11) | function JF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0...
  function KF (line 11) | function KF(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0...
  function LF (line 11) | function LF(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0...
  function MF (line 11) | function MF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0...
  function NF (line 11) | function NF(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0...
  function OF (line 11) | function OF(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,h=0,i=0,j=0,k=0,m...
  function PF (line 11) | function PF(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=Pe(a)|0;e=+Lc[c[(c[f>...
  function QF (line 11) | function QF(b,d,e){b=b|0;d=d|0;e=e|0;ki(b,d);d=b+4|0;c[d>>2]=0;c[d+4>>2]...
  function RF (line 11) | function RF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0...
  function SF (line 11) | function SF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;cf(a);c[a>>2]=33932;e=a+8|0...
  function TF (line 11) | function TF(a){a=a|0;c[a>>2]=33932;Is(a+16|0);Is(a+12|0);Is(a+8|0);ff(a)...
  function UF (line 11) | function UF(a){a=a|0;TF(a);cU(a);return}
  function VF (line 11) | function VF(a,b){a=a|0;b=b|0;Ms(a,b+8|0);return}
  function WF (line 11) | function WF(a,b){a=a|0;b=b|0;Ms(a,b+12|0);return}
  function XF (line 11) | function XF(a,b){a=a|0;b=b|0;Ms(a,b+16|0);return}
  function YF (line 11) | function YF(a,b){a=a|0;b=b|0;if((a|0)!=(b|0)){c[a>>2]=c[b>>2];ZF(a+4|0,b...
  function ZF (line 11) | function ZF(a,b){a=a|0;b=b|0;_F(a,b);return}
  function _F (line 11) | function _F(a,b){a=a|0;b=b|0;var d=0,e=0;a:do if((a|0)!=(b|0)){d=c[b+4>>...
  function $F (line 11) | function $F(a,b){a=a|0;b=b|0;var d=0,e=0;if((c[a>>2]|0)>>>0<b>>>0){d=a+8...
  function aG (line 11) | function aG(a){a=a|0;return bG(a)|0}
  function bG (line 11) | function bG(a){a=a|0;return (c[a+4>>2]|0)==0|0}
  function cG (line 11) | function cG(a){a=a|0;var b=0,d=0;d=a+8|0;b=a+4|0;a=c[b>>2]|0;while(1){if...
  function dG (line 11) | function dG(a,b){a=a|0;b=b|0;c[a>>2]=eG(b)|0;pG(a+4|0,fG(b)|0);return}
  function eG (line 11) | function eG(a){a=a|0;return ((a|0)==0?0:(a|0)>0?1:-1)|0}
  function fG (line 11) | function fG(a){a=a|0;return ((a|0)<0?0-a|0:a)|0}
  function gG (line 11) | function gG(a){a=a|0;var b=0;switch(c[a+4>>2]|0){case 0:{a=0;b=4;break}c...
  function hG (line 11) | function hG(a){a=a|0;return c[a+4>>2]|0}
  function iG (line 11) | function iG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=l...
  function jG (line 11) | function jG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=l;l=l+16|0;g=...
  function kG (line 11) | function kG(a){a=a|0;return a+4|0}
  function lG (line 11) | function lG(a,b){a=a|0;b=b|0;var c=0,d=0;d=l;l=l+16|0;c=d;EG(c,b,10);o=0...
  function mG (line 11) | function mG(a){a=a|0;a=c[a+8>>2]|0;if(a|0)dU(a);return}
  function nG (line 11) | function nG(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=l;l=l+32|0;g=...
  function oG (line 11) | function oG(a){a=a|0;return c[a>>2]|0}
  function pG (line 11) | function pG(a,b){a=a|0;b=b|0;Yw(a);o=0;Xa(364,a|0,b|0);b=o;o=0;if(b&1){b...
  function qG (line 11) | function qG(a,b){a=a|0;b=b|0;var d=0;if(b|0){c[a>>2]=1;d=bU(4)|0;c[a+8>>...
  function rG (line 11) | function rG(a,b){a=a|0;b=b|0;Yw(a);o=0;Xa(365,a|0,b|0);b=o;o=0;if(b&1){b...
  function sG (line 11) | function sG(a,b){a=a|0;b=b|0;var d=0;if(b<<16>>16){c[a>>2]=1;d=bU(4)|0;c...
  function tG (line 11) | function tG(a,b){a=a|0;b=b|0;Yw(a);o=0;Xa(366,a|0,b|0);b=o;o=0;if(b&1){b...
  function uG (line 11) | function uG(a,b){a=a|0;b=b|0;if((b|0)<0){b=Ab(4)|0;c[b>>2]=49529;Mb(b|0,...
  function vG (line 11) | function vG(a,b){a=a|0;b=b|0;var d=0;if(b|0){c[a>>2]=1;d=bU(4)|0;c[a+8>>...
  function wG (line 11) | function wG(a){a=a|0;return gG(a)|0}
  function xG (line 11) | function xG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((c[a>>2]|0)>>>0<b>>>0){f...
  function yG (line 11) | function yG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+4>>2]|0;d=c[b+4>>...
  function zG (line 11) | function zG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0...
  function AG (line 11) | function AG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,
Copy disabled (too large) Download .json
Condensed preview — 5437 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (32,835K chars).
[
  {
    "path": ".continue/README.md",
    "chars": 1087,
    "preview": "# Continue + Penn State AI Studio Setup\n\nThis folder provides a starter Continue configuration for Azure-based AI Studio"
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "chars": 1214,
    "preview": "// For format details, see https://aka.ms/devcontainer.json.\n{\n\t\"name\": \"haxtheweb/webcomponents Dev Container\",\n\t\"image"
  },
  {
    "path": ".editorconfig",
    "chars": 562,
    "preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# http"
  },
  {
    "path": ".gitattributes",
    "chars": 28,
    "preview": "* text=auto\n*.sh text eol=lf"
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 273,
    "preview": "# Global ownership\n# Bryan Ollendyke (btopro) is the primary maintainer and creator of HAXTheWeb\n* @btopro\n\n# HAXTheWeb "
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 1268,
    "preview": "name: build\non:\n  push:\n    branches: [master]\n  pull_request:\n    branches: [master]\njobs:\n  build-and-test:\n    name: "
  },
  {
    "path": ".github/workflows/cla.yml",
    "chars": 1890,
    "preview": "name: \"CLA Assistant\"\non:\n  issue_comment:\n    types: [created]\n  pull_request_target:\n    types: [opened, closed, synch"
  },
  {
    "path": ".github/workflows/ossf_scorecard.yml",
    "chars": 3133,
    "preview": "---\n# This workflow uses actions that are not certified by GitHub. They are provided by a third-party and are governed b"
  },
  {
    "path": ".gitignore",
    "chars": 794,
    "preview": "node_modules\n.DS_Store\narth111-jeopardy\nlerna-debug.log\n*.local.umd.js\n*.local.js\nbuild\nnpm-debug.log\ntest/.wct-kludge\n."
  },
  {
    "path": ".jshintrc",
    "chars": 350,
    "preview": "{\n  \"node\": true,\n  \"esnext\": true,\n  \"bitwise\": true,\n  \"camelcase\": true,\n  \"curly\": true,\n  \"eqeqeq\": true,\n  \"immed\""
  },
  {
    "path": ".lvimrc",
    "chars": 135,
    "preview": "let g:ale_fixers = {}\nlet g:ale_fixers['javascript'] = ['prettier']\nlet g:ale_fixers['json'] = ['prettier']\n\nlet g:ale_f"
  },
  {
    "path": ".prettierignore",
    "chars": 222,
    "preview": "*.umd.js\n*.amd.js\n*.es6.js\n*.min.js\npackage-lock.json\nanalysis-error.json\ncode-sample/lib/highlightjs/languages/*.js\nele"
  },
  {
    "path": ".stylelintrc.json",
    "chars": 511,
    "preview": "{\n  \"rules\": {\n    \"block-no-empty\": null,\n    \"color-no-invalid-hex\": true,\n    \"comment-empty-line-before\": [\n      \"a"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 310,
    "preview": "{\n    \"recommendations\": [\n        \"bierner.lit-html\",\n        \"deque-systems.vscode-axe-linter\",\n        \"ecmel.vscode-"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 439,
    "preview": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  //"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 898,
    "preview": "{\n  \"editor.tabSize\": 2,\n  \"editor.detectIndentation\": false,\n  \"html.customData\": [\n    \"elements/*/custom-elements.jso"
  },
  {
    "path": ".wcflibcache.json",
    "chars": 2445,
    "preview": "[{\n  \"name\": \"Vanilla\",\n  \"description\": \"HTMLElement class extension, 0 dependencies\",\n  \"wcfactory\": {\n    \"customElem"
  },
  {
    "path": ".well-known/funding-manifest-urls",
    "chars": 36,
    "preview": "https://www.apereo.org/funding.json\n"
  },
  {
    "path": "AGENTS.md",
    "chars": 23507,
    "preview": "# AGENTS.md\n\nThis file provides comprehensive instructions for AI coding agents working within the HAX ecosystem. HAX (H"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 196,
    "preview": "# Changelog\n\nAll notable changes to this project will be documented in this file. See [commit-and-tag-version](https://g"
  },
  {
    "path": "CLA-README.md",
    "chars": 2015,
    "preview": "# Contributor License Agreement (CLA) Process\n\n## How it Works\n\nThis repository uses an automated CLA (Contributor Licen"
  },
  {
    "path": "CLA.md",
    "chars": 3149,
    "preview": "# Contributor License Agreement\n\n## HAXtheWeb Webcomponents Project\n\nThank you for your interest in contributing to the "
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3248,
    "preview": "# HAXTheWeb Code of Conduct\n\n## Our pledge\n\nIn the interest of fostering an open and welcoming environment, we as contri"
  },
  {
    "path": "COMPONENT-GALLERY.md",
    "chars": 4255,
    "preview": "# HAX Web Components Gallery\n\nA simple, fast, and reliable component gallery system that replaces Storybook for showcasi"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 16875,
    "preview": "# Contributing\n\n- [Contributing](#contributing)\n  - [What is HAX and this Project?](#what-is-hax-and-this-project)\n  - ["
  },
  {
    "path": "LICENSE.md",
    "chars": 11351,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "README.md",
    "chars": 11096,
    "preview": "[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www"
  },
  {
    "path": "SECURITY.md",
    "chars": 517,
    "preview": "# Security Policy\n\n## Supported Versions\n\nWe often run master on production systems or slightly behind master. Tagged re"
  },
  {
    "path": "SUPPORT.md",
    "chars": 1353,
    "preview": "# Support\n\n## Getting Help\n\nIf you need help with this project, please use the following resources:\n\n### Community Suppo"
  },
  {
    "path": "VERSION.txt",
    "chars": 6,
    "preview": "25.0.0"
  },
  {
    "path": "_optional_dev_patches/@web+dev-server-core+0.7.2.patch",
    "chars": 863,
    "preview": "diff --git a/node_modules/@web/dev-server-core/dist/middleware/serveFilesMiddleware.js b/node_modules/@web/dev-server-co"
  },
  {
    "path": "api/hydrateSsr.js",
    "chars": 2460,
    "preview": "import { stdResponse, invalidRequest, stdPostBody } from \"../utilities/requestHelpers.js\";\n//import { render } from '@li"
  },
  {
    "path": "api/package.json",
    "chars": 465,
    "preview": "{\n  \"type\": \"module\",\n  \"name\": \"vercel-api-webcomponents\",\n  \"scripts\": {\n    \"postinstall\": \"./node_modules/.bin/patch"
  },
  {
    "path": "api/patches/@lit-labs+ssr+3.2.2.patch",
    "chars": 689,
    "preview": "diff --git a/node_modules/@lit-labs/ssr/lib/render-result.js b/node_modules/@lit-labs/ssr/lib/render-result.js\nindex 25c"
  },
  {
    "path": "automate-theme-screenshots.js",
    "chars": 5643,
    "preview": "#!/usr/bin/env node\n\n/**\n * Complete HAX Theme Screenshot Automation Workflow\n * \n * This script provides the complete a"
  },
  {
    "path": "build-haxcms.js",
    "chars": 5773,
    "preview": "// overload how define works so that we can prevent bricking issues\n// when classes get loaded from multiple sources wit"
  },
  {
    "path": "build.js",
    "chars": 2587,
    "preview": "window.process={env:{NODE_ENV:\"production\"}};var cdn=\"./\";window.WCGlobalCDNPath&&(cdn=window.WCGlobalCDNPath),window.__"
  },
  {
    "path": "dist/app.js",
    "chars": 189,
    "preview": "// build default for all our properties is for CMSs other than HAXcms\n// HAXcms will tack onto this routine through anot"
  },
  {
    "path": "dist/build-cms.js",
    "chars": 333,
    "preview": "// for use in most CMSs\n//import \"@haxtheweb/baseline-build-hax/baseline-build-hax.js\";\nimport \"@haxtheweb/h-a-x/h-a-x.j"
  },
  {
    "path": "dist/build-elmsln.js",
    "chars": 2252,
    "preview": "/*import \"@haxtheweb/h-a-x/h-a-x.js\";\nimport \"@haxtheweb/cms-hax/cms-hax.js\";\nimport \"@haxtheweb/cms-hax/lib/cms-views.j"
  },
  {
    "path": "dist/build-full.js",
    "chars": 4465,
    "preview": "// the base line build that's used to setup everything in a production environment\nimport \"./build.js\";\nimport \"./app.js"
  },
  {
    "path": "dist/build-haxcms.js",
    "chars": 317,
    "preview": "import \"@haxtheweb/haxcms-elements/lib/core/haxcms-site-builder.js\";\n// this can be used for customizations / additional"
  },
  {
    "path": "dist/build-home.js",
    "chars": 39,
    "preview": "import \"@haxtheweb/app-hax/app-hax.js\";"
  },
  {
    "path": "dist/build-install.js",
    "chars": 188,
    "preview": "import \"@haxtheweb/hax-logo/hax-logo.js\";\nimport \"@haxtheweb/simple-icon/simple-icon.js\";\nimport \"@haxtheweb/simple-icon"
  },
  {
    "path": "dist/build-legacy.js",
    "chars": 248,
    "preview": "// this can be used for customizations / additional elements to get pulled in\n// this assumes you're operating in a bit "
  },
  {
    "path": "dist/build.html",
    "chars": 712,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <title>haxcms build housing to ensure assets resolve</title>\n  <script src=\".."
  },
  {
    "path": "dist/build.js",
    "chars": 192,
    "preview": "// build default for all our properties is for CMSs other than HAXcms\n// HAXcms will tack onto this routine through anot"
  },
  {
    "path": "dist/dev/appstore.json",
    "chars": 56211,
    "preview": "{\n    \"status\": 200,\n    \"apps\": [\n        {\n            \"details\": {\n                \"title\": \"Youtube\",\n              "
  },
  {
    "path": "dist/dev/archiveSite.json",
    "chars": 102,
    "preview": "{\n    \"status\": 200,\n    \"data\": {\n        \"detail\": \"Site archived\",\n        \"name\": \"ist342\"\n    }\n}"
  },
  {
    "path": "dist/dev/connectionSettings.json",
    "chars": 2,
    "preview": "{}"
  },
  {
    "path": "dist/dev/copySite.json",
    "chars": 100,
    "preview": "{\n    \"status\": 200,\n    \"data\": {\n        \"detail\": \"Site copied\",\n        \"name\": \"ist342\"\n    }\n}"
  },
  {
    "path": "dist/dev/createSite.json",
    "chars": 2156,
    "preview": "{\n    \"status\": 200,\n    \"data\": {\n        \"id\": \"ddffg44-e00f-4033-ae3e-4692f6f5a73e\",\n        \"title\": \"IST 342\",\n    "
  },
  {
    "path": "dist/dev/deleteSite.json",
    "chars": 101,
    "preview": "{\n    \"status\": 200,\n    \"data\": {\n        \"detail\": \"Site deleted\",\n        \"name\": \"ist342\"\n    }\n}"
  },
  {
    "path": "dist/dev/downloadSite.json",
    "chars": 119,
    "preview": "{\n    \"status\": 200,\n    \"data\": {\n        \"link\": \"/bto108/published/ist342.zip\",\n        \"name\": \"ist342.zip\"\n    }\n}"
  },
  {
    "path": "dist/dev/getConfigPath.json",
    "chars": 7423,
    "preview": "{\n  \"schema\": {\n    \"$schema\": \"http:\\/\\/json-schema.org\\/schema#\",\n    \"title\": \"HAXCMS Config\",\n    \"type\": \"object\",\n"
  },
  {
    "path": "dist/dev/getNodeFieldsPath.json",
    "chars": 3741,
    "preview": "{\n\t\"status\": 200,\n\t\"data\": {\n\t\t\"fields\": [{\n\t\t\t\"property\": \"node\",\n\t\t\t\"inputMethod\": \"tabs\",\n\t\t\t\"properties\": [\n      {\n"
  },
  {
    "path": "dist/dev/getSiteFieldsPath.json",
    "chars": 7459,
    "preview": "{\n\t\"status\": 200,\n\t\"data\": {\n\t\t\"fields\": [{\n\t\t\t\"property\": \"manifest\",\n\t\t\t\"inputMethod\": \"tabs\",\n\t\t\t\"properties\": [{\n\t\t\t"
  },
  {
    "path": "dist/dev/login.json",
    "chars": 52,
    "preview": "{\n    \"status\": 200,\n    \"jwt\": \"supDudeImmaJwat\" \n}"
  },
  {
    "path": "dist/dev/logout.json",
    "chars": 47,
    "preview": "{\n    \"status\": 200,\n    \"data\": \"logged out\"\n}"
  },
  {
    "path": "dist/dev/saveManifestPath.json",
    "chars": 891,
    "preview": "{\n    \"file\": \"\\/var\\/www\\/html\\/_sites\\/neato\\/site.json\",\n    \"id\": \"6048ae14-a9d7-4be2-b687-6cf460df67be\",\n    \"title"
  },
  {
    "path": "dist/dev/saveNode.json",
    "chars": 2,
    "preview": "86"
  },
  {
    "path": "dist/dev/savePage.json",
    "chars": 2,
    "preview": "86"
  },
  {
    "path": "dist/dev/sites.json",
    "chars": 23350,
    "preview": "{\n  \"status\": 200,\n  \"data\": {\n    \"id\": \"123-123-123-123\",\n    \"title\": \"My sites\",\n    \"author\": \"me\",\n    \"descriptio"
  },
  {
    "path": "dist/dev/sitesEmpty.json",
    "chars": 265,
    "preview": "{\n    \"status\": 200,\n    \"data\": {\n        \"id\": \"123-123-123-123\",\n        \"title\": \"My sites\",\n        \"author\": \"me\","
  },
  {
    "path": "dist/dev/userData.json",
    "chars": 436,
    "preview": "{\n  \"status\": 200,\n  \"data\": {\n    \"userName\": \"admin\",\n    \"fName\": \"Bryan\",\n    \"lName\": \"Ollendyke\",\n    \"userPicture"
  },
  {
    "path": "dist/dev.html",
    "chars": 42799,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <base href=\"/\" />\n  <script>\n// polyfill for forEach\nif ('NodeList' in window "
  },
  {
    "path": "dist/hax-elements-registry.json",
    "chars": 6684,
    "preview": "{\n  \"-omfofks\": \"label\",\n  \"a11y-collapse\": \"A11y Collapse\",\n  \"a11y-collapse-group\": \"A11y Collapse Group\",\n  \"a11y-det"
  },
  {
    "path": "dist/sites.json",
    "chars": 18793,
    "preview": "{\n\t\"status\": 200,\n\t\"data\": {\n\t  \"id\": \"123-123-123-123\",\n\t  \"title\": \"My sites\",\n\t  \"author\": \"me\",\n\t  \"description\": \"A"
  },
  {
    "path": "dist/wc-registry.json",
    "chars": 46500,
    "preview": "{\"focus-trap\":\"@a11y/focus-trap/focus-trap.js\",\"local-time\":\"@github/time-elements/dist/local-time-element.js\",\"relative"
  },
  {
    "path": "elements/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "elements/.idea/.gitignore",
    "chars": 98,
    "preview": "# Default ignored files\n/shelf/\n/workspace.xml\n# Editor-based HTTP Client requests\n/httpRequests/\n"
  },
  {
    "path": "elements/.idea/elements.iml",
    "chars": 458,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"WEB_MODULE\" version=\"4\">\n  <component name=\"NewModuleRootManager\">\n"
  },
  {
    "path": "elements/.idea/modules.xml",
    "chars": 268,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n   "
  },
  {
    "path": "elements/.idea/vcs.xml",
    "chars": 183,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping dire"
  },
  {
    "path": "elements/.vscode/settings.json",
    "chars": 30,
    "preview": "{\n  \"search.usePCRE2\": true\n}\n"
  },
  {
    "path": "elements/README.md",
    "chars": 18017,
    "preview": "# &lt;a11y-behaviors&gt;\n\n11\n> Behaviors / mixins to improve A11y in elements\n# &lt;a11y-carousel&gt;\n\nCompare\n> Slider "
  },
  {
    "path": "elements/a11y-behaviors/.dddignore",
    "chars": 583,
    "preview": "# Directories\n# (Must start with with / or \\, as seen below)\n/.github # Inline comments are supported\n/.vscode\n/.idea\n/l"
  },
  {
    "path": "elements/a11y-behaviors/.editorconfig",
    "chars": 346,
    "preview": "# EditorConfig: http://EditorConfig.org\n\n# Top-most EditorConfig file\nroot = true\n\n# Rules for JavaScript files:\n\n[*.{js"
  },
  {
    "path": "elements/a11y-behaviors/.gitignore",
    "chars": 228,
    "preview": "## editors\n/.idea\n/.vscode\n\n## system files\n.DS_Store\n\n## npm\n/node_modules/\n/npm-debug.log\n\n## testing\n/coverage/\n\n## t"
  },
  {
    "path": "elements/a11y-behaviors/.npmignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "elements/a11y-behaviors/.surgeignore",
    "chars": 15,
    "preview": "!node_modules/\n"
  },
  {
    "path": "elements/a11y-behaviors/.travis.yml",
    "chars": 305,
    "preview": "language: node_js\ndist: trusty\nsudo: required\naddons:\n  firefox: \"latest\"\n  apt:\n    sources:\n      - google-chrome\n    "
  },
  {
    "path": "elements/a11y-behaviors/LICENSE.md",
    "chars": 11350,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "elements/a11y-behaviors/README.md",
    "chars": 937,
    "preview": "# &lt;a11y-behaviors&gt;\n\n11\n> Behaviors / mixins to improve A11y in elements\n\n## Usage\nTo use this web component in you"
  },
  {
    "path": "elements/a11y-behaviors/a11y-behaviors.js",
    "chars": 1382,
    "preview": "export const A11yBehaviors = function (SuperClass) {\n  return class extends SuperClass {\n    /**\n     * Get a a11y safe "
  },
  {
    "path": "elements/a11y-behaviors/demo/index.html",
    "chars": 781,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-behaviors/gulpfile.cjs",
    "chars": 703,
    "preview": "const gulp = require(\"gulp\");\nconst fs = require(\"fs\"); \nconst path = require(\"path\");\nconst packageJson = require(\"./pa"
  },
  {
    "path": "elements/a11y-behaviors/index.html",
    "chars": 316,
    "preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, mi"
  },
  {
    "path": "elements/a11y-behaviors/package.json",
    "chars": 2053,
    "preview": "{\n  \"name\": \"@haxtheweb/a11y-behaviors\",\n  \"wcfactory\": {\n    \"className\": \"A11YBehaviors\",\n    \"customElementClass\": \"P"
  },
  {
    "path": "elements/a11y-behaviors/polymer.json",
    "chars": 657,
    "preview": "{\n  \"entrypoint\": \"demo/index.html\",\n  \"extraDependencies\": [\n    \"node_modules/@webcomponents/webcomponentsjs/*.js\",\n  "
  },
  {
    "path": "elements/a11y-behaviors/test/a11y-behaviors.test.js",
    "chars": 9327,
    "preview": "import { fixture, expect, html } from \"@open-wc/testing\";\nimport { LitElement } from \"lit\";\nimport { A11yBehaviors } fro"
  },
  {
    "path": "elements/a11y-carousel/.dddignore",
    "chars": 596,
    "preview": "# Directories\n# (Must start with with / or \\, as seen below)\n/.github # Inline comments are supported\n/.vscode\n/.idea\n/l"
  },
  {
    "path": "elements/a11y-carousel/.editorconfig",
    "chars": 346,
    "preview": "# EditorConfig: http://EditorConfig.org\n\n# Top-most EditorConfig file\nroot = true\n\n# Rules for JavaScript files:\n\n[*.{js"
  },
  {
    "path": "elements/a11y-carousel/.gitignore",
    "chars": 228,
    "preview": "## editors\n/.idea\n/.vscode\n\n## system files\n.DS_Store\n\n## npm\n/node_modules/\n/npm-debug.log\n\n## testing\n/coverage/\n\n## t"
  },
  {
    "path": "elements/a11y-carousel/.npmignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "elements/a11y-carousel/.surgeignore",
    "chars": 15,
    "preview": "!node_modules/\n"
  },
  {
    "path": "elements/a11y-carousel/.travis.yml",
    "chars": 305,
    "preview": "language: node_js\ndist: trusty\nsudo: required\naddons:\n  firefox: \"latest\"\n  apt:\n    sources:\n      - google-chrome\n    "
  },
  {
    "path": "elements/a11y-carousel/LICENSE.md",
    "chars": 11350,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "elements/a11y-carousel/README.md",
    "chars": 990,
    "preview": "# &lt;a11y-carousel&gt;\n\nCompare\n> Slider that allows comparison of two images\n\n## Usage\nTo use this web component in yo"
  },
  {
    "path": "elements/a11y-carousel/a11y-carousel.js",
    "chars": 8099,
    "preview": "import { LitElement, html, css } from \"lit\";\nimport { RadioBehaviors } from \"@haxtheweb/radio-behaviors/radio-behaviors."
  },
  {
    "path": "elements/a11y-carousel/demo/index.html",
    "chars": 5170,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-carousel/gulpfile.cjs",
    "chars": 703,
    "preview": "const gulp = require(\"gulp\");\nconst fs = require(\"fs\"); \nconst path = require(\"path\");\nconst packageJson = require(\"./pa"
  },
  {
    "path": "elements/a11y-carousel/index.html",
    "chars": 305,
    "preview": "<!doctype html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, minimum-scal"
  },
  {
    "path": "elements/a11y-carousel/lib/a11y-carousel-button.js",
    "chars": 3074,
    "preview": "import { LitElement, html, css } from \"lit\";\n/**\n * `a11y-carousel-button`\n * button that controls a carousel\n * @demo d"
  },
  {
    "path": "elements/a11y-carousel/package.json",
    "chars": 2382,
    "preview": "{\n  \"name\": \"@haxtheweb/a11y-carousel\",\n  \"wcfactory\": {\n    \"className\": \"a11yCarousel\",\n    \"customElementClass\": \"Pol"
  },
  {
    "path": "elements/a11y-carousel/polymer.json",
    "chars": 657,
    "preview": "{\n  \"entrypoint\": \"demo/index.html\",\n  \"extraDependencies\": [\n    \"node_modules/@webcomponents/webcomponentsjs/*.js\",\n  "
  },
  {
    "path": "elements/a11y-carousel/test/a11y-carousel.test.js",
    "chars": 25050,
    "preview": "import { fixture, expect, html } from \"@open-wc/testing\";\nimport \"../a11y-carousel.js\";\ndescribe(\"a11y-carousel test\", ("
  },
  {
    "path": "elements/a11y-collapse/.dddignore",
    "chars": 596,
    "preview": "# Directories\n# (Must start with with / or \\, as seen below)\n/.github # Inline comments are supported\n/.vscode\n/.idea\n/l"
  },
  {
    "path": "elements/a11y-collapse/.editorconfig",
    "chars": 346,
    "preview": "# EditorConfig: http://EditorConfig.org\n\n# Top-most EditorConfig file\nroot = true\n\n# Rules for JavaScript files:\n\n[*.{js"
  },
  {
    "path": "elements/a11y-collapse/.gitignore",
    "chars": 228,
    "preview": "## editors\n/.idea\n/.vscode\n\n## system files\n.DS_Store\n\n## npm\n/node_modules/\n/npm-debug.log\n\n## testing\n/coverage/\n\n## t"
  },
  {
    "path": "elements/a11y-collapse/.npmignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "elements/a11y-collapse/.surgeignore",
    "chars": 15,
    "preview": "!node_modules/\n"
  },
  {
    "path": "elements/a11y-collapse/.travis.yml",
    "chars": 305,
    "preview": "language: node_js\ndist: trusty\nsudo: required\naddons:\n  firefox: \"latest\"\n  apt:\n    sources:\n      - google-chrome\n    "
  },
  {
    "path": "elements/a11y-collapse/LICENSE.md",
    "chars": 11350,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "elements/a11y-collapse/README.md",
    "chars": 964,
    "preview": "# &lt;a11y-collapse&gt;\n\n11\n> Start of a11y-collapse\n\n## Usage\nTo use this web component in your project you can utilize"
  },
  {
    "path": "elements/a11y-collapse/a11y-collapse.js",
    "chars": 14963,
    "preview": "import { html, css } from \"lit\";\nimport { DDD } from \"@haxtheweb/d-d-d/d-d-d.js\";\nimport \"@haxtheweb/simple-icon/lib/sim"
  },
  {
    "path": "elements/a11y-collapse/demo/group.html",
    "chars": 2905,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-collapse/demo/index.html",
    "chars": 2949,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-collapse/gulpfile.cjs",
    "chars": 703,
    "preview": "const gulp = require(\"gulp\");\nconst fs = require(\"fs\"); \nconst path = require(\"path\");\nconst packageJson = require(\"./pa"
  },
  {
    "path": "elements/a11y-collapse/index.html",
    "chars": 305,
    "preview": "<!doctype html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, minimum-scal"
  },
  {
    "path": "elements/a11y-collapse/lib/a11y-collapse-group.haxProperties.json",
    "chars": 1134,
    "preview": "{\n  \"canScale\": false,\n  \"canEditSource\": true,\n  \"type\": \"grid\",\n  \"gizmo\": {\n    \"title\": \"Expand Collapse Group\",\n   "
  },
  {
    "path": "elements/a11y-collapse/lib/a11y-collapse-group.js",
    "chars": 4709,
    "preview": "import { LitElement, html, css } from \"lit\";\nimport { A11yCollapse } from \"../a11y-collapse.js\";\n/**\n * `a11y-collapse-g"
  },
  {
    "path": "elements/a11y-collapse/lib/a11y-collapse.haxProperties.json",
    "chars": 2207,
    "preview": "{\n  \"canScale\": false,\n\n  \"canEditSource\": true,\n  \"type\": \"grid\",\n  \"gizmo\": {\n    \"title\": \"Collapsible container\",\n  "
  },
  {
    "path": "elements/a11y-collapse/package.json",
    "chars": 2342,
    "preview": "{\n  \"name\": \"@haxtheweb/a11y-collapse\",\n  \"wcfactory\": {\n    \"className\": \"A11yCollapse\",\n    \"customElementClass\": \"Lit"
  },
  {
    "path": "elements/a11y-collapse/polymer.json",
    "chars": 657,
    "preview": "{\n  \"entrypoint\": \"demo/index.html\",\n  \"extraDependencies\": [\n    \"node_modules/@webcomponents/webcomponentsjs/*.js\",\n  "
  },
  {
    "path": "elements/a11y-collapse/test/a11y-collapse.test.js",
    "chars": 32163,
    "preview": "import { fixture, expect, html } from \"@open-wc/testing\";\n\nimport { A11yCollapse } from \"../a11y-collapse.js\";\n\ndescribe"
  },
  {
    "path": "elements/a11y-compare-image/.dddignore",
    "chars": 596,
    "preview": "# Directories\n# (Must start with with / or \\, as seen below)\n/.github # Inline comments are supported\n/.vscode\n/.idea\n/l"
  },
  {
    "path": "elements/a11y-compare-image/.editorconfig",
    "chars": 346,
    "preview": "# EditorConfig: http://EditorConfig.org\n\n# Top-most EditorConfig file\nroot = true\n\n# Rules for JavaScript files:\n\n[*.{js"
  },
  {
    "path": "elements/a11y-compare-image/.gitignore",
    "chars": 228,
    "preview": "## editors\n/.idea\n/.vscode\n\n## system files\n.DS_Store\n\n## npm\n/node_modules/\n/npm-debug.log\n\n## testing\n/coverage/\n\n## t"
  },
  {
    "path": "elements/a11y-compare-image/.npmignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "elements/a11y-compare-image/.surgeignore",
    "chars": 15,
    "preview": "!node_modules/\n"
  },
  {
    "path": "elements/a11y-compare-image/.travis.yml",
    "chars": 305,
    "preview": "language: node_js\ndist: trusty\nsudo: required\naddons:\n  firefox: \"latest\"\n  apt:\n    sources:\n      - google-chrome\n    "
  },
  {
    "path": "elements/a11y-compare-image/LICENSE.md",
    "chars": 11350,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "elements/a11y-compare-image/README.md",
    "chars": 1015,
    "preview": "# &lt;a11y-compare-image&gt;\n\nCompare\n> Slider that allows comparison of two images\n\n## Usage\nTo use this web component "
  },
  {
    "path": "elements/a11y-compare-image/a11y-compare-image.js",
    "chars": 7029,
    "preview": "import { html, css } from \"lit\";\nimport { SimpleColors } from \"@haxtheweb/simple-colors/simple-colors.js\";\n\n/**\n * `a11y"
  },
  {
    "path": "elements/a11y-compare-image/demo/index.html",
    "chars": 4014,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-compare-image/gulpfile.cjs",
    "chars": 703,
    "preview": "const gulp = require(\"gulp\");\nconst fs = require(\"fs\"); \nconst path = require(\"path\");\nconst packageJson = require(\"./pa"
  },
  {
    "path": "elements/a11y-compare-image/index.html",
    "chars": 310,
    "preview": "<!doctype html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, minimum-scal"
  },
  {
    "path": "elements/a11y-compare-image/package.json",
    "chars": 2394,
    "preview": "{\n  \"name\": \"@haxtheweb/a11y-compare-image\",\n  \"wcfactory\": {\n    \"className\": \"a11yCompareImage\",\n    \"customElementCla"
  },
  {
    "path": "elements/a11y-compare-image/polymer.json",
    "chars": 657,
    "preview": "{\n  \"entrypoint\": \"demo/index.html\",\n  \"extraDependencies\": [\n    \"node_modules/@webcomponents/webcomponentsjs/*.js\",\n  "
  },
  {
    "path": "elements/a11y-compare-image/test/a11y-compare-image.test.js",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "elements/a11y-details/.dddignore",
    "chars": 596,
    "preview": "# Directories\n# (Must start with with / or \\, as seen below)\n/.github # Inline comments are supported\n/.vscode\n/.idea\n/l"
  },
  {
    "path": "elements/a11y-details/.editorconfig",
    "chars": 346,
    "preview": "# EditorConfig: http://EditorConfig.org\n\n# Top-most EditorConfig file\nroot = true\n\n# Rules for JavaScript files:\n\n[*.{js"
  },
  {
    "path": "elements/a11y-details/.gitignore",
    "chars": 228,
    "preview": "## editors\n/.idea\n/.vscode\n\n## system files\n.DS_Store\n\n## npm\n/node_modules/\n/npm-debug.log\n\n## testing\n/coverage/\n\n## t"
  },
  {
    "path": "elements/a11y-details/.npmignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "elements/a11y-details/.surgeignore",
    "chars": 15,
    "preview": "!node_modules/\n"
  },
  {
    "path": "elements/a11y-details/.travis.yml",
    "chars": 305,
    "preview": "language: node_js\ndist: trusty\nsudo: required\naddons:\n  firefox: \"latest\"\n  apt:\n    sources:\n      - google-chrome\n    "
  },
  {
    "path": "elements/a11y-details/LICENSE.md",
    "chars": 11350,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "elements/a11y-details/README.md",
    "chars": 1048,
    "preview": "# &lt;a11y-details&gt;\n\n11\n> accessible progressive disclosure with detail and summary\n\n## Usage\nTo use this web compone"
  },
  {
    "path": "elements/a11y-details/a11y-details.js",
    "chars": 15795,
    "preview": "/**\n * Copyright 2020 The Pennsylvania State University\n * @license Apache-2.0, see License.md for full text.\n */\nimport"
  },
  {
    "path": "elements/a11y-details/demo/index.html",
    "chars": 4675,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-details/gulpfile.cjs",
    "chars": 706,
    "preview": "const gulp = require(\"gulp\");\nconst fs = require(\"fs\"); \nconst path = require(\"path\");\nconst packageJson = require(\"./pa"
  },
  {
    "path": "elements/a11y-details/index.html",
    "chars": 304,
    "preview": "<!doctype html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, minimum-scal"
  },
  {
    "path": "elements/a11y-details/package.json",
    "chars": 2286,
    "preview": "{\n  \"name\": \"@haxtheweb/a11y-details\",\n  \"wcfactory\": {\n    \"className\": \"A11yDetails\",\n    \"customElementClass\": \"LitEl"
  },
  {
    "path": "elements/a11y-details/polymer.json",
    "chars": 657,
    "preview": "{\n  \"entrypoint\": \"demo/index.html\",\n  \"extraDependencies\": [\n    \"node_modules/@webcomponents/webcomponentsjs/*.js\",\n  "
  },
  {
    "path": "elements/a11y-details/test/a11y-details.test.js",
    "chars": 19131,
    "preview": "import { fixture, expect, html } from \"@open-wc/testing\";\nimport \"../a11y-details.js\";\n\ndescribe(\"a11y-details test\", ()"
  },
  {
    "path": "elements/a11y-figure/.dddignore",
    "chars": 596,
    "preview": "# Directories\n# (Must start with with / or \\, as seen below)\n/.github # Inline comments are supported\n/.vscode\n/.idea\n/l"
  },
  {
    "path": "elements/a11y-figure/.editorconfig",
    "chars": 346,
    "preview": "# EditorConfig: http://EditorConfig.org\n\n# Top-most EditorConfig file\nroot = true\n\n# Rules for JavaScript files:\n\n[*.{js"
  },
  {
    "path": "elements/a11y-figure/.gitignore",
    "chars": 228,
    "preview": "## editors\n/.idea\n/.vscode\n\n## system files\n.DS_Store\n\n## npm\n/node_modules/\n/npm-debug.log\n\n## testing\n/coverage/\n\n## t"
  },
  {
    "path": "elements/a11y-figure/.npmignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "elements/a11y-figure/.surgeignore",
    "chars": 15,
    "preview": "!node_modules/\n"
  },
  {
    "path": "elements/a11y-figure/.travis.yml",
    "chars": 305,
    "preview": "language: node_js\ndist: trusty\nsudo: required\naddons:\n  firefox: \"latest\"\n  apt:\n    sources:\n      - google-chrome\n    "
  },
  {
    "path": "elements/a11y-figure/LICENSE.md",
    "chars": 11350,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "elements/a11y-figure/README.md",
    "chars": 1037,
    "preview": "# &lt;a11y-figure&gt;\n\n11\n> accessible figure with image description in details\n\n## Usage\nTo use this web component in y"
  },
  {
    "path": "elements/a11y-figure/a11y-figure.js",
    "chars": 10554,
    "preview": "/**\n * Copyright 2020 The Pennsylvania State University\n * @license Apache-2.0, see License.md for full text.\n */\nimport"
  },
  {
    "path": "elements/a11y-figure/demo/index.html",
    "chars": 2950,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-figure/gulpfile.cjs",
    "chars": 706,
    "preview": "const gulp = require(\"gulp\");\nconst fs = require(\"fs\"); \nconst path = require(\"path\");\nconst packageJson = require(\"./pa"
  },
  {
    "path": "elements/a11y-figure/index.html",
    "chars": 303,
    "preview": "<!doctype html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, minimum-scal"
  },
  {
    "path": "elements/a11y-figure/package.json",
    "chars": 2086,
    "preview": "{\n  \"name\": \"@haxtheweb/a11y-figure\",\n  \"wcfactory\": {\n    \"className\": \"A11yFigure\",\n    \"customElementClass\": \"LitElem"
  },
  {
    "path": "elements/a11y-figure/polymer.json",
    "chars": 657,
    "preview": "{\n  \"entrypoint\": \"demo/index.html\",\n  \"extraDependencies\": [\n    \"node_modules/@webcomponents/webcomponentsjs/*.js\",\n  "
  },
  {
    "path": "elements/a11y-figure/test/a11y-figure.test.js",
    "chars": 16672,
    "preview": "import { fixture, expect, html } from \"@open-wc/testing\";\nimport \"../a11y-figure.js\";\n\ndescribe(\"a11y-figure test\", () ="
  },
  {
    "path": "elements/a11y-gif-player/.dddignore",
    "chars": 596,
    "preview": "# Directories\n# (Must start with with / or \\, as seen below)\n/.github # Inline comments are supported\n/.vscode\n/.idea\n/l"
  },
  {
    "path": "elements/a11y-gif-player/.editorconfig",
    "chars": 346,
    "preview": "# EditorConfig: http://EditorConfig.org\n\n# Top-most EditorConfig file\nroot = true\n\n# Rules for JavaScript files:\n\n[*.{js"
  },
  {
    "path": "elements/a11y-gif-player/.gitignore",
    "chars": 228,
    "preview": "## editors\n/.idea\n/.vscode\n\n## system files\n.DS_Store\n\n## npm\n/node_modules/\n/npm-debug.log\n\n## testing\n/coverage/\n\n## t"
  },
  {
    "path": "elements/a11y-gif-player/.npmignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "elements/a11y-gif-player/.surgeignore",
    "chars": 15,
    "preview": "!node_modules/\n"
  },
  {
    "path": "elements/a11y-gif-player/.travis.yml",
    "chars": 305,
    "preview": "language: node_js\ndist: trusty\nsudo: required\naddons:\n  firefox: \"latest\"\n  apt:\n    sources:\n      - google-chrome\n    "
  },
  {
    "path": "elements/a11y-gif-player/LICENSE.md",
    "chars": 11350,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "elements/a11y-gif-player/README.md",
    "chars": 893,
    "preview": "# &lt;a11y-gif-player&gt;\n\n11\n> An accessible animated gif \"player\"\n\n## Usage\nTo use this web component in your project "
  },
  {
    "path": "elements/a11y-gif-player/a11y-gif-player.js",
    "chars": 11934,
    "preview": "/**\n * Copyright 2019 The Pennsylvania State University\n * @license Apache-2.0, see License.md for full text.\n */\nimport"
  },
  {
    "path": "elements/a11y-gif-player/demo/index.html",
    "chars": 2517,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-gif-player/gulpfile.cjs",
    "chars": 703,
    "preview": "const gulp = require(\"gulp\");\nconst fs = require(\"fs\"); \nconst path = require(\"path\");\nconst packageJson = require(\"./pa"
  },
  {
    "path": "elements/a11y-gif-player/index.html",
    "chars": 307,
    "preview": "<!doctype html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, minimum-scal"
  },
  {
    "path": "elements/a11y-gif-player/lib/a11y-gif-player.haxProperties.json",
    "chars": 2262,
    "preview": "{\n  \"canScale\": true,\n\n  \"canEditSource\": true,\n  \"gizmo\": {\n    \"title\": \"GIF\",\n    \"description\": \"Make animated GIFs "
  },
  {
    "path": "elements/a11y-gif-player/locales/a11y-gif-player.es.json",
    "chars": 46,
    "preview": "{\n  \"toggleAnimation\": \"Alternar animación\"\n}\n"
  },
  {
    "path": "elements/a11y-gif-player/package.json",
    "chars": 2436,
    "preview": "{\n  \"name\": \"@haxtheweb/a11y-gif-player\",\n  \"wcfactory\": {\n    \"className\": \"A11yGifPlayer\",\n    \"customElementClass\": \""
  },
  {
    "path": "elements/a11y-gif-player/polymer.json",
    "chars": 657,
    "preview": "{\n  \"entrypoint\": \"demo/index.html\",\n  \"extraDependencies\": [\n    \"node_modules/@webcomponents/webcomponentsjs/*.js\",\n  "
  },
  {
    "path": "elements/a11y-gif-player/test/a11y-gif-player.test.js",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "elements/a11y-media-player/.dddignore",
    "chars": 596,
    "preview": "# Directories\n# (Must start with with / or \\, as seen below)\n/.github # Inline comments are supported\n/.vscode\n/.idea\n/l"
  },
  {
    "path": "elements/a11y-media-player/.editorconfig",
    "chars": 346,
    "preview": "# EditorConfig: http://EditorConfig.org\n\n# Top-most EditorConfig file\nroot = true\n\n# Rules for JavaScript files:\n\n[*.{js"
  },
  {
    "path": "elements/a11y-media-player/.gitignore",
    "chars": 228,
    "preview": "## editors\n/.idea\n/.vscode\n\n## system files\n.DS_Store\n\n## npm\n/node_modules/\n/npm-debug.log\n\n## testing\n/coverage/\n\n## t"
  },
  {
    "path": "elements/a11y-media-player/.npmignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "elements/a11y-media-player/.surgeignore",
    "chars": 15,
    "preview": "!node_modules/\n"
  },
  {
    "path": "elements/a11y-media-player/.travis.yml",
    "chars": 305,
    "preview": "language: node_js\ndist: trusty\nsudo: required\naddons:\n  firefox: \"latest\"\n  apt:\n    sources:\n      - google-chrome\n    "
  },
  {
    "path": "elements/a11y-media-player/LICENSE.md",
    "chars": 11350,
    "preview": "                     Apache License\n                           Version 2.0, January 2004\n                        http://"
  },
  {
    "path": "elements/a11y-media-player/README.md",
    "chars": 1016,
    "preview": "# &lt;a11y-media-player&gt;\n\n11\n> \n\n## Usage\nTo use this web component in your project you can utilize one of the follow"
  },
  {
    "path": "elements/a11y-media-player/a11y-media-player.js",
    "chars": 107808,
    "preview": "/**\n * Copyright 2019 The Pennsylvania State University\n * @license Apache-2.0, see License.md for full text.\n */\nimport"
  },
  {
    "path": "elements/a11y-media-player/demo/audio.html",
    "chars": 2861,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-media-player/demo/index.html",
    "chars": 5765,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-wid"
  },
  {
    "path": "elements/a11y-media-player/demo/samples/bueller.vtt",
    "chars": 998,
    "preview": "WEBVTT\n\n1\n00:00:01.000 --> 00:00:11.500\nTeacher: Bueller? Bueller? Bueller? Bueller? Bueller?\n\n2\n00:00:11.500 --> 00:00:"
  }
]

// ... and 5237 more files (download for full content)

About this extraction

This page contains the full source code of the elmsln/lrnwebcomponents GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 5437 files (76.5 MB), approximately 8.0M tokens, and a symbol index with 15302 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!