-_**Android Design Patterns**_ is intended to provide various use case scenarios and architectural concepts on prototyping adaptive applications.
+***Android Design Patterns*** is intended to provide various use case scenarios and architectural concepts on prototyping adaptive applications.
```text
mkdocs.yml # Configuration file.
@@ -107,248 +116,319 @@ docs/
info.md # Links page
```
-## ๐ _Documentation_
+## ๐ *Documentation*
The Website documentation is provided by [gitbook](https://www.gitbook.com/) and can be discovered at url:
-[_**Android Patterns**_][docs]
+[***Android Patterns***][docs]
-To enable documentation serving at _**localhost**_ the following steps should be considered:
+To enable documentation serving at ***localhost*** you can run the following script
-1\) Install/upgrade _**pip**_ command-line utility:
+```shell script
+./scripts/build-docs.sh
+```
-```text
+otherwise, the next steps should be considered:
+
+1\) Install/upgrade ***pip*** command-line utility:
+
+```shell script
pip install --upgrade pip
```
-or if you need to install _**pip**_ for the first time:
+or if you need to install ***pip*** for the first time:
-```text
+```shell script
+wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
python get-pip.py
```
-2\) Install the _**mkdocs**_ package using pip:
+2\) Install the ***mkdocs*** package using pip:
-```text
+```shell script
pip install mkdocs
```
or more conveniently for Windows subsystem:
-```text
+```shell script
python -m pip install mkdocs
python -m mkdocs
```
3\) Install the material theme for the website:
-```text
-pip install mkdocs-material
-pip install markdown-include
+```shell script
+python -m pip install mkdocs-material
+python -m pip install markdown-include
+...
+(see requirements.txt)
+...
```
-4\) Start the server at _**localhost**_ by running the following command:
+4\) Start the server at ***localhost*** by running the following command:
-```text
-mkdocs serve --verbose --dirtyreload
+```shell script
+python -m mkdocs build --clean --config-file mkdocs.yml
+python -m mkdocs serve --verbose --dirtyreload
```
5\) Deploy to GitHub pages:
-```text
-mkdocs --verbose gh-deploy --force --remote-branch gh-pages
+```shell script
+python -m mkdocs --verbose gh-deploy --force --remote-branch gh-pages
```
5\) Open up [localhost](http://127.0.0.1:8000/) in browser to get the default documentation homepage.
-## โฐ _Statistics_
+## ๐งถ *Kubernetes*
+
+Running k8s cluster with tilt command by acquiring k8s deployment configuration:
+
+```shell
+tilt up
+```
+
+Shutting down k8s cluster with provisioned resources removal:
+
+```shell
+tilt down --delete-namespaces
+```
+
+## โฐ *Statistics*
-## ๐ _Versioning_
+## ๐ *Versioning*
The project uses [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository][tags].
-## ๐น _Authors_
+## ๐น *Authors*
-_**Android Patterns**_ is maintained by the following GitHub team-members:
+***Android Patterns*** is maintained by the following GitHub team-members:
-* [](https://github.com/AlexRogalskiy)
+- [](https://github.com/AlexRogalskiy)
with community support please contact with us if you have some question or proposition.
-## ๐ _Contributing_
+## ๐ *Contributing*
+
+[](https://badges.pufler.dev)
-[](https://badges.pufler.dev)
+Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests
+to us ([emoji key](https://allcontributors.org/docs/en/emoji-key)).
-Please read [CONTRIBUTING.md](https://github.com/AlexRogalskiy/android-patterns/blob/master/.github/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
+This project follows the [all-contributors](https://github.com/all-contributors/all-contributors)
+specification. Contributions of any kind are welcome!
[](http://makeapullrequest.com)

See also the list of [contributors][contributors] who participated in this project.
-## ๐จ _Visitor stats_
+## ๐จ *Visitor stats*
-[](https://hits.seeyoufarm.com)
+[](https://hits.seeyoufarm.com)



-## โฝ _Licensing_
+## โฝ *Licensing*
-_**Android Patterns**_ is distributed under LGPL version 3 or later, [[License](https://github.com/AlexRogalskiy/android-patterns/blob/master/LICENSE.txt)].
+***Android Patterns*** is distributed under LGPL version 3 or later, \[[License](https://github.com/AlexRogalskiy/android-patterns/blob/master/LICENSE.txt)].
LGPLv3 is additional permissions on top of GPLv3.

-## ๐ _Development Support_
+## ๐ *Development Support*
Like
- and _**Android Patterns**_ ? Consider buying me a coffee :\)
+and ***Android Patterns*** ? Consider buying me a coffee :)
-[](https://www.patreon.com/alexrogalskiy)
+[](https://www.patreon.com/alexrogalskiy)
[](https://www.buymeacoffee.com/AlexRogalskiy)
[](https://ko-fi.com/alexrogalskiy)
-## ๐จโ๐จโ๐งโ๐ฆ _Acknowledgement_
+## ๐จโ๐จโ๐งโ๐ฆ *Acknowledgement*
[][stars]
-## ๐ฅ _Feeds and Podcasts_
+[][stars_chart]
+
+[][stats_chart]
+
+## ๐ *OpenGraph Card*
+
+
+
+
+
+## ๐ฅ *Feeds and Podcasts*
-### _Reddit posts_
+### *Reddit posts*
-- [Here is my first Boss ever!!](https://www.reddit.com/r/androiddev/comments/lak5z7/here_is_my_first_boss_ever/)
-- [How to send push notifications in real time to an android device without Firebase](https://www.reddit.com/r/androiddev/comments/lafsln/how_to_send_push_notifications_in_real_time_to_an/)
-- [Android Navigation Deep link path regex?](https://www.reddit.com/r/androiddev/comments/ladug2/android_navigation_deep_link_path_regex/)
-- [Compose Ui StateFlow.collectAsState() not working for StateFlow>](https://www.reddit.com/r/androiddev/comments/ladp0q/compose_ui_stateflowcollectasstate_not_working/)
-- [Finally emulator is available inside android studio for M1 !!!](https://www.reddit.com/r/androiddev/comments/lacrll/finally_emulator_is_available_inside_android/)
-- ["Notice me senpai!" In Android Docs...](https://www.reddit.com/r/androiddev/comments/laau6u/notice_me_senpai_in_android_docs/)
-- [Question about AR Apps](https://www.reddit.com/r/androiddev/comments/laa6rk/question_about_ar_apps/)
-- [Fast migration from Kotlin Synthetics to View Binding- Tips and Tricks](https://www.reddit.com/r/androiddev/comments/laa3t6/fast_migration_from_kotlin_synthetics_to_view/)
-- [Need help on where to start app development](https://www.reddit.com/r/androiddev/comments/laa1hr/need_help_on_where_to_start_app_development/)
-- [Kotlin's one of those languages, which many devs wish migrate to!](https://www.reddit.com/r/androiddev/comments/laa10m/kotlins_one_of_those_languages_which_many_devs/)
+- [Guys, what are your thoughts about the new Google 16KB page size requirements that will take effect starting November?](https://www.reddit.com/r/androiddev/comments/1kulsww/guys_what_are_your_thoughts_about_the_new_google/)
+- [Should I make separate resumes for Flutter and Jetpack Compose experience?](https://www.reddit.com/r/androiddev/comments/1kuki29/should_i_make_separate_resumes_for_flutter_and/)
+- [Apk easy tool cannot compiling files](https://www.reddit.com/r/androiddev/comments/1kujjf6/apk_easy_tool_cannot_compiling_files/)
+- [Drag and drop animation and shadow effects](https://www.reddit.com/r/androiddev/comments/1kuitaq/drag_and_drop_animation_and_shadow_effects/)
+- [yt3 x90l table running android 6](https://www.reddit.com/r/androiddev/comments/1kuigen/yt3_x90l_table_running_android_6/)
+- [Build, Runtime Performance, Apk size Improvement](https://www.reddit.com/r/androiddev/comments/1kui4xn/build_runtime_performance_apk_size_improvement/)
+- [Book opinion](https://www.reddit.com/r/androiddev/comments/1kuhekc/book_opinion/)
+- [Flatpaks on Android 16's linux VM?](https://www.reddit.com/r/androiddev/comments/1kugy9t/flatpaks_on_android_16s_linux_vm/)
+- [Google's replacement to fat-aar is coming!](https://www.reddit.com/r/androiddev/comments/1kugnp8/googles_replacement_to_fataar_is_coming/)
+- [How are wallpapers in tapet wallpaper app generated?](https://www.reddit.com/r/androiddev/comments/1kuf8cv/how_are_wallpapers_in_tapet_wallpaper_app/)
-### _InfoWorld posts_
+### *InfoWorld posts*
-- [Android Studio improves machine learning support](https://www.infoworld.com/article/3584465/android-studio-improves-machine-learning-support.html#tk.rss_android)
-- [Kotlin mobile SDK shares code across Android, iOS](https://www.infoworld.com/article/3574076/kotlin-mobile-sdk-shares-code-across-android-ios.html#tk.rss_android)
-- [Googleโs UI toolkit for Android moves to alpha release](https://www.infoworld.com/article/3572565/googles-ui-toolkit-for-android-moves-to-alpha-release.html#tk.rss_android)
-- [Gradle 6.5 adds file system watching to improve build times](https://www.infoworld.com/article/3561572/gradle-65-adds-file-system-watching-to-improve-build-times.html#tk.rss_android)
-- [Android Studio 4.0 adds Motion Editor and Build Analyzer](https://www.infoworld.com/article/3561230/android-studio-40-adds-motion-editor-and-build-analyzer.html#tk.rss_android)
-- [Amid the pandemic, using trust to fight shadow IT](https://www.computerworld.com/article/3544301/amid-the-pandemic-using-trust-to-fight-shadow-it.html#tk.rss_android)
-- [How smartphone apps could save lives (and the economy)](https://www.idginsiderpro.com/article/3537532/how-smartphone-apps-could-save-lives-and-the-economy.html#tk.rss_android)
+- [JetBrains debuts Kotlin 2.0.0 with K2 compiler performance boost](https://www.infoworld.com/article/3715312/jetbrains-debuts-kotlin-200-with-k2-compiler-performance-boost.html#tk.rss_android)
+- [Android 15 reaches beta](https://www.infoworld.com/article/3715401/android-15-reaches-beta.html#tk.rss_android)
+- [Kotlin keeps climbing the Tiobe popularity index](https://www.infoworld.com/article/3710290/kotlin-keeps-climbing-the-tiobe-popularity-index.html#tk.rss_android)
+- [Building for Linux and Android on Windows](https://www.infoworld.com/article/3707729/building-for-linux-and-android-on-windows.html#tk.rss_android)
+- [Flutter 3.13 speeds rendering on iOS](https://www.infoworld.com/article/3705031/flutter-313-speeds-rendering-on-ios.html#tk.rss_android)
+- [Kotlin 1.9.0 features beta of advanced K2 compiler](https://www.infoworld.com/article/3701893/kotlin-1-9-0-features-beta-of-advanced-k2-compiler.html#tk.rss_android)
+- [Build better Jetpack Compose apps with Sentry](https://www.infoworld.com/article/3693018/build-better-jetpack-compose-apps-with-sentry.html#tk.rss_android)
+- [Android Studio Flamingo upgrades UI tooling](https://www.infoworld.com/article/3693588/android-studio-flamingo-ide-enhances-ui-building.html#tk.rss_android)
+- [Android 14 preview for developers arrives](https://www.infoworld.com/article/3687731/android-14-preview-for-developers-arrives.html#tk.rss_android)
- [What is Kotlin? The Java alternative explained](https://www.infoworld.com/article/3224868/what-is-kotlin-the-java-alternative-explained.html#tk.rss_android)
-- [Android 11 developer preview stresses 5G, security](https://www.infoworld.com/article/3528552/android-11-developer-preview-stresses-5g-security.html#tk.rss_android)
-- [Android in 2020: Trends and predictions](https://www.infoworld.com/video/100859/android-in-2020-trends-and-predictions#tk.rss_android)
-### _RedHat posts_
+### *RedHat posts*
+
- [Android SPKI Pinning with TrustKit](https://developers.redhat.com/blog/2017/10/26/android-spki-pinning-trustkit/)
- [Server-side Kotlin with Eclipse Vert.x at JavaOne](https://developers.redhat.com/blog/2017/10/13/server-side-kotlin-eclipse-vert-x-javaone/)
- [Testing your Android Appโs UI with Espresso](https://developers.redhat.com/blog/2017/07/13/testing-your-android-apps-ui-with-espresso/)
- [Installing Linux on an Android Phone](https://developers.redhat.com/blog/2017/03/16/installing-linux-on-an-android-phone/)
- [A step-by-step tutorial for continuous integration with Jenkins on a Red Hat Mobile Native Android application: Part 2](https://developers.redhat.com/blog/2016/08/11/a-step-by-step-tutorial-for-continuous-integration-with-jenkins-on-a-red-hat-mobile-native-android-application-part-2/)
+
-### _Android Authority posts_
+### *Android Authority posts*
+
- [15 best Android emulators for PC and Mac of 2021](https://www.androidauthority.com/best-android-emulators-for-pc-655308/)
-- [How to create Oculus Quest experiences in Unity](https://www.androidauthority.com/oculus-quest-development-1196351/)
-- [Upwork vs Fiverr: Which is the best place to sell your services?](https://www.androidauthority.com/upwork-vs-fiverr-1190439/)
-- [How to install Android on PC: These are your best options](https://www.androidauthority.com/install-android-pc-668643/)
-- [A guide to Android app development for complete beginners in 5 easy steps](https://www.androidauthority.com/android-app-development-1128595/)
-- [How to reverse a string in Python](https://www.androidauthority.com/how-to-reverse-a-string-in-python-1140847/)
-- [What is Microsoft Azure? Azure certification for professionals](https://www.androidauthority.com/what-is-azure-1159879/)
-- [How to call a method in Java](https://www.androidauthority.com/how-to-call-a-method-in-java-1149853/)
-- [Making an app with no programming experience: What are your options?](https://www.androidauthority.com/how-to-make-android-apps-629325/)
-- [What is Azure certification?](https://www.androidauthority.com/azure-certification-1162875/)
+- [Google I/O 2021: Hereโs what to expect](https://www.androidauthority.com/google-io/)
+- [How to make a game in Python: An introduction to Pygame](https://www.androidauthority.com/how-to-make-a-game-in-python-1136589/)
+- [How to call a function in Python](https://www.androidauthority.com/python-function-call-1121793/)
+- [How to use loops in Python](https://www.androidauthority.com/how-to-use-loops-in-python-1148510/)
+- [The best Android developer tools for getting started](https://www.androidauthority.com/best-android-developer-tools-671650/)
+- [How to install Python and start coding on Windows, Mac, or Linux](https://www.androidauthority.com/how-to-install-python-1134793/)
+- [How to define a function in Python](https://www.androidauthority.com/how-to-define-a-function-in-python-1141219/)
+- [Python beginnerโs guide โ Everything you need to know to get started](https://www.androidauthority.com/learn-python-beginner-1142688/)
+- [Kotlin tutorial for Android for beginners: Build a simple quiz](https://www.androidauthority.com/kotlin-tutorial-1134289/)
+
-### _Android Arsenal posts_
+### *Android Arsenal posts*
-- [RxDisposableWatcher](http://android-arsenal.com/details/1/8225)
-- [android-uniDevId](http://android-arsenal.com/details/1/8224)
-- [BottomSheet Menu](http://android-arsenal.com/details/1/8223)
-- [Boot Laces](http://android-arsenal.com/details/1/8222)
-- [Pixl](http://android-arsenal.com/details/1/8221)
-- [TagLabelText](http://android-arsenal.com/details/1/8220)
-- [StoryViewer](http://android-arsenal.com/details/3/8219)
-- [Bouncy](http://android-arsenal.com/details/1/8218)
-- [Routes](http://android-arsenal.com/details/1/8217)
-- [Moshi Kotlin Extensions](http://android-arsenal.com/details/1/8216)
+
+- [locus](http://android-arsenal.com/details/1/8244)
+- [SSImagePicker](http://android-arsenal.com/details/1/8243)
+- [Comparing Performance Bar](http://android-arsenal.com/details/1/8242)
+- [Screenshot Detection](http://android-arsenal.com/details/1/8241)
+- [AndroidResourceManager](http://android-arsenal.com/details/1/8240)
+- [FixedHeaderTableLayout](http://android-arsenal.com/details/1/8239)
+- [AndroidStyling-LintRules](http://android-arsenal.com/details/1/8238)
+- [MaterialPreferences](http://android-arsenal.com/details/1/8237)
+- [MaterialDialogFragments](http://android-arsenal.com/details/1/8236)
+- [Android BLE Made Easy](http://android-arsenal.com/details/1/8235)
+
-### _Medium posts_
+### *Medium posts*
-- [Modelling UI State on Android](https://proandroiddev.com/modelling-ui-state-on-android-26314a5975b9?source=rss------android-5)
-- [Create a simple Samsung Galaxy Watch companionย .NET appโโโPart 1](https://medium.com/@kennay-kermani/create-a-simple-samsung-galaxy-watch-companion-net-app-part-1-1466fd9e2e6c?source=rss------android-5)
-- [Hungry Shark Evolution MOD APK](https://medium.com/@Asiofficial/hungry-shark-evolution-mod-apk-f1cfe4c05b36?source=rss------android-5)
-- [How to See Saved Password on Chrome](https://medium.com/@smarttecksolutions/how-to-see-saved-password-on-chrome-37ebcdb11f3e?source=rss------android-5)
-- [Getting Android vector drawable as Path](https://medium.com/@aednlaxer/getting-android-vector-drawable-as-path-f4de5651f559?source=rss------android-5)
-- [Ford and Android are partner, Ford will use ANDROID](https://medium.com/@androidhelipad/ford-and-android-are-partner-ford-will-use-android-9e15c10b6985?source=rss------android-5)
-- [Gamification in Social Networks: Do you remember these games?](https://medium.com/@bitwings/gamification-in-social-networks-do-you-remember-these-games-8b66f56e7951?source=rss------android-5)
-- [Report: Netflix Is Testing a Sleep Timer Feature on Android](https://medium.com/pcmag-access/report-netflix-is-testing-a-sleep-timer-feature-on-android-88958f4df184?source=rss------android-5)
-- [Implementing Android Notifications In Unity Game](https://medium.com/swlh/implementing-android-notifications-in-unity-game-15642d316c9e?source=rss------android-5)
+
+- [Every student needs to install this FREE android app NOW!](https://lydia22.medium.com/every-student-needs-to-install-this-free-android-app-now-563fed9189d1?source=rss------android-5)
+- [Digital Signature Android Demo.](https://info-anikdey003.medium.com/digital-signature-android-demo-a38f1342b880?source=rss------android-5)
+- [Augmented Reality(AR) in Android](https://mothegoat.medium.com/augmented-reality-ar-in-android-1af62f6a207e?source=rss------android-5)
+- [5 Effective Dos and Donโts in Java Programming](https://betterprogramming.pub/5-effective-dos-and-donts-in-java-programming-3c14b0467bfd?source=rss------android-5)
+- [Latest whatsapp messenger apk download](https://farida-bomo.medium.com/latest-whatsapp-messenger-apk-download-230c83acbc43?source=rss------android-5)
+- [Android : Good to know, Part-1](https://anubhav-arora.medium.com/android-good-to-know-part-1-93b141e93192?source=rss------android-5)
+- [Pop-Up-Date](https://medium.com/niagara-launcher/pop-up-date-4a5d3522df2d?source=rss------android-5)
+- [Unโorganizzazione che vuole aiutare e dare privilegi a chi ha meno privilegi e anche aumentare ilโฆ](https://wemovekel01.medium.com/unorganizzazione-che-vuole-aiutare-e-dare-privilegi-a-chi-ha-meno-privilegi-e-anche-aumentare-il-13ec5ea12f09?source=rss------android-5)
+- [Getting started: Android CameraX](https://thewerner.medium.com/getting-started-android-camerax-a84e138e2c00?source=rss------android-5)
+- [Maintain View from Resizing while use `ADJUST_RESIZE`](https://mahmoud-mabrok.medium.com/maintain-view-from-resizing-while-use-adjust-resize-915676c1c5e5?source=rss------android-5)
+
-### _Gizmodo posts_
+### *Gizmodo posts*
-- [Ford Will Put Android in Millions of Cars Starting in 2023](https://gizmodo.com/ford-will-put-android-in-millions-of-cars-starting-in-2-1846174165)
-- [Google Suspended Federated Chat App Element for Allegedly Hosting Abusive Content](https://gizmodo.com/google-suspended-federated-chat-app-element-for-alleged-1846167702)
-- [See Which Apps Are Using Your Camera, Microphone, and Location](https://gizmodo.com/see-which-apps-are-using-your-camera-microphone-and-l-1846044433)
-- [It's Doneโthe Google-Fitbit Deal Is Complete](https://gizmodo.com/its-done-the-google-fitbit-deal-is-complete-1846057104)
-- [The Best Apps to Distract Your Brain from the Nightmare That Is 2021](https://gizmodo.com/the-best-apps-to-distract-your-brain-from-the-nightmare-1846027578)
-- [TCL Is Pushing the Price of 5G Down Even Further with the TCL 20 5G](https://gizmodo.com/tcl-is-pushing-the-price-of-5g-down-even-further-with-t-1846033224)
-- [Samsung Finally Announced the Galaxy Unpacked Event We All Knew About: Here's What's Coming](https://gizmodo.com/samsung-finally-announced-the-galaxy-unpacked-event-we-1845983996)
-- [How to Enable the Hidden Tap Gesture on iPhone or Android](https://gizmodo.com/how-to-enable-the-hidden-tap-gesture-on-iphone-or-andro-1845953239)
-- [Google Sneakily Removed Support for Astrophotography Mode from Ultra-Wide Cams on the Pixel 5 and 4a 5G](https://gizmodo.com/google-sneakily-removed-support-for-astrophotography-mo-1845962214)
-- [Samsung's Galaxy S21 Ultra Will Reportedly Get S-Pen Support](https://gizmodo.com/samsungs-galaxy-s21-ultra-will-reportedly-get-s-pen-sup-1845940688)
+
+- [The Asus Zenfone 8 Is an Affordable, Compelling Option If You Love Small Phones](https://gizmodo.com/the-asus-zenfone-8-is-an-affordable-compelling-option-1846854210)
+- [My Kingdom for an Android Tablet That Doubles As a Portable Monitor](https://gizmodo.com/my-kingdom-for-an-android-tablet-that-doubles-as-a-port-1846850182)
+- [Google, You Should Already Know How People Feel About Wear OS](https://gizmodo.com/google-you-should-already-know-how-people-feel-about-w-1846866808)
+- [Clubhouse Launches Android Beta as iOS Downloads Nosedive](https://gizmodo.com/clubhouse-launches-android-beta-as-downloads-nosedive-1846856771)
+- [Qualcomm Chip Flaw Could Leave 30 Percent of the World's Phones Vulnerable to Hackers](https://gizmodo.com/qualcomm-chip-flaw-could-leave-30-percent-of-the-worlds-1846837667)
+- [Google Is Launching Its Own Version of Appleโs Privacy Nutrition Labels](https://gizmodo.com/google-is-launching-its-own-version-of-apple-s-privacy-1846839667)
+- [Google Assistant Is Getting a New Family Broadcast Feature Just in Time for Mother's Day](https://gizmodo.com/google-assistant-is-getting-a-new-family-broadcast-feat-1846836811)
+- [Google Is Bringing a Google TV-Like Experience to Android Tablets](https://gizmodo.com/google-is-bringing-a-google-tv-like-experience-to-andro-1846824566)
+- [Google May Have Inadvertently Just Spilled the Beans About the Pixel Buds A on Twitter](https://gizmodo.com/google-may-have-inadvertently-just-spilled-the-beans-ab-1846823832)
+- [60% of School Apps Are Sharing Your Kids' Data With Third Parties](https://gizmodo.com/60-of-school-apps-are-sharing-your-kids-data-with-thir-1846819024)
+
-### _Mobile Dev Memo posts_
+### *Mobile Dev Memo posts*
-- [Apple privileges its own ad network with ATT. Whatโs its privacy endgame?](https://mobiledevmemo.com/apple-privileges-its-own-ad-network-whats-its-privacy-end-game/)
-- [Unpacking Appleโs latest iOS14 privacy policy guidance](https://mobiledevmemo.com/unpacking-apples-latest-ios14-privacy-policy-guidance/)
-- [Podcast: IDFA, TURTLEDOVE, and the Future of Online Privacy](https://mobiledevmemo.com/idfa-turtledove-and-the-future-of-privacy/)
-- [Ad tech companies will become gaming companies in 2021](https://mobiledevmemo.com/mobile-ad-tech-companies-should-become-gaming-companies-in-2021/)
-- [Facebook may take 7% revenue hit from Apple privacy changes](https://mobiledevmemo.com/facebook-may-take-revenue-hit-from-apple-privacy-changes/)
-- [Fingerprinting with iOS 14: Reality or delusion?](https://mobiledevmemo.com/fingerprinting-with-att-reality-or-delusion/)
-- [What happens to digital advertising if Facebook is broken up?](https://mobiledevmemo.com/what-happens-to-advertisers-if-facebook-is-broken-up/)
-- [App Tracking Transparency Codex: the ultimate guide to ATT, IDFA deprecation, and SKAdNetwork](https://mobiledevmemo.com/app-tracking-transparency-codex-guide-to-idfa-deprecation-and-skadnetwork/)
-- [2021 predictions for mobile marketing, Part 2](https://mobiledevmemo.com/2021-predictions-for-mobile-marketing-part-2/)
-- [2021 predictions for mobile marketing](https://mobiledevmemo.com/2021-predictions-for-mobile-marketing/)
+
+- [Apple robbed the mobโs bank](https://mobiledevmemo.com/apple-robbed-the-mobs-bank/)
+- [iOS 14: How to prevail in Q2 2021](https://mobiledevmemo.com/ios-14-prevailing-in-q2-2021/)
+- [โMobile advertising spend canโt just disappearโ](https://mobiledevmemo.com/mobile-advertising-spend-cant-just-disappear/)
+- [Creative paralysis: ad creative production and testing in iOS 14](https://mobiledevmemo.com/creative-paralysis-ad-creative-production-and-testing-for-ios-14/)
+- [The end of the beginning on mobile: ATT is enforced next week](https://mobiledevmemo.com/the-end-of-the-beginning-on-mobile-att-is-enforced-next-week/)
+- [The growth trap](https://mobiledevmemo.com/the-growth-trap/)
+- [ATT opt-in rates are irrelevant](https://mobiledevmemo.com/att-opt-in-rates-are-irrelevant/)
+- [Unpacking Tim Cookโs comments about ATT](https://mobiledevmemo.com/unpacking-tim-cooks-comments-about-att/)
+- [What is differential privacy in digital advertising?](https://mobiledevmemo.com/what-is-differential-privacy/)
+- [Dear App Developers: fingerprinting is not a viable workaround to ATT](https://mobiledevmemo.com/dear-app-developers-fingerprinting-is-not-a-viable-workaround-to-att/)
+
-### _Infinum posts_
+### *Infinum posts*
-- [RxJava vs. Coroutines](https://androidsweets.ongoodbits.com/2021/01/29/rxjava-vs-coroutines)
-- [Make your own device lab!](https://androidsweets.ongoodbits.com/2021/01/22/make-your-own-device-lab)
-- [How much debuggable option slows down your app?](https://androidsweets.ongoodbits.com/2021/01/15/how-much-debuggable-option-slows-down-your-app)
-- [Do you know how to keep secrets?](https://androidsweets.ongoodbits.com/2021/01/08/do-you-know-how-to-keep-secrets)
-- [Is your app MAD enough?](https://androidsweets.ongoodbits.com/2020/12/18/is-your-app-mad-enough)
+
+- [Android Studio 4.2 is now available](https://androidsweets.ongoodbits.com/android-studio-4-2-is-now-available)
+- [Be careful with you Google ads!](https://androidsweets.ongoodbits.com/be-careful-with-you-google-ads)
+- [How to have Modular Navigation with Jetpack Compose?](https://androidsweets.ongoodbits.com/how-to-have-modular-navigation-with-jetpack-compose)
+- [How Dalvik and ART work?](https://androidsweets.ongoodbits.com/how-dalvik-and-art-work)
+- [Tools to help developers provide a positive user experience](https://androidsweets.ongoodbits.com/tools-to-help-developers-provide-a-positive-user-experience)
+
- [repo]: https://github.com/AlexRogalskiy/android-patterns
- [tags]: https://github.com/AlexRogalskiy/android-patterns/tags
- [issues]: https://github.com/AlexRogalskiy/android-patterns/issues
- [pulls]: https://github.com/AlexRogalskiy/android-patterns/pulls
- [wiki]: https://github.com/AlexRogalskiy/android-patterns/wiki
- [stars]: https://github.com/AlexRogalskiy/android-patterns/stargazers
- [contributors]: https://github.com/AlexRogalskiy/android-patterns/graphs/contributors
- [docs]: https://alexander-rogalsky.gitbook.io/android-patterns/
\ No newline at end of file
+***
+
+[](https://www.markdownguide.org/)
+[](https://www.gitbook.com/)
+[](https://forthebadge.com/)
+
+[repo]: https://github.com/AlexRogalskiy/android-patterns
+
+[tags]: https://github.com/AlexRogalskiy/android-patterns/tags
+
+[issues]: https://github.com/AlexRogalskiy/android-patterns/issues
+
+[pulls]: https://github.com/AlexRogalskiy/android-patterns/pulls
+
+[wiki]: https://github.com/AlexRogalskiy/android-patterns/wiki
+
+[stars]: https://github.com/AlexRogalskiy/android-patterns/stargazers
+
+[stars_chart]: https://starchart.cc/AlexRogalskiy/android-patterns
+
+[stats_chart]: https://cauldron.io/project/5126
+
+[contributors]: https://github.com/AlexRogalskiy/android-patterns/graphs/contributors
+
+[docs]: https://alexander-rogalsky.gitbook.io/android-patterns/
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000000..034e848032
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,21 @@
+# Security Policy
+
+## Supported Versions
+
+Use this section to tell people about which versions of your project are
+currently being supported with security updates.
+
+| Version | Supported |
+| ------- | ------------------ |
+| 5.1.x | :white_check_mark: |
+| 5.0.x | :x: |
+| 4.0.x | :white_check_mark: |
+| < 4.0 | :x: |
+
+## Reporting a Vulnerability
+
+Use this section to tell people how to report a vulnerability.
+
+Tell them where to go, how often they can expect to get an update on a
+reported vulnerability, what to expect if the vulnerability is accepted or
+declined, etc.
diff --git a/Tiltfile b/Tiltfile
new file mode 100644
index 0000000000..251ea0beae
--- /dev/null
+++ b/Tiltfile
@@ -0,0 +1,41 @@
+# -*- mode: Python -*
+
+# For more on Extensions, see: https://docs.tilt.dev/extensions.html
+load('ext://restart_process', 'docker_build_with_restart')
+load('ext://conftest', 'conftest')
+load('ext://list_port_forwards', 'display_port_forwards')
+load('ext://print_tiltfile_dir', 'print_tiltfile_dir')
+load('ext://min_tilt_version', 'min_tilt_version')
+min_tilt_version('0.13.0')
+
+load('ext://tilt_inspector', 'tilt_inspector')
+tilt_inspector()
+
+#load('ext://min_k8s_version', 'min_k8s_version')
+#min_k8s_version('1.21.1')
+
+load('ext://namespace', 'namespace_create', 'namespace_inject')
+namespace_create('webapp')
+
+conftest(path='k8s/backend/deployment.yaml', namespace='main')
+# k8s_yaml('k8s/backend/deployment.yaml')
+k8s_yaml(namespace_inject(read_file('k8s/backend/deployment.yaml'), 'webapp'), allow_duplicates=False)
+k8s_resource('backend-android-patterns-v1', port_forwards=8000, resource_deps=['deploy', 'conftest'])
+
+# Records the current time, then kicks off a server update.
+# Normally, you would let Tilt do deploys automatically, but this
+# shows you how to set up a custom workflow that measures it.
+local_resource(
+ 'deploy',
+ 'python3 ./record-start-time.py'
+)
+
+# Add a live_update rule to our docker_build
+congrats = "๐ Congrats, you ran a live_update! ๐"
+docker_build('styled-android-patterns', '.', build_args={'IMAGE_SOURCE': 'node', 'IMAGE_TAG': '12-buster'},
+ dockerfile='./Dockerfile',
+ live_update=[
+ sync('.', '/usr/src/app'),
+ run('python3 ./record-start-time.py'),
+ run('cd /usr/src/app/docs && pip3.8 install -r requirements.txt --quiet', trigger='./requirements.txt')
+])
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000000..66f71b623a
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,17 @@
+environment:
+ matrix:
+ - nodejs_version: '14'
+
+install:
+ - ps: Install-Product node $env:nodejs_version
+ - npm i -g npm@latest
+ - npm ci
+
+build: false
+
+test_script:
+ - node --version
+ - npm --version
+ - npm run all
+
+version: '{build}'
diff --git a/changelog.config.js b/changelog.config.js
new file mode 100644
index 0000000000..02d357baa7
--- /dev/null
+++ b/changelog.config.js
@@ -0,0 +1,60 @@
+module.exports = {
+ disableEmoji: false,
+ list: ['test', 'feat', 'fix', 'chore', 'docs', 'refactor', 'style', 'ci', 'perf'],
+ maxMessageLength: 64,
+ minMessageLength: 3,
+ questions: ['type', 'scope', 'subject', 'body', 'breaking', 'issues', 'lerna'],
+ scopes: [],
+ types: {
+ chore: {
+ description: 'Build process or auxiliary tool changes',
+ emoji: '๐ค',
+ value: 'chore',
+ },
+ ci: {
+ description: 'CI related changes',
+ emoji: '๐ก',
+ value: 'ci',
+ },
+ docs: {
+ description: 'Documentation only changes',
+ emoji: 'โ๏ธ',
+ value: 'docs',
+ },
+ feat: {
+ description: 'A new feature',
+ emoji: '๐ธ',
+ value: 'feat',
+ },
+ fix: {
+ description: 'A bug fix',
+ emoji: '๐',
+ value: 'fix',
+ },
+ perf: {
+ description: 'A code change that improves performance',
+ emoji: 'โก๏ธ',
+ value: 'perf',
+ },
+ refactor: {
+ description: 'A code change that neither fixes a bug or adds a feature',
+ emoji: '๐ก',
+ value: 'refactor',
+ },
+ release: {
+ description: 'Create a release commit',
+ emoji: '๐น',
+ value: 'release',
+ },
+ style: {
+ description: 'Markup, white-space, formatting, missing semi-colons...',
+ emoji: '๐',
+ value: 'style',
+ },
+ test: {
+ description: 'Adding missing tests',
+ emoji: '๐',
+ value: 'test',
+ },
+ },
+}
diff --git a/charts/.helmignore b/charts/.helmignore
new file mode 100644
index 0000000000..0e8a0eb36f
--- /dev/null
+++ b/charts/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/charts/Chart.yaml b/charts/Chart.yaml
new file mode 100644
index 0000000000..86331b3d44
--- /dev/null
+++ b/charts/Chart.yaml
@@ -0,0 +1,22 @@
+apiVersion: v2
+version: 1.0.0
+appVersion: "1.0.1"
+created: "2021-09-01T06:23:41.21262323Z"
+name: backend-android-patterns
+description: |
+ Android Design Patterns documentation
+home: https://alexander-rogalsky.gitbook.io/android-patterns
+icon: https://d1j8pt39hxlh3d.cloudfront.net/emoji/emojione/5.0/png/unicode/32/1f4d2.png
+type: application
+keywords:
+ - android
+ - design patterns
+ - documentation
+maintainers:
+ - email: alexrogalskiy@users.noreply.github.com
+ name: AlexRogalskiy
+sources:
+ - https://github.com/AlexRogalskiy/android-patterns
+urls:
+ - https://github.com/AlexRogalskiy/android-patterns/archive/refs/tags/1.0.1.tar.gz
+kubeVersion: '>=1.19.0-0'
diff --git a/charts/README.md b/charts/README.md
new file mode 100644
index 0000000000..aa4c4bc3ab
--- /dev/null
+++ b/charts/README.md
@@ -0,0 +1,118 @@
+# Hello Kubernetes!
+
+This container image can be deployed on a Kubernetes cluster. It runs a web app, that displays the following:
+
+- a default **Hello world!** message
+- namespace, pod, and node details
+- container image details
+
+## Quick start
+
+You can deploy `android-patterns` to your Kubernetes cluster using [Helm 3](https://helm.sh/docs/intro/install/). The Helm chart installation and configuration
+options can be found in the [Deploy using Helm](docs/deploy-using-helm.md) guide.
+
+When running through the following examples, ensure that you are in the chart directory in the repo, since you are referencing a local helm chart.
+
+```bash
+$ cd helm
+```
+
+### Example 1: Default
+
+Deploy the `android-patterns` app into the `webapp` namespace. The app is exposed via a public Load Balancer on port 80 by default - note that a LoadBalancer
+service typically only works in cloud provider based Kubernetes offerings.
+
+```bash
+$ helm upgrade --install backend-android-patterns -f values.yaml --create-namespace --namespace webapp .
+
+# get the LoadBalancer ip address.
+$ kubectl get svc webapp-backend-android-patterns -n webapp -o 'jsonpath={ .status.loadBalancer.ingress[0].ip }'
+```
+
+### Example 2: Custom message
+
+Deploy the `android-patterns` app into the `webapp` namespace with an "I just deployed this on Kubernetes!" message. The app is exposed via a public Load Balancer
+on port 80 by default - note that a LoadBalancer service typically only works in cloud provider based Kubernetes offerings.
+
+```bash
+$ helm upgrade --install backend-android-patterns -f values.yaml --create-namespace --namespace webapp . --set message="I just deployed this on Kubernetes!"
+
+# get the LoadBalancer ip address.
+$ kubectl get svc webapp-backend-android-patterns -n webapp -o 'jsonpath={ .status.loadBalancer.ingress[0].ip }'
+```
+
+### Example 3: Ingress
+
+Deploy the `android-patterns` app into the `webapp` namespace. This example assumes that an ingress has been deployed and configured in the cluster, and that the
+ingress has a path of `/app/android-patterns/` mapped to the `android-patterns` service.
+
+The `android-patterns` app can be reached on the ip address of the ingress via the `/app/android-patterns/` path.
+
+```bash
+$ helm upgrade --install backend-android-patterns -f values.yaml --create-namespace --namespace webapp ingress . \
+ --set ingress.configured=true \
+ --set ingress.pathPrefix="/app/android-patterns/" \
+ --set service.type="ClusterIP"
+```
+
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+
+```bash
+$ helm install --create-namespace --namespace webapp backend-android-patterns . -f values.yaml
+```
+
+> **Tip**: You can use the default [values.yaml](values.yaml)
+
+### Example 4: Helm uninstall
+
+```bash
+helm uninstall backend-android-patterns --namespace webapp
+```
+
+### Example 5: Helm status
+
+```bash
+helm status backend-android-patterns --namespace webapp
+```
+
+### Example 6: Helm list
+
+```bash
+helm list --namespace webapp
+```
+
+### Example 7: Helm lint
+
+```bash
+helm lint charts
+```
+
+## Documentation
+
+### Deploying
+
+If you'd like to explore the various Helm chart configuration options, then read the [Deploy with Helm](charts2/docs/deploy-using-helm.md) documentation. You can also
+discover more about the ingress configuration options in the [Deploy with ingress](charts2/docs/deploy-with-ingress.md) documentation
+
+### Building your own images
+
+If you'd like to build the `android-patterns` container image yourself and reference from your own registry or DockerHub repository, then you can get more details
+on how to do this in the [Build and push container images](charts2/docs/build-and-push-container-images.md) documentation.
+
+### Development environment
+
+If you have [VS Code](https://code.visualstudio.com/) and
+the [VS Code Remote Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension installed, the `.devcontainer`
+folder will be used to provide a container based development environment. You can read more about how to use this in
+the [Development environments](docs/development-environment.md) documentation.
+
+## Upgrading the chart
+
+### To =< 5.0.0
+
+Version 5.0.0 is a major update.
+
+- The chart now follows the new Kubernetes label recommendations:
+
+
+The simplest way to update is to do a force upgrade, which recreates the resources by doing a delete and an install.
diff --git a/charts/docs/build-and-push-container-images.md b/charts/docs/build-and-push-container-images.md
new file mode 100644
index 0000000000..91b43aa702
--- /dev/null
+++ b/charts/docs/build-and-push-container-images.md
@@ -0,0 +1,31 @@
+Building docker image with docker command:
+
+```shell
+GIT_SHA=$(git rev-parse HEAD)
+docker build -f Dockerfile -t styled-android-patterns -t styled-android-patterns:$GIT_SHA --build-arg VERCEL_TOKEN=$1 .
+```
+
+Running docker image via `docker-compose` command:
+
+```shell
+docker-compose -f docker-compose.yml build
+docker-compose -f docker-compose.yml up -d
+```
+
+Removing docker image via `docker-compose` command:
+
+```shell
+docker-compose -f docker-compose.yml down -v --remove-orphans
+```
+
+Running k8s cluster with `tilt` command by acquiring k8s deployment configuration:
+
+```shell
+tilt up
+```
+
+Shutting down k8s cluster with `tilt` command with provisioned resources removal:
+
+```shell
+tilt down --delete-namespaces
+```
diff --git a/charts/docs/deploy-using-helm.md b/charts/docs/deploy-using-helm.md
new file mode 100644
index 0000000000..b6d3fefd11
--- /dev/null
+++ b/charts/docs/deploy-using-helm.md
@@ -0,0 +1,75 @@
+# Deploy using Helm
+
+The `android-patterns` Helm chart can be used to deploy the `android-patterns` application. The chart will deploy the following resources:
+
+- ServiceAccount
+- Service
+- Deployment
+
+## Prerequisites
+
+- [Helm 3](https://v3.helm.sh/)
+
+If you are using the [VS Code Remote Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) based development
+environment, all of the prerequisites will be available in the terminal.
+
+## Configuration and installation
+
+The following table lists the configuration parameters of the android-patterns chart, and their default values.
+
+| Parameter | Type | Default | Description |
+| --------- | ---- | ------- | ----------- |
+| `message` | `string` | `""` | A custom message to display instead of the default. |
+| `ingress.configured` | `bool` | `false` | Indicates whether an ingress has been configured in the cluster. Note: this chart will not install or configure an ingress. You will need to install an ingress controller and add ingress record to the app namespace. |
+| `ingress.rewritePath` | `bool` | `true` | Indicates whether pathPrefix is rewritten by the ingress. If this is set to `true` then the android-patterns dynamic content and static assets will be served from `/`, otherwise, they will be served from `/$pathPrefix`. |
+| `ingress.pathPrefix` | `string` | `""` | The path prefix configured in the ingress for the android-patterns service. Must be provided when ingress is used. |
+| `service.type` | `string` | `"LoadBalancer"` | The service type. |
+| `service.port` | `int` | `80` | The port exposed by the service. |
+| `deployment.replicaCount` | `int` | `2` | The number of replicas for the android-patterns deployment. |
+| `deployment.container.image.repository` | `string` | `android-patterns` | The container image to run in the android-patterns pods. |
+| `deployment.container.image.tag` | `string` | `""` | The container image tag. If not specified, the chart's appVersion is used. |
+| `deployment.container.image.pullPolicy` | `string` | `"IfNotPresent"` | The pull policy for the container image. |
+| `deployment.container.port` | `int` | `"8080"` | The port that android-patterns app listens on. |
+| `deployment.nodeSelector` | `object` | `{"kubernetes.io/os":"linux", "kubernetes.io/arch":"amd64"}` | The node selector for the deployment. |
+| `deployment.resources` | `object` | `{}` | The resource limits for the deployment. |
+| `deployment.tolerations` | `object` | `[]` | The tolerations for the deployment. |
+| `deployment.affinity` | `object` | `{}` | The affinity for the deployment. |
+
+### Installing the chart
+
+Ensure that you are in the chart directory in the repo, since the instructions reference a local helm chart.
+
+To install `android-patterns` via the Helm chart, use the following to:
+
+- create the webapp namespace if it doesn't exist
+- deploy the chart located in the current folder into the webapp namespace
+- create a Helm release named android-patterns
+
+```bash
+$ helm install --create-namespace --namespace webapp android-patterns .
+```
+
+You can override the values for the configuration parameter defined in the table above, either directly in the `values.yaml` file, or via the `--set` switches.
+
+```bash
+$ helm install --create-namespace --namespace webapp custom-message . --set message="I just deployed this on Kubernetes!"
+```
+
+### Upgrading the chart
+
+Ensure that you are in the chart directory in the repo, since the instructions reference a local helm chart.
+
+You can modify the `android-patterns` app by providing new values for the configuration parameter defined in the table above, either directly in the `values.yaml`
+file, or via the `--set` switches.
+
+```bash
+$ helm upgrade --namespace webapp custom-android-patterns . --set message="This is a different message"
+```
+
+### Uninstalling the chart
+
+You can uninstall the `android-patterns` app as follows:
+
+```bash
+$ helm uninstall --namespace webapp custom-android-patterns
+```
diff --git a/charts/docs/deploy-with-ingress.md b/charts/docs/deploy-with-ingress.md
new file mode 100644
index 0000000000..dfea5f48ac
--- /dev/null
+++ b/charts/docs/deploy-with-ingress.md
@@ -0,0 +1,104 @@
+# Deploy with ingress
+
+The `android-patterns` Helm chart can be used to deploy and configure the `android-patterns` application for use with an ingress controller.
+
+> **Note:**
+>
+> The `android-patterns` Helm chart does **not** deploy an [Ingress Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/) and does **not** deploy the [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) definition.
+>
+> The chart aims to support deployment to as many platforms and providers as possible, so the choice of Ingress Controller and configuration of Ingress resource is left to the person deploying.
+
+## Prerequisites
+
+- [Helm 3](https://v3.helm.sh/)
+
+If you are using the [VS Code Remote Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) based development
+environment, all of the prerequisites will be available in the terminal.
+
+## Install ingress controller
+
+Install an [Ingress Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/) that is available for your platform or provider.
+Here is an example that uses the [Nginx Ingress Controller](https://kubernetes.github.io/ingress-nginx/deploy/) on a cloud provider:
+
+```bash
+$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
+
+$ helm install nginx-ingress ingress-nginx/ingress-nginx \
+ --create-namespace --namespace ingress \
+ --set controller.replicaCount=2
+```
+
+## Use webapp with ingress
+
+### Deploy webapp instances
+
+Install two `android-patterns` instances that will be available via 2 different paths on the ingress.
+
+The `android-patterns` instance will display the default "Hello world!" message, and the `custom-android-patterns` instance will display a "This is my custom
+message!" message.
+
+```bash
+$ helm install --create-namespace --namespace webapp android-patterns . \
+ --set ingress.configured=true --set ingress.pathPrefix=hello-world \
+ --set service.type=ClusterIP
+
+$ helm install --create-namespace --namespace webapp custom-android-patterns . \
+ --set ingress.configured=true --set ingress.pathPrefix=custom-message \
+ --set service.type=ClusterIP \
+ --set message="This is my custom message!"
+```
+
+### Deploy ingress definition
+
+The `android-patterns` Helm chart has a `ingress.rewritePath` configuration parameter that is `true` by default. When used together with
+the `ingress.configured=true` configuration parameter, there is an assumption that the ingress being used supports path rewrites. See
+the [Deploy using Helm](charts2/docs/deploy-using-helm.md) guidance for more details.
+
+So from our example, a request to `/android-patterns` should be rewritten to `/` before being passed to the `android-patterns` app instance.
+
+Create a file named `webapp-ingress.yaml` with the content below. This ingress definition will be serviced by the nginx ingress controller due to
+the `kubernetes.io/ingress.class: nginx` annotation. It will also leverage the path rewrite capabilities of nginx via
+the `nginx.ingress.kubernetes.io/rewrite-target: /$2` annotation.
+
+```yaml
+# webapp-ingress.yaml
+apiVersion: networking.k8s.io/v1beta1
+kind: Ingress
+metadata:
+ name: webapp-ingress
+ annotations:
+ kubernetes.io/ingress.class: nginx
+ nginx.ingress.kubernetes.io/rewrite-target: /$2
+spec:
+ rules:
+ - http:
+ paths:
+ - backend:
+ serviceName: webapp-android-patterns
+ servicePort: 8000
+ path: /hello-world(/|$)(.*)
+ - backend:
+ serviceName: webapp-custom-android-patterns
+ servicePort: 8000
+ path: /custom-message(/|$)(.*)
+```
+
+Deploy the contents of the `webapp-ingress.yaml` into the same namespace as the two `android-patterns` apps.
+
+```bash
+$ kubectl apply -n webapp -f webapp-ingress.yaml
+```
+
+### Browse
+
+You can browse to each of the `android-patterns` apps via the $INGRESS_CONTROLLER_IPADDRESS and each of the configured paths. So for our example at:
+
+- `$INGRESS_CONTROLLER_IPADDRESS/hello-world` - the `android-patterns` instance with the default "Hello world!" message
+- `$INGRESS_CONTROLLER_IPADDRESS/custom-android-patterns` - the `custom-android-patterns` instance with the "This is my custom message!" message
+
+## Alternatives
+
+You can deploy the `android-patterns` app via the Helm chart with the `ingress.rewritePath=false` configuration parameter if you are deploying with an ingress
+controller that does not support path rewrites.
+
+In this case, the `android-patterns` apps will serve dynamic content and static assets from the path defined by the `ingress.pathPrefix` configuration parameter.
diff --git a/charts/templates/NOTES.txt b/charts/templates/NOTES.txt
new file mode 100644
index 0000000000..b88fdcb2ee
--- /dev/null
+++ b/charts/templates/NOTES.txt
@@ -0,0 +1,34 @@
+
+Thank you for installing Android Patterns Docs!
+
+- The application has been deployed, but it could take a few minutes to be ready.
+ You can check the rollout using:
+
+ kubectl rollout status deployment {{ include "backend-android-patterns.fullname" . }}
+
+- The Android Patterns Docs webapp are accessible through the landing page:
+{{ if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+ {{- range .paths }}
+ http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}/android-patterns/
+ {{- end }}
+{{- end }}
+
+{{- else if contains "NodePort" .Values.service.type }}
+ export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "backend-android-patterns.fullname" . }})
+ export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
+ echo "http://$NODE_IP:$NODE_PORT/android-patterns/"
+
+{{- else if contains "LoadBalancer" .Values.service.type }}
+ NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+ You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "backend-android-patterns.fullname" . }}'
+ export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "backend-android-patterns.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+ echo "http://$SERVICE_IP:{{ .Values.service.port }}/android-patterns/"
+
+{{- else if contains "ClusterIP" .Values.service.type }}
+ kubectl --namespace {{ .Release.Namespace }} port-forward svc/{{ include "backend-android-patterns.fullname" . }} {{ .Values.service.port }}
+ kubectl port-forward $POD_NAME 8000:8000
+ http://localhost:8000/android-patterns/
+{{- end }}
+
+Enjoy automation!
diff --git a/charts/templates/_helpers.tpl b/charts/templates/_helpers.tpl
new file mode 100644
index 0000000000..25609a5070
--- /dev/null
+++ b/charts/templates/_helpers.tpl
@@ -0,0 +1,77 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "backend-android-patterns.name" -}}
+{{- default .Chart.Name .Values.general.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Expand the app version of the chart.
+*/}}
+{{- define "backend-android-patterns.appVersion" -}}
+{{- default .Chart.AppVersion | trunc 33 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+*/}}
+{{- define "backend-android-patterns.fullname" -}}
+{{- if .Values.general.fullnameOverride }}
+{{- .Values.general.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.general.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "backend-android-patterns.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "backend-android-patterns.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "backend-android-patterns.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name | lower | quote }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "backend-android-patterns.labels" -}}
+helm.sh/chart: {{ include "backend-android-patterns.chart" . }}
+{{ include "backend-android-patterns.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Create the name of the tls secret for secure port
+*/}}
+{{- define "backend-android-patterns.tlsSecretName" -}}
+{{- $fullname := include "backend-android-patterns.name" . -}}
+{{- default (printf "%s-tls" $fullname) .Values.tls.secretName -}}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "backend-android-patterns.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "backend-android-patterns.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/charts/templates/certificate.yaml b/charts/templates/certificate.yaml
new file mode 100644
index 0000000000..aef286b114
--- /dev/null
+++ b/charts/templates/certificate.yaml
@@ -0,0 +1,17 @@
+{{- if .Values.certificate.create }}
+{{- $fullName := include "backend-android-patterns.fullname" . -}}
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: {{ $fullName }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+spec:
+ dnsNames:
+ {{- range .Values.certificate.dnsNames }}
+ - {{ . | quote }}
+ {{- end }}
+ secretName: {{ include "backend-android-patterns.tlsSecretName" . }}
+ issuerRef:
+ {{- .Values.certificate.issuerRef | toYaml | trimSuffix "\n" | nindent 4 }}
+{{- end }}
diff --git a/charts/templates/configmap.yaml b/charts/templates/configmap.yaml
new file mode 100644
index 0000000000..441f04307c
--- /dev/null
+++ b/charts/templates/configmap.yaml
@@ -0,0 +1,11 @@
+{{- $fullName := include "backend-android-patterns.fullname" . -}}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ $fullName }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+data:
+ DEBUG: {{ default "" .Values.configMaps.data.debug | quote }}
+ SERVER_PORT: {{ default "" .Values.configMaps.data.serverPort | quote }}
+ APP_NAME: {{ default "" .Values.configMaps.data.appName | quote }}
diff --git a/charts/templates/deployment.yaml b/charts/templates/deployment.yaml
new file mode 100644
index 0000000000..46e71cd5e5
--- /dev/null
+++ b/charts/templates/deployment.yaml
@@ -0,0 +1,148 @@
+{{- $fullName := include "backend-android-patterns.fullname" . -}}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {{ $fullName }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+ {{- with .Values.deployment.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ {{- if not .Values.hpa.enabled }}
+ replicas: {{ .Values.general.replicaCount }}
+ {{- end }}
+ strategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxUnavailable: 1
+ selector:
+ matchLabels:
+ {{- include "backend-android-patterns.selectorLabels" . | nindent 6 }}
+ template:
+ metadata:
+ labels:
+ {{- include "backend-android-patterns.selectorLabels" . | nindent 8 }}
+ annotations:
+ {{- range $key, $value := .Values.deployment.podAnnotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ spec:
+ {{- with .Values.image.pullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ terminationGracePeriodSeconds: 30
+ {{- if .Values.serviceAccount.enabled }}
+ serviceAccountName: {{ include "backend-android-patterns.serviceAccountName" . }}
+ {{- end }}
+ securityContext:
+ {{- toYaml .Values.podSecurityContext | nindent 8 }}
+ containers:
+ - name: {{ .Chart.Name }}
+ image: "{{ .Values.deployment.container.image.repository }}:{{ .Values.deployment.container.image.tag | default .Chart.AppVersion }}"
+ imagePullPolicy: {{ .Values.deployment.container.image.pullPolicy }}
+ {{ if .Values.image.command -}}
+ command: {{ .Values.image.command }}
+ {{- end }}
+ {{ if .Values.image.args -}}
+ args: {{ .Values.image.args }}
+ {{- end }}
+ {{- if .Values.securityContext }}
+ securityContext:
+ {{- toYaml .Values.securityContext | nindent 12 }}
+ {{- else if (or .Values.service.hostPort .Values.tls.hostPort) }}
+ securityContext:
+ allowPrivilegeEscalation: true
+ capabilities:
+ drop:
+ - ALL
+ add:
+ - NET_BIND_SERVICE
+ {{- end }}
+ ports:
+ - name: http
+ containerPort: {{ .Values.service.httpPort | default 8000 }}
+ protocol: TCP
+ {{- if .Values.service.hostPort }}
+ hostPort: {{ .Values.service.hostPort }}
+ {{- end }}
+ {{- if .Values.tls.enabled }}
+ - name: https
+ containerPort: {{ .Values.tls.externalPort | default 8443 }}
+ protocol: TCP
+ {{- if .Values.tls.hostPort }}
+ hostPort: {{ .Values.tls.hostPort }}
+ {{- end }}
+ {{- end }}
+ env:
+ {{- if ne (.Values.deployment.container.port | int) (8000 | int) }}
+ - name: PORT
+ value: "{{ .Values.deployment.container.port }}"
+ {{- end }}
+ {{- if .Values.message }}
+ - name: MESSAGE
+ value: "{{ .Values.message }}"
+ {{- end }}
+ {{- if .Values.ingress.configured }}
+ - name: HANDLER_PATH_PREFIX
+ {{- if .Values.ingress.rewritePath }}
+ value: ""
+ {{- else }}
+ value: "{{ .Values.ingress.pathPrefix }}"
+ {{- end }}
+ - name: RENDER_PATH_PREFIX
+ value: "{{ .Values.ingress.pathPrefix }}"
+ {{- end }}
+ - name: KUBERNETES_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: KUBERNETES_POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: KUBERNETES_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: CONTAINER_IMAGE
+ value: "{{ .Values.deployment.container.image.repository }}:{{ .Values.deployment.container.image.tag | default .Chart.AppVersion }}"
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ {{- if .Values.tls.enabled }}
+ - name: tls
+ mountPath: {{ .Values.tls.certPath | default "/data/cert" }}
+ readOnly: true
+ {{- end }}
+ {{ if .Values.deployment.livenessProbe.enabled -}}
+ livenessProbe:
+ {{- toYaml .Values.deployment.livenessProbe.config | nindent 12 }}
+ {{- end }}
+ {{ if .Values.deployment.readinessProbe.enabled -}}
+ readinessProbe:
+ {{- toYaml .Values.deployment.readinessProbe.config | nindent 12 }}
+ {{- end }}
+ resources:
+ {{- toYaml .Values.deployment.resources | nindent 12 }}
+ {{- with .Values.deployment.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.deployment.affinity }}
+ affinity:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.deployment.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ volumes:
+ - name: data
+ emptyDir: { }
+ {{- if .Values.tls.enabled }}
+ - name: tls
+ secret:
+ secretName: {{ include "backend-android-patterns.tlsSecretName" . }}
+ {{- end }}
diff --git a/charts/templates/hpa.yaml b/charts/templates/hpa.yaml
new file mode 100644
index 0000000000..b4ecd538e6
--- /dev/null
+++ b/charts/templates/hpa.yaml
@@ -0,0 +1,41 @@
+{{- if .Values.hpa.enabled }}
+apiVersion: autoscaling/v2beta2
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "backend-android-patterns.fullname" . }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: {{ include "backend-android-patterns.fullname" . }}
+ minReplicas: {{ .Values.hpa.minReplicas }}
+ maxReplicas: {{ .Values.hpa.maxReplicas }}
+ metrics:
+ {{- if .Values.hpa.cpu }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.hpa.cpu }}
+ {{- end }}
+ {{- if .Values.hpa.memory }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: AverageValue
+ averageValue: {{ .Values.hpa.memory }}
+ {{- end }}
+ {{- if .Values.hpa.requests }}
+ - type: Pods
+ pods:
+ metric:
+ name: http_requests
+ target:
+ type: AverageValue
+ averageValue: {{ .Values.hpa.requests }}
+ {{- end }}
+{{- end }}
diff --git a/charts/templates/ingress.yaml b/charts/templates/ingress.yaml
new file mode 100644
index 0000000000..34b6763f98
--- /dev/null
+++ b/charts/templates/ingress.yaml
@@ -0,0 +1,43 @@
+{{- if .Values.ingress.enabled }}
+{{- $fullName := include "backend-android-patterns.fullname" . -}}
+{{- $svcPort := .Values.service.externalPort -}}
+{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1beta1
+{{- else -}}
+apiVersion: extensions/v1beta1
+{{- end }}
+kind: Ingress
+metadata:
+ name: {{ $fullName }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+ {{- with .Values.ingress.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ ingressClassName: {{ .Values.ingress.className }}
+ {{- if .Values.ingress.tls }}
+ tls:
+ {{- range .Values.ingress.tls }}
+ - hosts:
+ {{- range .hosts }}
+ - {{ . | quote }}
+ {{- end }}
+ secretName: {{ .secretName }}
+ {{- end }}
+ {{- end }}
+ rules:
+ {{- range .Values.ingress.hosts }}
+ - host: {{ .host | quote }}
+ http:
+ paths:
+ {{- range .paths }}
+ - path: {{ .path }}
+ pathType: {{ .pathType }}
+ backend:
+ serviceName: {{ $fullName }}
+ servicePort: {{ $svcPort }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
diff --git a/charts/templates/linkerd.yaml b/charts/templates/linkerd.yaml
new file mode 100644
index 0000000000..b35ce78619
--- /dev/null
+++ b/charts/templates/linkerd.yaml
@@ -0,0 +1,14 @@
+{{- if .Values.linkerd.profile.enabled }}
+apiVersion: linkerd.io/v1alpha2
+kind: ServiceProfile
+metadata:
+ name: {{ include "backend-android-patterns.name" . }}.{{ .Release.Namespace }}.svc.cluster.local
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+spec:
+ routes:
+ - condition:
+ method: GET
+ pathRegex: /
+ name: GET /
+{{- end }}
diff --git a/charts/templates/secret.yaml b/charts/templates/secret.yaml
new file mode 100644
index 0000000000..905f297c6a
--- /dev/null
+++ b/charts/templates/secret.yaml
@@ -0,0 +1,18 @@
+{{- if .Values.secrets.create }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "backend-android-patterns.fullname" . }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+ {{- with .Values.secrets.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+data:
+ BASE_URL: {{ default "" .Values.secrets.data.baseUrl | b64enc | quote }}
+ {{- if .Values.secrets.data.baseToken }}
+ BASE_TOKEN: {{ .Values.secrets.data.baseToken | b64enc | quote }}
+ {{- else }}
+ BASE_TOKEN: {{ randAlphaNum 10 | b64enc | quote }}
+ {{- end }}
+{{- end }}
diff --git a/charts/templates/service.yaml b/charts/templates/service.yaml
new file mode 100644
index 0000000000..031d197340
--- /dev/null
+++ b/charts/templates/service.yaml
@@ -0,0 +1,30 @@
+{{- if .Values.service.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "backend-android-patterns.fullname" . }}
+ labels:
+ {{ include "backend-android-patterns.labels" . | nindent 4 }}
+ {{- with .Values.service.annotations }}
+ annotations:
+ {{- toYaml . | indent 4 }}
+ {{- end }}
+spec:
+ type: {{ .Values.service.type }}
+ ports:
+ - port: {{ .Values.service.externalPort }}
+ targetPort: http
+ protocol: TCP
+ name: http
+ {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
+ nodePort: {{ .Values.service.nodePort }}
+ {{- end }}
+ {{- if .Values.tls.enabled }}
+ - port: {{ .Values.tls.httpPort | default 8000 }}
+ targetPort: https
+ protocol: TCP
+ name: https
+ {{- end }}
+ selector:
+ {{- include "backend-android-patterns.selectorLabels" . | nindent 4 }}
+{{- end }}
diff --git a/charts/templates/serviceaccount.yaml b/charts/templates/serviceaccount.yaml
new file mode 100644
index 0000000000..960ab7ca27
--- /dev/null
+++ b/charts/templates/serviceaccount.yaml
@@ -0,0 +1,12 @@
+{{- if .Values.serviceAccount.create -}}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: {{ include "backend-android-patterns.serviceAccountName" . }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+ {{- with .Values.serviceAccount.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/charts/templates/servicemonitor.yaml b/charts/templates/servicemonitor.yaml
new file mode 100644
index 0000000000..7f5e7a8094
--- /dev/null
+++ b/charts/templates/servicemonitor.yaml
@@ -0,0 +1,22 @@
+{{- if .Values.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ include "backend-android-patterns.fullname" . }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+ {{- with .Values.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - path: /metrics
+ port: http
+ interval: {{ .Values.serviceMonitor.interval }}
+ namespaceSelector:
+ matchNames:
+ - {{ .Release.Namespace }}
+ selector:
+ matchLabels:
+ {{- include "backend-android-patterns.selectorLabels" . | nindent 6 }}
+{{- end }}
diff --git a/charts/templates/tests/test-connection.yaml b/charts/templates/tests/test-connection.yaml
new file mode 100644
index 0000000000..75ce78efb6
--- /dev/null
+++ b/charts/templates/tests/test-connection.yaml
@@ -0,0 +1,22 @@
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "{{ include "backend-android-patterns.fullname" . }}-test-connection"
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: curl
+ image: curlimages/curl
+ command: ['curl']
+ args: [
+ '--retry-connrefused',
+ '--connect-timeout', '5',
+ '--max-time', '10',
+ '--retry', '15',
+ '--retry-max-time', '300',
+ '{{ include "backend-android-patterns.fullname" . }}:{{ .Values.service.port }}',
+ ]
+ restartPolicy: Never
diff --git a/charts/templates/virtualservice.yaml b/charts/templates/virtualservice.yaml
new file mode 100644
index 0000000000..641f266b14
--- /dev/null
+++ b/charts/templates/virtualservice.yaml
@@ -0,0 +1,44 @@
+{{- if .Values.virtualservice.enabled -}}
+{{- $fullName := include "backend-android-patterns.fullname" . -}}
+{{- $svcPort := .Values.service.port -}}
+{{- $svcHost := .Values.virtualservice.serviceHost -}}
+apiVersion: networking.istio.io/v1beta1
+kind: VirtualService
+metadata:
+ name: {{ $fullName }}
+ labels:
+ {{- include "backend-android-patterns.labels" . | nindent 4 }}
+ {{- with .Values.virtualservice.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ exportTo:
+ - '*'
+ {{- range .Values.virtualservice.hosts }}
+ hosts:
+ - {{ .host | quote }}
+ gateways:
+ - istio-system/gateway
+ http:
+ {{- range .names }}
+ - name: {{ .name | quote }}
+ match:
+ {{- range .uris }}
+ - uri:
+ prefix: {{ .prefix | quote }}
+ - uri:
+ exact: {{ .exact | quote }}
+ {{- end }}
+ {{- range .rewrites }}
+ rewrite:
+ uri: {{ . | quote }}
+ {{- end }}
+ route:
+ - destination:
+ host: {{ $svcHost }}
+ port:
+ number: {{ $svcPort }}
+ {{- end }}
+{{- end }}
+{{- end }}
diff --git a/charts/values.yaml b/charts/values.yaml
new file mode 100644
index 0000000000..c9e384a36e
--- /dev/null
+++ b/charts/values.yaml
@@ -0,0 +1,222 @@
+# Provide a custom message
+message: ""
+
+general:
+ debug: false
+ replicaCount: 1
+ nameOverride: ""
+ fullnameOverride: ""
+ logLevel: info
+ host: #0.0.0.0
+ backend: #http://backend-podinfo:9898/echo
+ backends: []
+
+image:
+ repository: styled-android-patterns
+ tag: latest
+ pullPolicy: IfNotPresent
+ pullSecrets: {}
+ # command: ['./run.sh']
+ # args: []
+
+podSecurityContext:
+ fsGroup: 1000
+
+configMaps:
+ create: false
+ data:
+ debug: info
+ serverPort: "8000"
+ appName: "styled-android-patterns"
+
+secrets:
+ create: false
+ additionalLabels:
+ app.kubernetes.io/component: vault
+ data:
+ baseUrl: ""
+ baseToken: ""
+
+ui:
+ color: "#34577c"
+ message: ""
+ logo: ""
+
+# failure conditions
+faults:
+ delay: false
+ error: false
+ unhealthy: false
+ unready: false
+ testFail: false
+ testTimeout: false
+
+service:
+ enabled: true
+ annotations: {}
+ type: ClusterIP
+# port: 8193
+# portName: http
+ httpPort: 8000
+ externalPort: 8000
+ nodePort: 8000
+ # the port used to bind the http port to the host
+ # NOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing
+ # in local clusters such as kind without port forwarding
+ hostPort:
+
+# enable h2c protocol (non-TLS version of HTTP/2)
+h2c:
+ enabled: false
+
+# enable tls on the podinfo service
+tls:
+ enabled: false
+ # the name of the secret used to mount the certificate key pair
+ secretName:
+ # the path where the certificate key pair will be mounted
+ certPath: /data/cert
+ # the port used to host the tls endpoint on the service
+ httpPort: 8000
+ externalPort: 8000
+ # the port used to bind the tls port to the host
+ # NOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing
+ # in local clusters such as kind without port forwarding
+ hostPort:
+
+# create a certificate manager certificate (cert-manager required)
+certificate:
+ create: false
+ # the issuer used to issue the certificate
+ issuerRef:
+ kind: ClusterIssuer
+ name: self-signed
+ # the hostname / subject alternative names for the certificate
+ dnsNames:
+ - localhost
+
+# metrics-server add-on required
+hpa:
+ enabled: true
+ minReplicas: 2
+ maxReplicas: 10
+ targetCPUUtilizationPercentage: 80
+ targetMemoryUtilizationPercentage: 80
+ # average total CPU usage per pod (1-100)
+ cpu:
+ # average memory usage per pod (100Mi-1Gi)
+ memory:
+ # average http requests per second per pod (k8s-prometheus-adapter)
+ requests:
+
+serviceAccount:
+ enabled: false
+ # Specifies whether a service account should be created
+ create: true
+ # Annotations to add to the service account
+ annotations: {}
+ # The name of the service account to use.
+ # If not set and create is true, a name is generated using the fullname template
+ name: ""
+
+# set container security context
+securityContext: {}
+ # capabilities:
+ # drop:
+ # - ALL
+ # readOnlyRootFilesystem: true
+ # runAsNonRoot: true
+ # runAsUser: 1000
+
+# Remember to set service.type=ClusterIP if you are using an ingress
+ingress:
+ enabled: false
+ className: ""
+ annotations: {}
+ # kubernetes.io/ingress.class: nginx
+ # kubernetes.io/tls-acme: "true"
+ configured: false
+ rewritePath: true
+ pathPrefix: ""
+ hosts:
+ - host: podinfo.local
+ paths:
+ - path: /
+ pathType: ImplementationSpecific
+ tls: []
+ # - secretName: chart-example-tls
+ # hosts:
+ # - chart-example.local
+
+linkerd:
+ profile:
+ enabled: false
+
+# create Prometheus Operator monitor
+serviceMonitor:
+ enabled: false
+ interval: 15s
+ additionalLabels: {}
+
+virtualservice:
+ enabled: false
+ annotations: []
+ hosts:
+ - host: ""
+ names: []
+ uris: {}
+ rewrites: []
+ serviceHost: ""
+
+resources:
+ limits:
+ cpu: 500m
+ memory: 1024Mi
+ requests:
+ cpu: 100m
+ memory: 512Mi
+
+deployment:
+ replicaCount: 2
+ container:
+ image:
+ repository: "styled-android-patterns"
+ tag: "latest" # uses chart appVersion if not provided
+ pullPolicy: IfNotPresent
+ port: 8000
+
+ resources:
+ limits:
+ requests:
+ cpu: 1m
+ memory: 16Mi
+
+ # An arbitrary use of livenessProbe could make a lot of service interruption, use it wisely.
+ livenessProbe:
+ enabled: false
+ config:
+ httpGet:
+ path: /actuator/health
+ port: http
+ initialDelaySeconds: 210
+ periodSeconds: 60
+
+ readinessProbe:
+ enabled: false
+ config:
+ httpGet:
+ path: /actuator/health
+ port: http
+ initialDelaySeconds: 180
+ periodSeconds: 60
+
+ # Currently only linux images on amd64 architecture are supported - support for arm64 and windows/amd64 coming ...
+ nodeSelector: {}
+# kubernetes.io/os: linux
+# kubernetes.io/arch: amd64
+
+ tolerations: []
+
+ affinity: {}
+
+ podAnnotations: {}
diff --git a/codespell.txt b/codespell.txt
new file mode 100644
index 0000000000..5a95200ed4
--- /dev/null
+++ b/codespell.txt
@@ -0,0 +1 @@
+arbitrer
diff --git a/config/config.yml b/config/config.yml
new file mode 100644
index 0000000000..2c145c62dc
--- /dev/null
+++ b/config/config.yml
@@ -0,0 +1,15 @@
+rootURL: https://github.com/AlexRogalskiy/android-patterns
+
+fileIncludePatterns: '{.github,content,src}/**/*!(.test).{css,js,jsx,md,tsx,ts,json}'
+
+fileExcludePatternFile: ./config/excluded-files.yml
+linkExcludePatternFile: ./config/excluded-links.yml
+
+linkOptions:
+ '*.wikipedia.org':
+ minTime: 2000
+ maxConcurrent: 1
+
+ '(*.)?github.com':
+ minTime: 1000
+ maxConcurrent: 1
diff --git a/config/excluded-files.yml b/config/excluded-files.yml
new file mode 100644
index 0000000000..eb065074ae
--- /dev/null
+++ b/config/excluded-files.yml
@@ -0,0 +1,4 @@
+- 'src/consts.js'
+- '**/*.test.js'
+- 'src/server/**/*'
+- '.github/workflows/**/*'
diff --git a/config/excluded-links.yml b/config/excluded-links.yml
new file mode 100644
index 0000000000..997bcb42be
--- /dev/null
+++ b/config/excluded-links.yml
@@ -0,0 +1,19 @@
+- 'http://localhost:8000**'
+- 'http://millionsongdataset.com/pages/getting-dataset/#subset'
+- 'https://marketplace.visualstudio.com/items?itemName=stkb.rewrap'
+- 'https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml'
+- 'https://remote.dvc.org/get-started'
+- 'https://sweedom.us10.list-manage.com/subscribe/post?u=a08bf93caae4063c4e6a351f6&id=24c0ecc49a'
+- 'https://www.meetup.com/San-Francisco-Machine-Learning-Meetup/events/264846847/'
+- 'https://www.reddit.com/r/MachineLearning/comments/bx0apm/d_how_do_you_manage_your_machine_learning/'
+- 'https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations-ebook/dp/B01M9ASFQ3'
+- '**linkedin.com/in/**'
+- '**linkedin.com/company/**'
+- 'link'
+- '/img/.gif'
+- '/uploads/images/2020-02-10/image.png'
+- 'https://portal.aws.amazon.com/gp/aws/developer/registration/index.html'
+- 'https://github.com/iterative/dvc/releases/download/'
+- 'https://www.kaggle.com/kurianbenoy/introduction-to-data-version-control-dvc'
+- 'https://timheuer.com/blog/skipping-ci-github-actions-workflows/'
+- 'https://www.zazzle.com/t_shirt-235920696568133954'
diff --git a/cr.yaml b/cr.yaml
new file mode 100644
index 0000000000..3b20d542d8
--- /dev/null
+++ b/cr.yaml
@@ -0,0 +1,4 @@
+# Set to true for GPG signing
+sign: true
+# UID of the GPG key to use
+key: Chart Releaser Test Key
diff --git a/ct.yaml b/ct.yaml
new file mode 100644
index 0000000000..ca30461ddd
--- /dev/null
+++ b/ct.yaml
@@ -0,0 +1,8 @@
+# See https://github.com/helm/chart-testing#configuration
+remote: origin
+target-branch: master
+chart-dirs:
+ - charts
+chart-repos:
+ - https://github.com/AlexRogalskiy/android-patterns
+helm-extra-args: --timeout 600s
diff --git a/default_rules.yaml b/default_rules.yaml
new file mode 100644
index 0000000000..8ec28218dc
--- /dev/null
+++ b/default_rules.yaml
@@ -0,0 +1,226 @@
+---
+profile:
+ name: 'Default'
+ description: 'Default Profile. Checks basic syntax.'
+ includes:
+ #- recommended_label_rules.yaml
+line_rules:
+ LABEL:
+ paramSyntaxRegex: /.+/
+ # Use defined_label_rules to defined a set of labels for your dockerfile
+ # In this example, the labels "Vendor","Authoritative_Registry","BZComponent"
+ # have been defined. A label value is 'valid' if matches the regular
+ # expression 'valueRegex', otherwise an warn is logged with the string "message"
+ # at level 'level'. 'reference_url' provides a web link where the user can
+ # get more information about the rule.
+ #
+ defined_namevals:
+ Name:
+ valueRegex: /[\w]+/
+ message: "Label 'Name' is missing or has invalid format"
+ level: 'warn'
+ required: true
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_recommended_labels_for_your_project'
+ Version:
+ valueRegex: /[\w.${}()"'\\\/~<>\-?\%:]+/
+ message: "Label 'Version' is missing or has invalid format"
+ level: 'warn'
+ required: true
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_recommended_labels_for_your_project'
+ Release:
+ valueRegex: /[\w.${}()"'\\\/~<>\-?\%:]+/
+ message: "Label 'Release' is missing or has invalid format"
+ level: 'warn'
+ required: false
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_recommended_labels_for_your_project'
+ Architecture:
+ valueRegex: /[\w]*[6,8][4,6]|[.]*86[.]*64/
+ message:
+ "Label 'Architecture' is missing or has invalid format: x86, i386,
+ x86_64"
+ level: 'info'
+ required: false
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_recommended_labels_for_your_project'
+ Vendor:
+ valueRegex: /([\w]+).+/
+ message: "Label 'Vendor' is missing or has invalid format"
+ level: 'warn'
+ required: false
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_recommended_labels_for_your_project'
+ Url:
+ valueRegex: /([\w]+).+/
+ message: "Label 'Url' is missing or has invalid format"
+ level: 'warn'
+ required: false
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_recommended_labels_for_your_project'
+ Help:
+ valueRegex: /([\w]+).+/
+ message: "Label 'Help' is missing or has invalid format"
+ level: 'warn'
+ required: false
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_recommended_labels_for_your_project'
+
+ FROM:
+ paramSyntaxRegex: /^[${}\w./\-:]+(:[${}\w.]+)?(-[${}\w.]+)?( as [-_\w]+)?$/i
+ rules:
+ - label: 'is_latest_tag'
+ regex: /latest/
+ level: 'error'
+ message: "base image uses 'latest' tag"
+ description:
+ "using the 'latest' tag may cause unpredictable builds. It is
+ recommended that a specific tag is used in the FROM line or *-released
+ which is the latest supported release."
+ reference_url:
+ - 'https://docs.docker.com/engine/reference/builder/'
+ - '#from'
+ - label: 'no_tag'
+ regex: /^[:]/
+ level: 'error'
+ message: 'No tag is used'
+ description: 'lorem ipsum tar'
+ reference_url:
+ - 'https://docs.docker.com/engine/reference/builder/'
+ - '#from'
+ MAINTAINER:
+ paramSyntaxRegex: /.+/
+ rules: []
+ RUN:
+ paramSyntaxRegex: /.+/
+ rules:
+ - label: 'no_yum_clean_all'
+ regex: /yum(?!.+clean all|.+\.repo|-config|\.conf)/
+ level: 'warn'
+ message: 'yum clean all is not used'
+ description:
+ 'the yum cache will remain in this layer making the layer
+ unnecessarily large'
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_clear_packaging_caches_and_temporary_package_downloads'
+ - label: 'yum_update_all'
+ regex: /yum(.+update all|.+upgrade|.+update)/
+ level: 'info'
+ message:
+ 'updating the entire base image may add unnecessary size to the
+ container'
+ description:
+ 'update the entire base image may add unnecessary size to the
+ container'
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_clear_packaging_caches_and_temporary_package_downloads'
+ - label: 'no_dnf_clean_all'
+ regex: /dnf(?!.+clean all|.+\.repo)/g
+ level: 'warn'
+ message: 'dnf clean all is not used'
+ description:
+ 'the dnf cache will remain in this layer making the layer
+ unnecessarily large'
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_clear_packaging_caches_and_temporary_package_downloads'
+ - label: 'no_rvm_cleanup_all'
+ regex: /rvm install(?!.+cleanup all)/g
+ level: 'warn'
+ message: 'rvm cleanup is not used'
+ description:
+ 'the rvm cache will remain in this layer making the layer
+ unnecessarily large'
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_clear_packaging_caches_and_temporary_package_downloads'
+ - label: 'no_gem_clean_all'
+ regex: /gem install(?!.+cleanup|.+\rvm cleanup all)/g
+ level: 'warn'
+ message: 'gem cleanup all is not used'
+ description:
+ 'the gem cache will remain in this layer making the layer
+ unnecessarily large'
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_clear_packaging_caches_and_temporary_package_downloads'
+ - label: 'no_apt-get_clean'
+ regex: /apt-get install(?!.+clean)/g
+ level: 'info'
+ message: 'apt-get clean is not used'
+ description:
+ 'the apt-get cache will remain in this layer making the layer
+ unnecessarily large'
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '_clear_packaging_caches_and_temporary_package_downloads'
+ - label: 'privileged_run_container'
+ regex: /privileged/
+ level: 'warn'
+ message: 'a privileged run container is allowed access to host devices'
+ description: 'Does this run need to be privileged?'
+ reference_url:
+ - 'http://docs.docker.com/engine/reference/run/#'
+ - 'runtime-privilege-and-linux-capabilities'
+ - label: 'installing_ssh'
+ regex: /openssh-server/
+ level: 'warn'
+ message: 'installing SSH in a container is not recommended'
+ description: 'Do you really need SSH in this image?'
+ reference_url: 'https://github.com/jpetazzo/nsenter'
+ - label: 'no_ampersand_usage'
+ regex: / ; /
+ level: 'info'
+ message: 'using ; instead of &&'
+ description:
+ 'RUN do_1 && do_2: The ampersands change the resulting evaluation into
+ do_1 and then do_2 only if do_1 was successful.'
+ reference_url:
+ - 'http://docs.projectatomic.io/container-best-practices/#'
+ - '#_using_semi_colons_vs_double_ampersands'
+ EXPOSE:
+ paramSyntaxRegex: /^[\d-\s\w/\\]+$/
+ rules: []
+ ENV:
+ paramSyntaxRegex: /^[\w-$/\\=\"[\]{}@:,'`\t. ]+$/
+ rules: []
+ ADD:
+ paramSyntaxRegex: /^~?([\w-.~:/?#\[\]\\\/*@!$&'()*+,;=.{}"]+[\s]*)+$/
+ COPY:
+ paramSyntaxRegex: /.+/
+ rules: []
+ ENTRYPOINT:
+ paramSyntaxRegex: /.+/
+ rules: []
+ VOLUME:
+ paramSyntaxRegex: /.+/
+ rules: []
+ USER:
+ paramSyntaxRegex: /^[a-zA-Z0-9_$][a-zA-Z0-9_-]{0,40}$/
+ rules: []
+ WORKDIR:
+ paramSyntaxRegex: /^~?[\w\d-\/.{}$\/:]+[\s]*$/
+ rules: []
+ ONBUILD:
+ paramSyntaxRegex: /.+/
+ rules: []
+required_instructions:
+ - instruction: 'EXPOSE'
+ count: 1
+ level: 'info'
+ message: "There is no 'EXPOSE' instruction"
+ description:
+ 'Without exposed ports how will the service of the container be accessed?'
+ reference_url:
+ - 'https://docs.docker.com/engine/reference/builder/'
+ - '#expose'
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000..8ffc15a81d
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,91 @@
+version: '3.9'
+
+x-deploy: &deploy-template
+ deploy:
+ mode: global
+
+x-restart-deploy: &restart-deploy-template
+ <<: *deploy-template
+ deploy:
+ restart_policy:
+ condition: on-failure
+ max_attempts: 3
+ delay: 5s
+ window: 120s
+
+x-replica-deploy: &replica-deploy-template
+ <<: *deploy-template
+ deploy:
+ mode: replicated
+ replicas: 2
+ update_config:
+ parallelism: 2
+ delay: 10s
+ order: stop-first
+ resources:
+ limits:
+ cpus: '0.5'
+ memory: 1000M
+ reservations:
+ memory: 250M
+
+x-logging: &logging-template
+ logging:
+ options:
+ max-size: '100m'
+ max-file: '10'
+
+x-restart: &restart-template
+ restart: unless-stopped
+
+services:
+ app:
+ <<: *deploy-template
+ <<: *logging-template
+ <<: *restart-template
+ container_name: ${APP_CONTAINER_NAME:-'android-patterns'}
+ image: ${APP_IMAGE_NAME:-'android-patterns'}
+ hostname: ${APP_HOST_NAME:-'android-patterns'}
+ build:
+ context: './'
+ dockerfile: Dockerfile
+ labels:
+ - 'org.opencontainers.image.authors=Alexander Rogalskiy'
+ - 'org.opencontainers.image.vendor=Sensiblemetrics, Inc.'
+ args:
+ IMAGE_SOURCE: '$IMAGE_SOURCE'
+ IMAGE_TAG: '$IMAGE_TAG'
+ env_file:
+ - .env
+ volumes:
+ - type: volume
+ source: appvolume
+ target: /usr/src/app
+ volume:
+ nocopy: true
+ - type: bind
+ source: ${APP_DATA_DIR:-./data}
+ target: /usr/src/data
+ healthcheck:
+ test: ['CMD-SHELL', 'nc', '-vz', 'localhost', '8000']
+ interval: 3s
+ retries: 15
+ start_period: 30s
+ networks:
+ - default
+ ports:
+ - '${IP_ADDRESS:-127.0.0.1}:${APP_SERVER_PORT:-8000}:8000'
+
+networks:
+ default:
+ driver: bridge
+ driver_opts:
+ com.docker.network.driver.mtu: 1450
+
+volumes:
+ appvolume:
+ driver: local
+ driver_opts:
+ o: bind
+ type: none
+ device: ./
diff --git a/docs/README.md b/docs/README.md
index f74cd0ba93..24be635cb3 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,9 +1,9 @@
# Getting Started
-## _Installation_
+## *Installation*
-For full documentation visit [https://docs.gitbook.com/](https://docs.gitbook.com/).
+For full documentation visit .
-## _Description_
+## *Description*
-With the help of _**GitBook**_ you can create and develop documentation on Android Design patterns.
\ No newline at end of file
+With the help of ***GitBook*** you can create and develop documentation on Android Design patterns.
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
index 1bc2aa438f..2f3543113d 100644
--- a/docs/SUMMARY.md
+++ b/docs/SUMMARY.md
@@ -1,20 +1,20 @@
# Table of contents
-* [Getting Started](README.md)
-* [Contributing](contributing/README.md)
- * [Contributing](contributing/info.md)
-* [User Guide](user-guide/README.md)
- * [Upgrading](user-guide/upgrade.md)
- * [Troubleshooting](user-guide/troubleshooting.md)
- * [Getting Started](user-guide/getting-started.md)
- * [FAQ](user-guide/faq.md)
- * [Changelog](user-guide/changelog.md)
- * [Code Owners](user-guide/code_owners.md)
- * [Code of Conduct](user-guide/code_of_conduct.md)
- * [Dependency Management](user-guide/dependency.md)
-* [Links](links/README.md)
- * [Resources](links/info.md)
-* [Units](units/README.md)
- * [Scenarios](units/scenarios.md)
- * [Use Cases](units/use-cases.md)
- * [Design Patterns](units/design-patterns.md)
\ No newline at end of file
+- [Getting Started](README.md)
+- [Contributing](contributing/README.md)
+ - [Contributing](contributing/info.md)
+- [User Guide](user-guide/README.md)
+ - [Upgrading](user-guide/upgrade.md)
+ - [Troubleshooting](user-guide/troubleshooting.md)
+ - [Getting Started](user-guide/getting-started.md)
+ - [FAQ](user-guide/faq.md)
+ - [Changelog](user-guide/changelog.md)
+ - [Code Owners](user-guide/code_owners.md)
+ - [Code of Conduct](user-guide/code_of_conduct.md)
+ - [Dependency Management](user-guide/dependency.md)
+- [Links](links/README.md)
+ - [Resources](links/info.md)
+- [Units](units/README.md)
+ - [Scenarios](units/scenarios.md)
+ - [Use Cases](units/use-cases.md)
+ - [Design Patterns](units/design-patterns.md)
diff --git a/docs/_config.yml b/docs/_config.yml
index 34c0db1af6..7b70a7ded4 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -4,7 +4,9 @@ permalink: pretty
baseurl: https://github.com/AlexRogalskiy/android-patterns
title: Android Design Patterns
-description: Explores different architectural concepts and design principles for Android applications
+description:
+ Explores different architectural concepts and design principles for Android
+ applications
author: Alexander Rogalskiy
diff --git a/docs/articles/default.md.tpl b/docs/articles/default.md.tpl
new file mode 100644
index 0000000000..9671b77766
--- /dev/null
+++ b/docs/articles/default.md.tpl
@@ -0,0 +1,13 @@
+---
+title: string # `Required`
+published: true/false # `Required` but 'false' by default
+description: string # `Optional`
+tags: string # `Optional` multiple tags separated by comma (typescript, javascript, github)
+series: string # `Optional`
+cover_image: string # `Optional` url to image
+canonical_url: string # `Optional` url
+---
+
+First Post with **TheActionDev** ๐คฉ
+
+{% github ful1e5/TheActionDev %}
\ No newline at end of file
diff --git a/docs/assets/css/asciinema-player.css b/docs/assets/css/asciinema-player.css
new file mode 100644
index 0000000000..00e9c95d3a
--- /dev/null
+++ b/docs/assets/css/asciinema-player.css
@@ -0,0 +1,3330 @@
+.asciinema-player-wrapper {
+ position: relative;
+ text-align: center;
+ outline: none;
+}
+
+.asciinema-player-wrapper .title-bar {
+ display: none;
+ top: -78px;
+ transition: top 0.15s linear;
+ position: absolute;
+ left: 0;
+ right: 0;
+ box-sizing: content-box;
+ font-size: 20px;
+ line-height: 1em;
+ padding: 15px;
+ font-family: sans-serif;
+ color: white;
+ background-color: rgba(0, 0, 0, 0.8);
+}
+
+.asciinema-player-wrapper .title-bar img {
+ vertical-align: middle;
+ height: 48px;
+ margin-right: 16px;
+}
+
+.asciinema-player-wrapper .title-bar a {
+ color: white;
+ text-decoration: underline;
+}
+
+.asciinema-player-wrapper .title-bar a:hover {
+ text-decoration: none;
+}
+
+.asciinema-player-wrapper:fullscreen {
+ background-color: #000;
+ width: 100%;
+ height: 100%;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+
+.asciinema-player-wrapper:fullscreen .asciinema-player {
+ position: static;
+}
+
+.asciinema-player-wrapper:fullscreen .title-bar {
+ display: initial;
+}
+
+.asciinema-player-wrapper:fullscreen.hud .title-bar {
+ top: 0;
+}
+
+.asciinema-player-wrapper:-webkit-full-screen {
+ background-color: #000;
+ width: 100%;
+ height: 100%;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+
+.asciinema-player-wrapper:-webkit-full-screen .asciinema-player {
+ position: static;
+}
+
+.asciinema-player-wrapper:-webkit-full-screen .title-bar {
+ display: initial;
+}
+
+.asciinema-player-wrapper:-webkit-full-screen.hud .title-bar {
+ top: 0;
+}
+
+.asciinema-player-wrapper:-moz-full-screen {
+ background-color: #000;
+ width: 100%;
+ height: 100%;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+
+.asciinema-player-wrapper:-moz-full-screen .asciinema-player {
+ position: static;
+}
+
+.asciinema-player-wrapper:-moz-full-screen .title-bar {
+ display: initial;
+}
+
+.asciinema-player-wrapper:-moz-full-screen.hud .title-bar {
+ top: 0;
+}
+
+.asciinema-player-wrapper:-ms-fullscreen {
+ background-color: #000;
+ width: 100%;
+ height: 100%;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+
+.asciinema-player-wrapper:-ms-fullscreen .asciinema-player {
+ position: static;
+}
+
+.asciinema-player-wrapper:-ms-fullscreen .title-bar {
+ display: initial;
+}
+
+.asciinema-player-wrapper:-ms-fullscreen.hud .title-bar {
+ top: 0;
+}
+
+.asciinema-player-wrapper .asciinema-player {
+ text-align: left;
+ display: inline-block;
+ padding: 0px;
+ position: relative;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ overflow: hidden;
+ max-width: 100%;
+}
+
+.asciinema-terminal {
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ overflow: hidden;
+ padding: 0;
+ margin: 0px;
+ display: block;
+ white-space: pre;
+ border: 0;
+ word-wrap: normal;
+ word-break: normal;
+ border-radius: 0;
+ border-style: solid;
+ cursor: text;
+ border-width: 0.5em;
+ font-family: Consolas, Menlo, 'Bitstream Vera Sans Mono', monospace, 'Powerline Symbols';
+ line-height: 1.3333333333em;
+}
+
+.asciinema-terminal .line {
+ letter-spacing: normal;
+ overflow: hidden;
+ height: 1.3333333333em;
+}
+
+.asciinema-terminal .line span {
+ padding: 0;
+ display: inline-block;
+ height: 1.3333333333em;
+}
+
+.asciinema-terminal .line {
+ display: block;
+ width: 200%;
+}
+
+.asciinema-terminal .bright {
+ font-weight: bold;
+}
+
+.asciinema-terminal .underline {
+ text-decoration: underline;
+}
+
+.asciinema-terminal .italic {
+ font-style: italic;
+}
+
+.asciinema-terminal.font-small {
+ font-size: 12px;
+}
+
+.asciinema-terminal.font-medium {
+ font-size: 18px;
+}
+
+.asciinema-terminal.font-big {
+ font-size: 24px;
+}
+
+.asciinema-player .control-bar {
+ width: 100%;
+ height: 32px;
+ background: rgba(0, 0, 0, 0.8);
+ /* no gradient fallback */
+ background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%);
+ /* FF3.6-15 */
+ background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%);
+ /* Chrome10-25,Safari5.1-6 */
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%);
+ /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
+ color: #bbbbbb;
+ box-sizing: content-box;
+ line-height: 1;
+ position: absolute;
+ bottom: -35px;
+ left: 0;
+ transition: bottom 0.15s linear;
+}
+
+.asciinema-player .control-bar * {
+ box-sizing: inherit;
+ font-size: 0;
+}
+
+.asciinema-player .control-bar svg.icon path {
+ fill: #bbbbbb;
+}
+
+.asciinema-player .control-bar .playback-button {
+ display: block;
+ float: left;
+ cursor: pointer;
+ height: 12px;
+ width: 12px;
+ padding: 10px;
+}
+
+.asciinema-player .control-bar .playback-button svg {
+ height: 12px;
+ width: 12px;
+}
+
+.asciinema-player .control-bar .timer {
+ display: block;
+ float: left;
+ width: 50px;
+ height: 100%;
+ text-align: center;
+ font-family: Helvetica, Arial, sans-serif;
+ font-size: 11px;
+ font-weight: bold;
+ line-height: 32px;
+ cursor: default;
+}
+
+.asciinema-player .control-bar .timer span {
+ display: inline-block;
+ font-size: inherit;
+}
+
+.asciinema-player .control-bar .timer .time-remaining {
+ display: none;
+}
+
+.asciinema-player .control-bar .timer:hover .time-elapsed {
+ display: none;
+}
+
+.asciinema-player .control-bar .timer:hover .time-remaining {
+ display: inline;
+}
+
+.asciinema-player .control-bar .progressbar {
+ display: block;
+ overflow: hidden;
+ height: 100%;
+ padding: 0 10px;
+}
+
+.asciinema-player .control-bar .progressbar .bar {
+ display: block;
+ cursor: pointer;
+ height: 100%;
+ padding-top: 15px;
+ font-size: 0;
+}
+
+.asciinema-player .control-bar .progressbar .bar .gutter {
+ display: block;
+ height: 3px;
+ background-color: #333;
+}
+
+.asciinema-player .control-bar .progressbar .bar .gutter span {
+ display: inline-block;
+ height: 100%;
+ background-color: #bbbbbb;
+ border-radius: 3px;
+}
+
+.asciinema-player .control-bar.live .progressbar .bar {
+ cursor: default;
+}
+
+.asciinema-player .control-bar .fullscreen-button {
+ display: block;
+ float: right;
+ width: 14px;
+ height: 14px;
+ padding: 9px;
+ cursor: pointer;
+}
+
+.asciinema-player .control-bar .fullscreen-button svg {
+ width: 14px;
+ height: 14px;
+}
+
+.asciinema-player .control-bar .fullscreen-button svg:first-child {
+ display: inline;
+}
+
+.asciinema-player .control-bar .fullscreen-button svg:last-child {
+ display: none;
+}
+
+.asciinema-player-wrapper.hud .control-bar {
+ bottom: 0px;
+}
+
+.asciinema-player-wrapper:fullscreen .fullscreen-button svg:first-child {
+ display: none;
+}
+
+.asciinema-player-wrapper:fullscreen .fullscreen-button svg:last-child {
+ display: inline;
+}
+
+.asciinema-player-wrapper:-webkit-full-screen .fullscreen-button svg:first-child {
+ display: none;
+}
+
+.asciinema-player-wrapper:-webkit-full-screen .fullscreen-button svg:last-child {
+ display: inline;
+}
+
+.asciinema-player-wrapper:-moz-full-screen .fullscreen-button svg:first-child {
+ display: none;
+}
+
+.asciinema-player-wrapper:-moz-full-screen .fullscreen-button svg:last-child {
+ display: inline;
+}
+
+.asciinema-player-wrapper:-ms-fullscreen .fullscreen-button svg:first-child {
+ display: none;
+}
+
+.asciinema-player-wrapper:-ms-fullscreen .fullscreen-button svg:last-child {
+ display: inline;
+}
+
+.asciinema-player .loading {
+ z-index: 10;
+ background-repeat: no-repeat;
+ background-position: center;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 32px;
+ background-color: rgba(0, 0, 0, 0.5);
+}
+
+.asciinema-player .start-prompt {
+ z-index: 10;
+ background-repeat: no-repeat;
+ background-position: center;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 32px;
+ z-index: 20;
+ cursor: pointer;
+}
+
+.asciinema-player .start-prompt .play-button {
+ font-size: 0px;
+}
+
+.asciinema-player .start-prompt .play-button {
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ text-align: center;
+ color: white;
+ display: table;
+ width: 100%;
+ height: 100%;
+}
+
+.asciinema-player .start-prompt .play-button div {
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.asciinema-player .start-prompt .play-button div span {
+ width: 96px;
+ height: 96px;
+ display: inline-block;
+}
+
+@-webkit-keyframes expand {
+ 0% {
+ -webkit-transform: scale(0);
+ }
+ 50% {
+ -webkit-transform: scale(1);
+ }
+ 100% {
+ z-index: 1;
+ }
+}
+
+@-moz-keyframes expand {
+ 0% {
+ -moz-transform: scale(0);
+ }
+ 50% {
+ -moz-transform: scale(1);
+ }
+ 100% {
+ z-index: 1;
+ }
+}
+
+@-o-keyframes expand {
+ 0% {
+ -o-transform: scale(0);
+ }
+ 50% {
+ -o-transform: scale(1);
+ }
+ 100% {
+ z-index: 1;
+ }
+}
+
+@keyframes expand {
+ 0% {
+ transform: scale(0);
+ }
+ 50% {
+ transform: scale(1);
+ }
+ 100% {
+ z-index: 1;
+ }
+}
+
+.loader {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin: -20px 0 0 -20px;
+ background-color: white;
+ border-radius: 50%;
+ box-shadow: 0 0 0 6.66667px #141414;
+ width: 40px;
+ height: 40px;
+}
+
+.loader:before,
+.loader:after {
+ content: "";
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ display: block;
+ margin: -21px 0 0 -21px;
+ border-radius: 50%;
+ z-index: 2;
+ width: 42px;
+ height: 42px;
+}
+
+.loader:before {
+ background-color: #141414;
+ -webkit-animation: expand 1.6s linear infinite both;
+ -moz-animation: expand 1.6s linear infinite both;
+ animation: expand 1.6s linear infinite both;
+}
+
+.loader:after {
+ background-color: white;
+ -webkit-animation: expand 1.6s linear 0.8s infinite both;
+ -moz-animation: expand 1.6s linear 0.8s infinite both;
+ animation: expand 1.6s linear 0.8s infinite both;
+}
+
+.asciinema-terminal .fg-16 {
+ color: #000000;
+}
+
+.asciinema-terminal .bg-16 {
+ background-color: #000000;
+}
+
+.asciinema-terminal .fg-17 {
+ color: #00005f;
+}
+
+.asciinema-terminal .bg-17 {
+ background-color: #00005f;
+}
+
+.asciinema-terminal .fg-18 {
+ color: #000087;
+}
+
+.asciinema-terminal .bg-18 {
+ background-color: #000087;
+}
+
+.asciinema-terminal .fg-19 {
+ color: #0000af;
+}
+
+.asciinema-terminal .bg-19 {
+ background-color: #0000af;
+}
+
+.asciinema-terminal .fg-20 {
+ color: #0000d7;
+}
+
+.asciinema-terminal .bg-20 {
+ background-color: #0000d7;
+}
+
+.asciinema-terminal .fg-21 {
+ color: #0000ff;
+}
+
+.asciinema-terminal .bg-21 {
+ background-color: #0000ff;
+}
+
+.asciinema-terminal .fg-22 {
+ color: #005f00;
+}
+
+.asciinema-terminal .bg-22 {
+ background-color: #005f00;
+}
+
+.asciinema-terminal .fg-23 {
+ color: #005f5f;
+}
+
+.asciinema-terminal .bg-23 {
+ background-color: #005f5f;
+}
+
+.asciinema-terminal .fg-24 {
+ color: #005f87;
+}
+
+.asciinema-terminal .bg-24 {
+ background-color: #005f87;
+}
+
+.asciinema-terminal .fg-25 {
+ color: #005faf;
+}
+
+.asciinema-terminal .bg-25 {
+ background-color: #005faf;
+}
+
+.asciinema-terminal .fg-26 {
+ color: #005fd7;
+}
+
+.asciinema-terminal .bg-26 {
+ background-color: #005fd7;
+}
+
+.asciinema-terminal .fg-27 {
+ color: #005fff;
+}
+
+.asciinema-terminal .bg-27 {
+ background-color: #005fff;
+}
+
+.asciinema-terminal .fg-28 {
+ color: #008700;
+}
+
+.asciinema-terminal .bg-28 {
+ background-color: #008700;
+}
+
+.asciinema-terminal .fg-29 {
+ color: #00875f;
+}
+
+.asciinema-terminal .bg-29 {
+ background-color: #00875f;
+}
+
+.asciinema-terminal .fg-30 {
+ color: #008787;
+}
+
+.asciinema-terminal .bg-30 {
+ background-color: #008787;
+}
+
+.asciinema-terminal .fg-31 {
+ color: #0087af;
+}
+
+.asciinema-terminal .bg-31 {
+ background-color: #0087af;
+}
+
+.asciinema-terminal .fg-32 {
+ color: #0087d7;
+}
+
+.asciinema-terminal .bg-32 {
+ background-color: #0087d7;
+}
+
+.asciinema-terminal .fg-33 {
+ color: #0087ff;
+}
+
+.asciinema-terminal .bg-33 {
+ background-color: #0087ff;
+}
+
+.asciinema-terminal .fg-34 {
+ color: #00af00;
+}
+
+.asciinema-terminal .bg-34 {
+ background-color: #00af00;
+}
+
+.asciinema-terminal .fg-35 {
+ color: #00af5f;
+}
+
+.asciinema-terminal .bg-35 {
+ background-color: #00af5f;
+}
+
+.asciinema-terminal .fg-36 {
+ color: #00af87;
+}
+
+.asciinema-terminal .bg-36 {
+ background-color: #00af87;
+}
+
+.asciinema-terminal .fg-37 {
+ color: #00afaf;
+}
+
+.asciinema-terminal .bg-37 {
+ background-color: #00afaf;
+}
+
+.asciinema-terminal .fg-38 {
+ color: #00afd7;
+}
+
+.asciinema-terminal .bg-38 {
+ background-color: #00afd7;
+}
+
+.asciinema-terminal .fg-39 {
+ color: #00afff;
+}
+
+.asciinema-terminal .bg-39 {
+ background-color: #00afff;
+}
+
+.asciinema-terminal .fg-40 {
+ color: #00d700;
+}
+
+.asciinema-terminal .bg-40 {
+ background-color: #00d700;
+}
+
+.asciinema-terminal .fg-41 {
+ color: #00d75f;
+}
+
+.asciinema-terminal .bg-41 {
+ background-color: #00d75f;
+}
+
+.asciinema-terminal .fg-42 {
+ color: #00d787;
+}
+
+.asciinema-terminal .bg-42 {
+ background-color: #00d787;
+}
+
+.asciinema-terminal .fg-43 {
+ color: #00d7af;
+}
+
+.asciinema-terminal .bg-43 {
+ background-color: #00d7af;
+}
+
+.asciinema-terminal .fg-44 {
+ color: #00d7d7;
+}
+
+.asciinema-terminal .bg-44 {
+ background-color: #00d7d7;
+}
+
+.asciinema-terminal .fg-45 {
+ color: #00d7ff;
+}
+
+.asciinema-terminal .bg-45 {
+ background-color: #00d7ff;
+}
+
+.asciinema-terminal .fg-46 {
+ color: #00ff00;
+}
+
+.asciinema-terminal .bg-46 {
+ background-color: #00ff00;
+}
+
+.asciinema-terminal .fg-47 {
+ color: #00ff5f;
+}
+
+.asciinema-terminal .bg-47 {
+ background-color: #00ff5f;
+}
+
+.asciinema-terminal .fg-48 {
+ color: #00ff87;
+}
+
+.asciinema-terminal .bg-48 {
+ background-color: #00ff87;
+}
+
+.asciinema-terminal .fg-49 {
+ color: #00ffaf;
+}
+
+.asciinema-terminal .bg-49 {
+ background-color: #00ffaf;
+}
+
+.asciinema-terminal .fg-50 {
+ color: #00ffd7;
+}
+
+.asciinema-terminal .bg-50 {
+ background-color: #00ffd7;
+}
+
+.asciinema-terminal .fg-51 {
+ color: #00ffff;
+}
+
+.asciinema-terminal .bg-51 {
+ background-color: #00ffff;
+}
+
+.asciinema-terminal .fg-52 {
+ color: #5f0000;
+}
+
+.asciinema-terminal .bg-52 {
+ background-color: #5f0000;
+}
+
+.asciinema-terminal .fg-53 {
+ color: #5f005f;
+}
+
+.asciinema-terminal .bg-53 {
+ background-color: #5f005f;
+}
+
+.asciinema-terminal .fg-54 {
+ color: #5f0087;
+}
+
+.asciinema-terminal .bg-54 {
+ background-color: #5f0087;
+}
+
+.asciinema-terminal .fg-55 {
+ color: #5f00af;
+}
+
+.asciinema-terminal .bg-55 {
+ background-color: #5f00af;
+}
+
+.asciinema-terminal .fg-56 {
+ color: #5f00d7;
+}
+
+.asciinema-terminal .bg-56 {
+ background-color: #5f00d7;
+}
+
+.asciinema-terminal .fg-57 {
+ color: #5f00ff;
+}
+
+.asciinema-terminal .bg-57 {
+ background-color: #5f00ff;
+}
+
+.asciinema-terminal .fg-58 {
+ color: #5f5f00;
+}
+
+.asciinema-terminal .bg-58 {
+ background-color: #5f5f00;
+}
+
+.asciinema-terminal .fg-59 {
+ color: #5f5f5f;
+}
+
+.asciinema-terminal .bg-59 {
+ background-color: #5f5f5f;
+}
+
+.asciinema-terminal .fg-60 {
+ color: #5f5f87;
+}
+
+.asciinema-terminal .bg-60 {
+ background-color: #5f5f87;
+}
+
+.asciinema-terminal .fg-61 {
+ color: #5f5faf;
+}
+
+.asciinema-terminal .bg-61 {
+ background-color: #5f5faf;
+}
+
+.asciinema-terminal .fg-62 {
+ color: #5f5fd7;
+}
+
+.asciinema-terminal .bg-62 {
+ background-color: #5f5fd7;
+}
+
+.asciinema-terminal .fg-63 {
+ color: #5f5fff;
+}
+
+.asciinema-terminal .bg-63 {
+ background-color: #5f5fff;
+}
+
+.asciinema-terminal .fg-64 {
+ color: #5f8700;
+}
+
+.asciinema-terminal .bg-64 {
+ background-color: #5f8700;
+}
+
+.asciinema-terminal .fg-65 {
+ color: #5f875f;
+}
+
+.asciinema-terminal .bg-65 {
+ background-color: #5f875f;
+}
+
+.asciinema-terminal .fg-66 {
+ color: #5f8787;
+}
+
+.asciinema-terminal .bg-66 {
+ background-color: #5f8787;
+}
+
+.asciinema-terminal .fg-67 {
+ color: #5f87af;
+}
+
+.asciinema-terminal .bg-67 {
+ background-color: #5f87af;
+}
+
+.asciinema-terminal .fg-68 {
+ color: #5f87d7;
+}
+
+.asciinema-terminal .bg-68 {
+ background-color: #5f87d7;
+}
+
+.asciinema-terminal .fg-69 {
+ color: #5f87ff;
+}
+
+.asciinema-terminal .bg-69 {
+ background-color: #5f87ff;
+}
+
+.asciinema-terminal .fg-70 {
+ color: #5faf00;
+}
+
+.asciinema-terminal .bg-70 {
+ background-color: #5faf00;
+}
+
+.asciinema-terminal .fg-71 {
+ color: #5faf5f;
+}
+
+.asciinema-terminal .bg-71 {
+ background-color: #5faf5f;
+}
+
+.asciinema-terminal .fg-72 {
+ color: #5faf87;
+}
+
+.asciinema-terminal .bg-72 {
+ background-color: #5faf87;
+}
+
+.asciinema-terminal .fg-73 {
+ color: #5fafaf;
+}
+
+.asciinema-terminal .bg-73 {
+ background-color: #5fafaf;
+}
+
+.asciinema-terminal .fg-74 {
+ color: #5fafd7;
+}
+
+.asciinema-terminal .bg-74 {
+ background-color: #5fafd7;
+}
+
+.asciinema-terminal .fg-75 {
+ color: #5fafff;
+}
+
+.asciinema-terminal .bg-75 {
+ background-color: #5fafff;
+}
+
+.asciinema-terminal .fg-76 {
+ color: #5fd700;
+}
+
+.asciinema-terminal .bg-76 {
+ background-color: #5fd700;
+}
+
+.asciinema-terminal .fg-77 {
+ color: #5fd75f;
+}
+
+.asciinema-terminal .bg-77 {
+ background-color: #5fd75f;
+}
+
+.asciinema-terminal .fg-78 {
+ color: #5fd787;
+}
+
+.asciinema-terminal .bg-78 {
+ background-color: #5fd787;
+}
+
+.asciinema-terminal .fg-79 {
+ color: #5fd7af;
+}
+
+.asciinema-terminal .bg-79 {
+ background-color: #5fd7af;
+}
+
+.asciinema-terminal .fg-80 {
+ color: #5fd7d7;
+}
+
+.asciinema-terminal .bg-80 {
+ background-color: #5fd7d7;
+}
+
+.asciinema-terminal .fg-81 {
+ color: #5fd7ff;
+}
+
+.asciinema-terminal .bg-81 {
+ background-color: #5fd7ff;
+}
+
+.asciinema-terminal .fg-82 {
+ color: #5fff00;
+}
+
+.asciinema-terminal .bg-82 {
+ background-color: #5fff00;
+}
+
+.asciinema-terminal .fg-83 {
+ color: #5fff5f;
+}
+
+.asciinema-terminal .bg-83 {
+ background-color: #5fff5f;
+}
+
+.asciinema-terminal .fg-84 {
+ color: #5fff87;
+}
+
+.asciinema-terminal .bg-84 {
+ background-color: #5fff87;
+}
+
+.asciinema-terminal .fg-85 {
+ color: #5fffaf;
+}
+
+.asciinema-terminal .bg-85 {
+ background-color: #5fffaf;
+}
+
+.asciinema-terminal .fg-86 {
+ color: #5fffd7;
+}
+
+.asciinema-terminal .bg-86 {
+ background-color: #5fffd7;
+}
+
+.asciinema-terminal .fg-87 {
+ color: #5fffff;
+}
+
+.asciinema-terminal .bg-87 {
+ background-color: #5fffff;
+}
+
+.asciinema-terminal .fg-88 {
+ color: #870000;
+}
+
+.asciinema-terminal .bg-88 {
+ background-color: #870000;
+}
+
+.asciinema-terminal .fg-89 {
+ color: #87005f;
+}
+
+.asciinema-terminal .bg-89 {
+ background-color: #87005f;
+}
+
+.asciinema-terminal .fg-90 {
+ color: #870087;
+}
+
+.asciinema-terminal .bg-90 {
+ background-color: #870087;
+}
+
+.asciinema-terminal .fg-91 {
+ color: #8700af;
+}
+
+.asciinema-terminal .bg-91 {
+ background-color: #8700af;
+}
+
+.asciinema-terminal .fg-92 {
+ color: #8700d7;
+}
+
+.asciinema-terminal .bg-92 {
+ background-color: #8700d7;
+}
+
+.asciinema-terminal .fg-93 {
+ color: #8700ff;
+}
+
+.asciinema-terminal .bg-93 {
+ background-color: #8700ff;
+}
+
+.asciinema-terminal .fg-94 {
+ color: #875f00;
+}
+
+.asciinema-terminal .bg-94 {
+ background-color: #875f00;
+}
+
+.asciinema-terminal .fg-95 {
+ color: #875f5f;
+}
+
+.asciinema-terminal .bg-95 {
+ background-color: #875f5f;
+}
+
+.asciinema-terminal .fg-96 {
+ color: #875f87;
+}
+
+.asciinema-terminal .bg-96 {
+ background-color: #875f87;
+}
+
+.asciinema-terminal .fg-97 {
+ color: #875faf;
+}
+
+.asciinema-terminal .bg-97 {
+ background-color: #875faf;
+}
+
+.asciinema-terminal .fg-98 {
+ color: #875fd7;
+}
+
+.asciinema-terminal .bg-98 {
+ background-color: #875fd7;
+}
+
+.asciinema-terminal .fg-99 {
+ color: #875fff;
+}
+
+.asciinema-terminal .bg-99 {
+ background-color: #875fff;
+}
+
+.asciinema-terminal .fg-100 {
+ color: #878700;
+}
+
+.asciinema-terminal .bg-100 {
+ background-color: #878700;
+}
+
+.asciinema-terminal .fg-101 {
+ color: #87875f;
+}
+
+.asciinema-terminal .bg-101 {
+ background-color: #87875f;
+}
+
+.asciinema-terminal .fg-102 {
+ color: #878787;
+}
+
+.asciinema-terminal .bg-102 {
+ background-color: #878787;
+}
+
+.asciinema-terminal .fg-103 {
+ color: #8787af;
+}
+
+.asciinema-terminal .bg-103 {
+ background-color: #8787af;
+}
+
+.asciinema-terminal .fg-104 {
+ color: #8787d7;
+}
+
+.asciinema-terminal .bg-104 {
+ background-color: #8787d7;
+}
+
+.asciinema-terminal .fg-105 {
+ color: #8787ff;
+}
+
+.asciinema-terminal .bg-105 {
+ background-color: #8787ff;
+}
+
+.asciinema-terminal .fg-106 {
+ color: #87af00;
+}
+
+.asciinema-terminal .bg-106 {
+ background-color: #87af00;
+}
+
+.asciinema-terminal .fg-107 {
+ color: #87af5f;
+}
+
+.asciinema-terminal .bg-107 {
+ background-color: #87af5f;
+}
+
+.asciinema-terminal .fg-108 {
+ color: #87af87;
+}
+
+.asciinema-terminal .bg-108 {
+ background-color: #87af87;
+}
+
+.asciinema-terminal .fg-109 {
+ color: #87afaf;
+}
+
+.asciinema-terminal .bg-109 {
+ background-color: #87afaf;
+}
+
+.asciinema-terminal .fg-110 {
+ color: #87afd7;
+}
+
+.asciinema-terminal .bg-110 {
+ background-color: #87afd7;
+}
+
+.asciinema-terminal .fg-111 {
+ color: #87afff;
+}
+
+.asciinema-terminal .bg-111 {
+ background-color: #87afff;
+}
+
+.asciinema-terminal .fg-112 {
+ color: #87d700;
+}
+
+.asciinema-terminal .bg-112 {
+ background-color: #87d700;
+}
+
+.asciinema-terminal .fg-113 {
+ color: #87d75f;
+}
+
+.asciinema-terminal .bg-113 {
+ background-color: #87d75f;
+}
+
+.asciinema-terminal .fg-114 {
+ color: #87d787;
+}
+
+.asciinema-terminal .bg-114 {
+ background-color: #87d787;
+}
+
+.asciinema-terminal .fg-115 {
+ color: #87d7af;
+}
+
+.asciinema-terminal .bg-115 {
+ background-color: #87d7af;
+}
+
+.asciinema-terminal .fg-116 {
+ color: #87d7d7;
+}
+
+.asciinema-terminal .bg-116 {
+ background-color: #87d7d7;
+}
+
+.asciinema-terminal .fg-117 {
+ color: #87d7ff;
+}
+
+.asciinema-terminal .bg-117 {
+ background-color: #87d7ff;
+}
+
+.asciinema-terminal .fg-118 {
+ color: #87ff00;
+}
+
+.asciinema-terminal .bg-118 {
+ background-color: #87ff00;
+}
+
+.asciinema-terminal .fg-119 {
+ color: #87ff5f;
+}
+
+.asciinema-terminal .bg-119 {
+ background-color: #87ff5f;
+}
+
+.asciinema-terminal .fg-120 {
+ color: #87ff87;
+}
+
+.asciinema-terminal .bg-120 {
+ background-color: #87ff87;
+}
+
+.asciinema-terminal .fg-121 {
+ color: #87ffaf;
+}
+
+.asciinema-terminal .bg-121 {
+ background-color: #87ffaf;
+}
+
+.asciinema-terminal .fg-122 {
+ color: #87ffd7;
+}
+
+.asciinema-terminal .bg-122 {
+ background-color: #87ffd7;
+}
+
+.asciinema-terminal .fg-123 {
+ color: #87ffff;
+}
+
+.asciinema-terminal .bg-123 {
+ background-color: #87ffff;
+}
+
+.asciinema-terminal .fg-124 {
+ color: #af0000;
+}
+
+.asciinema-terminal .bg-124 {
+ background-color: #af0000;
+}
+
+.asciinema-terminal .fg-125 {
+ color: #af005f;
+}
+
+.asciinema-terminal .bg-125 {
+ background-color: #af005f;
+}
+
+.asciinema-terminal .fg-126 {
+ color: #af0087;
+}
+
+.asciinema-terminal .bg-126 {
+ background-color: #af0087;
+}
+
+.asciinema-terminal .fg-127 {
+ color: #af00af;
+}
+
+.asciinema-terminal .bg-127 {
+ background-color: #af00af;
+}
+
+.asciinema-terminal .fg-128 {
+ color: #af00d7;
+}
+
+.asciinema-terminal .bg-128 {
+ background-color: #af00d7;
+}
+
+.asciinema-terminal .fg-129 {
+ color: #af00ff;
+}
+
+.asciinema-terminal .bg-129 {
+ background-color: #af00ff;
+}
+
+.asciinema-terminal .fg-130 {
+ color: #af5f00;
+}
+
+.asciinema-terminal .bg-130 {
+ background-color: #af5f00;
+}
+
+.asciinema-terminal .fg-131 {
+ color: #af5f5f;
+}
+
+.asciinema-terminal .bg-131 {
+ background-color: #af5f5f;
+}
+
+.asciinema-terminal .fg-132 {
+ color: #af5f87;
+}
+
+.asciinema-terminal .bg-132 {
+ background-color: #af5f87;
+}
+
+.asciinema-terminal .fg-133 {
+ color: #af5faf;
+}
+
+.asciinema-terminal .bg-133 {
+ background-color: #af5faf;
+}
+
+.asciinema-terminal .fg-134 {
+ color: #af5fd7;
+}
+
+.asciinema-terminal .bg-134 {
+ background-color: #af5fd7;
+}
+
+.asciinema-terminal .fg-135 {
+ color: #af5fff;
+}
+
+.asciinema-terminal .bg-135 {
+ background-color: #af5fff;
+}
+
+.asciinema-terminal .fg-136 {
+ color: #af8700;
+}
+
+.asciinema-terminal .bg-136 {
+ background-color: #af8700;
+}
+
+.asciinema-terminal .fg-137 {
+ color: #af875f;
+}
+
+.asciinema-terminal .bg-137 {
+ background-color: #af875f;
+}
+
+.asciinema-terminal .fg-138 {
+ color: #af8787;
+}
+
+.asciinema-terminal .bg-138 {
+ background-color: #af8787;
+}
+
+.asciinema-terminal .fg-139 {
+ color: #af87af;
+}
+
+.asciinema-terminal .bg-139 {
+ background-color: #af87af;
+}
+
+.asciinema-terminal .fg-140 {
+ color: #af87d7;
+}
+
+.asciinema-terminal .bg-140 {
+ background-color: #af87d7;
+}
+
+.asciinema-terminal .fg-141 {
+ color: #af87ff;
+}
+
+.asciinema-terminal .bg-141 {
+ background-color: #af87ff;
+}
+
+.asciinema-terminal .fg-142 {
+ color: #afaf00;
+}
+
+.asciinema-terminal .bg-142 {
+ background-color: #afaf00;
+}
+
+.asciinema-terminal .fg-143 {
+ color: #afaf5f;
+}
+
+.asciinema-terminal .bg-143 {
+ background-color: #afaf5f;
+}
+
+.asciinema-terminal .fg-144 {
+ color: #afaf87;
+}
+
+.asciinema-terminal .bg-144 {
+ background-color: #afaf87;
+}
+
+.asciinema-terminal .fg-145 {
+ color: #afafaf;
+}
+
+.asciinema-terminal .bg-145 {
+ background-color: #afafaf;
+}
+
+.asciinema-terminal .fg-146 {
+ color: #afafd7;
+}
+
+.asciinema-terminal .bg-146 {
+ background-color: #afafd7;
+}
+
+.asciinema-terminal .fg-147 {
+ color: #afafff;
+}
+
+.asciinema-terminal .bg-147 {
+ background-color: #afafff;
+}
+
+.asciinema-terminal .fg-148 {
+ color: #afd700;
+}
+
+.asciinema-terminal .bg-148 {
+ background-color: #afd700;
+}
+
+.asciinema-terminal .fg-149 {
+ color: #afd75f;
+}
+
+.asciinema-terminal .bg-149 {
+ background-color: #afd75f;
+}
+
+.asciinema-terminal .fg-150 {
+ color: #afd787;
+}
+
+.asciinema-terminal .bg-150 {
+ background-color: #afd787;
+}
+
+.asciinema-terminal .fg-151 {
+ color: #afd7af;
+}
+
+.asciinema-terminal .bg-151 {
+ background-color: #afd7af;
+}
+
+.asciinema-terminal .fg-152 {
+ color: #afd7d7;
+}
+
+.asciinema-terminal .bg-152 {
+ background-color: #afd7d7;
+}
+
+.asciinema-terminal .fg-153 {
+ color: #afd7ff;
+}
+
+.asciinema-terminal .bg-153 {
+ background-color: #afd7ff;
+}
+
+.asciinema-terminal .fg-154 {
+ color: #afff00;
+}
+
+.asciinema-terminal .bg-154 {
+ background-color: #afff00;
+}
+
+.asciinema-terminal .fg-155 {
+ color: #afff5f;
+}
+
+.asciinema-terminal .bg-155 {
+ background-color: #afff5f;
+}
+
+.asciinema-terminal .fg-156 {
+ color: #afff87;
+}
+
+.asciinema-terminal .bg-156 {
+ background-color: #afff87;
+}
+
+.asciinema-terminal .fg-157 {
+ color: #afffaf;
+}
+
+.asciinema-terminal .bg-157 {
+ background-color: #afffaf;
+}
+
+.asciinema-terminal .fg-158 {
+ color: #afffd7;
+}
+
+.asciinema-terminal .bg-158 {
+ background-color: #afffd7;
+}
+
+.asciinema-terminal .fg-159 {
+ color: #afffff;
+}
+
+.asciinema-terminal .bg-159 {
+ background-color: #afffff;
+}
+
+.asciinema-terminal .fg-160 {
+ color: #d70000;
+}
+
+.asciinema-terminal .bg-160 {
+ background-color: #d70000;
+}
+
+.asciinema-terminal .fg-161 {
+ color: #d7005f;
+}
+
+.asciinema-terminal .bg-161 {
+ background-color: #d7005f;
+}
+
+.asciinema-terminal .fg-162 {
+ color: #d70087;
+}
+
+.asciinema-terminal .bg-162 {
+ background-color: #d70087;
+}
+
+.asciinema-terminal .fg-163 {
+ color: #d700af;
+}
+
+.asciinema-terminal .bg-163 {
+ background-color: #d700af;
+}
+
+.asciinema-terminal .fg-164 {
+ color: #d700d7;
+}
+
+.asciinema-terminal .bg-164 {
+ background-color: #d700d7;
+}
+
+.asciinema-terminal .fg-165 {
+ color: #d700ff;
+}
+
+.asciinema-terminal .bg-165 {
+ background-color: #d700ff;
+}
+
+.asciinema-terminal .fg-166 {
+ color: #d75f00;
+}
+
+.asciinema-terminal .bg-166 {
+ background-color: #d75f00;
+}
+
+.asciinema-terminal .fg-167 {
+ color: #d75f5f;
+}
+
+.asciinema-terminal .bg-167 {
+ background-color: #d75f5f;
+}
+
+.asciinema-terminal .fg-168 {
+ color: #d75f87;
+}
+
+.asciinema-terminal .bg-168 {
+ background-color: #d75f87;
+}
+
+.asciinema-terminal .fg-169 {
+ color: #d75faf;
+}
+
+.asciinema-terminal .bg-169 {
+ background-color: #d75faf;
+}
+
+.asciinema-terminal .fg-170 {
+ color: #d75fd7;
+}
+
+.asciinema-terminal .bg-170 {
+ background-color: #d75fd7;
+}
+
+.asciinema-terminal .fg-171 {
+ color: #d75fff;
+}
+
+.asciinema-terminal .bg-171 {
+ background-color: #d75fff;
+}
+
+.asciinema-terminal .fg-172 {
+ color: #d78700;
+}
+
+.asciinema-terminal .bg-172 {
+ background-color: #d78700;
+}
+
+.asciinema-terminal .fg-173 {
+ color: #d7875f;
+}
+
+.asciinema-terminal .bg-173 {
+ background-color: #d7875f;
+}
+
+.asciinema-terminal .fg-174 {
+ color: #d78787;
+}
+
+.asciinema-terminal .bg-174 {
+ background-color: #d78787;
+}
+
+.asciinema-terminal .fg-175 {
+ color: #d787af;
+}
+
+.asciinema-terminal .bg-175 {
+ background-color: #d787af;
+}
+
+.asciinema-terminal .fg-176 {
+ color: #d787d7;
+}
+
+.asciinema-terminal .bg-176 {
+ background-color: #d787d7;
+}
+
+.asciinema-terminal .fg-177 {
+ color: #d787ff;
+}
+
+.asciinema-terminal .bg-177 {
+ background-color: #d787ff;
+}
+
+.asciinema-terminal .fg-178 {
+ color: #d7af00;
+}
+
+.asciinema-terminal .bg-178 {
+ background-color: #d7af00;
+}
+
+.asciinema-terminal .fg-179 {
+ color: #d7af5f;
+}
+
+.asciinema-terminal .bg-179 {
+ background-color: #d7af5f;
+}
+
+.asciinema-terminal .fg-180 {
+ color: #d7af87;
+}
+
+.asciinema-terminal .bg-180 {
+ background-color: #d7af87;
+}
+
+.asciinema-terminal .fg-181 {
+ color: #d7afaf;
+}
+
+.asciinema-terminal .bg-181 {
+ background-color: #d7afaf;
+}
+
+.asciinema-terminal .fg-182 {
+ color: #d7afd7;
+}
+
+.asciinema-terminal .bg-182 {
+ background-color: #d7afd7;
+}
+
+.asciinema-terminal .fg-183 {
+ color: #d7afff;
+}
+
+.asciinema-terminal .bg-183 {
+ background-color: #d7afff;
+}
+
+.asciinema-terminal .fg-184 {
+ color: #d7d700;
+}
+
+.asciinema-terminal .bg-184 {
+ background-color: #d7d700;
+}
+
+.asciinema-terminal .fg-185 {
+ color: #d7d75f;
+}
+
+.asciinema-terminal .bg-185 {
+ background-color: #d7d75f;
+}
+
+.asciinema-terminal .fg-186 {
+ color: #d7d787;
+}
+
+.asciinema-terminal .bg-186 {
+ background-color: #d7d787;
+}
+
+.asciinema-terminal .fg-187 {
+ color: #d7d7af;
+}
+
+.asciinema-terminal .bg-187 {
+ background-color: #d7d7af;
+}
+
+.asciinema-terminal .fg-188 {
+ color: #d7d7d7;
+}
+
+.asciinema-terminal .bg-188 {
+ background-color: #d7d7d7;
+}
+
+.asciinema-terminal .fg-189 {
+ color: #d7d7ff;
+}
+
+.asciinema-terminal .bg-189 {
+ background-color: #d7d7ff;
+}
+
+.asciinema-terminal .fg-190 {
+ color: #d7ff00;
+}
+
+.asciinema-terminal .bg-190 {
+ background-color: #d7ff00;
+}
+
+.asciinema-terminal .fg-191 {
+ color: #d7ff5f;
+}
+
+.asciinema-terminal .bg-191 {
+ background-color: #d7ff5f;
+}
+
+.asciinema-terminal .fg-192 {
+ color: #d7ff87;
+}
+
+.asciinema-terminal .bg-192 {
+ background-color: #d7ff87;
+}
+
+.asciinema-terminal .fg-193 {
+ color: #d7ffaf;
+}
+
+.asciinema-terminal .bg-193 {
+ background-color: #d7ffaf;
+}
+
+.asciinema-terminal .fg-194 {
+ color: #d7ffd7;
+}
+
+.asciinema-terminal .bg-194 {
+ background-color: #d7ffd7;
+}
+
+.asciinema-terminal .fg-195 {
+ color: #d7ffff;
+}
+
+.asciinema-terminal .bg-195 {
+ background-color: #d7ffff;
+}
+
+.asciinema-terminal .fg-196 {
+ color: #ff0000;
+}
+
+.asciinema-terminal .bg-196 {
+ background-color: #ff0000;
+}
+
+.asciinema-terminal .fg-197 {
+ color: #ff005f;
+}
+
+.asciinema-terminal .bg-197 {
+ background-color: #ff005f;
+}
+
+.asciinema-terminal .fg-198 {
+ color: #ff0087;
+}
+
+.asciinema-terminal .bg-198 {
+ background-color: #ff0087;
+}
+
+.asciinema-terminal .fg-199 {
+ color: #ff00af;
+}
+
+.asciinema-terminal .bg-199 {
+ background-color: #ff00af;
+}
+
+.asciinema-terminal .fg-200 {
+ color: #ff00d7;
+}
+
+.asciinema-terminal .bg-200 {
+ background-color: #ff00d7;
+}
+
+.asciinema-terminal .fg-201 {
+ color: #ff00ff;
+}
+
+.asciinema-terminal .bg-201 {
+ background-color: #ff00ff;
+}
+
+.asciinema-terminal .fg-202 {
+ color: #ff5f00;
+}
+
+.asciinema-terminal .bg-202 {
+ background-color: #ff5f00;
+}
+
+.asciinema-terminal .fg-203 {
+ color: #ff5f5f;
+}
+
+.asciinema-terminal .bg-203 {
+ background-color: #ff5f5f;
+}
+
+.asciinema-terminal .fg-204 {
+ color: #ff5f87;
+}
+
+.asciinema-terminal .bg-204 {
+ background-color: #ff5f87;
+}
+
+.asciinema-terminal .fg-205 {
+ color: #ff5faf;
+}
+
+.asciinema-terminal .bg-205 {
+ background-color: #ff5faf;
+}
+
+.asciinema-terminal .fg-206 {
+ color: #ff5fd7;
+}
+
+.asciinema-terminal .bg-206 {
+ background-color: #ff5fd7;
+}
+
+.asciinema-terminal .fg-207 {
+ color: #ff5fff;
+}
+
+.asciinema-terminal .bg-207 {
+ background-color: #ff5fff;
+}
+
+.asciinema-terminal .fg-208 {
+ color: #ff8700;
+}
+
+.asciinema-terminal .bg-208 {
+ background-color: #ff8700;
+}
+
+.asciinema-terminal .fg-209 {
+ color: #ff875f;
+}
+
+.asciinema-terminal .bg-209 {
+ background-color: #ff875f;
+}
+
+.asciinema-terminal .fg-210 {
+ color: #ff8787;
+}
+
+.asciinema-terminal .bg-210 {
+ background-color: #ff8787;
+}
+
+.asciinema-terminal .fg-211 {
+ color: #ff87af;
+}
+
+.asciinema-terminal .bg-211 {
+ background-color: #ff87af;
+}
+
+.asciinema-terminal .fg-212 {
+ color: #ff87d7;
+}
+
+.asciinema-terminal .bg-212 {
+ background-color: #ff87d7;
+}
+
+.asciinema-terminal .fg-213 {
+ color: #ff87ff;
+}
+
+.asciinema-terminal .bg-213 {
+ background-color: #ff87ff;
+}
+
+.asciinema-terminal .fg-214 {
+ color: #ffaf00;
+}
+
+.asciinema-terminal .bg-214 {
+ background-color: #ffaf00;
+}
+
+.asciinema-terminal .fg-215 {
+ color: #ffaf5f;
+}
+
+.asciinema-terminal .bg-215 {
+ background-color: #ffaf5f;
+}
+
+.asciinema-terminal .fg-216 {
+ color: #ffaf87;
+}
+
+.asciinema-terminal .bg-216 {
+ background-color: #ffaf87;
+}
+
+.asciinema-terminal .fg-217 {
+ color: #ffafaf;
+}
+
+.asciinema-terminal .bg-217 {
+ background-color: #ffafaf;
+}
+
+.asciinema-terminal .fg-218 {
+ color: #ffafd7;
+}
+
+.asciinema-terminal .bg-218 {
+ background-color: #ffafd7;
+}
+
+.asciinema-terminal .fg-219 {
+ color: #ffafff;
+}
+
+.asciinema-terminal .bg-219 {
+ background-color: #ffafff;
+}
+
+.asciinema-terminal .fg-220 {
+ color: #ffd700;
+}
+
+.asciinema-terminal .bg-220 {
+ background-color: #ffd700;
+}
+
+.asciinema-terminal .fg-221 {
+ color: #ffd75f;
+}
+
+.asciinema-terminal .bg-221 {
+ background-color: #ffd75f;
+}
+
+.asciinema-terminal .fg-222 {
+ color: #ffd787;
+}
+
+.asciinema-terminal .bg-222 {
+ background-color: #ffd787;
+}
+
+.asciinema-terminal .fg-223 {
+ color: #ffd7af;
+}
+
+.asciinema-terminal .bg-223 {
+ background-color: #ffd7af;
+}
+
+.asciinema-terminal .fg-224 {
+ color: #ffd7d7;
+}
+
+.asciinema-terminal .bg-224 {
+ background-color: #ffd7d7;
+}
+
+.asciinema-terminal .fg-225 {
+ color: #ffd7ff;
+}
+
+.asciinema-terminal .bg-225 {
+ background-color: #ffd7ff;
+}
+
+.asciinema-terminal .fg-226 {
+ color: #ffff00;
+}
+
+.asciinema-terminal .bg-226 {
+ background-color: #ffff00;
+}
+
+.asciinema-terminal .fg-227 {
+ color: #ffff5f;
+}
+
+.asciinema-terminal .bg-227 {
+ background-color: #ffff5f;
+}
+
+.asciinema-terminal .fg-228 {
+ color: #ffff87;
+}
+
+.asciinema-terminal .bg-228 {
+ background-color: #ffff87;
+}
+
+.asciinema-terminal .fg-229 {
+ color: #ffffaf;
+}
+
+.asciinema-terminal .bg-229 {
+ background-color: #ffffaf;
+}
+
+.asciinema-terminal .fg-230 {
+ color: #ffffd7;
+}
+
+.asciinema-terminal .bg-230 {
+ background-color: #ffffd7;
+}
+
+.asciinema-terminal .fg-231 {
+ color: #ffffff;
+}
+
+.asciinema-terminal .bg-231 {
+ background-color: #ffffff;
+}
+
+.asciinema-terminal .fg-232 {
+ color: #080808;
+}
+
+.asciinema-terminal .bg-232 {
+ background-color: #080808;
+}
+
+.asciinema-terminal .fg-233 {
+ color: #121212;
+}
+
+.asciinema-terminal .bg-233 {
+ background-color: #121212;
+}
+
+.asciinema-terminal .fg-234 {
+ color: #1c1c1c;
+}
+
+.asciinema-terminal .bg-234 {
+ background-color: #1c1c1c;
+}
+
+.asciinema-terminal .fg-235 {
+ color: #262626;
+}
+
+.asciinema-terminal .bg-235 {
+ background-color: #262626;
+}
+
+.asciinema-terminal .fg-236 {
+ color: #303030;
+}
+
+.asciinema-terminal .bg-236 {
+ background-color: #303030;
+}
+
+.asciinema-terminal .fg-237 {
+ color: #3a3a3a;
+}
+
+.asciinema-terminal .bg-237 {
+ background-color: #3a3a3a;
+}
+
+.asciinema-terminal .fg-238 {
+ color: #444444;
+}
+
+.asciinema-terminal .bg-238 {
+ background-color: #444444;
+}
+
+.asciinema-terminal .fg-239 {
+ color: #4e4e4e;
+}
+
+.asciinema-terminal .bg-239 {
+ background-color: #4e4e4e;
+}
+
+.asciinema-terminal .fg-240 {
+ color: #585858;
+}
+
+.asciinema-terminal .bg-240 {
+ background-color: #585858;
+}
+
+.asciinema-terminal .fg-241 {
+ color: #626262;
+}
+
+.asciinema-terminal .bg-241 {
+ background-color: #626262;
+}
+
+.asciinema-terminal .fg-242 {
+ color: #6c6c6c;
+}
+
+.asciinema-terminal .bg-242 {
+ background-color: #6c6c6c;
+}
+
+.asciinema-terminal .fg-243 {
+ color: #767676;
+}
+
+.asciinema-terminal .bg-243 {
+ background-color: #767676;
+}
+
+.asciinema-terminal .fg-244 {
+ color: #808080;
+}
+
+.asciinema-terminal .bg-244 {
+ background-color: #808080;
+}
+
+.asciinema-terminal .fg-245 {
+ color: #8a8a8a;
+}
+
+.asciinema-terminal .bg-245 {
+ background-color: #8a8a8a;
+}
+
+.asciinema-terminal .fg-246 {
+ color: #949494;
+}
+
+.asciinema-terminal .bg-246 {
+ background-color: #949494;
+}
+
+.asciinema-terminal .fg-247 {
+ color: #9e9e9e;
+}
+
+.asciinema-terminal .bg-247 {
+ background-color: #9e9e9e;
+}
+
+.asciinema-terminal .fg-248 {
+ color: #a8a8a8;
+}
+
+.asciinema-terminal .bg-248 {
+ background-color: #a8a8a8;
+}
+
+.asciinema-terminal .fg-249 {
+ color: #b2b2b2;
+}
+
+.asciinema-terminal .bg-249 {
+ background-color: #b2b2b2;
+}
+
+.asciinema-terminal .fg-250 {
+ color: #bcbcbc;
+}
+
+.asciinema-terminal .bg-250 {
+ background-color: #bcbcbc;
+}
+
+.asciinema-terminal .fg-251 {
+ color: #c6c6c6;
+}
+
+.asciinema-terminal .bg-251 {
+ background-color: #c6c6c6;
+}
+
+.asciinema-terminal .fg-252 {
+ color: #d0d0d0;
+}
+
+.asciinema-terminal .bg-252 {
+ background-color: #d0d0d0;
+}
+
+.asciinema-terminal .fg-253 {
+ color: #dadada;
+}
+
+.asciinema-terminal .bg-253 {
+ background-color: #dadada;
+}
+
+.asciinema-terminal .fg-254 {
+ color: #e4e4e4;
+}
+
+.asciinema-terminal .bg-254 {
+ background-color: #e4e4e4;
+}
+
+.asciinema-terminal .fg-255 {
+ color: #eeeeee;
+}
+
+.asciinema-terminal .bg-255 {
+ background-color: #eeeeee;
+}
+
+.asciinema-theme-asciinema .asciinema-terminal {
+ color: #cccccc;
+ background-color: #121314;
+ border-color: #121314;
+}
+
+.asciinema-theme-asciinema .fg-bg {
+ color: #121314;
+}
+
+.asciinema-theme-asciinema .bg-fg {
+ background-color: #cccccc;
+}
+
+.asciinema-theme-asciinema .fg-0 {
+ color: #000000;
+}
+
+.asciinema-theme-asciinema .bg-0 {
+ background-color: #000000;
+}
+
+.asciinema-theme-asciinema .fg-1 {
+ color: #dd3c69;
+}
+
+.asciinema-theme-asciinema .bg-1 {
+ background-color: #dd3c69;
+}
+
+.asciinema-theme-asciinema .fg-2 {
+ color: #4ebf22;
+}
+
+.asciinema-theme-asciinema .bg-2 {
+ background-color: #4ebf22;
+}
+
+.asciinema-theme-asciinema .fg-3 {
+ color: #ddaf3c;
+}
+
+.asciinema-theme-asciinema .bg-3 {
+ background-color: #ddaf3c;
+}
+
+.asciinema-theme-asciinema .fg-4 {
+ color: #26b0d7;
+}
+
+.asciinema-theme-asciinema .bg-4 {
+ background-color: #26b0d7;
+}
+
+.asciinema-theme-asciinema .fg-5 {
+ color: #b954e1;
+}
+
+.asciinema-theme-asciinema .bg-5 {
+ background-color: #b954e1;
+}
+
+.asciinema-theme-asciinema .fg-6 {
+ color: #54e1b9;
+}
+
+.asciinema-theme-asciinema .bg-6 {
+ background-color: #54e1b9;
+}
+
+.asciinema-theme-asciinema .fg-7 {
+ color: #d9d9d9;
+}
+
+.asciinema-theme-asciinema .bg-7 {
+ background-color: #d9d9d9;
+}
+
+.asciinema-theme-asciinema .fg-8 {
+ color: #4d4d4d;
+}
+
+.asciinema-theme-asciinema .bg-8 {
+ background-color: #4d4d4d;
+}
+
+.asciinema-theme-asciinema .fg-9 {
+ color: #dd3c69;
+}
+
+.asciinema-theme-asciinema .bg-9 {
+ background-color: #dd3c69;
+}
+
+.asciinema-theme-asciinema .fg-10 {
+ color: #4ebf22;
+}
+
+.asciinema-theme-asciinema .bg-10 {
+ background-color: #4ebf22;
+}
+
+.asciinema-theme-asciinema .fg-11 {
+ color: #ddaf3c;
+}
+
+.asciinema-theme-asciinema .bg-11 {
+ background-color: #ddaf3c;
+}
+
+.asciinema-theme-asciinema .fg-12 {
+ color: #26b0d7;
+}
+
+.asciinema-theme-asciinema .bg-12 {
+ background-color: #26b0d7;
+}
+
+.asciinema-theme-asciinema .fg-13 {
+ color: #b954e1;
+}
+
+.asciinema-theme-asciinema .bg-13 {
+ background-color: #b954e1;
+}
+
+.asciinema-theme-asciinema .fg-14 {
+ color: #54e1b9;
+}
+
+.asciinema-theme-asciinema .bg-14 {
+ background-color: #54e1b9;
+}
+
+.asciinema-theme-asciinema .fg-15 {
+ color: #ffffff;
+}
+
+.asciinema-theme-asciinema .bg-15 {
+ background-color: #ffffff;
+}
+
+.asciinema-theme-asciinema .fg-8,
+.asciinema-theme-asciinema .fg-9,
+.asciinema-theme-asciinema .fg-10,
+.asciinema-theme-asciinema .fg-11,
+.asciinema-theme-asciinema .fg-12,
+.asciinema-theme-asciinema .fg-13,
+.asciinema-theme-asciinema .fg-14,
+.asciinema-theme-asciinema .fg-15 {
+ font-weight: bold;
+}
+
+.asciinema-theme-tango .asciinema-terminal {
+ color: #cccccc;
+ background-color: #121314;
+ border-color: #121314;
+}
+
+.asciinema-theme-tango .fg-bg {
+ color: #121314;
+}
+
+.asciinema-theme-tango .bg-fg {
+ background-color: #cccccc;
+}
+
+.asciinema-theme-tango .fg-0 {
+ color: #000000;
+}
+
+.asciinema-theme-tango .bg-0 {
+ background-color: #000000;
+}
+
+.asciinema-theme-tango .fg-1 {
+ color: #cc0000;
+}
+
+.asciinema-theme-tango .bg-1 {
+ background-color: #cc0000;
+}
+
+.asciinema-theme-tango .fg-2 {
+ color: #4e9a06;
+}
+
+.asciinema-theme-tango .bg-2 {
+ background-color: #4e9a06;
+}
+
+.asciinema-theme-tango .fg-3 {
+ color: #c4a000;
+}
+
+.asciinema-theme-tango .bg-3 {
+ background-color: #c4a000;
+}
+
+.asciinema-theme-tango .fg-4 {
+ color: #3465a4;
+}
+
+.asciinema-theme-tango .bg-4 {
+ background-color: #3465a4;
+}
+
+.asciinema-theme-tango .fg-5 {
+ color: #75507b;
+}
+
+.asciinema-theme-tango .bg-5 {
+ background-color: #75507b;
+}
+
+.asciinema-theme-tango .fg-6 {
+ color: #06989a;
+}
+
+.asciinema-theme-tango .bg-6 {
+ background-color: #06989a;
+}
+
+.asciinema-theme-tango .fg-7 {
+ color: #d3d7cf;
+}
+
+.asciinema-theme-tango .bg-7 {
+ background-color: #d3d7cf;
+}
+
+.asciinema-theme-tango .fg-8 {
+ color: #555753;
+}
+
+.asciinema-theme-tango .bg-8 {
+ background-color: #555753;
+}
+
+.asciinema-theme-tango .fg-9 {
+ color: #ef2929;
+}
+
+.asciinema-theme-tango .bg-9 {
+ background-color: #ef2929;
+}
+
+.asciinema-theme-tango .fg-10 {
+ color: #8ae234;
+}
+
+.asciinema-theme-tango .bg-10 {
+ background-color: #8ae234;
+}
+
+.asciinema-theme-tango .fg-11 {
+ color: #fce94f;
+}
+
+.asciinema-theme-tango .bg-11 {
+ background-color: #fce94f;
+}
+
+.asciinema-theme-tango .fg-12 {
+ color: #729fcf;
+}
+
+.asciinema-theme-tango .bg-12 {
+ background-color: #729fcf;
+}
+
+.asciinema-theme-tango .fg-13 {
+ color: #ad7fa8;
+}
+
+.asciinema-theme-tango .bg-13 {
+ background-color: #ad7fa8;
+}
+
+.asciinema-theme-tango .fg-14 {
+ color: #34e2e2;
+}
+
+.asciinema-theme-tango .bg-14 {
+ background-color: #34e2e2;
+}
+
+.asciinema-theme-tango .fg-15 {
+ color: #eeeeec;
+}
+
+.asciinema-theme-tango .bg-15 {
+ background-color: #eeeeec;
+}
+
+.asciinema-theme-tango .fg-8,
+.asciinema-theme-tango .fg-9,
+.asciinema-theme-tango .fg-10,
+.asciinema-theme-tango .fg-11,
+.asciinema-theme-tango .fg-12,
+.asciinema-theme-tango .fg-13,
+.asciinema-theme-tango .fg-14,
+.asciinema-theme-tango .fg-15 {
+ font-weight: bold;
+}
+
+.asciinema-theme-solarized-dark .asciinema-terminal {
+ color: #839496;
+ background-color: #002b36;
+ border-color: #002b36;
+}
+
+.asciinema-theme-solarized-dark .fg-bg {
+ color: #002b36;
+}
+
+.asciinema-theme-solarized-dark .bg-fg {
+ background-color: #839496;
+}
+
+.asciinema-theme-solarized-dark .fg-0 {
+ color: #073642;
+}
+
+.asciinema-theme-solarized-dark .bg-0 {
+ background-color: #073642;
+}
+
+.asciinema-theme-solarized-dark .fg-1 {
+ color: #dc322f;
+}
+
+.asciinema-theme-solarized-dark .bg-1 {
+ background-color: #dc322f;
+}
+
+.asciinema-theme-solarized-dark .fg-2 {
+ color: #859900;
+}
+
+.asciinema-theme-solarized-dark .bg-2 {
+ background-color: #859900;
+}
+
+.asciinema-theme-solarized-dark .fg-3 {
+ color: #b58900;
+}
+
+.asciinema-theme-solarized-dark .bg-3 {
+ background-color: #b58900;
+}
+
+.asciinema-theme-solarized-dark .fg-4 {
+ color: #268bd2;
+}
+
+.asciinema-theme-solarized-dark .bg-4 {
+ background-color: #268bd2;
+}
+
+.asciinema-theme-solarized-dark .fg-5 {
+ color: #d33682;
+}
+
+.asciinema-theme-solarized-dark .bg-5 {
+ background-color: #d33682;
+}
+
+.asciinema-theme-solarized-dark .fg-6 {
+ color: #2aa198;
+}
+
+.asciinema-theme-solarized-dark .bg-6 {
+ background-color: #2aa198;
+}
+
+.asciinema-theme-solarized-dark .fg-7 {
+ color: #eee8d5;
+}
+
+.asciinema-theme-solarized-dark .bg-7 {
+ background-color: #eee8d5;
+}
+
+.asciinema-theme-solarized-dark .fg-8 {
+ color: #002b36;
+}
+
+.asciinema-theme-solarized-dark .bg-8 {
+ background-color: #002b36;
+}
+
+.asciinema-theme-solarized-dark .fg-9 {
+ color: #cb4b16;
+}
+
+.asciinema-theme-solarized-dark .bg-9 {
+ background-color: #cb4b16;
+}
+
+.asciinema-theme-solarized-dark .fg-10 {
+ color: #586e75;
+}
+
+.asciinema-theme-solarized-dark .bg-10 {
+ background-color: #586e75;
+}
+
+.asciinema-theme-solarized-dark .fg-11 {
+ color: #657b83;
+}
+
+.asciinema-theme-solarized-dark .bg-11 {
+ background-color: #657b83;
+}
+
+.asciinema-theme-solarized-dark .fg-12 {
+ color: #839496;
+}
+
+.asciinema-theme-solarized-dark .bg-12 {
+ background-color: #839496;
+}
+
+.asciinema-theme-solarized-dark .fg-13 {
+ color: #6c71c4;
+}
+
+.asciinema-theme-solarized-dark .bg-13 {
+ background-color: #6c71c4;
+}
+
+.asciinema-theme-solarized-dark .fg-14 {
+ color: #93a1a1;
+}
+
+.asciinema-theme-solarized-dark .bg-14 {
+ background-color: #93a1a1;
+}
+
+.asciinema-theme-solarized-dark .fg-15 {
+ color: #fdf6e3;
+}
+
+.asciinema-theme-solarized-dark .bg-15 {
+ background-color: #fdf6e3;
+}
+
+.asciinema-theme-solarized-light .asciinema-terminal {
+ color: #657b83;
+ background-color: #fdf6e3;
+ border-color: #fdf6e3;
+}
+
+.asciinema-theme-solarized-light .fg-bg {
+ color: #fdf6e3;
+}
+
+.asciinema-theme-solarized-light .bg-fg {
+ background-color: #657b83;
+}
+
+.asciinema-theme-solarized-light .fg-0 {
+ color: #073642;
+}
+
+.asciinema-theme-solarized-light .bg-0 {
+ background-color: #073642;
+}
+
+.asciinema-theme-solarized-light .fg-1 {
+ color: #dc322f;
+}
+
+.asciinema-theme-solarized-light .bg-1 {
+ background-color: #dc322f;
+}
+
+.asciinema-theme-solarized-light .fg-2 {
+ color: #859900;
+}
+
+.asciinema-theme-solarized-light .bg-2 {
+ background-color: #859900;
+}
+
+.asciinema-theme-solarized-light .fg-3 {
+ color: #b58900;
+}
+
+.asciinema-theme-solarized-light .bg-3 {
+ background-color: #b58900;
+}
+
+.asciinema-theme-solarized-light .fg-4 {
+ color: #268bd2;
+}
+
+.asciinema-theme-solarized-light .bg-4 {
+ background-color: #268bd2;
+}
+
+.asciinema-theme-solarized-light .fg-5 {
+ color: #d33682;
+}
+
+.asciinema-theme-solarized-light .bg-5 {
+ background-color: #d33682;
+}
+
+.asciinema-theme-solarized-light .fg-6 {
+ color: #2aa198;
+}
+
+.asciinema-theme-solarized-light .bg-6 {
+ background-color: #2aa198;
+}
+
+.asciinema-theme-solarized-light .fg-7 {
+ color: #eee8d5;
+}
+
+.asciinema-theme-solarized-light .bg-7 {
+ background-color: #eee8d5;
+}
+
+.asciinema-theme-solarized-light .fg-8 {
+ color: #002b36;
+}
+
+.asciinema-theme-solarized-light .bg-8 {
+ background-color: #002b36;
+}
+
+.asciinema-theme-solarized-light .fg-9 {
+ color: #cb4b16;
+}
+
+.asciinema-theme-solarized-light .bg-9 {
+ background-color: #cb4b16;
+}
+
+.asciinema-theme-solarized-light .fg-10 {
+ color: #586e75;
+}
+
+.asciinema-theme-solarized-light .bg-10 {
+ background-color: #586e75;
+}
+
+.asciinema-theme-solarized-light .fg-11 {
+ color: #657c83;
+}
+
+.asciinema-theme-solarized-light .bg-11 {
+ background-color: #657c83;
+}
+
+.asciinema-theme-solarized-light .fg-12 {
+ color: #839496;
+}
+
+.asciinema-theme-solarized-light .bg-12 {
+ background-color: #839496;
+}
+
+.asciinema-theme-solarized-light .fg-13 {
+ color: #6c71c4;
+}
+
+.asciinema-theme-solarized-light .bg-13 {
+ background-color: #6c71c4;
+}
+
+.asciinema-theme-solarized-light .fg-14 {
+ color: #93a1a1;
+}
+
+.asciinema-theme-solarized-light .bg-14 {
+ background-color: #93a1a1;
+}
+
+.asciinema-theme-solarized-light .fg-15 {
+ color: #fdf6e3;
+}
+
+.asciinema-theme-solarized-light .bg-15 {
+ background-color: #fdf6e3;
+}
+
+.asciinema-theme-seti .asciinema-terminal {
+ color: #cacecd;
+ background-color: #111213;
+ border-color: #111213;
+}
+
+.asciinema-theme-seti .fg-bg {
+ color: #111213;
+}
+
+.asciinema-theme-seti .bg-fg {
+ background-color: #cacecd;
+}
+
+.asciinema-theme-seti .fg-0 {
+ color: #323232;
+}
+
+.asciinema-theme-seti .bg-0 {
+ background-color: #323232;
+}
+
+.asciinema-theme-seti .fg-1 {
+ color: #c22832;
+}
+
+.asciinema-theme-seti .bg-1 {
+ background-color: #c22832;
+}
+
+.asciinema-theme-seti .fg-2 {
+ color: #8ec43d;
+}
+
+.asciinema-theme-seti .bg-2 {
+ background-color: #8ec43d;
+}
+
+.asciinema-theme-seti .fg-3 {
+ color: #e0c64f;
+}
+
+.asciinema-theme-seti .bg-3 {
+ background-color: #e0c64f;
+}
+
+.asciinema-theme-seti .fg-4 {
+ color: #43a5d5;
+}
+
+.asciinema-theme-seti .bg-4 {
+ background-color: #43a5d5;
+}
+
+.asciinema-theme-seti .fg-5 {
+ color: #8b57b5;
+}
+
+.asciinema-theme-seti .bg-5 {
+ background-color: #8b57b5;
+}
+
+.asciinema-theme-seti .fg-6 {
+ color: #8ec43d;
+}
+
+.asciinema-theme-seti .bg-6 {
+ background-color: #8ec43d;
+}
+
+.asciinema-theme-seti .fg-7 {
+ color: #eeeeee;
+}
+
+.asciinema-theme-seti .bg-7 {
+ background-color: #eeeeee;
+}
+
+.asciinema-theme-seti .fg-8 {
+ color: #323232;
+}
+
+.asciinema-theme-seti .bg-8 {
+ background-color: #323232;
+}
+
+.asciinema-theme-seti .fg-9 {
+ color: #c22832;
+}
+
+.asciinema-theme-seti .bg-9 {
+ background-color: #c22832;
+}
+
+.asciinema-theme-seti .fg-10 {
+ color: #8ec43d;
+}
+
+.asciinema-theme-seti .bg-10 {
+ background-color: #8ec43d;
+}
+
+.asciinema-theme-seti .fg-11 {
+ color: #e0c64f;
+}
+
+.asciinema-theme-seti .bg-11 {
+ background-color: #e0c64f;
+}
+
+.asciinema-theme-seti .fg-12 {
+ color: #43a5d5;
+}
+
+.asciinema-theme-seti .bg-12 {
+ background-color: #43a5d5;
+}
+
+.asciinema-theme-seti .fg-13 {
+ color: #8b57b5;
+}
+
+.asciinema-theme-seti .bg-13 {
+ background-color: #8b57b5;
+}
+
+.asciinema-theme-seti .fg-14 {
+ color: #8ec43d;
+}
+
+.asciinema-theme-seti .bg-14 {
+ background-color: #8ec43d;
+}
+
+.asciinema-theme-seti .fg-15 {
+ color: #ffffff;
+}
+
+.asciinema-theme-seti .bg-15 {
+ background-color: #ffffff;
+}
+
+.asciinema-theme-seti .fg-8,
+.asciinema-theme-seti .fg-9,
+.asciinema-theme-seti .fg-10,
+.asciinema-theme-seti .fg-11,
+.asciinema-theme-seti .fg-12,
+.asciinema-theme-seti .fg-13,
+.asciinema-theme-seti .fg-14,
+.asciinema-theme-seti .fg-15 {
+ font-weight: bold;
+}
+
+/* Based on Monokai from base16 collection - https://github.com/chriskempson/base16 */
+.asciinema-theme-monokai .asciinema-terminal {
+ color: #f8f8f2;
+ background-color: #272822;
+ border-color: #272822;
+}
+
+.asciinema-theme-monokai .fg-bg {
+ color: #272822;
+}
+
+.asciinema-theme-monokai .bg-fg {
+ background-color: #f8f8f2;
+}
+
+.asciinema-theme-monokai .fg-0 {
+ color: #272822;
+}
+
+.asciinema-theme-monokai .bg-0 {
+ background-color: #272822;
+}
+
+.asciinema-theme-monokai .fg-1 {
+ color: #f92672;
+}
+
+.asciinema-theme-monokai .bg-1 {
+ background-color: #f92672;
+}
+
+.asciinema-theme-monokai .fg-2 {
+ color: #a6e22e;
+}
+
+.asciinema-theme-monokai .bg-2 {
+ background-color: #a6e22e;
+}
+
+.asciinema-theme-monokai .fg-3 {
+ color: #f4bf75;
+}
+
+.asciinema-theme-monokai .bg-3 {
+ background-color: #f4bf75;
+}
+
+.asciinema-theme-monokai .fg-4 {
+ color: #66d9ef;
+}
+
+.asciinema-theme-monokai .bg-4 {
+ background-color: #66d9ef;
+}
+
+.asciinema-theme-monokai .fg-5 {
+ color: #ae81ff;
+}
+
+.asciinema-theme-monokai .bg-5 {
+ background-color: #ae81ff;
+}
+
+.asciinema-theme-monokai .fg-6 {
+ color: #a1efe4;
+}
+
+.asciinema-theme-monokai .bg-6 {
+ background-color: #a1efe4;
+}
+
+.asciinema-theme-monokai .fg-7 {
+ color: #f8f8f2;
+}
+
+.asciinema-theme-monokai .bg-7 {
+ background-color: #f8f8f2;
+}
+
+.asciinema-theme-monokai .fg-8 {
+ color: #75715e;
+}
+
+.asciinema-theme-monokai .bg-8 {
+ background-color: #75715e;
+}
+
+.asciinema-theme-monokai .fg-9 {
+ color: #f92672;
+}
+
+.asciinema-theme-monokai .bg-9 {
+ background-color: #f92672;
+}
+
+.asciinema-theme-monokai .fg-10 {
+ color: #a6e22e;
+}
+
+.asciinema-theme-monokai .bg-10 {
+ background-color: #a6e22e;
+}
+
+.asciinema-theme-monokai .fg-11 {
+ color: #f4bf75;
+}
+
+.asciinema-theme-monokai .bg-11 {
+ background-color: #f4bf75;
+}
+
+.asciinema-theme-monokai .fg-12 {
+ color: #66d9ef;
+}
+
+.asciinema-theme-monokai .bg-12 {
+ background-color: #66d9ef;
+}
+
+.asciinema-theme-monokai .fg-13 {
+ color: #ae81ff;
+}
+
+.asciinema-theme-monokai .bg-13 {
+ background-color: #ae81ff;
+}
+
+.asciinema-theme-monokai .fg-14 {
+ color: #a1efe4;
+}
+
+.asciinema-theme-monokai .bg-14 {
+ background-color: #a1efe4;
+}
+
+.asciinema-theme-monokai .fg-15 {
+ color: #f9f8f5;
+}
+
+.asciinema-theme-monokai .bg-15 {
+ background-color: #f9f8f5;
+}
+
+.asciinema-theme-monokai .fg-8,
+.asciinema-theme-monokai .fg-9,
+.asciinema-theme-monokai .fg-10,
+.asciinema-theme-monokai .fg-11,
+.asciinema-theme-monokai .fg-12,
+.asciinema-theme-monokai .fg-13,
+.asciinema-theme-monokai .fg-14,
+.asciinema-theme-monokai .fg-15 {
+ font-weight: bold;
+}
diff --git a/docs/assets/css/extra.css b/docs/assets/css/extra.css
new file mode 100644
index 0000000000..c6a3a7fb8f
--- /dev/null
+++ b/docs/assets/css/extra.css
@@ -0,0 +1,32 @@
+.md-header__button.md-logo img, .md-header__button.md-logo svg {
+ width: 3rem;
+}
+
+.md-header-nav__button.md-logo {
+ margin: 0;
+ padding: 0;
+}
+
+.md-header {
+ height: 3rem;
+}
+
+.md-header-nav {
+ align-items: center;
+}
+
+.md-ellipsis {
+ display: inline;
+}
+
+.md-header-nav__topic {
+ position: relative;
+}
+
+[data-md-color-primary=black] .md-tabs {
+ background-color: #0DCEFF;
+}
+
+.md-tabs {
+ color: black;
+}
diff --git a/docs/assets/images/favicons/favicon.ico b/docs/assets/images/favicons/favicon.ico
new file mode 100644
index 0000000000..9e41a24838
Binary files /dev/null and b/docs/assets/images/favicons/favicon.ico differ
diff --git a/docs/assets/images/icons/icons8-add-property-64.png b/docs/assets/images/icons/icons8-add-property-64.png
new file mode 100644
index 0000000000..53d2b16cb1
Binary files /dev/null and b/docs/assets/images/icons/icons8-add-property-64.png differ
diff --git a/docs/assets/images/icons/icons8-attach-64.png b/docs/assets/images/icons/icons8-attach-64.png
new file mode 100644
index 0000000000..2d4ab27e3d
Binary files /dev/null and b/docs/assets/images/icons/icons8-attach-64.png differ
diff --git a/docs/assets/images/icons/icons8-bug-64.png b/docs/assets/images/icons/icons8-bug-64.png
new file mode 100644
index 0000000000..ce4b80192d
Binary files /dev/null and b/docs/assets/images/icons/icons8-bug-64.png differ
diff --git a/docs/assets/images/icons/icons8-code-64.png b/docs/assets/images/icons/icons8-code-64.png
new file mode 100644
index 0000000000..4ffa3cccf0
Binary files /dev/null and b/docs/assets/images/icons/icons8-code-64.png differ
diff --git a/docs/assets/images/icons/icons8-edit-property-64.png b/docs/assets/images/icons/icons8-edit-property-64.png
new file mode 100644
index 0000000000..cf8a2c79f8
Binary files /dev/null and b/docs/assets/images/icons/icons8-edit-property-64.png differ
diff --git a/docs/assets/images/icons/icons8-editor-64.png b/docs/assets/images/icons/icons8-editor-64.png
new file mode 100644
index 0000000000..787b180c90
Binary files /dev/null and b/docs/assets/images/icons/icons8-editor-64.png differ
diff --git a/docs/assets/images/icons/icons8-fork-64.png b/docs/assets/images/icons/icons8-fork-64.png
new file mode 100644
index 0000000000..434dda59f8
Binary files /dev/null and b/docs/assets/images/icons/icons8-fork-64.png differ
diff --git a/docs/assets/images/icons/icons8-help-64.png b/docs/assets/images/icons/icons8-help-64.png
new file mode 100644
index 0000000000..578624d07b
Binary files /dev/null and b/docs/assets/images/icons/icons8-help-64.png differ
diff --git a/docs/assets/images/icons/icons8-inspect-code-64.png b/docs/assets/images/icons/icons8-inspect-code-64.png
new file mode 100644
index 0000000000..3d3d8471f9
Binary files /dev/null and b/docs/assets/images/icons/icons8-inspect-code-64.png differ
diff --git a/docs/assets/images/icons/icons8-inspector-64.png b/docs/assets/images/icons/icons8-inspector-64.png
new file mode 100644
index 0000000000..3a1d517241
Binary files /dev/null and b/docs/assets/images/icons/icons8-inspector-64.png differ
diff --git a/docs/assets/images/icons/icons8-list-64.png b/docs/assets/images/icons/icons8-list-64.png
new file mode 100644
index 0000000000..eb95222f4d
Binary files /dev/null and b/docs/assets/images/icons/icons8-list-64.png differ
diff --git a/docs/assets/images/icons/icons8-module-64.png b/docs/assets/images/icons/icons8-module-64.png
new file mode 100644
index 0000000000..52f9dfc711
Binary files /dev/null and b/docs/assets/images/icons/icons8-module-64.png differ
diff --git a/docs/assets/images/icons/icons8-plan-64.png b/docs/assets/images/icons/icons8-plan-64.png
new file mode 100644
index 0000000000..475e9ba9a7
Binary files /dev/null and b/docs/assets/images/icons/icons8-plan-64.png differ
diff --git a/docs/assets/images/icons/icons8-plugin-64.png b/docs/assets/images/icons/icons8-plugin-64.png
new file mode 100644
index 0000000000..5d42c5d936
Binary files /dev/null and b/docs/assets/images/icons/icons8-plugin-64.png differ
diff --git a/docs/assets/images/icons/icons8-program-64.png b/docs/assets/images/icons/icons8-program-64.png
new file mode 100644
index 0000000000..30696d6d33
Binary files /dev/null and b/docs/assets/images/icons/icons8-program-64.png differ
diff --git a/docs/assets/images/icons/icons8-remove-property-64.png b/docs/assets/images/icons/icons8-remove-property-64.png
new file mode 100644
index 0000000000..bf3d237621
Binary files /dev/null and b/docs/assets/images/icons/icons8-remove-property-64.png differ
diff --git a/docs/assets/images/icons/icons8-report-64.png b/docs/assets/images/icons/icons8-report-64.png
new file mode 100644
index 0000000000..7f4a5fcf79
Binary files /dev/null and b/docs/assets/images/icons/icons8-report-64.png differ
diff --git a/docs/assets/images/icons/icons8-source-64.png b/docs/assets/images/icons/icons8-source-64.png
new file mode 100644
index 0000000000..c6781eafce
Binary files /dev/null and b/docs/assets/images/icons/icons8-source-64.png differ
diff --git a/docs/assets/images/icons/icons8-sys-info-64.png b/docs/assets/images/icons/icons8-sys-info-64.png
new file mode 100644
index 0000000000..2fac87233c
Binary files /dev/null and b/docs/assets/images/icons/icons8-sys-info-64.png differ
diff --git a/docs/assets/images/icons/icons8-template-64.png b/docs/assets/images/icons/icons8-template-64.png
new file mode 100644
index 0000000000..db225de71f
Binary files /dev/null and b/docs/assets/images/icons/icons8-template-64.png differ
diff --git a/docs/assets/images/icons/icons8-true-false-64.png b/docs/assets/images/icons/icons8-true-false-64.png
new file mode 100644
index 0000000000..fe874cee4c
Binary files /dev/null and b/docs/assets/images/icons/icons8-true-false-64.png differ
diff --git a/docs/assets/images/logos/logo.svg b/docs/assets/images/logos/logo.svg
new file mode 100644
index 0000000000..228eab724a
--- /dev/null
+++ b/docs/assets/images/logos/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/assets/js/asciinema-player.js b/docs/assets/js/asciinema-player.js
new file mode 100644
index 0000000000..0d14b0dfcb
--- /dev/null
+++ b/docs/assets/js/asciinema-player.js
@@ -0,0 +1,32424 @@
+/**
+ * asciinema-player v2.6.1
+ *
+ * Copyright 2011-2018, Marcin Kulik
+ *
+ */
+
+// CustomEvent polyfill from MDN (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent)
+
+(function () {
+ if (typeof window.CustomEvent === "function") {
+ return false;
+ }
+
+ function CustomEvent(event, params) {
+ params = params || {bubbles: false, cancelable: false, detail: undefined};
+ var evt = document.createEvent('CustomEvent');
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
+ return evt;
+ }
+
+ CustomEvent.prototype = window.Event.prototype;
+
+ window.CustomEvent = CustomEvent;
+})();
+
+/**
+ * @license
+ * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+ * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+ * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+ * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+ * Code distributed by Google as part of the polymer project is also
+ * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+ */
+// @version 0.7.22
+"undefined" == typeof WeakMap && !function () {
+ var e = Object.defineProperty, t = Date.now() % 1e9, n = function () {
+ this.name = "__st" + (1e9 * Math.random() >>> 0) + (t++ + "__")
+ };
+ n.prototype = {
+ set: function (t, n) {
+ var o = t[this.name];
+ return o && o[0] === t ? o[1] = n : e(t, this.name, {value: [t, n], writable: !0}), this
+ }, get: function (e) {
+ var t;
+ return (t = e[this.name]) && t[0] === e ? t[1] : void 0
+ }, "delete": function (e) {
+ var t = e[this.name];
+ return t && t[0] === e ? (t[0] = t[1] = void 0, !0) : !1
+ }, has: function (e) {
+ var t = e[this.name];
+ return t ? t[0] === e : !1
+ }
+ }, window.WeakMap = n
+}(), function (e) {
+ function t(e) {
+ E.push(e), b || (b = !0, w(o))
+ }
+
+ function n(e) {
+ return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(e) || e
+ }
+
+ function o() {
+ b = !1;
+ var e = E;
+ E = [], e.sort(function (e, t) {
+ return e.uid_ - t.uid_
+ });
+ var t = !1;
+ e.forEach(function (e) {
+ var n = e.takeRecords();
+ r(e), n.length && (e.callback_(n, e), t = !0)
+ }), t && o()
+ }
+
+ function r(e) {
+ e.nodes_.forEach(function (t) {
+ var n = v.get(t);
+ n && n.forEach(function (t) {
+ t.observer === e && t.removeTransientObservers()
+ })
+ })
+ }
+
+ function i(e, t) {
+ for (var n = e; n; n = n.parentNode) {
+ var o = v.get(n);
+ if (o) {
+ for (var r = 0; r < o.length; r++) {
+ var i = o[r], a = i.options;
+ if (n === e || a.subtree) {
+ var d = t(a);
+ d && i.enqueue(d)
+ }
+ }
+ }
+ }
+ }
+
+ function a(e) {
+ this.callback_ = e, this.nodes_ = [], this.records_ = [], this.uid_ = ++_
+ }
+
+ function d(e, t) {
+ this.type = e, this.target = t, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null
+ }
+
+ function s(e) {
+ var t = new d(e.type, e.target);
+ return t.addedNodes = e.addedNodes.slice(), t.removedNodes = e.removedNodes.slice(), t.previousSibling = e.previousSibling, t.nextSibling = e.nextSibling, t.attributeName = e.attributeName, t.attributeNamespace = e.attributeNamespace, t.oldValue = e.oldValue, t
+ }
+
+ function u(e, t) {
+ return y = new d(e, t)
+ }
+
+ function c(e) {
+ return N ? N : (N = s(y), N.oldValue = e, N)
+ }
+
+ function l() {
+ y = N = void 0
+ }
+
+ function f(e) {
+ return e === N || e === y
+ }
+
+ function p(e, t) {
+ return e === t ? e : N && f(e) ? N : null
+ }
+
+ function m(e, t, n) {
+ this.observer = e, this.target = t, this.options = n, this.transientObservedNodes = []
+ }
+
+ if (!e.JsMutationObserver) {
+ var w, v = new WeakMap;
+ if (/Trident|Edge/.test(
+ navigator.userAgent)) {
+ w = setTimeout;
+ } else if (window.setImmediate) {
+ w = window.setImmediate;
+ } else {
+ var h = [], g = String(Math.random());
+ window.addEventListener("message", function (e) {
+ if (e.data === g) {
+ var t = h;
+ h = [], t.forEach(function (e) {
+ e()
+ })
+ }
+ }), w = function (e) {
+ h.push(e), window.postMessage(g, "*")
+ }
+ }
+ var b = !1, E = [], _ = 0;
+ a.prototype = {
+ observe: function (e, t) {
+ if (e = n(e), !t.childList && !t.attributes && !t.characterData || t.attributeOldValue
+ && !t.attributes || t.attributeFilter && t.attributeFilter.length && !t.attributes
+ || t.characterDataOldValue && !t.characterData) {
+ throw new SyntaxError;
+ }
+ var o = v.get(e);
+ o || v.set(e, o = []);
+ for (var r, i = 0; i < o.length; i++) {
+ if (o[i].observer === this) {
+ r = o[i], r.removeListeners(), r.options = t;
+ break
+ }
+ }
+ r || (r = new m(this, e, t), o.push(r), this.nodes_.push(e)), r.addListeners()
+ }, disconnect: function () {
+ this.nodes_.forEach(function (e) {
+ for (var t = v.get(e), n = 0; n < t.length; n++) {
+ var o = t[n];
+ if (o.observer === this) {
+ o.removeListeners(), t.splice(n, 1);
+ break
+ }
+ }
+ }, this), this.records_ = []
+ }, takeRecords: function () {
+ var e = this.records_;
+ return this.records_ = [], e
+ }
+ };
+ var y, N;
+ m.prototype = {
+ enqueue: function (e) {
+ var n = this.observer.records_, o = n.length;
+ if (n.length > 0) {
+ var r = n[o - 1], i = p(r, e);
+ if (i) {
+ return void (n[o - 1] = i)
+ }
+ } else {
+ t(this.observer);
+ }
+ n[o] = e
+ }, addListeners: function () {
+ this.addListeners_(this.target)
+ }, addListeners_: function (e) {
+ var t = this.options;
+ t.attributes && e.addEventListener("DOMAttrModified", this, !0), t.characterData
+ && e.addEventListener("DOMCharacterDataModified", this, !0), t.childList
+ && e.addEventListener("DOMNodeInserted", this, !0), (t.childList || t.subtree)
+ && e.addEventListener("DOMNodeRemoved", this, !0)
+ }, removeListeners: function () {
+ this.removeListeners_(this.target)
+ }, removeListeners_: function (e) {
+ var t = this.options;
+ t.attributes && e.removeEventListener("DOMAttrModified", this, !0), t.characterData
+ && e.removeEventListener("DOMCharacterDataModified", this, !0), t.childList
+ && e.removeEventListener("DOMNodeInserted", this, !0), (t.childList || t.subtree)
+ && e.removeEventListener("DOMNodeRemoved", this, !0)
+ }, addTransientObserver: function (e) {
+ if (e !== this.target) {
+ this.addListeners_(e), this.transientObservedNodes.push(e);
+ var t = v.get(e);
+ t || v.set(e, t = []), t.push(this)
+ }
+ }, removeTransientObservers: function () {
+ var e = this.transientObservedNodes;
+ this.transientObservedNodes = [], e.forEach(function (e) {
+ this.removeListeners_(e);
+ for (var t = v.get(e), n = 0; n < t.length; n++) {
+ if (t[n] === this) {
+ t.splice(n, 1);
+ break
+ }
+ }
+ }, this)
+ }, handleEvent: function (e) {
+ switch (e.stopImmediatePropagation(), e.type) {
+ case"DOMAttrModified":
+ var t = e.attrName, n = e.relatedNode.namespaceURI, o = e.target,
+ r = new u("attributes", o);
+ r.attributeName = t, r.attributeNamespace = n;
+ var a = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue;
+ i(o, function (e) {
+ return !e.attributes || e.attributeFilter && e.attributeFilter.length && -1
+ === e.attributeFilter.indexOf(t) && -1 === e.attributeFilter.indexOf(n) ? void 0
+ : e.attributeOldValue ? c(a) : r
+ });
+ break;
+ case"DOMCharacterDataModified":
+ var o = e.target, r = u("characterData", o), a = e.prevValue;
+ i(o, function (e) {
+ return e.characterData ? e.characterDataOldValue ? c(a) : r : void 0
+ });
+ break;
+ case"DOMNodeRemoved":
+ this.addTransientObserver(e.target);
+ case"DOMNodeInserted":
+ var d, s, f = e.target;
+ "DOMNodeInserted" === e.type ? (d = [f], s = []) : (d = [], s = [f]);
+ var p = f.previousSibling, m = f.nextSibling, r = u("childList", e.target.parentNode);
+ r.addedNodes = d, r.removedNodes = s, r.previousSibling = p, r.nextSibling = m, i(
+ e.relatedNode, function (e) {
+ return e.childList ? r : void 0
+ })
+ }
+ l()
+ }
+ }, e.JsMutationObserver = a, e.MutationObserver
+ || (e.MutationObserver = a, a._isPolyfilled = !0)
+ }
+}(self), function (e) {
+ "use strict";
+ if (!window.performance) {
+ var t = Date.now();
+ window.performance = {
+ now: function () {
+ return Date.now() - t
+ }
+ }
+ }
+ window.requestAnimationFrame || (window.requestAnimationFrame = function () {
+ var e = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;
+ return e ? function (t) {
+ return e(function () {
+ t(performance.now())
+ })
+ } : function (e) {
+ return window.setTimeout(e, 1e3 / 60)
+ }
+ }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {
+ return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (e) {
+ clearTimeout(e)
+ }
+ }());
+ var n = function () {
+ var e = document.createEvent("Event");
+ return e.initEvent("foo", !0, !0), e.preventDefault(), e.defaultPrevented
+ }();
+ if (!n) {
+ var o = Event.prototype.preventDefault;
+ Event.prototype.preventDefault = function () {
+ this.cancelable && (o.call(this), Object.defineProperty(this, "defaultPrevented", {
+ get: function () {
+ return !0
+ }, configurable: !0
+ }))
+ }
+ }
+ var r = /Trident/.test(navigator.userAgent);
+ if ((!window.CustomEvent || r && "function" != typeof window.CustomEvent)
+ && (window.CustomEvent = function (e, t) {
+ t = t || {};
+ var n = document.createEvent("CustomEvent");
+ return n.initCustomEvent(e, Boolean(t.bubbles), Boolean(t.cancelable), t.detail), n
+ }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || r && "function"
+ != typeof window.Event) {
+ var i = window.Event;
+ window.Event = function (e, t) {
+ t = t || {};
+ var n = document.createEvent("Event");
+ return n.initEvent(e, Boolean(t.bubbles), Boolean(t.cancelable)), n
+ }, window.Event.prototype = i.prototype
+ }
+}(window.WebComponents), window.CustomElements = window.CustomElements
+ || {flags: {}}, function (e) {
+ var t = e.flags, n = [], o = function (e) {
+ n.push(e)
+ }, r = function () {
+ n.forEach(function (t) {
+ t(e)
+ })
+ };
+ e.addModule = o, e.initializeModules = r, e.hasNative = Boolean(
+ document.registerElement), e.isIE = /Trident/.test(
+ navigator.userAgent), e.useNative = !t.register && e.hasNative && !window.ShadowDOMPolyfill
+ && (!window.HTMLImports || window.HTMLImports.useNative)
+}(window.CustomElements), window.CustomElements.addModule(function (e) {
+ function t(e, t) {
+ n(e, function (e) {
+ return t(e) ? !0 : void o(e, t)
+ }), o(e, t)
+ }
+
+ function n(e, t, o) {
+ var r = e.firstElementChild;
+ if (!r) {
+ for (r = e.firstChild; r && r.nodeType !== Node.ELEMENT_NODE;) {
+ r = r.nextSibling;
+ }
+ }
+ for (; r;) {
+ t(r, o) !== !0 && n(r, t, o), r = r.nextElementSibling;
+ }
+ return null
+ }
+
+ function o(e, n) {
+ for (var o = e.shadowRoot; o;) {
+ t(o, n), o = o.olderShadowRoot
+ }
+ }
+
+ function r(e, t) {
+ i(e, t, [])
+ }
+
+ function i(e, t, n) {
+ if (e = window.wrap(e), !(n.indexOf(e) >= 0)) {
+ n.push(e);
+ for (var o, r = e.querySelectorAll("link[rel=" + a + "]"), d = 0, s = r.length;
+ s > d && (o = r[d]); d++) {
+ o["import"] && i(o["import"], t, n);
+ }
+ t(e)
+ }
+ }
+
+ var a = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none";
+ e.forDocumentTree = r, e.forSubtree = t
+}), window.CustomElements.addModule(function (e) {
+ function t(e, t) {
+ return n(e, t) || o(e, t)
+ }
+
+ function n(t, n) {
+ return e.upgrade(t, n) ? !0 : void (n && a(t))
+ }
+
+ function o(e, t) {
+ b(e, function (e) {
+ return n(e, t) ? !0 : void 0
+ })
+ }
+
+ function r(e) {
+ N.push(e), y || (y = !0, setTimeout(i))
+ }
+
+ function i() {
+ y = !1;
+ for (var e, t = N, n = 0, o = t.length; o > n && (e = t[n]); n++) {
+ e();
+ }
+ N = []
+ }
+
+ function a(e) {
+ _ ? r(function () {
+ d(e)
+ }) : d(e)
+ }
+
+ function d(e) {
+ e.__upgraded__ && !e.__attached && (e.__attached = !0, e.attachedCallback
+ && e.attachedCallback())
+ }
+
+ function s(e) {
+ u(e), b(e, function (e) {
+ u(e)
+ })
+ }
+
+ function u(e) {
+ _ ? r(function () {
+ c(e)
+ }) : c(e)
+ }
+
+ function c(e) {
+ e.__upgraded__ && e.__attached && (e.__attached = !1, e.detachedCallback
+ && e.detachedCallback())
+ }
+
+ function l(e) {
+ for (var t = e, n = window.wrap(document); t;) {
+ if (t == n) {
+ return !0;
+ }
+ t = t.parentNode || t.nodeType === Node.DOCUMENT_FRAGMENT_NODE && t.host
+ }
+ }
+
+ function f(e) {
+ if (e.shadowRoot && !e.shadowRoot.__watched) {
+ g.dom && console.log("watching shadow-root for: ", e.localName);
+ for (var t = e.shadowRoot; t;) {
+ w(t), t = t.olderShadowRoot
+ }
+ }
+ }
+
+ function p(e, n) {
+ if (g.dom) {
+ var o = n[0];
+ if (o && "childList" === o.type && o.addedNodes && o.addedNodes) {
+ for (var r = o.addedNodes[0]; r && r !== document && !r.host;) {
+ r = r.parentNode;
+ }
+ var i = r && (r.URL || r._URL || r.host && r.host.localName) || "";
+ i = i.split("/?").shift().split("/").pop()
+ }
+ console.group("mutations (%d) [%s]", n.length, i || "")
+ }
+ var a = l(e);
+ n.forEach(function (e) {
+ "childList" === e.type && (M(e.addedNodes, function (e) {
+ e.localName && t(e, a)
+ }), M(e.removedNodes, function (e) {
+ e.localName && s(e)
+ }))
+ }), g.dom && console.groupEnd()
+ }
+
+ function m(e) {
+ for (e = window.wrap(e), e || (e = window.wrap(document)); e.parentNode;) {
+ e = e.parentNode;
+ }
+ var t = e.__observer;
+ t && (p(e, t.takeRecords()), i())
+ }
+
+ function w(e) {
+ if (!e.__observer) {
+ var t = new MutationObserver(p.bind(this, e));
+ t.observe(e, {childList: !0, subtree: !0}), e.__observer = t
+ }
+ }
+
+ function v(e) {
+ e = window.wrap(e), g.dom && console.group("upgradeDocument: ", e.baseURI.split("/").pop());
+ var n = e === window.wrap(document);
+ t(e, n), w(e), g.dom && console.groupEnd()
+ }
+
+ function h(e) {
+ E(e, v)
+ }
+
+ var g = e.flags, b = e.forSubtree, E = e.forDocumentTree,
+ _ = window.MutationObserver._isPolyfilled && g["throttle-attached"];
+ e.hasPolyfillMutations = _, e.hasThrottledAttached = _;
+ var y = !1, N = [], M = Array.prototype.forEach.call.bind(Array.prototype.forEach),
+ O = Element.prototype.createShadowRoot;
+ O && (Element.prototype.createShadowRoot = function () {
+ var e = O.call(this);
+ return window.CustomElements.watchShadow(this), e
+ }), e.watchShadow = f, e.upgradeDocumentTree = h, e.upgradeDocument = v, e.upgradeSubtree = o, e.upgradeAll = t, e.attached = a, e.takeRecords = m
+}), window.CustomElements.addModule(function (e) {
+ function t(t, o) {
+ if ("template" === t.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate
+ && HTMLTemplateElement.decorate(t), !t.__upgraded__ && t.nodeType === Node.ELEMENT_NODE) {
+ var r = t.getAttribute("is"),
+ i = e.getRegisteredDefinition(t.localName) || e.getRegisteredDefinition(r);
+ if (i && (r && i.tag == t.localName || !r && !i["extends"])) {
+ return n(t, i, o)
+ }
+ }
+ }
+
+ function n(t, n, r) {
+ return a.upgrade && console.group("upgrade:", t.localName), n.is && t.setAttribute("is",
+ n.is), o(t, n), t.__upgraded__ = !0, i(t), r && e.attached(t), e.upgradeSubtree(t,
+ r), a.upgrade && console.groupEnd(), t
+ }
+
+ function o(e, t) {
+ Object.__proto__ ? e.__proto__ = t.prototype : (r(e, t.prototype,
+ t["native"]), e.__proto__ = t.prototype)
+ }
+
+ function r(e, t, n) {
+ for (var o = {}, r = t; r !== n && r !== HTMLElement.prototype;) {
+ for (var i, a = Object.getOwnPropertyNames(r), d = 0; i = a[d]; d++) {
+ o[i]
+ || (Object.defineProperty(e, i, Object.getOwnPropertyDescriptor(r, i)), o[i] = 1);
+ }
+ r = Object.getPrototypeOf(r)
+ }
+ }
+
+ function i(e) {
+ e.createdCallback && e.createdCallback()
+ }
+
+ var a = e.flags;
+ e.upgrade = t, e.upgradeWithDefinition = n, e.implementPrototype = o
+}), window.CustomElements.addModule(function (e) {
+ function t(t, o) {
+ var s = o || {};
+ if (!t) {
+ throw new Error("document.registerElement: first argument `name` must not be empty");
+ }
+ if (t.indexOf("-") < 0) {
+ throw new Error(
+ "document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"
+ + String(t) + "'.");
+ }
+ if (r(t)) {
+ throw new Error(
+ "Failed to execute 'registerElement' on 'Document': Registration failed for type '"
+ + String(
+ t) + "'. The type name is invalid.");
+ }
+ if (u(t)) {
+ throw new Error(
+ "DuplicateDefinitionError: a type with name '" + String(t) + "' is already registered");
+ }
+ return s.prototype || (s.prototype = Object.create(
+ HTMLElement.prototype)), s.__name = t.toLowerCase(), s["extends"]
+ && (s["extends"] = s["extends"].toLowerCase()), s.lifecycle = s.lifecycle || {}, s.ancestry = i(
+ s["extends"]), a(s), d(s), n(s.prototype), c(s.__name, s), s.ctor = l(
+ s), s.ctor.prototype = s.prototype, s.prototype.constructor = s.ctor, e.ready && v(
+ document), s.ctor
+ }
+
+ function n(e) {
+ if (!e.setAttribute._polyfilled) {
+ var t = e.setAttribute;
+ e.setAttribute = function (e, n) {
+ o.call(this, e, n, t)
+ };
+ var n = e.removeAttribute;
+ e.removeAttribute = function (e) {
+ o.call(this, e, null, n)
+ }, e.setAttribute._polyfilled = !0
+ }
+ }
+
+ function o(e, t, n) {
+ e = e.toLowerCase();
+ var o = this.getAttribute(e);
+ n.apply(this, arguments);
+ var r = this.getAttribute(e);
+ this.attributeChangedCallback && r !== o && this.attributeChangedCallback(e, o, r)
+ }
+
+ function r(e) {
+ for (var t = 0; t < _.length; t++) {
+ if (e === _[t]) {
+ return !0
+ }
+ }
+ }
+
+ function i(e) {
+ var t = u(e);
+ return t ? i(t["extends"]).concat([t]) : []
+ }
+
+ function a(e) {
+ for (var t, n = e["extends"], o = 0; t = e.ancestry[o]; o++) {
+ n = t.is && t.tag;
+ }
+ e.tag = n || e.__name, n && (e.is = e.__name)
+ }
+
+ function d(e) {
+ if (!Object.__proto__) {
+ var t = HTMLElement.prototype;
+ if (e.is) {
+ var n = document.createElement(e.tag);
+ t = Object.getPrototypeOf(n)
+ }
+ for (var o, r = e.prototype, i = !1; r;) {
+ r == t && (i = !0), o = Object.getPrototypeOf(r), o
+ && (r.__proto__ = o), r = o;
+ }
+ i || console.warn(
+ e.tag + " prototype not found in prototype chain for " + e.is), e["native"] = t
+ }
+ }
+
+ function s(e) {
+ return g(M(e.tag), e)
+ }
+
+ function u(e) {
+ return e ? y[e.toLowerCase()] : void 0
+ }
+
+ function c(e, t) {
+ y[e] = t
+ }
+
+ function l(e) {
+ return function () {
+ return s(e)
+ }
+ }
+
+ function f(e, t, n) {
+ return e === N ? p(t, n) : O(e, t)
+ }
+
+ function p(e, t) {
+ e && (e = e.toLowerCase()), t && (t = t.toLowerCase());
+ var n = u(t || e);
+ if (n) {
+ if (e == n.tag && t == n.is) {
+ return new n.ctor;
+ }
+ if (!t && !n.is) {
+ return new n.ctor
+ }
+ }
+ var o;
+ return t ? (o = p(e), o.setAttribute("is", t), o) : (o = M(e), e.indexOf("-") >= 0 && b(o,
+ HTMLElement), o)
+ }
+
+ function m(e, t) {
+ var n = e[t];
+ e[t] = function () {
+ var e = n.apply(this, arguments);
+ return h(e), e
+ }
+ }
+
+ var w, v = (e.isIE, e.upgradeDocumentTree), h = e.upgradeAll, g = e.upgradeWithDefinition,
+ b = e.implementPrototype, E = e.useNative,
+ _ = ["annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri",
+ "font-face-format", "font-face-name", "missing-glyph"], y = {},
+ N = "http://www.w3.org/1999/xhtml", M = document.createElement.bind(document),
+ O = document.createElementNS.bind(document);
+ w = Object.__proto__ || E ? function (e, t) {
+ return e instanceof t
+ } : function (e, t) {
+ if (e instanceof t) {
+ return !0;
+ }
+ for (var n = e; n;) {
+ if (n === t.prototype) {
+ return !0;
+ }
+ n = n.__proto__
+ }
+ return !1
+ }, m(Node.prototype, "cloneNode"), m(document,
+ "importNode"), document.registerElement = t, document.createElement = p, document.createElementNS = f, e.registry = y, e["instanceof"] = w, e.reservedTagList = _, e.getRegisteredDefinition = u, document.register = document.registerElement
+}), function (e) {
+ function t() {
+ i(window.wrap(document)), window.CustomElements.ready = !0;
+ var e = window.requestAnimationFrame || function (e) {
+ setTimeout(e, 16)
+ };
+ e(function () {
+ setTimeout(function () {
+ window.CustomElements.readyTime = Date.now(), window.HTMLImports
+ && (window.CustomElements.elapsed = window.CustomElements.readyTime
+ - window.HTMLImports.readyTime), document.dispatchEvent(
+ new CustomEvent("WebComponentsReady", {bubbles: !0}))
+ })
+ })
+ }
+
+ var n = e.useNative, o = e.initializeModules;
+ e.isIE;
+ if (n) {
+ var r = function () {
+ };
+ e.watchShadow = r, e.upgrade = r, e.upgradeAll = r, e.upgradeDocumentTree = r, e.upgradeSubtree = r, e.takeRecords = r, e["instanceof"] = function (e,
+ t) {
+ return e instanceof t
+ }
+ } else {
+ o();
+ }
+ var i = e.upgradeDocumentTree, a = e.upgradeDocument;
+ if (window.wrap || (window.ShadowDOMPolyfill
+ ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded)
+ : window.wrap = window.unwrap = function (e) {
+ return e
+ }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (e) {
+ e["import"] && a(wrap(e["import"]))
+ }), "complete" === document.readyState || e.flags.eager) {
+ t();
+ } else if ("interactive"
+ !== document.readyState || window.attachEvent || window.HTMLImports
+ && !window.HTMLImports.ready) {
+ var d = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded"
+ : "DOMContentLoaded";
+ window.addEventListener(d, t)
+ } else {
+ t()
+ }
+}(window.CustomElements);
+if (typeof Math.imul == "undefined" || (Math.imul(0xffffffff, 5) == 0)) {
+ Math.imul = function (a, b) {
+ var ah = (a >>> 16) & 0xffff;
+ var al = a & 0xffff;
+ var bh = (b >>> 16) & 0xffff;
+ var bl = b & 0xffff;
+ // the shift by 0 fixes the sign on the high part
+ // the final |0 converts the unsigned value into a signed value
+ return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);
+ }
+}
+
+/**
+ * React v15.5.4
+ *
+ * Copyright 2013-present, Facebook, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree. An additional grant
+ * of patent rights can be found in the PATENTS file in the same directory.
+ *
+ */
+!function (t) {
+ if ("object" == typeof exports && "undefined"
+ != typeof module) {
+ module.exports = t();
+ } else if ("function" == typeof define
+ && define.amd) {
+ define([], t);
+ } else {
+ var e;
+ e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined"
+ != typeof self ? self : this, e.React = t()
+ }
+}(function () {
+ return function t(e, n, r) {
+ function o(u, a) {
+ if (!n[u]) {
+ if (!e[u]) {
+ var s = "function" == typeof require && require;
+ if (!a && s) {
+ return s(u, !0);
+ }
+ if (i) {
+ return i(u, !0);
+ }
+ var c = new Error("Cannot find module '" + u + "'");
+ throw c.code = "MODULE_NOT_FOUND", c
+ }
+ var l = n[u] = {exports: {}};
+ e[u][0].call(l.exports, function (t) {
+ var n = e[u][1][t];
+ return o(n || t)
+ }, l, l.exports, t, e, n, r)
+ }
+ return n[u].exports
+ }
+
+ for (var i = "function" == typeof require && require, u = 0; u < r.length; u++) {
+ o(r[u]);
+ }
+ return o
+ }({
+ 1: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ var e = {"=": "=0", ":": "=2"};
+ return "$" + ("" + t).replace(/[=:]/g, function (t) {
+ return e[t]
+ })
+ }
+
+ function o(t) {
+ var e = {"=0": "=", "=2": ":"};
+ return ("" + ("." === t[0] && "$" === t[1] ? t.substring(2) : t.substring(1))).replace(
+ /(=0|=2)/g, function (t) {
+ return e[t]
+ })
+ }
+
+ var i = {escape: r, unescape: o};
+ e.exports = i
+ }, {}],
+ 2: [function (t, e, n) {
+ "use strict";
+ var r = t(20), o = (t(24), function (t) {
+ var e = this;
+ if (e.instancePool.length) {
+ var n = e.instancePool.pop();
+ return e.call(n, t), n
+ }
+ return new e(t)
+ }), i = function (t, e) {
+ var n = this;
+ if (n.instancePool.length) {
+ var r = n.instancePool.pop();
+ return n.call(r, t, e), r
+ }
+ return new n(t, e)
+ }, u = function (t, e, n) {
+ var r = this;
+ if (r.instancePool.length) {
+ var o = r.instancePool.pop();
+ return r.call(o, t, e, n), o
+ }
+ return new r(t, e, n)
+ }, a = function (t, e, n, r) {
+ var o = this;
+ if (o.instancePool.length) {
+ var i = o.instancePool.pop();
+ return o.call(i, t, e, n, r), i
+ }
+ return new o(t, e, n, r)
+ }, s = function (t) {
+ var e = this;
+ t instanceof e || r("25"), t.destructor(), e.instancePool.length < e.poolSize
+ && e.instancePool.push(t)
+ }, c = o, l = function (t, e) {
+ var n = t;
+ return n.instancePool = [], n.getPooled = e || c, n.poolSize
+ || (n.poolSize = 10), n.release = s, n
+ }, f = {
+ addPoolingTo: l,
+ oneArgumentPooler: o,
+ twoArgumentPooler: i,
+ threeArgumentPooler: u,
+ fourArgumentPooler: a
+ };
+ e.exports = f
+ }, {20: 20, 24: 24}],
+ 3: [function (t, e, n) {
+ "use strict";
+ var r = t(26), o = t(4), i = t(6), u = t(14), a = t(5), s = t(8), c = t(9), l = t(13),
+ f = t(16), p = t(19), d = (t(25), c.createElement), y = c.createFactory, h = c.cloneElement,
+ v = r, m = {
+ Children: {
+ map: o.map,
+ forEach: o.forEach,
+ count: o.count,
+ toArray: o.toArray,
+ only: p
+ },
+ Component: i,
+ PureComponent: u,
+ createElement: d,
+ cloneElement: h,
+ isValidElement: c.isValidElement,
+ PropTypes: l,
+ createClass: a.createClass,
+ createFactory: y,
+ createMixin: function (t) {
+ return t
+ },
+ DOM: s,
+ version: f,
+ __spread: v
+ };
+ e.exports = m
+ }, {13: 13, 14: 14, 16: 16, 19: 19, 25: 25, 26: 26, 4: 4, 5: 5, 6: 6, 8: 8, 9: 9}],
+ 4: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ return ("" + t).replace(E, "$&/")
+ }
+
+ function o(t, e) {
+ this.func = t, this.context = e, this.count = 0
+ }
+
+ function i(t, e, n) {
+ var r = t.func, o = t.context;
+ r.call(o, e, t.count++)
+ }
+
+ function u(t, e, n) {
+ if (null == t) {
+ return t;
+ }
+ var r = o.getPooled(e, n);
+ m(t, i, r), o.release(r)
+ }
+
+ function a(t, e, n, r) {
+ this.result = t, this.keyPrefix = e, this.func = n, this.context = r, this.count = 0
+ }
+
+ function s(t, e, n) {
+ var o = t.result, i = t.keyPrefix, u = t.func, a = t.context, s = u.call(a, e, t.count++);
+ Array.isArray(s) ? c(s, o, n, v.thatReturnsArgument) : null != s && (h.isValidElement(s)
+ && (s = h.cloneAndReplaceKey(s,
+ i + (!s.key || e && e.key === s.key ? "" : r(s.key) + "/") + n)), o.push(s))
+ }
+
+ function c(t, e, n, o, i) {
+ var u = "";
+ null != n && (u = r(n) + "/");
+ var c = a.getPooled(e, u, o, i);
+ m(t, s, c), a.release(c)
+ }
+
+ function l(t, e, n) {
+ if (null == t) {
+ return t;
+ }
+ var r = [];
+ return c(t, r, null, e, n), r
+ }
+
+ function f(t, e, n) {
+ return null
+ }
+
+ function p(t, e) {
+ return m(t, f, null)
+ }
+
+ function d(t) {
+ var e = [];
+ return c(t, e, null, v.thatReturnsArgument), e
+ }
+
+ var y = t(2), h = t(9), v = t(22), m = t(21), b = y.twoArgumentPooler,
+ g = y.fourArgumentPooler, E = /\/+/g;
+ o.prototype.destructor = function () {
+ this.func = null, this.context = null, this.count = 0
+ }, y.addPoolingTo(o, b), a.prototype.destructor = function () {
+ this.result = null, this.keyPrefix = null, this.func = null, this.context = null, this.count = 0
+ }, y.addPoolingTo(a, g);
+ var x = {forEach: u, map: l, mapIntoWithKeyPrefixInternal: c, count: p, toArray: d};
+ e.exports = x
+ }, {2: 2, 21: 21, 22: 22, 9: 9}],
+ 5: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ return t
+ }
+
+ function o(t, e) {
+ var n = E.hasOwnProperty(e) ? E[e] : null;
+ _.hasOwnProperty(e) && "OVERRIDE_BASE" !== n && p("73", e), t && "DEFINE_MANY" !== n
+ && "DEFINE_MANY_MERGED" !== n && p("74", e)
+ }
+
+ function i(t, e) {
+ if (e) {
+ "function" == typeof e && p("75"), h.isValidElement(e) && p("76");
+ var n = t.prototype, r = n.__reactAutoBindPairs;
+ e.hasOwnProperty(b) && x.mixins(t, e.mixins);
+ for (var i in e) {
+ if (e.hasOwnProperty(i) && i !== b) {
+ var u = e[i], a = n.hasOwnProperty(i);
+ if (o(a, i), x.hasOwnProperty(i)) {
+ x[i](t, u);
+ } else {
+ var l = E.hasOwnProperty(i), f = "function" == typeof u,
+ d = f && !l && !a && !1 !== e.autobind;
+ if (d) {
+ r.push(i, u), n[i] = u;
+ } else if (a) {
+ var y = E[i];
+ (!l || "DEFINE_MANY_MERGED" !== y && "DEFINE_MANY" !== y) && p("77", y,
+ i), "DEFINE_MANY_MERGED" === y ? n[i] = s(n[i], u) : "DEFINE_MANY" === y
+ && (n[i] = c(n[i], u))
+ } else {
+ n[i] = u
+ }
+ }
+ }
+ }
+ }
+ }
+
+ function u(t, e) {
+ if (e) {
+ for (var n in e) {
+ var r = e[n];
+ if (e.hasOwnProperty(n)) {
+ var o = n in x;
+ o && p("78", n);
+ var i = n in t;
+ i && p("79", n), t[n] = r
+ }
+ }
+ }
+ }
+
+ function a(t, e) {
+ t && e && "object" == typeof t && "object" == typeof e || p("80");
+ for (var n in e) {
+ e.hasOwnProperty(n) && (void 0 !== t[n] && p("81", n), t[n] = e[n]);
+ }
+ return t
+ }
+
+ function s(t, e) {
+ return function () {
+ var n = t.apply(this, arguments), r = e.apply(this, arguments);
+ if (null == n) {
+ return r;
+ }
+ if (null == r) {
+ return n;
+ }
+ var o = {};
+ return a(o, n), a(o, r), o
+ }
+ }
+
+ function c(t, e) {
+ return function () {
+ t.apply(this, arguments), e.apply(this, arguments)
+ }
+ }
+
+ function l(t, e) {
+ return e.bind(t)
+ }
+
+ function f(t) {
+ for (var e = t.__reactAutoBindPairs, n = 0; n < e.length; n += 2) {
+ var r = e[n], o = e[n + 1];
+ t[r] = l(t, o)
+ }
+ }
+
+ var p = t(20), d = t(26), y = t(6), h = t(9), v = (t(12), t(11)), m = t(23),
+ b = (t(24), t(25), "mixins"), g = [], E = {
+ mixins: "DEFINE_MANY",
+ statics: "DEFINE_MANY",
+ propTypes: "DEFINE_MANY",
+ contextTypes: "DEFINE_MANY",
+ childContextTypes: "DEFINE_MANY",
+ getDefaultProps: "DEFINE_MANY_MERGED",
+ getInitialState: "DEFINE_MANY_MERGED",
+ getChildContext: "DEFINE_MANY_MERGED",
+ render: "DEFINE_ONCE",
+ componentWillMount: "DEFINE_MANY",
+ componentDidMount: "DEFINE_MANY",
+ componentWillReceiveProps: "DEFINE_MANY",
+ shouldComponentUpdate: "DEFINE_ONCE",
+ componentWillUpdate: "DEFINE_MANY",
+ componentDidUpdate: "DEFINE_MANY",
+ componentWillUnmount: "DEFINE_MANY",
+ updateComponent: "OVERRIDE_BASE"
+ }, x = {
+ displayName: function (t, e) {
+ t.displayName = e
+ }, mixins: function (t, e) {
+ if (e) {
+ for (var n = 0; n < e.length; n++) {
+ i(t, e[n])
+ }
+ }
+ }, childContextTypes: function (t, e) {
+ t.childContextTypes = d({}, t.childContextTypes, e)
+ }, contextTypes: function (t, e) {
+ t.contextTypes = d({}, t.contextTypes, e)
+ }, getDefaultProps: function (t, e) {
+ t.getDefaultProps ? t.getDefaultProps = s(t.getDefaultProps, e) : t.getDefaultProps = e
+ }, propTypes: function (t, e) {
+ t.propTypes = d({}, t.propTypes, e)
+ }, statics: function (t, e) {
+ u(t, e)
+ }, autobind: function () {
+ }
+ }, _ = {
+ replaceState: function (t, e) {
+ this.updater.enqueueReplaceState(this, t), e && this.updater.enqueueCallback(this, e,
+ "replaceState")
+ }, isMounted: function () {
+ return this.updater.isMounted(this)
+ }
+ }, P = function () {
+ };
+ d(P.prototype, y.prototype, _);
+ var w = {
+ createClass: function (t) {
+ var e = r(function (t, n, r) {
+ this.__reactAutoBindPairs.length && f(
+ this), this.props = t, this.context = n, this.refs = m, this.updater = r
+ || v, this.state = null;
+ var o = this.getInitialState ? this.getInitialState() : null;
+ ("object" != typeof o || Array.isArray(o)) && p("82",
+ e.displayName || "ReactCompositeComponent"), this.state = o
+ });
+ e.prototype = new P, e.prototype.constructor = e, e.prototype.__reactAutoBindPairs = [], g.forEach(
+ i.bind(null, e)), i(e, t), e.getDefaultProps
+ && (e.defaultProps = e.getDefaultProps()), e.prototype.render || p("83");
+ for (var n in E) {
+ e.prototype[n] || (e.prototype[n] = null);
+ }
+ return e
+ }, injection: {
+ injectMixin: function (t) {
+ g.push(t)
+ }
+ }
+ };
+ e.exports = w
+ }, {11: 11, 12: 12, 20: 20, 23: 23, 24: 24, 25: 25, 26: 26, 6: 6, 9: 9}],
+ 6: [function (t, e, n) {
+ "use strict";
+
+ function r(t, e, n) {
+ this.props = t, this.context = e, this.refs = u, this.updater = n || i
+ }
+
+ var o = t(20), i = t(11), u = (t(17), t(23));
+ t(24), t(25);
+ r.prototype.isReactComponent = {}, r.prototype.setState = function (t, e) {
+ "object" != typeof t && "function" != typeof t && null != t && o(
+ "85"), this.updater.enqueueSetState(this, t), e && this.updater.enqueueCallback(this, e,
+ "setState")
+ }, r.prototype.forceUpdate = function (t) {
+ this.updater.enqueueForceUpdate(this), t && this.updater.enqueueCallback(this, t,
+ "forceUpdate")
+ };
+ e.exports = r
+ }, {11: 11, 17: 17, 20: 20, 23: 23, 24: 24, 25: 25}],
+ 7: [function (t, e, n) {
+ "use strict";
+ var r = {current: null};
+ e.exports = r
+ }, {}],
+ 8: [function (t, e, n) {
+ "use strict";
+ var r = t(9), o = r.createFactory, i = {
+ a: o("a"),
+ abbr: o("abbr"),
+ address: o("address"),
+ area: o("area"),
+ article: o("article"),
+ aside: o("aside"),
+ audio: o("audio"),
+ b: o("b"),
+ base: o("base"),
+ bdi: o("bdi"),
+ bdo: o("bdo"),
+ big: o("big"),
+ blockquote: o("blockquote"),
+ body: o("body"),
+ br: o("br"),
+ button: o("button"),
+ canvas: o("canvas"),
+ caption: o("caption"),
+ cite: o("cite"),
+ code: o("code"),
+ col: o("col"),
+ colgroup: o("colgroup"),
+ data: o("data"),
+ datalist: o("datalist"),
+ dd: o("dd"),
+ del: o("del"),
+ details: o("details"),
+ dfn: o("dfn"),
+ dialog: o("dialog"),
+ div: o("div"),
+ dl: o("dl"),
+ dt: o("dt"),
+ em: o("em"),
+ embed: o("embed"),
+ fieldset: o("fieldset"),
+ figcaption: o("figcaption"),
+ figure: o("figure"),
+ footer: o("footer"),
+ form: o("form"),
+ h1: o("h1"),
+ h2: o("h2"),
+ h3: o("h3"),
+ h4: o("h4"),
+ h5: o("h5"),
+ h6: o("h6"),
+ head: o("head"),
+ header: o("header"),
+ hgroup: o("hgroup"),
+ hr: o("hr"),
+ html: o("html"),
+ i: o("i"),
+ iframe: o("iframe"),
+ img: o("img"),
+ input: o("input"),
+ ins: o("ins"),
+ kbd: o("kbd"),
+ keygen: o("keygen"),
+ label: o("label"),
+ legend: o("legend"),
+ li: o("li"),
+ link: o("link"),
+ main: o("main"),
+ map: o("map"),
+ mark: o("mark"),
+ menu: o("menu"),
+ menuitem: o("menuitem"),
+ meta: o("meta"),
+ meter: o("meter"),
+ nav: o("nav"),
+ noscript: o("noscript"),
+ object: o("object"),
+ ol: o("ol"),
+ optgroup: o("optgroup"),
+ option: o("option"),
+ output: o("output"),
+ p: o("p"),
+ param: o("param"),
+ picture: o("picture"),
+ pre: o("pre"),
+ progress: o("progress"),
+ q: o("q"),
+ rp: o("rp"),
+ rt: o("rt"),
+ ruby: o("ruby"),
+ s: o("s"),
+ samp: o("samp"),
+ script: o("script"),
+ section: o("section"),
+ select: o("select"),
+ small: o("small"),
+ source: o("source"),
+ span: o("span"),
+ strong: o("strong"),
+ style: o("style"),
+ sub: o("sub"),
+ summary: o("summary"),
+ sup: o("sup"),
+ table: o("table"),
+ tbody: o("tbody"),
+ td: o("td"),
+ textarea: o("textarea"),
+ tfoot: o("tfoot"),
+ th: o("th"),
+ thead: o("thead"),
+ time: o("time"),
+ title: o("title"),
+ tr: o("tr"),
+ track: o("track"),
+ u: o("u"),
+ ul: o("ul"),
+ var: o("var"),
+ video: o("video"),
+ wbr: o("wbr"),
+ circle: o("circle"),
+ clipPath: o("clipPath"),
+ defs: o("defs"),
+ ellipse: o("ellipse"),
+ g: o("g"),
+ image: o("image"),
+ line: o("line"),
+ linearGradient: o("linearGradient"),
+ mask: o("mask"),
+ path: o("path"),
+ pattern: o("pattern"),
+ polygon: o("polygon"),
+ polyline: o("polyline"),
+ radialGradient: o("radialGradient"),
+ rect: o("rect"),
+ stop: o("stop"),
+ svg: o("svg"),
+ text: o("text"),
+ tspan: o("tspan")
+ };
+ e.exports = i
+ }, {9: 9}],
+ 9: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ return void 0 !== t.ref
+ }
+
+ function o(t) {
+ return void 0 !== t.key
+ }
+
+ var i = t(26), u = t(7), a = (t(25), t(17), Object.prototype.hasOwnProperty), s = t(10),
+ c = {key: !0, ref: !0, __self: !0, __source: !0}, l = function (t, e, n, r, o, i, u) {
+ return {$$typeof: s, type: t, key: e, ref: n, props: u, _owner: i}
+ };
+ l.createElement = function (t, e, n) {
+ var i, s = {}, f = null, p = null;
+ if (null != e) {
+ r(e) && (p = e.ref), o(e) && (f = "" + e.key), void 0 === e.__self ? null
+ : e.__self, void 0 === e.__source ? null : e.__source;
+ for (i in e) {
+ a.call(e, i) && !c.hasOwnProperty(i) && (s[i] = e[i])
+ }
+ }
+ var d = arguments.length - 2;
+ if (1 === d) {
+ s.children = n;
+ } else if (d > 1) {
+ for (var y = Array(d), h = 0; h < d; h++) {
+ y[h] = arguments[h + 2];
+ }
+ s.children = y
+ }
+ if (t && t.defaultProps) {
+ var v = t.defaultProps;
+ for (i in v) {
+ void 0 === s[i] && (s[i] = v[i])
+ }
+ }
+ return l(t, f, p, 0, 0, u.current, s)
+ }, l.createFactory = function (t) {
+ var e = l.createElement.bind(null, t);
+ return e.type = t, e
+ }, l.cloneAndReplaceKey = function (t, e) {
+ return l(t.type, e, t.ref, t._self, t._source, t._owner, t.props)
+ }, l.cloneElement = function (t, e, n) {
+ var s, f = i({}, t.props), p = t.key, d = t.ref, y = (t._self, t._source, t._owner);
+ if (null != e) {
+ r(e) && (d = e.ref, y = u.current), o(e) && (p = "" + e.key);
+ var h;
+ t.type && t.type.defaultProps && (h = t.type.defaultProps);
+ for (s in e) {
+ a.call(e, s) && !c.hasOwnProperty(s) && (void 0 === e[s] && void 0 !== h
+ ? f[s] = h[s] : f[s] = e[s])
+ }
+ }
+ var v = arguments.length - 2;
+ if (1 === v) {
+ f.children = n;
+ } else if (v > 1) {
+ for (var m = Array(v), b = 0; b < v; b++) {
+ m[b] = arguments[b + 2];
+ }
+ f.children = m
+ }
+ return l(t.type, p, d, 0, 0, y, f)
+ }, l.isValidElement = function (t) {
+ return "object" == typeof t && null !== t && t.$$typeof === s
+ }, e.exports = l
+ }, {10: 10, 17: 17, 25: 25, 26: 26, 7: 7}],
+ 10: [function (t, e, n) {
+ "use strict";
+ var r = "function" == typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103;
+ e.exports = r
+ }, {}],
+ 11: [function (t, e, n) {
+ "use strict";
+ var r = (t(25), {
+ isMounted: function (t) {
+ return !1
+ }, enqueueCallback: function (t, e) {
+ }, enqueueForceUpdate: function (t) {
+ }, enqueueReplaceState: function (t, e) {
+ }, enqueueSetState: function (t, e) {
+ }
+ });
+ e.exports = r
+ }, {25: 25}],
+ 12: [function (t, e, n) {
+ "use strict";
+ var r = {};
+ e.exports = r
+ }, {}],
+ 13: [function (t, e, n) {
+ "use strict";
+ var r = t(9), o = r.isValidElement, i = t(28);
+ e.exports = i(o)
+ }, {28: 28, 9: 9}],
+ 14: [function (t, e, n) {
+ "use strict";
+
+ function r(t, e, n) {
+ this.props = t, this.context = e, this.refs = s, this.updater = n || a
+ }
+
+ function o() {
+ }
+
+ var i = t(26), u = t(6), a = t(11), s = t(23);
+ o.prototype = u.prototype, r.prototype = new o, r.prototype.constructor = r, i(r.prototype,
+ u.prototype), r.prototype.isPureReactComponent = !0, e.exports = r
+ }, {11: 11, 23: 23, 26: 26, 6: 6}],
+ 15: [function (t, e, n) {
+ "use strict";
+ var r = t(26), o = t(3),
+ i = r(o, {__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {ReactCurrentOwner: t(7)}});
+ e.exports = i
+ }, {26: 26, 3: 3, 7: 7}],
+ 16: [function (t, e, n) {
+ "use strict";
+ e.exports = "15.5.4"
+ }, {}],
+ 17: [function (t, e, n) {
+ "use strict";
+ e.exports = !1
+ }, {}],
+ 18: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ var e = t && (o && t[o] || t[i]);
+ if ("function" == typeof e) {
+ return e
+ }
+ }
+
+ var o = "function" == typeof Symbol && Symbol.iterator, i = "@@iterator";
+ e.exports = r
+ }, {}],
+ 19: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ return i.isValidElement(t) || o("143"), t
+ }
+
+ var o = t(20), i = t(9);
+ t(24);
+ e.exports = r
+ }, {20: 20, 24: 24, 9: 9}],
+ 20: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ for (var e = arguments.length - 1, n = "Minified React error #" + t
+ + "; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=" + t, r = 0;
+ r < e; r++) {
+ n += "&args[]=" + encodeURIComponent(arguments[r + 1]);
+ }
+ n += " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
+ var o = new Error(n);
+ throw o.name = "Invariant Violation", o.framesToPop = 1, o
+ }
+
+ e.exports = r
+ }, {}],
+ 21: [function (t, e, n) {
+ "use strict";
+
+ function r(t, e) {
+ return t && "object" == typeof t && null != t.key ? c.escape(t.key) : e.toString(36)
+ }
+
+ function o(t, e, n, i) {
+ var p = typeof t;
+ if ("undefined" !== p && "boolean" !== p || (t = null), null === t || "string" === p
+ || "number" === p || "object" === p && t.$$typeof === a) {
+ return n(i, t,
+ "" === e ? l + r(t, 0) : e), 1;
+ }
+ var d, y, h = 0, v = "" === e ? l : e + f;
+ if (Array.isArray(t)) {
+ for (var m = 0; m < t.length; m++) {
+ d = t[m], y = v + r(d, m), h += o(
+ d, y, n, i);
+ }
+ } else {
+ var b = s(t);
+ if (b) {
+ var g, E = b.call(t);
+ if (b !== t.entries) {
+ for (var x = 0; !(g = E.next()).done;) {
+ d = g.value, y = v + r(d,
+ x++), h += o(d, y, n, i);
+ }
+ } else {
+ for (; !(g = E.next()).done;) {
+ var _ = g.value;
+ _ && (d = _[1], y = v + c.escape(_[0]) + f + r(d, 0), h += o(d, y, n, i))
+ }
+ }
+ } else if ("object" === p) {
+ var P = String(t);
+ u("31",
+ "[object Object]" === P ? "object with keys {" + Object.keys(t).join(", ") + "}" : P,
+ "")
+ }
+ }
+ return h
+ }
+
+ function i(t, e, n) {
+ return null == t ? 0 : o(t, "", e, n)
+ }
+
+ var u = t(20), a = (t(7), t(10)), s = t(18), c = (t(24), t(1)), l = (t(25), "."), f = ":";
+ e.exports = i
+ }, {1: 1, 10: 10, 18: 18, 20: 20, 24: 24, 25: 25, 7: 7}],
+ 22: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ return function () {
+ return t
+ }
+ }
+
+ var o = function () {
+ };
+ o.thatReturns = r, o.thatReturnsFalse = r(!1), o.thatReturnsTrue = r(
+ !0), o.thatReturnsNull = r(null), o.thatReturnsThis = function () {
+ return this
+ }, o.thatReturnsArgument = function (t) {
+ return t
+ }, e.exports = o
+ }, {}],
+ 23: [function (t, e, n) {
+ "use strict";
+ var r = {};
+ e.exports = r
+ }, {}],
+ 24: [function (t, e, n) {
+ "use strict";
+
+ function r(t, e, n, r, i, u, a, s) {
+ if (o(e), !t) {
+ var c;
+ if (void 0 === e) {
+ c = new Error(
+ "Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");
+ } else {
+ var l = [n, r, i, u, a, s], f = 0;
+ c = new Error(e.replace(/%s/g, function () {
+ return l[f++]
+ })), c.name = "Invariant Violation"
+ }
+ throw c.framesToPop = 1, c
+ }
+ }
+
+ var o = function (t) {
+ };
+ e.exports = r
+ }, {}],
+ 25: [function (t, e, n) {
+ "use strict";
+ var r = t(22), o = r;
+ e.exports = o
+ }, {22: 22}],
+ 26: [function (t, e, n) {
+ "use strict";
+
+ function r(t) {
+ if (null === t || void 0 === t) {
+ throw new TypeError(
+ "Object.assign cannot be called with null or undefined");
+ }
+ return Object(t)
+ }
+
+ var o = Object.getOwnPropertySymbols, i = Object.prototype.hasOwnProperty,
+ u = Object.prototype.propertyIsEnumerable;
+ e.exports = function () {
+ try {
+ if (!Object.assign) {
+ return !1;
+ }
+ var t = new String("abc");
+ if (t[5] = "de", "5" === Object.getOwnPropertyNames(t)[0]) {
+ return !1;
+ }
+ for (var e = {}, n = 0; n < 10; n++) {
+ e["_" + String.fromCharCode(n)] = n;
+ }
+ if ("0123456789" !== Object.getOwnPropertyNames(e).map(function (t) {
+ return e[t]
+ }).join("")) {
+ return !1;
+ }
+ var r = {};
+ return "abcdefghijklmnopqrst".split("").forEach(function (t) {
+ r[t] = t
+ }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, r)).join("")
+ } catch (t) {
+ return !1
+ }
+ }() ? Object.assign : function (t, e) {
+ for (var n, a, s = r(t), c = 1; c < arguments.length; c++) {
+ n = Object(arguments[c]);
+ for (var l in n) {
+ i.call(n, l) && (s[l] = n[l]);
+ }
+ if (o) {
+ a = o(n);
+ for (var f = 0; f < a.length; f++) {
+ u.call(n, a[f]) && (s[a[f]] = n[a[f]])
+ }
+ }
+ }
+ return s
+ }
+ }, {}],
+ 27: [function (t, e, n) {
+ "use strict";
+
+ function r(t, e, n, r, o) {
+ }
+
+ e.exports = r
+ }, {24: 24, 25: 25, 30: 30}],
+ 28: [function (t, e, n) {
+ "use strict";
+ var r = t(29);
+ e.exports = function (t) {
+ return r(t, !1)
+ }
+ }, {29: 29}],
+ 29: [function (t, e, n) {
+ "use strict";
+ var r = t(22), o = t(24), i = (t(25), t(30)), u = t(27);
+ e.exports = function (t, e) {
+ function n(t) {
+ var e = t && (_ && t[_] || t[P]);
+ if ("function" == typeof e) {
+ return e
+ }
+ }
+
+ function a(t, e) {
+ return t === e ? 0 !== t || 1 / t == 1 / e : t !== t && e !== e
+ }
+
+ function s(t) {
+ this.message = t, this.stack = ""
+ }
+
+ function c(t) {
+ function n(n, r, u, a, c, l, f) {
+ if (a = a || w, l = l || u, f !== i) {
+ if (e) {
+ o(!1,
+ "Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");
+ } else {
+ ;
+ }
+ }
+ return null == r[u] ? n ? new s(
+ null === r[u] ? "The " + c + " `" + l + "` is marked as required in `" + a
+ + "`, but its value is `null`." : "The " + c + " `" + l
+ + "` is marked as required in `" + a + "`, but its value is `undefined`.") : null
+ : t(r, u, a, c, l)
+ }
+
+ var r = n.bind(null, !1);
+ return r.isRequired = n.bind(null, !0), r
+ }
+
+ function l(t) {
+ function e(e, n, r, o, i, u) {
+ var a = e[n];
+ if (g(a) !== t) {
+ return new s(
+ "Invalid " + o + " `" + i + "` of type `" + E(a) + "` supplied to `" + r
+ + "`, expected `" + t + "`.");
+ }
+ return null
+ }
+
+ return c(e)
+ }
+
+ function f(t) {
+ function e(e, n, r, o, u) {
+ if ("function" != typeof t) {
+ return new s("Property `" + u + "` of component `" + r
+ + "` has invalid PropType notation inside arrayOf.");
+ }
+ var a = e[n];
+ if (!Array.isArray(a)) {
+ return new s("Invalid " + o + " `" + u + "` of type `" + g(a) + "` supplied to `" + r
+ + "`, expected an array.")
+ }
+ for (var c = 0; c < a.length; c++) {
+ var l = t(a, c, r, o, u + "[" + c + "]", i);
+ if (l instanceof Error) {
+ return l
+ }
+ }
+ return null
+ }
+
+ return c(e)
+ }
+
+ function p(t) {
+ function e(e, n, r, o, i) {
+ if (!(e[n] instanceof t)) {
+ var u = t.name || w;
+ return new s(
+ "Invalid " + o + " `" + i + "` of type `" + x(e[n]) + "` supplied to `" + r
+ + "`, expected instance of `" + u + "`.")
+ }
+ return null
+ }
+
+ return c(e)
+ }
+
+ function d(t) {
+ function e(e, n, r, o, i) {
+ for (var u = e[n], c = 0; c < t.length; c++) {
+ if (a(u, t[c])) {
+ return null;
+ }
+ }
+ return new s("Invalid " + o + " `" + i + "` of value `" + u + "` supplied to `" + r
+ + "`, expected one of " + JSON.stringify(t) + ".")
+ }
+
+ return Array.isArray(t) ? c(e) : r.thatReturnsNull
+ }
+
+ function y(t) {
+ function e(e, n, r, o, u) {
+ if ("function" != typeof t) {
+ return new s("Property `" + u + "` of component `" + r
+ + "` has invalid PropType notation inside objectOf.");
+ }
+ var a = e[n], c = g(a);
+ if ("object" !== c) {
+ return new s(
+ "Invalid " + o + " `" + u + "` of type `" + c + "` supplied to `" + r
+ + "`, expected an object.");
+ }
+ for (var l in a) {
+ if (a.hasOwnProperty(l)) {
+ var f = t(a, l, r, o, u + "." + l, i);
+ if (f instanceof Error) {
+ return f
+ }
+ }
+ }
+ return null
+ }
+
+ return c(e)
+ }
+
+ function h(t) {
+ function e(e, n, r, o, u) {
+ for (var a = 0; a < t.length; a++) {
+ if (null == (0, t[a])(e, n, r, o, u, i)) {
+ return null
+ }
+ }
+ return new s("Invalid " + o + " `" + u + "` supplied to `" + r + "`.")
+ }
+
+ return Array.isArray(t) ? c(e) : r.thatReturnsNull
+ }
+
+ function v(t) {
+ function e(e, n, r, o, u) {
+ var a = e[n], c = g(a);
+ if ("object" !== c) {
+ return new s(
+ "Invalid " + o + " `" + u + "` of type `" + c + "` supplied to `" + r
+ + "`, expected `object`.");
+ }
+ for (var l in t) {
+ var f = t[l];
+ if (f) {
+ var p = f(a, l, r, o, u + "." + l, i);
+ if (p) {
+ return p
+ }
+ }
+ }
+ return null
+ }
+
+ return c(e)
+ }
+
+ function m(e) {
+ switch (typeof e) {
+ case"number":
+ case"string":
+ case"undefined":
+ return !0;
+ case"boolean":
+ return !e;
+ case"object":
+ if (Array.isArray(e)) {
+ return e.every(m);
+ }
+ if (null === e || t(e)) {
+ return !0;
+ }
+ var r = n(e);
+ if (!r) {
+ return !1;
+ }
+ var o, i = r.call(e);
+ if (r !== e.entries) {
+ for (; !(o = i.next()).done;) {
+ if (!m(o.value)) {
+ return !1
+ }
+ }
+ } else {
+ for (; !(o = i.next()).done;) {
+ var u = o.value;
+ if (u && !m(u[1])) {
+ return !1
+ }
+ }
+ }
+ return !0;
+ default:
+ return !1
+ }
+ }
+
+ function b(t, e) {
+ return "symbol" === t || ("Symbol" === e["@@toStringTag"] || "function" == typeof Symbol
+ && e instanceof Symbol)
+ }
+
+ function g(t) {
+ var e = typeof t;
+ return Array.isArray(t) ? "array" : t instanceof RegExp ? "object" : b(e, t) ? "symbol"
+ : e
+ }
+
+ function E(t) {
+ var e = g(t);
+ if ("object" === e) {
+ if (t instanceof Date) {
+ return "date";
+ }
+ if (t instanceof RegExp) {
+ return "regexp"
+ }
+ }
+ return e
+ }
+
+ function x(t) {
+ return t.constructor && t.constructor.name ? t.constructor.name : w
+ }
+
+ var _ = "function" == typeof Symbol && Symbol.iterator, P = "@@iterator",
+ w = "<>", N = {
+ array: l("array"),
+ bool: l("boolean"),
+ func: l("function"),
+ number: l("number"),
+ object: l("object"),
+ string: l("string"),
+ symbol: l("symbol"),
+ any: function () {
+ return c(r.thatReturnsNull)
+ }(),
+ arrayOf: f,
+ element: function () {
+ function e(e, n, r, o, i) {
+ var u = e[n];
+ if (!t(u)) {
+ return new s(
+ "Invalid " + o + " `" + i + "` of type `" + g(u) + "` supplied to `" + r
+ + "`, expected a single ReactElement.")
+ }
+ return null
+ }
+
+ return c(e)
+ }(),
+ instanceOf: p,
+ node: function () {
+ function t(t, e, n, r, o) {
+ return m(t[e]) ? null : new s(
+ "Invalid " + r + " `" + o + "` supplied to `" + n + "`, expected a ReactNode.")
+ }
+
+ return c(t)
+ }(),
+ objectOf: y,
+ oneOf: d,
+ oneOfType: h,
+ shape: v
+ };
+ return s.prototype = Error.prototype, N.checkPropTypes = u, N.PropTypes = N, N
+ }
+ }, {22: 22, 24: 24, 25: 25, 27: 27, 30: 30}],
+ 30: [function (t, e, n) {
+ "use strict";
+ e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"
+ }, {}]
+ }, {}, [15])(15)
+});
+!function (f) {
+ if ("object" == typeof exports && "undefined"
+ != typeof module) {
+ module.exports = f();
+ } else if ("function" == typeof define
+ && define.amd) {
+ define([], f);
+ } else {
+ var g;
+ if (g = "undefined" != typeof window ? window : "undefined" != typeof global ? global
+ : "undefined" != typeof self ? self : this, void 0 === g.React) {
+ throw Error(
+ "React module should be required before createClass");
+ }
+ g.createReactClass = f()
+ }
+}(function () {
+ return function e(t, n, r) {
+ function s(o, u) {
+ if (!n[o]) {
+ if (!t[o]) {
+ var a = "function" == typeof require && require;
+ if (!u && a) {
+ return a(o, !0);
+ }
+ if (i) {
+ return i(o, !0);
+ }
+ var f = new Error("Cannot find module '" + o + "'");
+ throw f.code = "MODULE_NOT_FOUND", f
+ }
+ var l = n[o] = {exports: {}};
+ t[o][0].call(l.exports, function (e) {
+ var n = t[o][1][e];
+ return s(n || e)
+ }, l, l.exports, e, t, n, r)
+ }
+ return n[o].exports
+ }
+
+ for (var i = "function" == typeof require && require, o = 0; o < r.length; o++) {
+ s(r[o]);
+ }
+ return s
+ }({
+ 1: [function (require, module, exports) {
+ "use strict";
+
+ function identity(fn) {
+ return fn
+ }
+
+ function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
+ function validateMethodOverride(isAlreadyDefined, name) {
+ var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name]
+ : null;
+ ReactClassMixin.hasOwnProperty(name) && _invariant("OVERRIDE_BASE" === specPolicy,
+ "ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",
+ name), isAlreadyDefined && _invariant(
+ "DEFINE_MANY" === specPolicy || "DEFINE_MANY_MERGED" === specPolicy,
+ "ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",
+ name)
+ }
+
+ function mixSpecIntoComponent(Constructor, spec) {
+ if (spec) {
+ _invariant("function" != typeof spec,
+ "ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."), _invariant(
+ !isValidElement(spec),
+ "ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");
+ var proto = Constructor.prototype, autoBindPairs = proto.__reactAutoBindPairs;
+ spec.hasOwnProperty(MIXINS_KEY) && RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
+ for (var name in spec) {
+ if (spec.hasOwnProperty(name) && name !== MIXINS_KEY) {
+ var property = spec[name], isAlreadyDefined = proto.hasOwnProperty(name);
+ if (validateMethodOverride(isAlreadyDefined,
+ name), RESERVED_SPEC_KEYS.hasOwnProperty(
+ name)) {
+ RESERVED_SPEC_KEYS[name](Constructor, property);
+ } else {
+ var isReactClassMethod = ReactClassInterface.hasOwnProperty(name),
+ isFunction = "function" == typeof property,
+ shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && !1
+ !== spec.autobind;
+ if (shouldAutoBind) {
+ autoBindPairs.push(name,
+ property), proto[name] = property;
+ } else if (isAlreadyDefined) {
+ var specPolicy = ReactClassInterface[name];
+ _invariant(
+ isReactClassMethod && ("DEFINE_MANY_MERGED" === specPolicy || "DEFINE_MANY"
+ === specPolicy),
+ "ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",
+ specPolicy, name), "DEFINE_MANY_MERGED" === specPolicy
+ ? proto[name] = createMergedResultFunction(proto[name], property)
+ : "DEFINE_MANY" === specPolicy && (proto[name] = createChainedFunction(
+ proto[name], property))
+ } else {
+ proto[name] = property
+ }
+ }
+ }
+ }
+ } else {
+ ;
+ }
+ }
+
+ function mixStaticSpecIntoComponent(Constructor, statics) {
+ if (statics) {
+ for (var name in statics) {
+ var property = statics[name];
+ if (statics.hasOwnProperty(name)) {
+ var isReserved = name in RESERVED_SPEC_KEYS;
+ _invariant(!isReserved,
+ 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',
+ name);
+ var isInherited = name in Constructor;
+ _invariant(!isInherited,
+ "ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",
+ name), Constructor[name] = property
+ }
+ }
+ }
+ }
+
+ function mergeIntoWithNoDuplicateKeys(one, two) {
+ _invariant(one && two && "object" == typeof one && "object" == typeof two,
+ "mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");
+ for (var key in two) {
+ two.hasOwnProperty(key) && (_invariant(void 0 === one[key],
+ "mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",
+ key), one[key] = two[key]);
+ }
+ return one
+ }
+
+ function createMergedResultFunction(one, two) {
+ return function () {
+ var a = one.apply(this, arguments), b = two.apply(this, arguments);
+ if (null == a) {
+ return b;
+ }
+ if (null == b) {
+ return a;
+ }
+ var c = {};
+ return mergeIntoWithNoDuplicateKeys(c, a), mergeIntoWithNoDuplicateKeys(c, b), c
+ }
+ }
+
+ function createChainedFunction(one, two) {
+ return function () {
+ one.apply(this, arguments), two.apply(this, arguments)
+ }
+ }
+
+ function bindAutoBindMethod(component, method) {
+ var boundMethod = method.bind(component);
+ return boundMethod
+ }
+
+ function bindAutoBindMethods(component) {
+ for (var pairs = component.__reactAutoBindPairs, i = 0; i < pairs.length; i += 2) {
+ var autoBindKey = pairs[i], method = pairs[i + 1];
+ component[autoBindKey] = bindAutoBindMethod(component, method)
+ }
+ }
+
+ function createClass(spec) {
+ var Constructor = identity(function (props, context, updater) {
+ this.__reactAutoBindPairs.length && bindAutoBindMethods(
+ this), this.props = props, this.context = context, this.refs = emptyObject, this.updater = updater
+ || ReactNoopUpdateQueue, this.state = null;
+ var initialState = this.getInitialState ? this.getInitialState() : null;
+ _invariant("object" == typeof initialState && !Array.isArray(initialState),
+ "%s.getInitialState(): must return an object or null",
+ Constructor.displayName || "ReactCompositeComponent"), this.state = initialState
+ });
+ Constructor.prototype = new ReactClassComponent, Constructor.prototype.constructor = Constructor, Constructor.prototype.__reactAutoBindPairs = [], injectedMixins.forEach(
+ mixSpecIntoComponent.bind(null, Constructor)), mixSpecIntoComponent(Constructor,
+ IsMountedMixin), mixSpecIntoComponent(Constructor, spec), Constructor.getDefaultProps
+ && (Constructor.defaultProps = Constructor.getDefaultProps()), _invariant(
+ Constructor.prototype.render,
+ "createClass(...): Class specification must implement a `render` method.");
+ for (var methodName in ReactClassInterface) {
+ Constructor.prototype[methodName]
+ || (Constructor.prototype[methodName] = null);
+ }
+ return Constructor
+ }
+
+ var injectedMixins = [], ReactClassInterface = {
+ mixins: "DEFINE_MANY",
+ statics: "DEFINE_MANY",
+ propTypes: "DEFINE_MANY",
+ contextTypes: "DEFINE_MANY",
+ childContextTypes: "DEFINE_MANY",
+ getDefaultProps: "DEFINE_MANY_MERGED",
+ getInitialState: "DEFINE_MANY_MERGED",
+ getChildContext: "DEFINE_MANY_MERGED",
+ render: "DEFINE_ONCE",
+ componentWillMount: "DEFINE_MANY",
+ componentDidMount: "DEFINE_MANY",
+ componentWillReceiveProps: "DEFINE_MANY",
+ shouldComponentUpdate: "DEFINE_ONCE",
+ componentWillUpdate: "DEFINE_MANY",
+ componentDidUpdate: "DEFINE_MANY",
+ componentWillUnmount: "DEFINE_MANY",
+ updateComponent: "OVERRIDE_BASE"
+ }, RESERVED_SPEC_KEYS = {
+ displayName: function (Constructor, displayName) {
+ Constructor.displayName = displayName
+ }, mixins: function (Constructor, mixins) {
+ if (mixins) {
+ for (var i = 0; i < mixins.length; i++) {
+ mixSpecIntoComponent(Constructor,
+ mixins[i])
+ }
+ }
+ }, childContextTypes: function (Constructor, childContextTypes) {
+ Constructor.childContextTypes = _assign({}, Constructor.childContextTypes,
+ childContextTypes)
+ }, contextTypes: function (Constructor, contextTypes) {
+ Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes)
+ }, getDefaultProps: function (Constructor, getDefaultProps) {
+ Constructor.getDefaultProps ? Constructor.getDefaultProps = createMergedResultFunction(
+ Constructor.getDefaultProps, getDefaultProps)
+ : Constructor.getDefaultProps = getDefaultProps
+ }, propTypes: function (Constructor, propTypes) {
+ Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes)
+ }, statics: function (Constructor, statics) {
+ mixStaticSpecIntoComponent(Constructor, statics)
+ }, autobind: function () {
+ }
+ }, IsMountedMixin = {
+ componentDidMount: function () {
+ this.__isMounted = !0
+ }, componentWillUnmount: function () {
+ this.__isMounted = !1
+ }
+ }, ReactClassMixin = {
+ replaceState: function (newState, callback) {
+ this.updater.enqueueReplaceState(this, newState, callback)
+ }, isMounted: function () {
+ return !!this.__isMounted
+ }
+ }, ReactClassComponent = function () {
+ };
+ return _assign(ReactClassComponent.prototype, ReactComponent.prototype,
+ ReactClassMixin), createClass
+ }
+
+ var _assign = require(7), emptyObject = require(4), _invariant = require(5),
+ MIXINS_KEY = "mixins";
+ module.exports = factory
+ }, {4: 4, 5: 5, 6: 6, 7: 7}], 2: [function (require, module, exports) {
+ "use strict";
+ var factory = require(1), ReactNoopUpdateQueue = (new React.Component).updater;
+ module.exports = factory(React.Component, React.isValidElement, ReactNoopUpdateQueue)
+ }, {1: 1}], 3: [function (require, module, exports) {
+ "use strict";
+
+ function makeEmptyFunction(arg) {
+ return function () {
+ return arg
+ }
+ }
+
+ var emptyFunction = function () {
+ };
+ emptyFunction.thatReturns = makeEmptyFunction, emptyFunction.thatReturnsFalse = makeEmptyFunction(
+ !1), emptyFunction.thatReturnsTrue = makeEmptyFunction(
+ !0), emptyFunction.thatReturnsNull = makeEmptyFunction(
+ null), emptyFunction.thatReturnsThis = function () {
+ return this
+ }, emptyFunction.thatReturnsArgument = function (arg) {
+ return arg
+ }, module.exports = emptyFunction
+ }, {}], 4: [function (require, module, exports) {
+ "use strict";
+ var emptyObject = {};
+ module.exports = emptyObject
+ }, {}], 5: [function (require, module, exports) {
+ "use strict";
+
+ function invariant(condition, format, a, b, c, d, e, f) {
+ if (validateFormat(format), !condition) {
+ var error;
+ if (void 0 === format) {
+ error = new Error(
+ "Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");
+ } else {
+ var args = [a, b, c, d, e, f], argIndex = 0;
+ error = new Error(format.replace(/%s/g, function () {
+ return args[argIndex++]
+ })), error.name = "Invariant Violation"
+ }
+ throw error.framesToPop = 1, error
+ }
+ }
+
+ var validateFormat = function (format) {
+ };
+ module.exports = invariant
+ }, {}], 6: [function (require, module, exports) {
+ "use strict";
+ var emptyFunction = require(3), warning = emptyFunction;
+ module.exports = warning
+ }, {3: 3}], 7: [function (require, module, exports) {
+ "use strict";
+
+ function toObject(val) {
+ if (null === val || void 0 === val) {
+ throw new TypeError(
+ "Object.assign cannot be called with null or undefined");
+ }
+ return Object(val)
+ }
+
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols,
+ hasOwnProperty = Object.prototype.hasOwnProperty,
+ propIsEnumerable = Object.prototype.propertyIsEnumerable;
+ module.exports = function () {
+ try {
+ if (!Object.assign) {
+ return !1;
+ }
+ var test1 = new String("abc");
+ if (test1[5] = "de", "5" === Object.getOwnPropertyNames(test1)[0]) {
+ return !1;
+ }
+ for (var test2 = {}, i = 0; i < 10; i++) {
+ test2["_" + String.fromCharCode(i)] = i;
+ }
+ if ("0123456789" !== Object.getOwnPropertyNames(test2).map(function (n) {
+ return test2[n]
+ }).join("")) {
+ return !1;
+ }
+ var test3 = {};
+ return "abcdefghijklmnopqrst".split("").forEach(function (letter) {
+ test3[letter] = letter
+ }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, test3)).join("")
+ } catch (err) {
+ return !1
+ }
+ }() ? Object.assign : function (target, source) {
+ for (var from, symbols, to = toObject(target), s = 1; s < arguments.length; s++) {
+ from = Object(arguments[s]);
+ for (var key in from) {
+ hasOwnProperty.call(from, key) && (to[key] = from[key]);
+ }
+ if (getOwnPropertySymbols) {
+ symbols = getOwnPropertySymbols(from);
+ for (var i = 0; i < symbols.length; i++) {
+ propIsEnumerable.call(from, symbols[i])
+ && (to[symbols[i]] = from[symbols[i]])
+ }
+ }
+ }
+ return to
+ }
+ }, {}]
+ }, {}, [2])(2)
+});
+
+/**
+ * ReactDOM v15.5.4
+ *
+ * Copyright 2013-present, Facebook, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree. An additional grant
+ * of patent rights can be found in the PATENTS file in the same directory.
+ *
+ */
+!function (e) {
+ if ("object" == typeof exports && "undefined" != typeof module) {
+ module.exports = e(
+ require("react"));
+ } else if ("function" == typeof define && define.amd) {
+ define(["react"],
+ e);
+ } else {
+ var t;
+ t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined"
+ != typeof self ? self : this, t.ReactDOM = e(t.React)
+ }
+}(function (e) {
+ return function (t) {
+ return function () {
+ return function e(t, n, r) {
+ function o(a, s) {
+ if (!n[a]) {
+ if (!t[a]) {
+ var u = "function" == typeof require && require;
+ if (!s && u) {
+ return u(a, !0);
+ }
+ if (i) {
+ return i(a, !0);
+ }
+ var l = new Error("Cannot find module '" + a + "'");
+ throw l.code = "MODULE_NOT_FOUND", l
+ }
+ var c = n[a] = {exports: {}};
+ t[a][0].call(c.exports, function (e) {
+ var n = t[a][1][e];
+ return o(n || e)
+ }, c, c.exports, e, t, n, r)
+ }
+ return n[a].exports
+ }
+
+ for (var i = "function" == typeof require && require, a = 0; a < r.length; a++) {
+ o(r[a]);
+ }
+ return o
+ }({
+ 1: [function (e, t, n) {
+ "use strict";
+ var r = {
+ Properties: {
+ "aria-current": 0,
+ "aria-details": 0,
+ "aria-disabled": 0,
+ "aria-hidden": 0,
+ "aria-invalid": 0,
+ "aria-keyshortcuts": 0,
+ "aria-label": 0,
+ "aria-roledescription": 0,
+ "aria-autocomplete": 0,
+ "aria-checked": 0,
+ "aria-expanded": 0,
+ "aria-haspopup": 0,
+ "aria-level": 0,
+ "aria-modal": 0,
+ "aria-multiline": 0,
+ "aria-multiselectable": 0,
+ "aria-orientation": 0,
+ "aria-placeholder": 0,
+ "aria-pressed": 0,
+ "aria-readonly": 0,
+ "aria-required": 0,
+ "aria-selected": 0,
+ "aria-sort": 0,
+ "aria-valuemax": 0,
+ "aria-valuemin": 0,
+ "aria-valuenow": 0,
+ "aria-valuetext": 0,
+ "aria-atomic": 0,
+ "aria-busy": 0,
+ "aria-live": 0,
+ "aria-relevant": 0,
+ "aria-dropeffect": 0,
+ "aria-grabbed": 0,
+ "aria-activedescendant": 0,
+ "aria-colcount": 0,
+ "aria-colindex": 0,
+ "aria-colspan": 0,
+ "aria-controls": 0,
+ "aria-describedby": 0,
+ "aria-errormessage": 0,
+ "aria-flowto": 0,
+ "aria-labelledby": 0,
+ "aria-owns": 0,
+ "aria-posinset": 0,
+ "aria-rowcount": 0,
+ "aria-rowindex": 0,
+ "aria-rowspan": 0,
+ "aria-setsize": 0
+ }, DOMAttributeNames: {}, DOMPropertyNames: {}
+ };
+ t.exports = r
+ }, {}],
+ 2: [function (e, t, n) {
+ "use strict";
+ var r = e(33), o = e(131), i = {
+ focusDOMComponent: function () {
+ o(r.getNodeFromInstance(this))
+ }
+ };
+ t.exports = i
+ }, {131: 131, 33: 33}],
+ 3: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return (e.ctrlKey || e.altKey || e.metaKey) && !(e.ctrlKey && e.altKey)
+ }
+
+ function o(e) {
+ switch (e) {
+ case"topCompositionStart":
+ return T.compositionStart;
+ case"topCompositionEnd":
+ return T.compositionEnd;
+ case"topCompositionUpdate":
+ return T.compositionUpdate
+ }
+ }
+
+ function i(e, t) {
+ return "topKeyDown" === e && t.keyCode === y
+ }
+
+ function a(e, t) {
+ switch (e) {
+ case"topKeyUp":
+ return -1 !== g.indexOf(t.keyCode);
+ case"topKeyDown":
+ return t.keyCode !== y;
+ case"topKeyPress":
+ case"topMouseDown":
+ case"topBlur":
+ return !0;
+ default:
+ return !1
+ }
+ }
+
+ function s(e) {
+ var t = e.detail;
+ return "object" == typeof t && "data" in t ? t.data : null
+ }
+
+ function u(e, t, n, r) {
+ var u, l;
+ if (_ ? u = o(e) : P ? a(e, n) && (u = T.compositionEnd) : i(e, n)
+ && (u = T.compositionStart), !u) {
+ return null;
+ }
+ E && (P || u !== T.compositionStart ? u === T.compositionEnd && P && (l = P.getData())
+ : P = h.getPooled(r));
+ var c = m.getPooled(u, t, n, r);
+ if (l) {
+ c.data = l;
+ } else {
+ var p = s(n);
+ null !== p && (c.data = p)
+ }
+ return d.accumulateTwoPhaseDispatches(c), c
+ }
+
+ function l(e, t) {
+ switch (e) {
+ case"topCompositionEnd":
+ return s(t);
+ case"topKeyPress":
+ return t.which !== x ? null : (k = !0, w);
+ case"topTextInput":
+ var n = t.data;
+ return n === w && k ? null : n;
+ default:
+ return null
+ }
+ }
+
+ function c(e, t) {
+ if (P) {
+ if ("topCompositionEnd" === e || !_ && a(e, t)) {
+ var n = P.getData();
+ return h.release(P), P = null, n
+ }
+ return null
+ }
+ switch (e) {
+ case"topPaste":
+ return null;
+ case"topKeyPress":
+ return t.which && !r(t) ? String.fromCharCode(t.which) : null;
+ case"topCompositionEnd":
+ return E ? null : t.data;
+ default:
+ return null
+ }
+ }
+
+ function p(e, t, n, r) {
+ var o;
+ if (!(o = b ? l(e, n) : c(e, n))) {
+ return null;
+ }
+ var i = v.getPooled(T.beforeInput, t, n, r);
+ return i.data = o, d.accumulateTwoPhaseDispatches(i), i
+ }
+
+ var d = e(19), f = e(123), h = e(20), m = e(78), v = e(82), g = [9, 13, 27, 32], y = 229,
+ _ = f.canUseDOM && "CompositionEvent" in window, C = null;
+ f.canUseDOM && "documentMode" in document && (C = document.documentMode);
+ var b = f.canUseDOM && "TextEvent" in window && !C && !function () {
+ var e = window.opera;
+ return "object" == typeof e && "function" == typeof e.version && parseInt(e.version(),
+ 10) <= 12
+ }(), E = f.canUseDOM && (!_ || C && C > 8 && C <= 11), x = 32, w = String.fromCharCode(x),
+ T = {
+ beforeInput: {
+ phasedRegistrationNames: {
+ bubbled: "onBeforeInput",
+ captured: "onBeforeInputCapture"
+ }, dependencies: ["topCompositionEnd", "topKeyPress", "topTextInput", "topPaste"]
+ },
+ compositionEnd: {
+ phasedRegistrationNames: {
+ bubbled: "onCompositionEnd",
+ captured: "onCompositionEndCapture"
+ },
+ dependencies: ["topBlur", "topCompositionEnd", "topKeyDown", "topKeyPress",
+ "topKeyUp", "topMouseDown"]
+ },
+ compositionStart: {
+ phasedRegistrationNames: {
+ bubbled: "onCompositionStart",
+ captured: "onCompositionStartCapture"
+ },
+ dependencies: ["topBlur", "topCompositionStart", "topKeyDown", "topKeyPress",
+ "topKeyUp", "topMouseDown"]
+ },
+ compositionUpdate: {
+ phasedRegistrationNames: {
+ bubbled: "onCompositionUpdate",
+ captured: "onCompositionUpdateCapture"
+ },
+ dependencies: ["topBlur", "topCompositionUpdate", "topKeyDown", "topKeyPress",
+ "topKeyUp", "topMouseDown"]
+ }
+ }, k = !1, P = null, S = {
+ eventTypes: T, extractEvents: function (e, t, n, r) {
+ return [u(e, t, n, r), p(e, t, n, r)]
+ }
+ };
+ t.exports = S
+ }, {123: 123, 19: 19, 20: 20, 78: 78, 82: 82}],
+ 4: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ return e + t.charAt(0).toUpperCase() + t.substring(1)
+ }
+
+ var o = {
+ animationIterationCount: !0,
+ borderImageOutset: !0,
+ borderImageSlice: !0,
+ borderImageWidth: !0,
+ boxFlex: !0,
+ boxFlexGroup: !0,
+ boxOrdinalGroup: !0,
+ columnCount: !0,
+ flex: !0,
+ flexGrow: !0,
+ flexPositive: !0,
+ flexShrink: !0,
+ flexNegative: !0,
+ flexOrder: !0,
+ gridRow: !0,
+ gridColumn: !0,
+ fontWeight: !0,
+ lineClamp: !0,
+ lineHeight: !0,
+ opacity: !0,
+ order: !0,
+ orphans: !0,
+ tabSize: !0,
+ widows: !0,
+ zIndex: !0,
+ zoom: !0,
+ fillOpacity: !0,
+ floodOpacity: !0,
+ stopOpacity: !0,
+ strokeDasharray: !0,
+ strokeDashoffset: !0,
+ strokeMiterlimit: !0,
+ strokeOpacity: !0,
+ strokeWidth: !0
+ }, i = ["Webkit", "ms", "Moz", "O"];
+ Object.keys(o).forEach(function (e) {
+ i.forEach(function (t) {
+ o[r(t, e)] = o[e]
+ })
+ });
+ var a = {
+ background: {
+ backgroundAttachment: !0,
+ backgroundColor: !0,
+ backgroundImage: !0,
+ backgroundPositionX: !0,
+ backgroundPositionY: !0,
+ backgroundRepeat: !0
+ },
+ backgroundPosition: {backgroundPositionX: !0, backgroundPositionY: !0},
+ border: {borderWidth: !0, borderStyle: !0, borderColor: !0},
+ borderBottom: {borderBottomWidth: !0, borderBottomStyle: !0, borderBottomColor: !0},
+ borderLeft: {borderLeftWidth: !0, borderLeftStyle: !0, borderLeftColor: !0},
+ borderRight: {borderRightWidth: !0, borderRightStyle: !0, borderRightColor: !0},
+ borderTop: {borderTopWidth: !0, borderTopStyle: !0, borderTopColor: !0},
+ font: {
+ fontStyle: !0,
+ fontVariant: !0,
+ fontWeight: !0,
+ fontSize: !0,
+ lineHeight: !0,
+ fontFamily: !0
+ },
+ outline: {outlineWidth: !0, outlineStyle: !0, outlineColor: !0}
+ }, s = {isUnitlessNumber: o, shorthandPropertyExpansions: a};
+ t.exports = s
+ }, {}],
+ 5: [function (e, t, n) {
+ "use strict";
+ var r = e(4), o = e(123), i = (e(58), e(125), e(94)), a = e(136), s = e(140),
+ u = (e(142), s(function (e) {
+ return a(e)
+ })), l = !1, c = "cssFloat";
+ if (o.canUseDOM) {
+ var p = document.createElement("div").style;
+ try {
+ p.font = ""
+ } catch (e) {
+ l = !0
+ }
+ void 0 === document.documentElement.style.cssFloat && (c = "styleFloat")
+ }
+ var d = {
+ createMarkupForStyles: function (e, t) {
+ var n = "";
+ for (var r in e) {
+ if (e.hasOwnProperty(r)) {
+ var o = e[r];
+ null != o && (n += u(r) + ":", n += i(r, o, t) + ";")
+ }
+ }
+ return n || null
+ }, setValueForStyles: function (e, t, n) {
+ var o = e.style;
+ for (var a in t) {
+ if (t.hasOwnProperty(a)) {
+ var s = i(a, t[a], n);
+ if ("float" !== a && "cssFloat" !== a || (a = c), s) {
+ o[a] = s;
+ } else {
+ var u = l && r.shorthandPropertyExpansions[a];
+ if (u) {
+ for (var p in u) {
+ o[p] = "";
+ }
+ } else {
+ o[a] = ""
+ }
+ }
+ }
+ }
+ }
+ };
+ t.exports = d
+ }, {123: 123, 125: 125, 136: 136, 140: 140, 142: 142, 4: 4, 58: 58, 94: 94}],
+ 6: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ if (!(e instanceof t)) {
+ throw new TypeError("Cannot call a class as a function")
+ }
+ }
+
+ var o = e(112), i = e(24), a = (e(137), function () {
+ function e(t) {
+ r(this, e), this._callbacks = null, this._contexts = null, this._arg = t
+ }
+
+ return e.prototype.enqueue = function (e, t) {
+ this._callbacks = this._callbacks || [], this._callbacks.push(
+ e), this._contexts = this._contexts || [], this._contexts.push(t)
+ }, e.prototype.notifyAll = function () {
+ var e = this._callbacks, t = this._contexts, n = this._arg;
+ if (e && t) {
+ e.length !== t.length && o("24"), this._callbacks = null, this._contexts = null;
+ for (var r = 0; r < e.length; r++) {
+ e[r].call(t[r], n);
+ }
+ e.length = 0, t.length = 0
+ }
+ }, e.prototype.checkpoint = function () {
+ return this._callbacks ? this._callbacks.length : 0
+ }, e.prototype.rollback = function (e) {
+ this._callbacks && this._contexts
+ && (this._callbacks.length = e, this._contexts.length = e)
+ }, e.prototype.reset = function () {
+ this._callbacks = null, this._contexts = null
+ }, e.prototype.destructor = function () {
+ this.reset()
+ }, e
+ }());
+ t.exports = i.addPoolingTo(a)
+ }, {112: 112, 137: 137, 24: 24}],
+ 7: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = e.nodeName && e.nodeName.toLowerCase();
+ return "select" === t || "input" === t && "file" === e.type
+ }
+
+ function o(e) {
+ var t = w.getPooled(S.change, M, e, T(e));
+ C.accumulateTwoPhaseDispatches(t), x.batchedUpdates(i, t)
+ }
+
+ function i(e) {
+ _.enqueueEvents(e), _.processEventQueue(!1)
+ }
+
+ function a(e, t) {
+ N = e, M = t, N.attachEvent("onchange", o)
+ }
+
+ function s() {
+ N && (N.detachEvent("onchange", o), N = null, M = null)
+ }
+
+ function u(e, t) {
+ if ("topChange" === e) {
+ return t
+ }
+ }
+
+ function l(e, t, n) {
+ "topFocus" === e ? (s(), a(t, n)) : "topBlur" === e && s()
+ }
+
+ function c(e, t) {
+ N = e, M = t, I = e.value, O = Object.getOwnPropertyDescriptor(e.constructor.prototype,
+ "value"), Object.defineProperty(N, "value", D), N.attachEvent ? N.attachEvent(
+ "onpropertychange", d) : N.addEventListener("propertychange", d, !1)
+ }
+
+ function p() {
+ N && (delete N.value, N.detachEvent ? N.detachEvent("onpropertychange", d)
+ : N.removeEventListener("propertychange", d,
+ !1), N = null, M = null, I = null, O = null)
+ }
+
+ function d(e) {
+ if ("value" === e.propertyName) {
+ var t = e.srcElement.value;
+ t !== I && (I = t, o(e))
+ }
+ }
+
+ function f(e, t) {
+ if ("topInput" === e) {
+ return t
+ }
+ }
+
+ function h(e, t, n) {
+ "topFocus" === e ? (p(), c(t, n)) : "topBlur" === e && p()
+ }
+
+ function m(e, t) {
+ if (("topSelectionChange" === e || "topKeyUp" === e || "topKeyDown" === e) && N
+ && N.value !== I) {
+ return I = N.value, M
+ }
+ }
+
+ function v(e) {
+ return e.nodeName && "input" === e.nodeName.toLowerCase() && ("checkbox" === e.type
+ || "radio" === e.type)
+ }
+
+ function g(e, t) {
+ if ("topClick" === e) {
+ return t
+ }
+ }
+
+ function y(e, t) {
+ if (null != e) {
+ var n = e._wrapperState || t._wrapperState;
+ if (n && n.controlled && "number" === t.type) {
+ var r = "" + t.value;
+ t.getAttribute("value") !== r && t.setAttribute("value", r)
+ }
+ }
+ }
+
+ var _ = e(16), C = e(19), b = e(123), E = e(33), x = e(71), w = e(80), T = e(102),
+ k = e(109), P = e(110), S = {
+ change: {
+ phasedRegistrationNames: {
+ bubbled: "onChange",
+ captured: "onChangeCapture"
+ },
+ dependencies: ["topBlur", "topChange", "topClick", "topFocus", "topInput",
+ "topKeyDown", "topKeyUp", "topSelectionChange"]
+ }
+ }, N = null, M = null, I = null, O = null, R = !1;
+ b.canUseDOM && (R = k("change") && (!document.documentMode || document.documentMode > 8));
+ var A = !1;
+ b.canUseDOM && (A = k("input") && (!document.documentMode || document.documentMode > 11));
+ var D = {
+ get: function () {
+ return O.get.call(this)
+ }, set: function (e) {
+ I = "" + e, O.set.call(this, e)
+ }
+ }, L = {
+ eventTypes: S, extractEvents: function (e, t, n, o) {
+ var i, a, s = t ? E.getNodeFromInstance(t) : window;
+ if (r(s) ? R ? i = u : a = l : P(s) ? A ? i = f : (i = m, a = h) : v(s)
+ && (i = g), i) {
+ var c = i(e, t);
+ if (c) {
+ var p = w.getPooled(S.change, c, n, o);
+ return p.type = "change", C.accumulateTwoPhaseDispatches(p), p
+ }
+ }
+ a && a(e, s, t), "topBlur" === e && y(t, s)
+ }
+ };
+ t.exports = L
+ }, {102: 102, 109: 109, 110: 110, 123: 123, 16: 16, 19: 19, 33: 33, 71: 71, 80: 80}],
+ 8: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ return Array.isArray(t) && (t = t[1]), t ? t.nextSibling : e.firstChild
+ }
+
+ function o(e, t, n) {
+ c.insertTreeBefore(e, t, n)
+ }
+
+ function i(e, t, n) {
+ Array.isArray(t) ? s(e, t[0], t[1], n) : m(e, t, n)
+ }
+
+ function a(e, t) {
+ if (Array.isArray(t)) {
+ var n = t[1];
+ t = t[0], u(e, t, n), e.removeChild(n)
+ }
+ e.removeChild(t)
+ }
+
+ function s(e, t, n, r) {
+ for (var o = t; ;) {
+ var i = o.nextSibling;
+ if (m(e, o, r), o === n) {
+ break;
+ }
+ o = i
+ }
+ }
+
+ function u(e, t, n) {
+ for (; ;) {
+ var r = t.nextSibling;
+ if (r === n) {
+ break;
+ }
+ e.removeChild(r)
+ }
+ }
+
+ function l(e, t, n) {
+ var r = e.parentNode, o = e.nextSibling;
+ o === t ? n && m(r, document.createTextNode(n), o) : n ? (h(o, n), u(r, o, t)) : u(r, e,
+ t)
+ }
+
+ var c = e(9), p = e(13), d = (e(33), e(58), e(93)), f = e(114), h = e(115),
+ m = d(function (e, t, n) {
+ e.insertBefore(t, n)
+ }), v = p.dangerouslyReplaceNodeWithMarkup, g = {
+ dangerouslyReplaceNodeWithMarkup: v,
+ replaceDelimitedText: l,
+ processUpdates: function (e, t) {
+ for (var n = 0; n < t.length; n++) {
+ var s = t[n];
+ switch (s.type) {
+ case"INSERT_MARKUP":
+ o(e, s.content, r(e, s.afterNode));
+ break;
+ case"MOVE_EXISTING":
+ i(e, s.fromNode, r(e, s.afterNode));
+ break;
+ case"SET_MARKUP":
+ f(e, s.content);
+ break;
+ case"TEXT_CONTENT":
+ h(e, s.content);
+ break;
+ case"REMOVE_NODE":
+ a(e, s.fromNode)
+ }
+ }
+ }
+ };
+ t.exports = g
+ }, {114: 114, 115: 115, 13: 13, 33: 33, 58: 58, 9: 9, 93: 93}],
+ 9: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ if (h) {
+ var t = e.node, n = e.children;
+ if (n.length) {
+ for (var r = 0; r < n.length; r++) {
+ m(t, n[r], null);
+ }
+ } else {
+ null != e.html
+ ? p(t, e.html) : null != e.text && f(t, e.text)
+ }
+ }
+ }
+
+ function o(e, t) {
+ e.parentNode.replaceChild(t.node, e), r(t)
+ }
+
+ function i(e, t) {
+ h ? e.children.push(t) : e.node.appendChild(t.node)
+ }
+
+ function a(e, t) {
+ h ? e.html = t : p(e.node, t)
+ }
+
+ function s(e, t) {
+ h ? e.text = t : f(e.node, t)
+ }
+
+ function u() {
+ return this.node.nodeName
+ }
+
+ function l(e) {
+ return {node: e, children: [], html: null, text: null, toString: u}
+ }
+
+ var c = e(10), p = e(114), d = e(93), f = e(115),
+ h = "undefined" != typeof document && "number" == typeof document.documentMode
+ || "undefined" != typeof navigator && "string" == typeof navigator.userAgent
+ && /\bEdge\/\d/.test(navigator.userAgent), m = d(function (e, t, n) {
+ 11 === t.node.nodeType || 1 === t.node.nodeType && "object"
+ === t.node.nodeName.toLowerCase() && (null == t.node.namespaceURI || t.node.namespaceURI
+ === c.html) ? (r(t), e.insertBefore(t.node, n)) : (e.insertBefore(t.node, n), r(t))
+ });
+ l.insertTreeBefore = m, l.replaceChildWithTree = o, l.queueChild = i, l.queueHTML = a, l.queueText = s, t.exports = l
+ }, {10: 10, 114: 114, 115: 115, 93: 93}],
+ 10: [function (e, t, n) {
+ "use strict";
+ var r = {
+ html: "http://www.w3.org/1999/xhtml",
+ mathml: "http://www.w3.org/1998/Math/MathML",
+ svg: "http://www.w3.org/2000/svg"
+ };
+ t.exports = r
+ }, {}],
+ 11: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ return (e & t) === t
+ }
+
+ var o = e(112), i = (e(137), {
+ MUST_USE_PROPERTY: 1,
+ HAS_BOOLEAN_VALUE: 4,
+ HAS_NUMERIC_VALUE: 8,
+ HAS_POSITIVE_NUMERIC_VALUE: 24,
+ HAS_OVERLOADED_BOOLEAN_VALUE: 32,
+ injectDOMPropertyConfig: function (e) {
+ var t = i, n = e.Properties || {}, a = e.DOMAttributeNamespaces || {},
+ u = e.DOMAttributeNames || {}, l = e.DOMPropertyNames || {},
+ c = e.DOMMutationMethods || {};
+ e.isCustomAttribute && s._isCustomAttributeFunctions.push(e.isCustomAttribute);
+ for (var p in n) {
+ s.properties.hasOwnProperty(p) && o("48", p);
+ var d = p.toLowerCase(), f = n[p], h = {
+ attributeName: d,
+ attributeNamespace: null,
+ propertyName: p,
+ mutationMethod: null,
+ mustUseProperty: r(f, t.MUST_USE_PROPERTY),
+ hasBooleanValue: r(f, t.HAS_BOOLEAN_VALUE),
+ hasNumericValue: r(f, t.HAS_NUMERIC_VALUE),
+ hasPositiveNumericValue: r(f, t.HAS_POSITIVE_NUMERIC_VALUE),
+ hasOverloadedBooleanValue: r(f, t.HAS_OVERLOADED_BOOLEAN_VALUE)
+ };
+ if (h.hasBooleanValue + h.hasNumericValue + h.hasOverloadedBooleanValue <= 1 || o(
+ "50", p), u.hasOwnProperty(p)) {
+ var m = u[p];
+ h.attributeName = m
+ }
+ a.hasOwnProperty(p) && (h.attributeNamespace = a[p]), l.hasOwnProperty(p)
+ && (h.propertyName = l[p]), c.hasOwnProperty(p)
+ && (h.mutationMethod = c[p]), s.properties[p] = h
+ }
+ }
+ }),
+ a = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",
+ s = {
+ ID_ATTRIBUTE_NAME: "data-reactid",
+ ROOT_ATTRIBUTE_NAME: "data-reactroot",
+ ATTRIBUTE_NAME_START_CHAR: a,
+ ATTRIBUTE_NAME_CHAR: a + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",
+ properties: {},
+ getPossibleStandardName: null,
+ _isCustomAttributeFunctions: [],
+ isCustomAttribute: function (e) {
+ for (var t = 0; t < s._isCustomAttributeFunctions.length;
+ t++) {
+ if ((0, s._isCustomAttributeFunctions[t])(e)) {
+ return !0;
+ }
+ }
+ return !1
+ },
+ injection: i
+ };
+ t.exports = s
+ }, {112: 112, 137: 137}],
+ 12: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return !!l.hasOwnProperty(e) || !u.hasOwnProperty(e) && (s.test(e) ? (l[e] = !0, !0)
+ : (u[e] = !0, !1))
+ }
+
+ function o(e, t) {
+ return null == t || e.hasBooleanValue && !t || e.hasNumericValue && isNaN(t)
+ || e.hasPositiveNumericValue && t < 1 || e.hasOverloadedBooleanValue && !1 === t
+ }
+
+ var i = e(11), a = (e(33), e(58), e(111)), s = (e(142), new RegExp(
+ "^[" + i.ATTRIBUTE_NAME_START_CHAR + "][" + i.ATTRIBUTE_NAME_CHAR + "]*$")), u = {},
+ l = {}, c = {
+ createMarkupForID: function (e) {
+ return i.ID_ATTRIBUTE_NAME + "=" + a(e)
+ }, setAttributeForID: function (e, t) {
+ e.setAttribute(i.ID_ATTRIBUTE_NAME, t)
+ }, createMarkupForRoot: function () {
+ return i.ROOT_ATTRIBUTE_NAME + '=""'
+ }, setAttributeForRoot: function (e) {
+ e.setAttribute(i.ROOT_ATTRIBUTE_NAME, "")
+ }, createMarkupForProperty: function (e, t) {
+ var n = i.properties.hasOwnProperty(e) ? i.properties[e] : null;
+ if (n) {
+ if (o(n, t)) {
+ return "";
+ }
+ var r = n.attributeName;
+ return n.hasBooleanValue || n.hasOverloadedBooleanValue && !0 === t ? r + '=""' : r
+ + "=" + a(t)
+ }
+ return i.isCustomAttribute(e) ? null == t ? "" : e + "=" + a(t) : null
+ }, createMarkupForCustomAttribute: function (e, t) {
+ return r(e) && null != t ? e + "=" + a(t) : ""
+ }, setValueForProperty: function (e, t, n) {
+ var r = i.properties.hasOwnProperty(t) ? i.properties[t] : null;
+ if (r) {
+ var a = r.mutationMethod;
+ if (a) {
+ a(e, n);
+ } else {
+ if (o(r, n)) {
+ return void this.deleteValueForProperty(e, t);
+ }
+ if (r.mustUseProperty) {
+ e[r.propertyName] = n;
+ } else {
+ var s = r.attributeName, u = r.attributeNamespace;
+ u ? e.setAttributeNS(u, s, "" + n) : r.hasBooleanValue
+ || r.hasOverloadedBooleanValue && !0 === n ? e.setAttribute(s, "")
+ : e.setAttribute(s, "" + n)
+ }
+ }
+ } else if (i.isCustomAttribute(t)) {
+ return void c.setValueForAttribute(e, t, n)
+ }
+ }, setValueForAttribute: function (e, t, n) {
+ r(t) && (null == n ? e.removeAttribute(t) : e.setAttribute(t, "" + n))
+ }, deleteValueForAttribute: function (e, t) {
+ e.removeAttribute(t)
+ }, deleteValueForProperty: function (e, t) {
+ var n = i.properties.hasOwnProperty(t) ? i.properties[t] : null;
+ if (n) {
+ var r = n.mutationMethod;
+ if (r) {
+ r(e, void 0);
+ } else if (n.mustUseProperty) {
+ var o = n.propertyName;
+ n.hasBooleanValue ? e[o] = !1 : e[o] = ""
+ } else {
+ e.removeAttribute(n.attributeName)
+ }
+ } else {
+ i.isCustomAttribute(t) && e.removeAttribute(t)
+ }
+ }
+ };
+ t.exports = c
+ }, {11: 11, 111: 111, 142: 142, 33: 33, 58: 58}],
+ 13: [function (e, t, n) {
+ "use strict";
+ var r = e(112), o = e(9), i = e(123), a = e(128), s = e(129), u = (e(137), {
+ dangerouslyReplaceNodeWithMarkup: function (e, t) {
+ if (i.canUseDOM || r("56"), t || r("57"), "HTML" === e.nodeName && r("58"), "string"
+ == typeof t) {
+ var n = a(t, s)[0];
+ e.parentNode.replaceChild(n, e)
+ } else {
+ o.replaceChildWithTree(e, t)
+ }
+ }
+ });
+ t.exports = u
+ }, {112: 112, 123: 123, 128: 128, 129: 129, 137: 137, 9: 9}],
+ 14: [function (e, t, n) {
+ "use strict";
+ var r = ["ResponderEventPlugin", "SimpleEventPlugin", "TapEventPlugin",
+ "EnterLeaveEventPlugin", "ChangeEventPlugin", "SelectEventPlugin",
+ "BeforeInputEventPlugin"];
+ t.exports = r
+ }, {}],
+ 15: [function (e, t, n) {
+ "use strict";
+ var r = e(19), o = e(33), i = e(84), a = {
+ mouseEnter: {
+ registrationName: "onMouseEnter",
+ dependencies: ["topMouseOut", "topMouseOver"]
+ },
+ mouseLeave: {
+ registrationName: "onMouseLeave",
+ dependencies: ["topMouseOut", "topMouseOver"]
+ }
+ }, s = {
+ eventTypes: a, extractEvents: function (e, t, n, s) {
+ if ("topMouseOver" === e && (n.relatedTarget || n.fromElement)) {
+ return null;
+ }
+ if ("topMouseOut" !== e && "topMouseOver" !== e) {
+ return null;
+ }
+ var u;
+ if (s.window === s) {
+ u = s;
+ } else {
+ var l = s.ownerDocument;
+ u = l ? l.defaultView || l.parentWindow : window
+ }
+ var c, p;
+ if ("topMouseOut" === e) {
+ c = t;
+ var d = n.relatedTarget || n.toElement;
+ p = d ? o.getClosestInstanceFromNode(d) : null
+ } else {
+ c = null, p = t;
+ }
+ if (c === p) {
+ return null;
+ }
+ var f = null == c ? u : o.getNodeFromInstance(c),
+ h = null == p ? u : o.getNodeFromInstance(p),
+ m = i.getPooled(a.mouseLeave, c, n, s);
+ m.type = "mouseleave", m.target = f, m.relatedTarget = h;
+ var v = i.getPooled(a.mouseEnter, p, n, s);
+ return v.type = "mouseenter", v.target = h, v.relatedTarget = f, r.accumulateEnterLeaveDispatches(
+ m, v, c, p), [m, v]
+ }
+ };
+ t.exports = s
+ }, {19: 19, 33: 33, 84: 84}],
+ 16: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return "button" === e || "input" === e || "select" === e || "textarea" === e
+ }
+
+ function o(e, t, n) {
+ switch (e) {
+ case"onClick":
+ case"onClickCapture":
+ case"onDoubleClick":
+ case"onDoubleClickCapture":
+ case"onMouseDown":
+ case"onMouseDownCapture":
+ case"onMouseMove":
+ case"onMouseMoveCapture":
+ case"onMouseUp":
+ case"onMouseUpCapture":
+ return !(!n.disabled || !r(t));
+ default:
+ return !1
+ }
+ }
+
+ var i = e(112), a = e(17), s = e(18), u = e(50), l = e(91), c = e(98), p = (e(137), {}),
+ d = null, f = function (e, t) {
+ e && (s.executeDispatchesInOrder(e, t), e.isPersistent() || e.constructor.release(e))
+ }, h = function (e) {
+ return f(e, !0)
+ }, m = function (e) {
+ return f(e, !1)
+ }, v = function (e) {
+ return "." + e._rootNodeID
+ }, g = {
+ injection: {
+ injectEventPluginOrder: a.injectEventPluginOrder,
+ injectEventPluginsByName: a.injectEventPluginsByName
+ }, putListener: function (e, t, n) {
+ "function" != typeof n && i("94", t, typeof n);
+ var r = v(e);
+ (p[t] || (p[t] = {}))[r] = n;
+ var o = a.registrationNameModules[t];
+ o && o.didPutListener && o.didPutListener(e, t, n)
+ }, getListener: function (e, t) {
+ var n = p[t];
+ if (o(t, e._currentElement.type, e._currentElement.props)) {
+ return null;
+ }
+ var r = v(e);
+ return n && n[r]
+ }, deleteListener: function (e, t) {
+ var n = a.registrationNameModules[t];
+ n && n.willDeleteListener && n.willDeleteListener(e, t);
+ var r = p[t];
+ r && delete r[v(e)]
+ }, deleteAllListeners: function (e) {
+ var t = v(e);
+ for (var n in p) {
+ if (p.hasOwnProperty(n) && p[n][t]) {
+ var r = a.registrationNameModules[n];
+ r && r.willDeleteListener && r.willDeleteListener(e, n), delete p[n][t]
+ }
+ }
+ }, extractEvents: function (e, t, n, r) {
+ for (var o, i = a.plugins, s = 0; s < i.length; s++) {
+ var u = i[s];
+ if (u) {
+ var c = u.extractEvents(e, t, n, r);
+ c && (o = l(o, c))
+ }
+ }
+ return o
+ }, enqueueEvents: function (e) {
+ e && (d = l(d, e))
+ }, processEventQueue: function (e) {
+ var t = d;
+ d = null, e ? c(t, h) : c(t, m), d && i("95"), u.rethrowCaughtError()
+ }, __purge: function () {
+ p = {}
+ }, __getListenerBank: function () {
+ return p
+ }
+ };
+ t.exports = g
+ }, {112: 112, 137: 137, 17: 17, 18: 18, 50: 50, 91: 91, 98: 98}],
+ 17: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ if (s) {
+ for (var e in u) {
+ var t = u[e], n = s.indexOf(e);
+ if (n > -1 || a("96", e), !l.plugins[n]) {
+ t.extractEvents || a("97", e), l.plugins[n] = t;
+ var r = t.eventTypes;
+ for (var i in r) {
+ o(r[i], t, i) || a("98", i, e)
+ }
+ }
+ }
+ }
+ }
+
+ function o(e, t, n) {
+ l.eventNameDispatchConfigs.hasOwnProperty(n) && a("99",
+ n), l.eventNameDispatchConfigs[n] = e;
+ var r = e.phasedRegistrationNames;
+ if (r) {
+ for (var o in r) {
+ if (r.hasOwnProperty(o)) {
+ var s = r[o];
+ i(s, t, n)
+ }
+ }
+ return !0
+ }
+ return !!e.registrationName && (i(e.registrationName, t, n), !0)
+ }
+
+ function i(e, t, n) {
+ l.registrationNameModules[e] && a("100",
+ e), l.registrationNameModules[e] = t, l.registrationNameDependencies[e] = t.eventTypes[n].dependencies
+ }
+
+ var a = e(112), s = (e(137), null), u = {}, l = {
+ plugins: [],
+ eventNameDispatchConfigs: {},
+ registrationNameModules: {},
+ registrationNameDependencies: {},
+ possibleRegistrationNames: null,
+ injectEventPluginOrder: function (e) {
+ s && a("101"), s = Array.prototype.slice.call(e), r()
+ },
+ injectEventPluginsByName: function (e) {
+ var t = !1;
+ for (var n in e) {
+ if (e.hasOwnProperty(n)) {
+ var o = e[n];
+ u.hasOwnProperty(n) && u[n] === o || (u[n] && a("102", n), u[n] = o, t = !0)
+ }
+ }
+ t && r()
+ },
+ getPluginModuleForEvent: function (e) {
+ var t = e.dispatchConfig;
+ if (t.registrationName) {
+ return l.registrationNameModules[t.registrationName] || null;
+ }
+ if (void 0 !== t.phasedRegistrationNames) {
+ var n = t.phasedRegistrationNames;
+ for (var r in n) {
+ if (n.hasOwnProperty(r)) {
+ var o = l.registrationNameModules[n[r]];
+ if (o) {
+ return o
+ }
+ }
+ }
+ }
+ return null
+ },
+ _resetEventPlugins: function () {
+ s = null;
+ for (var e in u) {
+ u.hasOwnProperty(e) && delete u[e];
+ }
+ l.plugins.length = 0;
+ var t = l.eventNameDispatchConfigs;
+ for (var n in t) {
+ t.hasOwnProperty(n) && delete t[n];
+ }
+ var r = l.registrationNameModules;
+ for (var o in r) {
+ r.hasOwnProperty(o) && delete r[o]
+ }
+ }
+ };
+ t.exports = l
+ }, {112: 112, 137: 137}],
+ 18: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return "topMouseUp" === e || "topTouchEnd" === e || "topTouchCancel" === e
+ }
+
+ function o(e) {
+ return "topMouseMove" === e || "topTouchMove" === e
+ }
+
+ function i(e) {
+ return "topMouseDown" === e || "topTouchStart" === e
+ }
+
+ function a(e, t, n, r) {
+ var o = e.type || "unknown-event";
+ e.currentTarget = g.getNodeFromInstance(r), t ? m.invokeGuardedCallbackWithCatch(o, n,
+ e) : m.invokeGuardedCallback(o, n, e), e.currentTarget = null
+ }
+
+ function s(e, t) {
+ var n = e._dispatchListeners, r = e._dispatchInstances;
+ if (Array.isArray(n)) {
+ for (var o = 0; o < n.length && !e.isPropagationStopped(); o++) {
+ a(
+ e, t, n[o], r[o]);
+ }
+ } else {
+ n && a(e, t, n, r);
+ }
+ e._dispatchListeners = null, e._dispatchInstances = null
+ }
+
+ function u(e) {
+ var t = e._dispatchListeners, n = e._dispatchInstances;
+ if (Array.isArray(t)) {
+ for (var r = 0; r < t.length && !e.isPropagationStopped(); r++) {
+ if (t[r](e,
+ n[r])) {
+ return n[r]
+ }
+ }
+ } else if (t && t(e, n)) {
+ return n;
+ }
+ return null
+ }
+
+ function l(e) {
+ var t = u(e);
+ return e._dispatchInstances = null, e._dispatchListeners = null, t
+ }
+
+ function c(e) {
+ var t = e._dispatchListeners, n = e._dispatchInstances;
+ Array.isArray(t) && h("103"), e.currentTarget = t ? g.getNodeFromInstance(n) : null;
+ var r = t ? t(e) : null;
+ return e.currentTarget = null, e._dispatchListeners = null, e._dispatchInstances = null, r
+ }
+
+ function p(e) {
+ return !!e._dispatchListeners
+ }
+
+ var d, f, h = e(112), m = e(50), v = (e(137), e(142), {
+ injectComponentTree: function (e) {
+ d = e
+ }, injectTreeTraversal: function (e) {
+ f = e
+ }
+ }), g = {
+ isEndish: r,
+ isMoveish: o,
+ isStartish: i,
+ executeDirectDispatch: c,
+ executeDispatchesInOrder: s,
+ executeDispatchesInOrderStopAtTrue: l,
+ hasDispatches: p,
+ getInstanceFromNode: function (e) {
+ return d.getInstanceFromNode(e)
+ },
+ getNodeFromInstance: function (e) {
+ return d.getNodeFromInstance(e)
+ },
+ isAncestor: function (e, t) {
+ return f.isAncestor(e, t)
+ },
+ getLowestCommonAncestor: function (e, t) {
+ return f.getLowestCommonAncestor(e, t)
+ },
+ getParentInstance: function (e) {
+ return f.getParentInstance(e)
+ },
+ traverseTwoPhase: function (e, t, n) {
+ return f.traverseTwoPhase(e, t, n)
+ },
+ traverseEnterLeave: function (e, t, n, r, o) {
+ return f.traverseEnterLeave(e, t, n, r, o)
+ },
+ injection: v
+ };
+ t.exports = g
+ }, {112: 112, 137: 137, 142: 142, 50: 50}],
+ 19: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n) {
+ var r = t.dispatchConfig.phasedRegistrationNames[n];
+ return g(e, r)
+ }
+
+ function o(e, t, n) {
+ var o = r(e, n, t);
+ o && (n._dispatchListeners = m(n._dispatchListeners, o), n._dispatchInstances = m(
+ n._dispatchInstances, e))
+ }
+
+ function i(e) {
+ e && e.dispatchConfig.phasedRegistrationNames && h.traverseTwoPhase(e._targetInst, o, e)
+ }
+
+ function a(e) {
+ if (e && e.dispatchConfig.phasedRegistrationNames) {
+ var t = e._targetInst, n = t ? h.getParentInstance(t) : null;
+ h.traverseTwoPhase(n, o, e)
+ }
+ }
+
+ function s(e, t, n) {
+ if (n && n.dispatchConfig.registrationName) {
+ var r = n.dispatchConfig.registrationName, o = g(e, r);
+ o && (n._dispatchListeners = m(n._dispatchListeners, o), n._dispatchInstances = m(
+ n._dispatchInstances, e))
+ }
+ }
+
+ function u(e) {
+ e && e.dispatchConfig.registrationName && s(e._targetInst, null, e)
+ }
+
+ function l(e) {
+ v(e, i)
+ }
+
+ function c(e) {
+ v(e, a)
+ }
+
+ function p(e, t, n, r) {
+ h.traverseEnterLeave(n, r, s, e, t)
+ }
+
+ function d(e) {
+ v(e, u)
+ }
+
+ var f = e(16), h = e(18), m = e(91), v = e(98), g = (e(142), f.getListener), y = {
+ accumulateTwoPhaseDispatches: l,
+ accumulateTwoPhaseDispatchesSkipTarget: c,
+ accumulateDirectDispatches: d,
+ accumulateEnterLeaveDispatches: p
+ };
+ t.exports = y
+ }, {142: 142, 16: 16, 18: 18, 91: 91, 98: 98}],
+ 20: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ this._root = e, this._startText = this.getText(), this._fallbackText = null
+ }
+
+ var o = e(143), i = e(24), a = e(106);
+ o(r.prototype, {
+ destructor: function () {
+ this._root = null, this._startText = null, this._fallbackText = null
+ }, getText: function () {
+ return "value" in this._root ? this._root.value : this._root[a()]
+ }, getData: function () {
+ if (this._fallbackText) {
+ return this._fallbackText;
+ }
+ var e, t, n = this._startText, r = n.length, o = this.getText(), i = o.length;
+ for (e = 0; e < r && n[e] === o[e]; e++) {
+ ;
+ }
+ var a = r - e;
+ for (t = 1; t <= a && n[r - t] === o[i - t]; t++) {
+ ;
+ }
+ var s = t > 1 ? 1 - t : void 0;
+ return this._fallbackText = o.slice(e, s), this._fallbackText
+ }
+ }), i.addPoolingTo(r), t.exports = r
+ }, {106: 106, 143: 143, 24: 24}],
+ 21: [function (e, t, n) {
+ "use strict";
+ var r = e(11), o = r.injection.MUST_USE_PROPERTY, i = r.injection.HAS_BOOLEAN_VALUE,
+ a = r.injection.HAS_NUMERIC_VALUE, s = r.injection.HAS_POSITIVE_NUMERIC_VALUE,
+ u = r.injection.HAS_OVERLOADED_BOOLEAN_VALUE, l = {
+ isCustomAttribute: RegExp.prototype.test.bind(
+ new RegExp("^(data|aria)-[" + r.ATTRIBUTE_NAME_CHAR + "]*$")),
+ Properties: {
+ accept: 0,
+ acceptCharset: 0,
+ accessKey: 0,
+ action: 0,
+ allowFullScreen: i,
+ allowTransparency: 0,
+ alt: 0,
+ as: 0,
+ async: i,
+ autoComplete: 0,
+ autoPlay: i,
+ capture: i,
+ cellPadding: 0,
+ cellSpacing: 0,
+ charSet: 0,
+ challenge: 0,
+ checked: o | i,
+ cite: 0,
+ classID: 0,
+ className: 0,
+ cols: s,
+ colSpan: 0,
+ content: 0,
+ contentEditable: 0,
+ contextMenu: 0,
+ controls: i,
+ coords: 0,
+ crossOrigin: 0,
+ data: 0,
+ dateTime: 0,
+ default: i,
+ defer: i,
+ dir: 0,
+ disabled: i,
+ download: u,
+ draggable: 0,
+ encType: 0,
+ form: 0,
+ formAction: 0,
+ formEncType: 0,
+ formMethod: 0,
+ formNoValidate: i,
+ formTarget: 0,
+ frameBorder: 0,
+ headers: 0,
+ height: 0,
+ hidden: i,
+ high: 0,
+ href: 0,
+ hrefLang: 0,
+ htmlFor: 0,
+ httpEquiv: 0,
+ icon: 0,
+ id: 0,
+ inputMode: 0,
+ integrity: 0,
+ is: 0,
+ keyParams: 0,
+ keyType: 0,
+ kind: 0,
+ label: 0,
+ lang: 0,
+ list: 0,
+ loop: i,
+ low: 0,
+ manifest: 0,
+ marginHeight: 0,
+ marginWidth: 0,
+ max: 0,
+ maxLength: 0,
+ media: 0,
+ mediaGroup: 0,
+ method: 0,
+ min: 0,
+ minLength: 0,
+ multiple: o | i,
+ muted: o | i,
+ name: 0,
+ nonce: 0,
+ noValidate: i,
+ open: i,
+ optimum: 0,
+ pattern: 0,
+ placeholder: 0,
+ playsInline: i,
+ poster: 0,
+ preload: 0,
+ profile: 0,
+ radioGroup: 0,
+ readOnly: i,
+ referrerPolicy: 0,
+ rel: 0,
+ required: i,
+ reversed: i,
+ role: 0,
+ rows: s,
+ rowSpan: a,
+ sandbox: 0,
+ scope: 0,
+ scoped: i,
+ scrolling: 0,
+ seamless: i,
+ selected: o | i,
+ shape: 0,
+ size: s,
+ sizes: 0,
+ span: s,
+ spellCheck: 0,
+ src: 0,
+ srcDoc: 0,
+ srcLang: 0,
+ srcSet: 0,
+ start: a,
+ step: 0,
+ style: 0,
+ summary: 0,
+ tabIndex: 0,
+ target: 0,
+ title: 0,
+ type: 0,
+ useMap: 0,
+ value: 0,
+ width: 0,
+ wmode: 0,
+ wrap: 0,
+ about: 0,
+ datatype: 0,
+ inlist: 0,
+ prefix: 0,
+ property: 0,
+ resource: 0,
+ typeof: 0,
+ vocab: 0,
+ autoCapitalize: 0,
+ autoCorrect: 0,
+ autoSave: 0,
+ color: 0,
+ itemProp: 0,
+ itemScope: i,
+ itemType: 0,
+ itemID: 0,
+ itemRef: 0,
+ results: 0,
+ security: 0,
+ unselectable: 0
+ },
+ DOMAttributeNames: {
+ acceptCharset: "accept-charset",
+ className: "class",
+ htmlFor: "for",
+ httpEquiv: "http-equiv"
+ },
+ DOMPropertyNames: {},
+ DOMMutationMethods: {
+ value: function (e, t) {
+ if (null == t) {
+ return e.removeAttribute("value");
+ }
+ "number" !== e.type || !1 === e.hasAttribute("value") ? e.setAttribute("value",
+ "" + t) : e.validity && !e.validity.badInput && e.ownerDocument.activeElement
+ !== e && e.setAttribute("value", "" + t)
+ }
+ }
+ };
+ t.exports = l
+ }, {11: 11}],
+ 22: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = {"=": "=0", ":": "=2"};
+ return "$" + ("" + e).replace(/[=:]/g, function (e) {
+ return t[e]
+ })
+ }
+
+ function o(e) {
+ var t = {"=0": "=", "=2": ":"};
+ return ("" + ("." === e[0] && "$" === e[1] ? e.substring(2) : e.substring(1))).replace(
+ /(=0|=2)/g, function (e) {
+ return t[e]
+ })
+ }
+
+ var i = {escape: r, unescape: o};
+ t.exports = i
+ }, {}],
+ 23: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ null != e.checkedLink && null != e.valueLink && s("87")
+ }
+
+ function o(e) {
+ r(e), (null != e.value || null != e.onChange) && s("88")
+ }
+
+ function i(e) {
+ r(e), (null != e.checked || null != e.onChange) && s("89")
+ }
+
+ function a(e) {
+ if (e) {
+ var t = e.getName();
+ if (t) {
+ return " Check the render method of `" + t + "`."
+ }
+ }
+ return ""
+ }
+
+ var s = e(112), u = e(64), l = e(145), c = e(120), p = l(c.isValidElement),
+ d = (e(137), e(142), {
+ button: !0,
+ checkbox: !0,
+ image: !0,
+ hidden: !0,
+ radio: !0,
+ reset: !0,
+ submit: !0
+ }), f = {
+ value: function (e, t, n) {
+ return !e[t] || d[e.type] || e.onChange || e.readOnly || e.disabled ? null
+ : new Error(
+ "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")
+ }, checked: function (e, t, n) {
+ return !e[t] || e.onChange || e.readOnly || e.disabled ? null : new Error(
+ "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")
+ }, onChange: p.func
+ }, h = {}, m = {
+ checkPropTypes: function (e, t, n) {
+ for (var r in f) {
+ if (f.hasOwnProperty(r)) {
+ var o = f[r](t, r, e, "prop", null, u);
+ }
+ o instanceof Error && !(o.message in h) && (h[o.message] = !0, a(n))
+ }
+ }, getValue: function (e) {
+ return e.valueLink ? (o(e), e.valueLink.value) : e.value
+ }, getChecked: function (e) {
+ return e.checkedLink ? (i(e), e.checkedLink.value) : e.checked
+ }, executeOnChange: function (e, t) {
+ return e.valueLink ? (o(e), e.valueLink.requestChange(t.target.value)) : e.checkedLink
+ ? (i(e), e.checkedLink.requestChange(t.target.checked)) : e.onChange
+ ? e.onChange.call(void 0, t) : void 0
+ }
+ };
+ t.exports = m
+ }, {112: 112, 120: 120, 137: 137, 142: 142, 145: 145, 64: 64}],
+ 24: [function (e, t, n) {
+ "use strict";
+ var r = e(112), o = (e(137), function (e) {
+ var t = this;
+ if (t.instancePool.length) {
+ var n = t.instancePool.pop();
+ return t.call(n, e), n
+ }
+ return new t(e)
+ }), i = function (e, t) {
+ var n = this;
+ if (n.instancePool.length) {
+ var r = n.instancePool.pop();
+ return n.call(r, e, t), r
+ }
+ return new n(e, t)
+ }, a = function (e, t, n) {
+ var r = this;
+ if (r.instancePool.length) {
+ var o = r.instancePool.pop();
+ return r.call(o, e, t, n), o
+ }
+ return new r(e, t, n)
+ }, s = function (e, t, n, r) {
+ var o = this;
+ if (o.instancePool.length) {
+ var i = o.instancePool.pop();
+ return o.call(i, e, t, n, r), i
+ }
+ return new o(e, t, n, r)
+ }, u = function (e) {
+ var t = this;
+ e instanceof t || r("25"), e.destructor(), t.instancePool.length < t.poolSize
+ && t.instancePool.push(e)
+ }, l = o, c = function (e, t) {
+ var n = e;
+ return n.instancePool = [], n.getPooled = t || l, n.poolSize
+ || (n.poolSize = 10), n.release = u, n
+ }, p = {
+ addPoolingTo: c,
+ oneArgumentPooler: o,
+ twoArgumentPooler: i,
+ threeArgumentPooler: a,
+ fourArgumentPooler: s
+ };
+ t.exports = p
+ }, {112: 112, 137: 137}],
+ 25: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return Object.prototype.hasOwnProperty.call(e, m) || (e[m] = f++, p[e[m]] = {}), p[e[m]]
+ }
+
+ var o, i = e(143), a = e(17), s = e(51), u = e(90), l = e(107), c = e(109), p = {},
+ d = !1, f = 0, h = {
+ topAbort: "abort",
+ topAnimationEnd: l("animationend") || "animationend",
+ topAnimationIteration: l("animationiteration") || "animationiteration",
+ topAnimationStart: l("animationstart") || "animationstart",
+ topBlur: "blur",
+ topCanPlay: "canplay",
+ topCanPlayThrough: "canplaythrough",
+ topChange: "change",
+ topClick: "click",
+ topCompositionEnd: "compositionend",
+ topCompositionStart: "compositionstart",
+ topCompositionUpdate: "compositionupdate",
+ topContextMenu: "contextmenu",
+ topCopy: "copy",
+ topCut: "cut",
+ topDoubleClick: "dblclick",
+ topDrag: "drag",
+ topDragEnd: "dragend",
+ topDragEnter: "dragenter",
+ topDragExit: "dragexit",
+ topDragLeave: "dragleave",
+ topDragOver: "dragover",
+ topDragStart: "dragstart",
+ topDrop: "drop",
+ topDurationChange: "durationchange",
+ topEmptied: "emptied",
+ topEncrypted: "encrypted",
+ topEnded: "ended",
+ topError: "error",
+ topFocus: "focus",
+ topInput: "input",
+ topKeyDown: "keydown",
+ topKeyPress: "keypress",
+ topKeyUp: "keyup",
+ topLoadedData: "loadeddata",
+ topLoadedMetadata: "loadedmetadata",
+ topLoadStart: "loadstart",
+ topMouseDown: "mousedown",
+ topMouseMove: "mousemove",
+ topMouseOut: "mouseout",
+ topMouseOver: "mouseover",
+ topMouseUp: "mouseup",
+ topPaste: "paste",
+ topPause: "pause",
+ topPlay: "play",
+ topPlaying: "playing",
+ topProgress: "progress",
+ topRateChange: "ratechange",
+ topScroll: "scroll",
+ topSeeked: "seeked",
+ topSeeking: "seeking",
+ topSelectionChange: "selectionchange",
+ topStalled: "stalled",
+ topSuspend: "suspend",
+ topTextInput: "textInput",
+ topTimeUpdate: "timeupdate",
+ topTouchCancel: "touchcancel",
+ topTouchEnd: "touchend",
+ topTouchMove: "touchmove",
+ topTouchStart: "touchstart",
+ topTransitionEnd: l("transitionend") || "transitionend",
+ topVolumeChange: "volumechange",
+ topWaiting: "waiting",
+ topWheel: "wheel"
+ }, m = "_reactListenersID" + String(Math.random()).slice(2), v = i({}, s, {
+ ReactEventListener: null, injection: {
+ injectReactEventListener: function (e) {
+ e.setHandleTopLevel(v.handleTopLevel), v.ReactEventListener = e
+ }
+ }, setEnabled: function (e) {
+ v.ReactEventListener && v.ReactEventListener.setEnabled(e)
+ }, isEnabled: function () {
+ return !(!v.ReactEventListener || !v.ReactEventListener.isEnabled())
+ }, listenTo: function (e, t) {
+ for (var n = t, o = r(n), i = a.registrationNameDependencies[e], s = 0; s < i.length;
+ s++) {
+ var u = i[s];
+ o.hasOwnProperty(u) && o[u] || ("topWheel" === u ? c("wheel")
+ ? v.ReactEventListener.trapBubbledEvent("topWheel", "wheel", n) : c("mousewheel")
+ ? v.ReactEventListener.trapBubbledEvent("topWheel", "mousewheel", n)
+ : v.ReactEventListener.trapBubbledEvent("topWheel", "DOMMouseScroll", n)
+ : "topScroll" === u ? c("scroll", !0) ? v.ReactEventListener.trapCapturedEvent(
+ "topScroll", "scroll", n) : v.ReactEventListener.trapBubbledEvent("topScroll",
+ "scroll", v.ReactEventListener.WINDOW_HANDLE) : "topFocus" === u || "topBlur"
+ === u ? (c("focus", !0) ? (v.ReactEventListener.trapCapturedEvent("topFocus",
+ "focus", n), v.ReactEventListener.trapCapturedEvent("topBlur", "blur", n)) : c(
+ "focusin") && (v.ReactEventListener.trapBubbledEvent("topFocus", "focusin",
+ n), v.ReactEventListener.trapBubbledEvent("topBlur", "focusout",
+ n)), o.topBlur = !0, o.topFocus = !0) : h.hasOwnProperty(u)
+ && v.ReactEventListener.trapBubbledEvent(u, h[u], n), o[u] = !0)
+ }
+ }, trapBubbledEvent: function (e, t, n) {
+ return v.ReactEventListener.trapBubbledEvent(e, t, n)
+ }, trapCapturedEvent: function (e, t, n) {
+ return v.ReactEventListener.trapCapturedEvent(e, t, n)
+ }, supportsEventPageXY: function () {
+ if (!document.createEvent) {
+ return !1;
+ }
+ var e = document.createEvent("MouseEvent");
+ return null != e && "pageX" in e
+ }, ensureScrollValueMonitoring: function () {
+ if (void 0 === o && (o = v.supportsEventPageXY()), !o && !d) {
+ var e = u.refreshScrollValues;
+ v.ReactEventListener.monitorScrollValue(e), d = !0
+ }
+ }
+ });
+ t.exports = v
+ }, {107: 107, 109: 109, 143: 143, 17: 17, 51: 51, 90: 90}],
+ 26: [function (e, t, n) {
+ (function (n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ var o = void 0 === e[n];
+ null != t && o && (e[n] = i(t, !0))
+ }
+
+ var o = e(66), i = e(108), a = (e(22), e(116)), s = e(117);
+ e(142);
+ void 0 !== n && n.env;
+ var u = {
+ instantiateChildren: function (e, t, n, o) {
+ if (null == e) {
+ return null;
+ }
+ var i = {};
+ return s(e, r, i), i
+ }, updateChildren: function (e, t, n, r, s, u, l, c, p) {
+ if (t || e) {
+ var d, f;
+ for (d in t) {
+ if (t.hasOwnProperty(d)) {
+ f = e && e[d];
+ var h = f && f._currentElement, m = t[d];
+ if (null != f && a(h, m)) {
+ o.receiveComponent(f, m, s, c), t[d] = f;
+ } else {
+ f && (r[d] = o.getHostNode(f), o.unmountComponent(f, !1));
+ var v = i(m, !0);
+ t[d] = v;
+ var g = o.mountComponent(v, s, u, l, c, p);
+ n.push(g)
+ }
+ }
+ }
+ for (d in e) {
+ !e.hasOwnProperty(d) || t && t.hasOwnProperty(d)
+ || (f = e[d], r[d] = o.getHostNode(f), o.unmountComponent(f, !1))
+ }
+ }
+ }, unmountChildren: function (e, t) {
+ for (var n in e) {
+ if (e.hasOwnProperty(n)) {
+ var r = e[n];
+ o.unmountComponent(r, t)
+ }
+ }
+ }
+ };
+ t.exports = u
+ }).call(this, void 0)
+ }, {108: 108, 116: 116, 117: 117, 142: 142, 22: 22, 66: 66}],
+ 27: [function (e, t, n) {
+ "use strict";
+ var r = e(8), o = e(37), i = {
+ processChildrenUpdates: o.dangerouslyProcessChildrenUpdates,
+ replaceNodeWithMarkup: r.dangerouslyReplaceNodeWithMarkup
+ };
+ t.exports = i
+ }, {37: 37, 8: 8}],
+ 28: [function (e, t, n) {
+ "use strict";
+ var r = e(112), o = (e(137), !1), i = {
+ replaceNodeWithMarkup: null,
+ processChildrenUpdates: null,
+ injection: {
+ injectEnvironment: function (e) {
+ o && r(
+ "104"), i.replaceNodeWithMarkup = e.replaceNodeWithMarkup, i.processChildrenUpdates = e.processChildrenUpdates, o = !0
+ }
+ }
+ };
+ t.exports = i
+ }, {112: 112, 137: 137}],
+ 29: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ }
+
+ function o(e) {
+ return !(!e.prototype || !e.prototype.isReactComponent)
+ }
+
+ function i(e) {
+ return !(!e.prototype || !e.prototype.isPureReactComponent)
+ }
+
+ var a = e(112), s = e(143), u = e(120), l = e(28), c = e(119), p = e(50), d = e(57),
+ f = (e(58), e(62)), h = e(66), m = e(130), v = (e(137), e(141)), g = e(116),
+ y = (e(142), {ImpureClass: 0, PureClass: 1, StatelessFunctional: 2});
+ r.prototype.render = function () {
+ var e = d.get(this)._currentElement.type, t = e(this.props, this.context, this.updater);
+ return t
+ };
+ var _ = 1, C = {
+ construct: function (e) {
+ this._currentElement = e, this._rootNodeID = 0, this._compositeType = null, this._instance = null, this._hostParent = null, this._hostContainerInfo = null, this._updateBatchNumber = null, this._pendingElement = null, this._pendingStateQueue = null, this._pendingReplaceState = !1, this._pendingForceUpdate = !1, this._renderedNodeType = null, this._renderedComponent = null, this._context = null, this._mountOrder = 0, this._topLevelWrapper = null, this._pendingCallbacks = null, this._calledComponentWillUnmount = !1
+ }, mountComponent: function (e, t, n, s) {
+ this._context = s, this._mountOrder = _++, this._hostParent = t, this._hostContainerInfo = n;
+ var l, c = this._currentElement.props, p = this._processContext(s),
+ f = this._currentElement.type, h = e.getUpdateQueue(), v = o(f),
+ g = this._constructComponent(v, c, p, h);
+ v || null != g && null != g.render ? i(f) ? this._compositeType = y.PureClass
+ : this._compositeType = y.ImpureClass : (l = g, null === g || !1 === g
+ || u.isValidElement(g) || a("105", f.displayName || f.name || "Component"), g = new r(
+ f), this._compositeType = y.StatelessFunctional), g.props = c, g.context = p, g.refs = m, g.updater = h, this._instance = g, d.set(
+ g, this);
+ var C = g.state;
+ void 0 === C && (g.state = C = null), ("object" != typeof C || Array.isArray(C)) && a(
+ "106", this.getName()
+ || "ReactCompositeComponent"), this._pendingStateQueue = null, this._pendingReplaceState = !1, this._pendingForceUpdate = !1;
+ var b;
+ return b = g.unstable_handleError ? this.performInitialMountWithErrorHandling(l, t, n,
+ e, s) : this.performInitialMount(l, t, n, e, s), g.componentDidMount
+ && e.getReactMountReady().enqueue(g.componentDidMount, g), b
+ }, _constructComponent: function (e, t, n, r) {
+ return this._constructComponentWithoutOwner(e, t, n, r)
+ }, _constructComponentWithoutOwner: function (e, t, n, r) {
+ var o = this._currentElement.type;
+ return e ? new o(t, n, r) : o(t, n, r)
+ }, performInitialMountWithErrorHandling: function (e, t, n, r, o) {
+ var i, a = r.checkpoint();
+ try {
+ i = this.performInitialMount(e, t, n, r, o)
+ } catch (s) {
+ r.rollback(a), this._instance.unstable_handleError(s), this._pendingStateQueue
+ && (this._instance.state = this._processPendingState(this._instance.props,
+ this._instance.context)), a = r.checkpoint(), this._renderedComponent.unmountComponent(
+ !0), r.rollback(a), i = this.performInitialMount(e, t, n, r, o)
+ }
+ return i
+ }, performInitialMount: function (e, t, n, r, o) {
+ var i = this._instance;
+ i.componentWillMount && (i.componentWillMount(), this._pendingStateQueue
+ && (i.state = this._processPendingState(i.props, i.context))), void 0 === e
+ && (e = this._renderValidatedComponent());
+ var a = f.getType(e);
+ this._renderedNodeType = a;
+ var s = this._instantiateReactComponent(e, a !== f.EMPTY);
+ return this._renderedComponent = s, h.mountComponent(s, r, t, n,
+ this._processChildContext(o), 0)
+ }, getHostNode: function () {
+ return h.getHostNode(this._renderedComponent)
+ }, unmountComponent: function (e) {
+ if (this._renderedComponent) {
+ var t = this._instance;
+ if (t.componentWillUnmount
+ && !t._calledComponentWillUnmount) {
+ if (t._calledComponentWillUnmount = !0, e) {
+ var n = this.getName() + ".componentWillUnmount()";
+ p.invokeGuardedCallback(n, t.componentWillUnmount.bind(t))
+ } else {
+ t.componentWillUnmount();
+ }
+ }
+ this._renderedComponent && (h.unmountComponent(this._renderedComponent,
+ e), this._renderedNodeType = null, this._renderedComponent = null, this._instance = null), this._pendingStateQueue = null, this._pendingReplaceState = !1, this._pendingForceUpdate = !1, this._pendingCallbacks = null, this._pendingElement = null, this._context = null, this._rootNodeID = 0, this._topLevelWrapper = null, d.remove(
+ t)
+ }
+ }, _maskContext: function (e) {
+ var t = this._currentElement.type, n = t.contextTypes;
+ if (!n) {
+ return m;
+ }
+ var r = {};
+ for (var o in n) {
+ r[o] = e[o];
+ }
+ return r
+ }, _processContext: function (e) {
+ return this._maskContext(e)
+ }, _processChildContext: function (e) {
+ var t, n = this._currentElement.type, r = this._instance;
+ if (r.getChildContext && (t = r.getChildContext()), t) {
+ "object" != typeof n.childContextTypes && a("107",
+ this.getName() || "ReactCompositeComponent");
+ for (var o in t) {
+ o in n.childContextTypes || a("108",
+ this.getName() || "ReactCompositeComponent", o);
+ }
+ return s({}, e, t)
+ }
+ return e
+ }, _checkContextTypes: function (e, t, n) {
+ }, receiveComponent: function (e, t, n) {
+ var r = this._currentElement, o = this._context;
+ this._pendingElement = null, this.updateComponent(t, r, e, o, n)
+ }, performUpdateIfNecessary: function (e) {
+ null != this._pendingElement ? h.receiveComponent(this, this._pendingElement, e,
+ this._context) : null !== this._pendingStateQueue || this._pendingForceUpdate
+ ? this.updateComponent(e, this._currentElement, this._currentElement, this._context,
+ this._context) : this._updateBatchNumber = null
+ }, updateComponent: function (e, t, n, r, o) {
+ var i = this._instance;
+ null == i && a("136", this.getName() || "ReactCompositeComponent");
+ var s, u = !1;
+ this._context === o ? s = i.context : (s = this._processContext(o), u = !0);
+ var l = t.props, c = n.props;
+ t !== n && (u = !0), u && i.componentWillReceiveProps && i.componentWillReceiveProps(
+ c, s);
+ var p = this._processPendingState(c, s), d = !0;
+ this._pendingForceUpdate || (i.shouldComponentUpdate ? d = i.shouldComponentUpdate(c,
+ p, s) : this._compositeType === y.PureClass && (d = !v(l, c) || !v(i.state,
+ p))), this._updateBatchNumber = null, d
+ ? (this._pendingForceUpdate = !1, this._performComponentUpdate(n, c, p, s, e, o))
+ : (this._currentElement = n, this._context = o, i.props = c, i.state = p, i.context = s)
+ }, _processPendingState: function (e, t) {
+ var n = this._instance, r = this._pendingStateQueue, o = this._pendingReplaceState;
+ if (this._pendingReplaceState = !1, this._pendingStateQueue = null, !r) {
+ return n.state;
+ }
+ if (o && 1 === r.length) {
+ return r[0];
+ }
+ for (var i = s({}, o ? r[0] : n.state), a = o ? 1 : 0; a < r.length; a++) {
+ var u = r[a];
+ s(i, "function" == typeof u ? u.call(n, i, e, t) : u)
+ }
+ return i
+ }, _performComponentUpdate: function (e, t, n, r, o, i) {
+ var a, s, u, l = this._instance, c = Boolean(l.componentDidUpdate);
+ c && (a = l.props, s = l.state, u = l.context), l.componentWillUpdate
+ && l.componentWillUpdate(t, n,
+ r), this._currentElement = e, this._context = i, l.props = t, l.state = n, l.context = r, this._updateRenderedComponent(
+ o, i), c && o.getReactMountReady().enqueue(l.componentDidUpdate.bind(l, a, s, u), l)
+ }, _updateRenderedComponent: function (e, t) {
+ var n = this._renderedComponent, r = n._currentElement,
+ o = this._renderValidatedComponent();
+ if (g(r, o)) {
+ h.receiveComponent(n, o, e, this._processChildContext(t));
+ } else {
+ var i = h.getHostNode(n);
+ h.unmountComponent(n, !1);
+ var a = f.getType(o);
+ this._renderedNodeType = a;
+ var s = this._instantiateReactComponent(o, a !== f.EMPTY);
+ this._renderedComponent = s;
+ var u = h.mountComponent(s, e, this._hostParent, this._hostContainerInfo,
+ this._processChildContext(t), 0);
+ this._replaceNodeWithMarkup(i, u, n)
+ }
+ }, _replaceNodeWithMarkup: function (e, t, n) {
+ l.replaceNodeWithMarkup(e, t, n)
+ }, _renderValidatedComponentWithoutOwnerOrContext: function () {
+ return this._instance.render()
+ }, _renderValidatedComponent: function () {
+ var e;
+ if (this._compositeType !== y.StatelessFunctional) {
+ c.current = this;
+ try {
+ e = this._renderValidatedComponentWithoutOwnerOrContext()
+ } finally {
+ c.current = null
+ }
+ } else {
+ e = this._renderValidatedComponentWithoutOwnerOrContext();
+ }
+ return null === e || !1 === e || u.isValidElement(e) || a("109",
+ this.getName() || "ReactCompositeComponent"), e
+ }, attachRef: function (e, t) {
+ var n = this.getPublicInstance();
+ null == n && a("110");
+ var r = t.getPublicInstance();
+ (n.refs === m ? n.refs = {} : n.refs)[e] = r
+ }, detachRef: function (e) {
+ delete this.getPublicInstance().refs[e]
+ }, getName: function () {
+ var e = this._currentElement.type, t = this._instance && this._instance.constructor;
+ return e.displayName || t && t.displayName || e.name || t && t.name || null
+ }, getPublicInstance: function () {
+ var e = this._instance;
+ return this._compositeType === y.StatelessFunctional ? null : e
+ }, _instantiateReactComponent: null
+ };
+ t.exports = C
+ }, {
+ 112: 112,
+ 116: 116,
+ 119: 119,
+ 120: 120,
+ 130: 130,
+ 137: 137,
+ 141: 141,
+ 142: 142,
+ 143: 143,
+ 28: 28,
+ 50: 50,
+ 57: 57,
+ 58: 58,
+ 62: 62,
+ 66: 66
+ }],
+ 30: [function (e, t, n) {
+ "use strict";
+ var r = e(33), o = e(47), i = e(60), a = e(66), s = e(71), u = e(72), l = e(96),
+ c = e(103), p = e(113);
+ e(142);
+ o.inject();
+ var d = {
+ findDOMNode: l,
+ render: i.render,
+ unmountComponentAtNode: i.unmountComponentAtNode,
+ version: u,
+ unstable_batchedUpdates: s.batchedUpdates,
+ unstable_renderSubtreeIntoContainer: p
+ };
+ "undefined" != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function"
+ == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject && __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({
+ ComponentTree: {
+ getClosestInstanceFromNode: r.getClosestInstanceFromNode,
+ getNodeFromInstance: function (e) {
+ return e._renderedComponent && (e = c(e)), e ? r.getNodeFromInstance(e) : null
+ }
+ }, Mount: i, Reconciler: a
+ });
+ t.exports = d
+ }, {103: 103, 113: 113, 142: 142, 33: 33, 47: 47, 60: 60, 66: 66, 71: 71, 72: 72, 96: 96}],
+ 31: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ if (e) {
+ var t = e._currentElement._owner || null;
+ if (t) {
+ var n = t.getName();
+ if (n) {
+ return " This DOM node was rendered by `" + n + "`."
+ }
+ }
+ }
+ return ""
+ }
+
+ function o(e, t) {
+ t && (Y[e._tag] && (null != t.children || null != t.dangerouslySetInnerHTML) && m("137",
+ e._tag, e._currentElement._owner ? " Check the render method of "
+ + e._currentElement._owner.getName() + "." : ""), null != t.dangerouslySetInnerHTML
+ && (null != t.children && m("60"), "object" == typeof t.dangerouslySetInnerHTML && B
+ in t.dangerouslySetInnerHTML || m("61")), null != t.style && "object" != typeof t.style
+ && m("62", r(e)))
+ }
+
+ function i(e, t, n, r) {
+ if (!(r instanceof R)) {
+ var o = e._hostContainerInfo, i = o._node && o._node.nodeType === H,
+ s = i ? o._node : o._ownerDocument;
+ F(t, s), r.getReactMountReady().enqueue(a,
+ {inst: e, registrationName: t, listener: n})
+ }
+ }
+
+ function a() {
+ var e = this;
+ x.putListener(e.inst, e.registrationName, e.listener)
+ }
+
+ function s() {
+ var e = this;
+ S.postMountWrapper(e)
+ }
+
+ function u() {
+ var e = this;
+ I.postMountWrapper(e)
+ }
+
+ function l() {
+ var e = this;
+ N.postMountWrapper(e)
+ }
+
+ function c() {
+ var e = this;
+ e._rootNodeID || m("63");
+ var t = U(e);
+ switch (t || m("64"), e._tag) {
+ case"iframe":
+ case"object":
+ e._wrapperState.listeners = [T.trapBubbledEvent("topLoad", "load", t)];
+ break;
+ case"video":
+ case"audio":
+ e._wrapperState.listeners = [];
+ for (var n in q) {
+ q.hasOwnProperty(n) && e._wrapperState.listeners.push(
+ T.trapBubbledEvent(n, q[n], t));
+ }
+ break;
+ case"source":
+ e._wrapperState.listeners = [T.trapBubbledEvent("topError", "error", t)];
+ break;
+ case"img":
+ e._wrapperState.listeners = [T.trapBubbledEvent("topError", "error", t),
+ T.trapBubbledEvent("topLoad", "load", t)];
+ break;
+ case"form":
+ e._wrapperState.listeners = [T.trapBubbledEvent("topReset", "reset", t),
+ T.trapBubbledEvent("topSubmit", "submit", t)];
+ break;
+ case"input":
+ case"select":
+ case"textarea":
+ e._wrapperState.listeners = [T.trapBubbledEvent("topInvalid", "invalid", t)]
+ }
+ }
+
+ function p() {
+ M.postUpdateWrapper(this)
+ }
+
+ function d(e) {
+ G.call(Q, e) || (X.test(e) || m("65", e), Q[e] = !0)
+ }
+
+ function f(e, t) {
+ return e.indexOf("-") >= 0 || null != t.is
+ }
+
+ function h(e) {
+ var t = e.type;
+ d(t), this._currentElement = e, this._tag = t.toLowerCase(), this._namespaceURI = null, this._renderedChildren = null, this._previousStyle = null, this._previousStyleCopy = null, this._hostNode = null, this._hostParent = null, this._rootNodeID = 0, this._domID = 0, this._hostContainerInfo = null, this._wrapperState = null, this._topLevelWrapper = null, this._flags = 0
+ }
+
+ var m = e(112), v = e(143), g = e(2), y = e(5), _ = e(9), C = e(10), b = e(11), E = e(12),
+ x = e(16), w = e(17), T = e(25), k = e(32), P = e(33), S = e(38), N = e(39), M = e(40),
+ I = e(43), O = (e(58), e(61)), R = e(68), A = (e(129), e(95)),
+ D = (e(137), e(109), e(141), e(118), e(142), k), L = x.deleteListener,
+ U = P.getNodeFromInstance, F = T.listenTo, j = w.registrationNameModules,
+ V = {string: !0, number: !0}, B = "__html", W = {
+ children: null,
+ dangerouslySetInnerHTML: null,
+ suppressContentEditableWarning: null
+ }, H = 11, q = {
+ topAbort: "abort",
+ topCanPlay: "canplay",
+ topCanPlayThrough: "canplaythrough",
+ topDurationChange: "durationchange",
+ topEmptied: "emptied",
+ topEncrypted: "encrypted",
+ topEnded: "ended",
+ topError: "error",
+ topLoadedData: "loadeddata",
+ topLoadedMetadata: "loadedmetadata",
+ topLoadStart: "loadstart",
+ topPause: "pause",
+ topPlay: "play",
+ topPlaying: "playing",
+ topProgress: "progress",
+ topRateChange: "ratechange",
+ topSeeked: "seeked",
+ topSeeking: "seeking",
+ topStalled: "stalled",
+ topSuspend: "suspend",
+ topTimeUpdate: "timeupdate",
+ topVolumeChange: "volumechange",
+ topWaiting: "waiting"
+ }, K = {
+ area: !0,
+ base: !0,
+ br: !0,
+ col: !0,
+ embed: !0,
+ hr: !0,
+ img: !0,
+ input: !0,
+ keygen: !0,
+ link: !0,
+ meta: !0,
+ param: !0,
+ source: !0,
+ track: !0,
+ wbr: !0
+ }, z = {listing: !0, pre: !0, textarea: !0}, Y = v({menuitem: !0}, K),
+ X = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, Q = {}, G = {}.hasOwnProperty, $ = 1;
+ h.displayName = "ReactDOMComponent", h.Mixin = {
+ mountComponent: function (e, t, n, r) {
+ this._rootNodeID = $++, this._domID = n._idCounter++, this._hostParent = t, this._hostContainerInfo = n;
+ var i = this._currentElement.props;
+ switch (this._tag) {
+ case"audio":
+ case"form":
+ case"iframe":
+ case"img":
+ case"link":
+ case"object":
+ case"source":
+ case"video":
+ this._wrapperState = {listeners: null}, e.getReactMountReady().enqueue(c, this);
+ break;
+ case"input":
+ S.mountWrapper(this, i, t), i = S.getHostProps(this,
+ i), e.getReactMountReady().enqueue(c, this);
+ break;
+ case"option":
+ N.mountWrapper(this, i, t), i = N.getHostProps(this, i);
+ break;
+ case"select":
+ M.mountWrapper(this, i, t), i = M.getHostProps(this,
+ i), e.getReactMountReady().enqueue(c, this);
+ break;
+ case"textarea":
+ I.mountWrapper(this, i, t), i = I.getHostProps(this,
+ i), e.getReactMountReady().enqueue(c, this)
+ }
+ o(this, i);
+ var a, p;
+ null != t ? (a = t._namespaceURI, p = t._tag) : n._tag
+ && (a = n._namespaceURI, p = n._tag), (null == a || a === C.svg && "foreignobject"
+ === p) && (a = C.html), a === C.html && ("svg" === this._tag ? a = C.svg : "math"
+ === this._tag && (a = C.mathml)), this._namespaceURI = a;
+ var d;
+ if (e.useCreateElement) {
+ var f, h = n._ownerDocument;
+ if (a === C.html) {
+ if ("script" === this._tag) {
+ var m = h.createElement("div"), v = this._currentElement.type;
+ m.innerHTML = "<" + v + ">" + v + ">", f = m.removeChild(m.firstChild)
+ } else {
+ f = i.is ? h.createElement(this._currentElement.type, i.is)
+ : h.createElement(this._currentElement.type);
+ }
+ } else {
+ f = h.createElementNS(a,
+ this._currentElement.type);
+ }
+ P.precacheNode(this, f), this._flags |= D.hasCachedChildNodes, this._hostParent
+ || E.setAttributeForRoot(f), this._updateDOMProperties(null, i, e);
+ var y = _(f);
+ this._createInitialChildren(e, i, r, y), d = y
+ } else {
+ var b = this._createOpenTagMarkupAndPutListeners(e, i),
+ x = this._createContentMarkup(e, i, r);
+ d = !x && K[this._tag] ? b + "/>" : b + ">" + x + "" + this._currentElement.type
+ + ">"
+ }
+ switch (this._tag) {
+ case"input":
+ e.getReactMountReady().enqueue(s, this), i.autoFocus
+ && e.getReactMountReady().enqueue(g.focusDOMComponent, this);
+ break;
+ case"textarea":
+ e.getReactMountReady().enqueue(u, this), i.autoFocus
+ && e.getReactMountReady().enqueue(g.focusDOMComponent, this);
+ break;
+ case"select":
+ case"button":
+ i.autoFocus && e.getReactMountReady().enqueue(g.focusDOMComponent, this);
+ break;
+ case"option":
+ e.getReactMountReady().enqueue(l, this)
+ }
+ return d
+ }, _createOpenTagMarkupAndPutListeners: function (e, t) {
+ var n = "<" + this._currentElement.type;
+ for (var r in t) {
+ if (t.hasOwnProperty(r)) {
+ var o = t[r];
+ if (null != o) {
+ if (j.hasOwnProperty(r)) {
+ o && i(this, r, o, e);
+ } else {
+ "style" === r && (o && (o = this._previousStyleCopy = v({},
+ t.style)), o = y.createMarkupForStyles(o, this));
+ var a = null;
+ null != this._tag && f(this._tag, t) ? W.hasOwnProperty(r)
+ || (a = E.createMarkupForCustomAttribute(r, o))
+ : a = E.createMarkupForProperty(
+ r, o), a && (n += " " + a)
+ }
+ }
+ }
+ }
+ return e.renderToStaticMarkup ? n : (this._hostParent || (n += " "
+ + E.createMarkupForRoot()), n += " " + E.createMarkupForID(this._domID))
+ }, _createContentMarkup: function (e, t, n) {
+ var r = "", o = t.dangerouslySetInnerHTML;
+ if (null != o) {
+ null != o.__html && (r = o.__html);
+ } else {
+ var i = V[typeof t.children] ? t.children : null, a = null != i ? null : t.children;
+ if (null != i) {
+ r = A(i);
+ } else if (null != a) {
+ var s = this.mountChildren(a, e, n);
+ r = s.join("")
+ }
+ }
+ return z[this._tag] && "\n" === r.charAt(0) ? "\n" + r : r
+ }, _createInitialChildren: function (e, t, n, r) {
+ var o = t.dangerouslySetInnerHTML;
+ if (null != o) {
+ null != o.__html && _.queueHTML(r, o.__html);
+ } else {
+ var i = V[typeof t.children] ? t.children : null, a = null != i ? null : t.children;
+ if (null != i) {
+ "" !== i && _.queueText(r, i);
+ } else if (null
+ != a) {
+ for (var s = this.mountChildren(a, e, n), u = 0; u < s.length;
+ u++) {
+ _.queueChild(r, s[u])
+ }
+ }
+ }
+ }, receiveComponent: function (e, t, n) {
+ var r = this._currentElement;
+ this._currentElement = e, this.updateComponent(t, r, e, n)
+ }, updateComponent: function (e, t, n, r) {
+ var i = t.props, a = this._currentElement.props;
+ switch (this._tag) {
+ case"input":
+ i = S.getHostProps(this, i), a = S.getHostProps(this, a);
+ break;
+ case"option":
+ i = N.getHostProps(this, i), a = N.getHostProps(this, a);
+ break;
+ case"select":
+ i = M.getHostProps(this, i), a = M.getHostProps(this, a);
+ break;
+ case"textarea":
+ i = I.getHostProps(this, i), a = I.getHostProps(this, a)
+ }
+ switch (o(this, a), this._updateDOMProperties(i, a, e), this._updateDOMChildren(i, a,
+ e, r), this._tag) {
+ case"input":
+ S.updateWrapper(this);
+ break;
+ case"textarea":
+ I.updateWrapper(this);
+ break;
+ case"select":
+ e.getReactMountReady().enqueue(p, this)
+ }
+ }, _updateDOMProperties: function (e, t, n) {
+ var r, o, a;
+ for (r in e) {
+ if (!t.hasOwnProperty(r) && e.hasOwnProperty(r) && null
+ != e[r]) {
+ if ("style" === r) {
+ var s = this._previousStyleCopy;
+ for (o in s) {
+ s.hasOwnProperty(o) && (a = a || {}, a[o] = "");
+ }
+ this._previousStyleCopy = null
+ } else {
+ j.hasOwnProperty(r) ? e[r] && L(this, r) : f(this._tag, e) ? W.hasOwnProperty(
+ r) || E.deleteValueForAttribute(U(this), r) : (b.properties[r]
+ || b.isCustomAttribute(r)) && E.deleteValueForProperty(U(this), r);
+ }
+ }
+ }
+ for (r in t) {
+ var u = t[r],
+ l = "style" === r ? this._previousStyleCopy : null != e ? e[r] : void 0;
+ if (t.hasOwnProperty(r) && u !== l && (null != u || null != l)) {
+ if ("style"
+ === r) {
+ if (u ? u = this._previousStyleCopy = v({}, u)
+ : this._previousStyleCopy = null, l) {
+ for (o in l) {
+ !l.hasOwnProperty(o) || u && u.hasOwnProperty(o) || (a = a
+ || {}, a[o] = "");
+ }
+ for (o in u) {
+ u.hasOwnProperty(o) && l[o] !== u[o] && (a = a || {}, a[o] = u[o])
+ }
+ } else {
+ a = u;
+ }
+ } else if (j.hasOwnProperty(r)) {
+ u ? i(this, r, u, n) : l && L(this,
+ r);
+ } else if (f(this._tag, t)) {
+ W.hasOwnProperty(r) || E.setValueForAttribute(
+ U(this), r, u);
+ } else if (b.properties[r] || b.isCustomAttribute(r)) {
+ var c = U(this);
+ null != u ? E.setValueForProperty(c, r, u) : E.deleteValueForProperty(c, r)
+ }
+ }
+ }
+ a && y.setValueForStyles(U(this), a, this)
+ }, _updateDOMChildren: function (e, t, n, r) {
+ var o = V[typeof e.children] ? e.children : null,
+ i = V[typeof t.children] ? t.children : null,
+ a = e.dangerouslySetInnerHTML && e.dangerouslySetInnerHTML.__html,
+ s = t.dangerouslySetInnerHTML && t.dangerouslySetInnerHTML.__html,
+ u = null != o ? null : e.children, l = null != i ? null : t.children,
+ c = null != o || null != a, p = null != i || null != s;
+ null != u && null == l ? this.updateChildren(null, n, r) : c && !p
+ && this.updateTextContent(""), null != i ? o !== i && this.updateTextContent("" + i)
+ : null != s ? a !== s && this.updateMarkup("" + s) : null != l
+ && this.updateChildren(l, n, r)
+ }, getHostNode: function () {
+ return U(this)
+ }, unmountComponent: function (e) {
+ switch (this._tag) {
+ case"audio":
+ case"form":
+ case"iframe":
+ case"img":
+ case"link":
+ case"object":
+ case"source":
+ case"video":
+ var t = this._wrapperState.listeners;
+ if (t) {
+ for (var n = 0; n < t.length; n++) {
+ t[n].remove();
+ }
+ }
+ break;
+ case"html":
+ case"head":
+ case"body":
+ m("66", this._tag)
+ }
+ this.unmountChildren(e), P.uncacheNode(this), x.deleteAllListeners(
+ this), this._rootNodeID = 0, this._domID = 0, this._wrapperState = null
+ }, getPublicInstance: function () {
+ return U(this)
+ }
+ }, v(h.prototype, h.Mixin, O.Mixin), t.exports = h
+ }, {
+ 10: 10,
+ 109: 109,
+ 11: 11,
+ 112: 112,
+ 118: 118,
+ 12: 12,
+ 129: 129,
+ 137: 137,
+ 141: 141,
+ 142: 142,
+ 143: 143,
+ 16: 16,
+ 17: 17,
+ 2: 2,
+ 25: 25,
+ 32: 32,
+ 33: 33,
+ 38: 38,
+ 39: 39,
+ 40: 40,
+ 43: 43,
+ 5: 5,
+ 58: 58,
+ 61: 61,
+ 68: 68,
+ 9: 9,
+ 95: 95
+ }],
+ 32: [function (e, t, n) {
+ "use strict";
+ var r = {hasCachedChildNodes: 1};
+ t.exports = r
+ }, {}],
+ 33: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ return 1 === e.nodeType && e.getAttribute(h) === String(t) || 8 === e.nodeType
+ && e.nodeValue === " react-text: " + t + " " || 8 === e.nodeType && e.nodeValue
+ === " react-empty: " + t + " "
+ }
+
+ function o(e) {
+ for (var t; t = e._renderedComponent;) {
+ e = t;
+ }
+ return e
+ }
+
+ function i(e, t) {
+ var n = o(e);
+ n._hostNode = t, t[v] = n
+ }
+
+ function a(e) {
+ var t = e._hostNode;
+ t && (delete t[v], e._hostNode = null)
+ }
+
+ function s(e, t) {
+ if (!(e._flags & m.hasCachedChildNodes)) {
+ var n = e._renderedChildren, a = t.firstChild;
+ e:for (var s in n) {
+ if (n.hasOwnProperty(s)) {
+ var u = n[s], l = o(u)._domID;
+ if (0 !== l) {
+ for (; null !== a; a = a.nextSibling) {
+ if (r(a, l)) {
+ i(u, a);
+ continue e
+ }
+ }
+ p("32", l)
+ }
+ }
+ }
+ e._flags |= m.hasCachedChildNodes
+ }
+ }
+
+ function u(e) {
+ if (e[v]) {
+ return e[v];
+ }
+ for (var t = []; !e[v];) {
+ if (t.push(e), !e.parentNode) {
+ return null;
+ }
+ e = e.parentNode
+ }
+ for (var n, r; e && (r = e[v]); e = t.pop()) {
+ n = r, t.length && s(r, e);
+ }
+ return n
+ }
+
+ function l(e) {
+ var t = u(e);
+ return null != t && t._hostNode === e ? t : null
+ }
+
+ function c(e) {
+ if (void 0 === e._hostNode && p("33"), e._hostNode) {
+ return e._hostNode;
+ }
+ for (var t = []; !e._hostNode;) {
+ t.push(e), e._hostParent || p("34"), e = e._hostParent;
+ }
+ for (; t.length; e = t.pop()) {
+ s(e, e._hostNode);
+ }
+ return e._hostNode
+ }
+
+ var p = e(112), d = e(11), f = e(32), h = (e(137), d.ID_ATTRIBUTE_NAME), m = f,
+ v = "__reactInternalInstance$" + Math.random().toString(36).slice(2), g = {
+ getClosestInstanceFromNode: u,
+ getInstanceFromNode: l,
+ getNodeFromInstance: c,
+ precacheChildNodes: s,
+ precacheNode: i,
+ uncacheNode: a
+ };
+ t.exports = g
+ }, {11: 11, 112: 112, 137: 137, 32: 32}],
+ 34: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ return {
+ _topLevelWrapper: e,
+ _idCounter: 1,
+ _ownerDocument: t ? t.nodeType === o ? t : t.ownerDocument : null,
+ _node: t,
+ _tag: t ? t.nodeName.toLowerCase() : null,
+ _namespaceURI: t ? t.namespaceURI : null
+ }
+ }
+
+ var o = (e(118), 9);
+ t.exports = r
+ }, {118: 118}],
+ 35: [function (e, t, n) {
+ "use strict";
+ var r = e(143), o = e(9), i = e(33), a = function (e) {
+ this._currentElement = null, this._hostNode = null, this._hostParent = null, this._hostContainerInfo = null, this._domID = 0
+ };
+ r(a.prototype, {
+ mountComponent: function (e, t, n, r) {
+ var a = n._idCounter++;
+ this._domID = a, this._hostParent = t, this._hostContainerInfo = n;
+ var s = " react-empty: " + this._domID + " ";
+ if (e.useCreateElement) {
+ var u = n._ownerDocument, l = u.createComment(s);
+ return i.precacheNode(this, l), o(l)
+ }
+ return e.renderToStaticMarkup ? "" : ""
+ }, receiveComponent: function () {
+ }, getHostNode: function () {
+ return i.getNodeFromInstance(this)
+ }, unmountComponent: function () {
+ i.uncacheNode(this)
+ }
+ }), t.exports = a
+ }, {143: 143, 33: 33, 9: 9}],
+ 36: [function (e, t, n) {
+ "use strict";
+ var r = {useCreateElement: !0, useFiber: !1};
+ t.exports = r
+ }, {}],
+ 37: [function (e, t, n) {
+ "use strict";
+ var r = e(8), o = e(33), i = {
+ dangerouslyProcessChildrenUpdates: function (e, t) {
+ var n = o.getNodeFromInstance(e);
+ r.processUpdates(n, t)
+ }
+ };
+ t.exports = i
+ }, {33: 33, 8: 8}],
+ 38: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ this._rootNodeID && d.updateWrapper(this)
+ }
+
+ function o(e) {
+ return "checkbox" === e.type || "radio" === e.type ? null != e.checked : null != e.value
+ }
+
+ function i(e) {
+ var t = this._currentElement.props, n = l.executeOnChange(t, e);
+ p.asap(r, this);
+ var o = t.name;
+ if ("radio" === t.type && null != o) {
+ for (var i = c.getNodeFromInstance(this), s = i; s.parentNode;) {
+ s = s.parentNode;
+ }
+ for (var u = s.querySelectorAll(
+ "input[name=" + JSON.stringify("" + o) + '][type="radio"]'), d = 0; d < u.length;
+ d++) {
+ var f = u[d];
+ if (f !== i && f.form === i.form) {
+ var h = c.getInstanceFromNode(f);
+ h || a("90"), p.asap(r, h)
+ }
+ }
+ }
+ return n
+ }
+
+ var a = e(112), s = e(143), u = e(12), l = e(23), c = e(33), p = e(71),
+ d = (e(137), e(142), {
+ getHostProps: function (e, t) {
+ var n = l.getValue(t), r = l.getChecked(t);
+ return s({type: void 0, step: void 0, min: void 0, max: void 0}, t, {
+ defaultChecked: void 0,
+ defaultValue: void 0,
+ value: null != n ? n : e._wrapperState.initialValue,
+ checked: null != r ? r : e._wrapperState.initialChecked,
+ onChange: e._wrapperState.onChange
+ })
+ }, mountWrapper: function (e, t) {
+ var n = t.defaultValue;
+ e._wrapperState = {
+ initialChecked: null != t.checked ? t.checked : t.defaultChecked,
+ initialValue: null != t.value ? t.value : n,
+ listeners: null,
+ onChange: i.bind(e),
+ controlled: o(t)
+ }
+ }, updateWrapper: function (e) {
+ var t = e._currentElement.props, n = t.checked;
+ null != n && u.setValueForProperty(c.getNodeFromInstance(e), "checked", n || !1);
+ var r = c.getNodeFromInstance(e), o = l.getValue(t);
+ if (null != o) {
+ if (0 === o && "" === r.value) {
+ r.value = "0";
+ } else if ("number"
+ === t.type) {
+ var i = parseFloat(r.value, 10) || 0;
+ o != i && (r.value = "" + o)
+ } else {
+ o != r.value && (r.value = "" + o);
+ }
+ } else {
+ null == t.value && null
+ != t.defaultValue && r.defaultValue !== "" + t.defaultValue
+ && (r.defaultValue = ""
+ + t.defaultValue), null == t.checked && null != t.defaultChecked
+ && (r.defaultChecked = !!t.defaultChecked)
+ }
+ }, postMountWrapper: function (e) {
+ var t = e._currentElement.props, n = c.getNodeFromInstance(e);
+ switch (t.type) {
+ case"submit":
+ case"reset":
+ break;
+ case"color":
+ case"date":
+ case"datetime":
+ case"datetime-local":
+ case"month":
+ case"time":
+ case"week":
+ n.value = "", n.value = n.defaultValue;
+ break;
+ default:
+ n.value = n.value
+ }
+ var r = n.name;
+ "" !== r
+ && (n.name = ""), n.defaultChecked = !n.defaultChecked, n.defaultChecked = !n.defaultChecked, ""
+ !== r && (n.name = r)
+ }
+ });
+ t.exports = d
+ }, {112: 112, 12: 12, 137: 137, 142: 142, 143: 143, 23: 23, 33: 33, 71: 71}],
+ 39: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = "";
+ return i.Children.forEach(e, function (e) {
+ null != e && ("string" == typeof e || "number" == typeof e ? t += e : u || (u = !0))
+ }), t
+ }
+
+ var o = e(143), i = e(120), a = e(33), s = e(40), u = (e(142), !1), l = {
+ mountWrapper: function (e, t, n) {
+ var o = null;
+ if (null != n) {
+ var i = n;
+ "optgroup" === i._tag && (i = i._hostParent), null != i && "select" === i._tag
+ && (o = s.getSelectValueContext(i))
+ }
+ var a = null;
+ if (null != o) {
+ var u;
+ if (u = null != t.value ? t.value + "" : r(t.children), a = !1, Array.isArray(o)) {
+ for (var l = 0; l < o.length; l++) {
+ if ("" + o[l] === u) {
+ a = !0;
+ break
+ }
+ }
+ } else {
+ a = "" + o === u
+ }
+ }
+ e._wrapperState = {selected: a}
+ }, postMountWrapper: function (e) {
+ var t = e._currentElement.props;
+ null != t.value && a.getNodeFromInstance(e).setAttribute("value", t.value)
+ }, getHostProps: function (e, t) {
+ var n = o({selected: void 0, children: void 0}, t);
+ null != e._wrapperState.selected && (n.selected = e._wrapperState.selected);
+ var i = r(t.children);
+ return i && (n.children = i), n
+ }
+ };
+ t.exports = l
+ }, {120: 120, 142: 142, 143: 143, 33: 33, 40: 40}],
+ 40: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ if (this._rootNodeID && this._wrapperState.pendingUpdate) {
+ this._wrapperState.pendingUpdate = !1;
+ var e = this._currentElement.props, t = s.getValue(e);
+ null != t && o(this, Boolean(e.multiple), t)
+ }
+ }
+
+ function o(e, t, n) {
+ var r, o, i = u.getNodeFromInstance(e).options;
+ if (t) {
+ for (r = {}, o = 0; o < n.length; o++) {
+ r["" + n[o]] = !0;
+ }
+ for (o = 0; o < i.length; o++) {
+ var a = r.hasOwnProperty(i[o].value);
+ i[o].selected !== a && (i[o].selected = a)
+ }
+ } else {
+ for (r = "" + n, o = 0; o < i.length; o++) {
+ if (i[o].value
+ === r) {
+ return void (i[o].selected = !0);
+ }
+ }
+ i.length && (i[0].selected = !0)
+ }
+ }
+
+ function i(e) {
+ var t = this._currentElement.props, n = s.executeOnChange(t, e);
+ return this._rootNodeID && (this._wrapperState.pendingUpdate = !0), l.asap(r, this), n
+ }
+
+ var a = e(143), s = e(23), u = e(33), l = e(71), c = (e(142), !1), p = {
+ getHostProps: function (e, t) {
+ return a({}, t, {onChange: e._wrapperState.onChange, value: void 0})
+ }, mountWrapper: function (e, t) {
+ var n = s.getValue(t);
+ e._wrapperState = {
+ pendingUpdate: !1,
+ initialValue: null != n ? n : t.defaultValue,
+ listeners: null,
+ onChange: i.bind(e),
+ wasMultiple: Boolean(t.multiple)
+ }, void 0 === t.value || void 0 === t.defaultValue || c || (c = !0)
+ }, getSelectValueContext: function (e) {
+ return e._wrapperState.initialValue
+ }, postUpdateWrapper: function (e) {
+ var t = e._currentElement.props;
+ e._wrapperState.initialValue = void 0;
+ var n = e._wrapperState.wasMultiple;
+ e._wrapperState.wasMultiple = Boolean(t.multiple);
+ var r = s.getValue(t);
+ null != r ? (e._wrapperState.pendingUpdate = !1, o(e, Boolean(t.multiple), r)) : n
+ !== Boolean(t.multiple) && (null != t.defaultValue ? o(e, Boolean(t.multiple),
+ t.defaultValue) : o(e, Boolean(t.multiple), t.multiple ? [] : ""))
+ }
+ };
+ t.exports = p
+ }, {142: 142, 143: 143, 23: 23, 33: 33, 71: 71}],
+ 41: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return e === n && t === r
+ }
+
+ function o(e) {
+ var t = document.selection, n = t.createRange(), r = n.text.length, o = n.duplicate();
+ o.moveToElementText(e), o.setEndPoint("EndToStart", n);
+ var i = o.text.length;
+ return {start: i, end: i + r}
+ }
+
+ function i(e) {
+ var t = window.getSelection && window.getSelection();
+ if (!t || 0 === t.rangeCount) {
+ return null;
+ }
+ var n = t.anchorNode, o = t.anchorOffset, i = t.focusNode, a = t.focusOffset,
+ s = t.getRangeAt(0);
+ try {
+ s.startContainer.nodeType, s.endContainer.nodeType
+ } catch (e) {
+ return null
+ }
+ var u = r(t.anchorNode, t.anchorOffset, t.focusNode, t.focusOffset),
+ l = u ? 0 : s.toString().length, c = s.cloneRange();
+ c.selectNodeContents(e), c.setEnd(s.startContainer, s.startOffset);
+ var p = r(c.startContainer, c.startOffset, c.endContainer, c.endOffset),
+ d = p ? 0 : c.toString().length, f = d + l, h = document.createRange();
+ h.setStart(n, o), h.setEnd(i, a);
+ var m = h.collapsed;
+ return {start: m ? f : d, end: m ? d : f}
+ }
+
+ function a(e, t) {
+ var n, r, o = document.selection.createRange().duplicate();
+ void 0 === t.end ? (n = t.start, r = n) : t.start > t.end ? (n = t.end, r = t.start)
+ : (n = t.start, r = t.end), o.moveToElementText(e), o.moveStart("character",
+ n), o.setEndPoint("EndToStart", o), o.moveEnd("character", r - n), o.select()
+ }
+
+ function s(e, t) {
+ if (window.getSelection) {
+ var n = window.getSelection(), r = e[c()].length, o = Math.min(t.start, r),
+ i = void 0 === t.end ? o : Math.min(t.end, r);
+ if (!n.extend && o > i) {
+ var a = i;
+ i = o, o = a
+ }
+ var s = l(e, o), u = l(e, i);
+ if (s && u) {
+ var p = document.createRange();
+ p.setStart(s.node, s.offset), n.removeAllRanges(), o > i ? (n.addRange(p), n.extend(
+ u.node, u.offset)) : (p.setEnd(u.node, u.offset), n.addRange(p))
+ }
+ }
+ }
+
+ var u = e(123), l = e(105), c = e(106),
+ p = u.canUseDOM && "selection" in document && !("getSelection" in window),
+ d = {getOffsets: p ? o : i, setOffsets: p ? a : s};
+ t.exports = d
+ }, {105: 105, 106: 106, 123: 123}],
+ 42: [function (e, t, n) {
+ "use strict";
+ var r = e(112), o = e(143), i = e(8), a = e(9), s = e(33), u = e(95),
+ l = (e(137), e(118), function (e) {
+ this._currentElement = e, this._stringText = "" + e,
+ this._hostNode = null, this._hostParent = null, this._domID = 0, this._mountIndex = 0, this._closingComment = null, this._commentNodes = null
+ });
+ o(l.prototype, {
+ mountComponent: function (e, t, n, r) {
+ var o = n._idCounter++, i = " react-text: " + o + " ";
+ if (this._domID = o, this._hostParent = t, e.useCreateElement) {
+ var l = n._ownerDocument, c = l.createComment(i),
+ p = l.createComment(" /react-text "), d = a(l.createDocumentFragment());
+ return a.queueChild(d, a(c)), this._stringText && a.queueChild(d,
+ a(l.createTextNode(this._stringText))), a.queueChild(d, a(p)), s.precacheNode(
+ this, c), this._closingComment = p, d
+ }
+ var f = u(this._stringText);
+ return e.renderToStaticMarkup ? f : "" + f + ""
+ }, receiveComponent: function (e, t) {
+ if (e !== this._currentElement) {
+ this._currentElement = e;
+ var n = "" + e;
+ if (n !== this._stringText) {
+ this._stringText = n;
+ var r = this.getHostNode();
+ i.replaceDelimitedText(r[0], r[1], n)
+ }
+ }
+ }, getHostNode: function () {
+ var e = this._commentNodes;
+ if (e) {
+ return e;
+ }
+ if (!this._closingComment) {
+ for (var t = s.getNodeFromInstance(this),
+ n = t.nextSibling; ;) {
+ if (null == n && r("67", this._domID), 8 === n.nodeType && " /react-text "
+ === n.nodeValue) {
+ this._closingComment = n;
+ break
+ }
+ n = n.nextSibling
+ }
+ }
+ return e = [this._hostNode, this._closingComment], this._commentNodes = e, e
+ }, unmountComponent: function () {
+ this._closingComment = null, this._commentNodes = null, s.uncacheNode(this)
+ }
+ }), t.exports = l
+ }, {112: 112, 118: 118, 137: 137, 143: 143, 33: 33, 8: 8, 9: 9, 95: 95}],
+ 43: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ this._rootNodeID && c.updateWrapper(this)
+ }
+
+ function o(e) {
+ var t = this._currentElement.props, n = s.executeOnChange(t, e);
+ return l.asap(r, this), n
+ }
+
+ var i = e(112), a = e(143), s = e(23), u = e(33), l = e(71), c = (e(137), e(142), {
+ getHostProps: function (e, t) {
+ return null != t.dangerouslySetInnerHTML && i("91"), a({}, t, {
+ value: void 0,
+ defaultValue: void 0,
+ children: "" + e._wrapperState.initialValue,
+ onChange: e._wrapperState.onChange
+ })
+ }, mountWrapper: function (e, t) {
+ var n = s.getValue(t), r = n;
+ if (null == n) {
+ var a = t.defaultValue, u = t.children;
+ null != u && (null != a && i("92"), Array.isArray(u) && (u.length <= 1 || i(
+ "93"), u = u[0]), a = "" + u), null == a && (a = ""), r = a
+ }
+ e._wrapperState = {initialValue: "" + r, listeners: null, onChange: o.bind(e)}
+ }, updateWrapper: function (e) {
+ var t = e._currentElement.props, n = u.getNodeFromInstance(e), r = s.getValue(t);
+ if (null != r) {
+ var o = "" + r;
+ o !== n.value && (n.value = o), null == t.defaultValue && (n.defaultValue = o)
+ }
+ null != t.defaultValue && (n.defaultValue = t.defaultValue)
+ }, postMountWrapper: function (e) {
+ var t = u.getNodeFromInstance(e), n = t.textContent;
+ n === e._wrapperState.initialValue && (t.value = n)
+ }
+ });
+ t.exports = c
+ }, {112: 112, 137: 137, 142: 142, 143: 143, 23: 23, 33: 33, 71: 71}],
+ 44: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ "_hostNode" in e || u("33"), "_hostNode" in t || u("33");
+ for (var n = 0, r = e; r; r = r._hostParent) {
+ n++;
+ }
+ for (var o = 0, i = t; i; i = i._hostParent) {
+ o++;
+ }
+ for (; n - o > 0;) {
+ e = e._hostParent, n--;
+ }
+ for (; o - n > 0;) {
+ t = t._hostParent, o--;
+ }
+ for (var a = n; a--;) {
+ if (e === t) {
+ return e;
+ }
+ e = e._hostParent, t = t._hostParent
+ }
+ return null
+ }
+
+ function o(e, t) {
+ "_hostNode" in e || u("35"), "_hostNode" in t || u("35");
+ for (; t;) {
+ if (t === e) {
+ return !0;
+ }
+ t = t._hostParent
+ }
+ return !1
+ }
+
+ function i(e) {
+ return "_hostNode" in e || u("36"), e._hostParent
+ }
+
+ function a(e, t, n) {
+ for (var r = []; e;) {
+ r.push(e), e = e._hostParent;
+ }
+ var o;
+ for (o = r.length; o-- > 0;) {
+ t(r[o], "captured", n);
+ }
+ for (o = 0; o < r.length; o++) {
+ t(r[o], "bubbled", n)
+ }
+ }
+
+ function s(e, t, n, o, i) {
+ for (var a = e && t ? r(e, t) : null, s = []; e && e !== a;) {
+ s.push(
+ e), e = e._hostParent;
+ }
+ for (var u = []; t && t !== a;) {
+ u.push(t), t = t._hostParent;
+ }
+ var l;
+ for (l = 0; l < s.length; l++) {
+ n(s[l], "bubbled", o);
+ }
+ for (l = u.length; l-- > 0;) {
+ n(u[l], "captured", i)
+ }
+ }
+
+ var u = e(112);
+ e(137);
+ t.exports = {
+ isAncestor: o,
+ getLowestCommonAncestor: r,
+ getParentInstance: i,
+ traverseTwoPhase: a,
+ traverseEnterLeave: s
+ }
+ }, {112: 112, 137: 137}],
+ 45: [function (e, t, n) {
+ "use strict";
+ var r = e(120), o = e(30), i = o;
+ r.addons
+ && (r.__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = i), t.exports = i
+ }, {120: 120, 30: 30}],
+ 46: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ this.reinitializeTransaction()
+ }
+
+ var o = e(143), i = e(71), a = e(89), s = e(129), u = {
+ initialize: s, close: function () {
+ d.isBatchingUpdates = !1
+ }
+ }, l = {initialize: s, close: i.flushBatchedUpdates.bind(i)}, c = [l, u];
+ o(r.prototype, a, {
+ getTransactionWrappers: function () {
+ return c
+ }
+ });
+ var p = new r, d = {
+ isBatchingUpdates: !1, batchedUpdates: function (e, t, n, r, o, i) {
+ var a = d.isBatchingUpdates;
+ return d.isBatchingUpdates = !0, a ? e(t, n, r, o, i) : p.perform(e, null, t, n, r, o,
+ i)
+ }
+ };
+ t.exports = d
+ }, {129: 129, 143: 143, 71: 71, 89: 89}],
+ 47: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ x || (x = !0, y.EventEmitter.injectReactEventListener(
+ g), y.EventPluginHub.injectEventPluginOrder(
+ s), y.EventPluginUtils.injectComponentTree(d), y.EventPluginUtils.injectTreeTraversal(
+ h), y.EventPluginHub.injectEventPluginsByName({
+ SimpleEventPlugin: E,
+ EnterLeaveEventPlugin: u,
+ ChangeEventPlugin: a,
+ SelectEventPlugin: b,
+ BeforeInputEventPlugin: i
+ }), y.HostComponent.injectGenericComponentClass(
+ p), y.HostComponent.injectTextComponentClass(
+ m), y.DOMProperty.injectDOMPropertyConfig(o), y.DOMProperty.injectDOMPropertyConfig(
+ l), y.DOMProperty.injectDOMPropertyConfig(
+ C), y.EmptyComponent.injectEmptyComponentFactory(function (e) {
+ return new f(e)
+ }), y.Updates.injectReconcileTransaction(_), y.Updates.injectBatchingStrategy(
+ v), y.Component.injectEnvironment(c))
+ }
+
+ var o = e(1), i = e(3), a = e(7), s = e(14), u = e(15), l = e(21), c = e(27), p = e(31),
+ d = e(33), f = e(35), h = e(44), m = e(42), v = e(46), g = e(52), y = e(55), _ = e(65),
+ C = e(73), b = e(74), E = e(75), x = !1;
+ t.exports = {inject: r}
+ }, {
+ 1: 1,
+ 14: 14,
+ 15: 15,
+ 21: 21,
+ 27: 27,
+ 3: 3,
+ 31: 31,
+ 33: 33,
+ 35: 35,
+ 42: 42,
+ 44: 44,
+ 46: 46,
+ 52: 52,
+ 55: 55,
+ 65: 65,
+ 7: 7,
+ 73: 73,
+ 74: 74,
+ 75: 75
+ }],
+ 48: [function (e, t, n) {
+ "use strict";
+ var r = "function" == typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103;
+ t.exports = r
+ }, {}],
+ 49: [function (e, t, n) {
+ "use strict";
+ var r, o = {
+ injectEmptyComponentFactory: function (e) {
+ r = e
+ }
+ }, i = {
+ create: function (e) {
+ return r(e)
+ }
+ };
+ i.injection = o, t.exports = i
+ }, {}],
+ 50: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n) {
+ try {
+ t(n)
+ } catch (e) {
+ null === o && (o = e)
+ }
+ }
+
+ var o = null, i = {
+ invokeGuardedCallback: r,
+ invokeGuardedCallbackWithCatch: r,
+ rethrowCaughtError: function () {
+ if (o) {
+ var e = o;
+ throw o = null, e
+ }
+ }
+ };
+ t.exports = i
+ }, {}],
+ 51: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ o.enqueueEvents(e), o.processEventQueue(!1)
+ }
+
+ var o = e(16), i = {
+ handleTopLevel: function (e, t, n, i) {
+ r(o.extractEvents(e, t, n, i))
+ }
+ };
+ t.exports = i
+ }, {16: 16}],
+ 52: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ for (; e._hostParent;) {
+ e = e._hostParent;
+ }
+ var t = p.getNodeFromInstance(e), n = t.parentNode;
+ return p.getClosestInstanceFromNode(n)
+ }
+
+ function o(e, t) {
+ this.topLevelType = e, this.nativeEvent = t, this.ancestors = []
+ }
+
+ function i(e) {
+ var t = f(e.nativeEvent), n = p.getClosestInstanceFromNode(t), o = n;
+ do {
+ e.ancestors.push(o), o = o && r(o)
+ } while (o);
+ for (var i = 0; i < e.ancestors.length; i++) {
+ n = e.ancestors[i], m._handleTopLevel(
+ e.topLevelType, n, e.nativeEvent, f(e.nativeEvent))
+ }
+ }
+
+ function a(e) {
+ e(h(window))
+ }
+
+ var s = e(143), u = e(122), l = e(123), c = e(24), p = e(33), d = e(71), f = e(102),
+ h = e(134);
+ s(o.prototype, {
+ destructor: function () {
+ this.topLevelType = null, this.nativeEvent = null, this.ancestors.length = 0
+ }
+ }), c.addPoolingTo(o, c.twoArgumentPooler);
+ var m = {
+ _enabled: !0,
+ _handleTopLevel: null,
+ WINDOW_HANDLE: l.canUseDOM ? window : null,
+ setHandleTopLevel: function (e) {
+ m._handleTopLevel = e
+ },
+ setEnabled: function (e) {
+ m._enabled = !!e
+ },
+ isEnabled: function () {
+ return m._enabled
+ },
+ trapBubbledEvent: function (e, t, n) {
+ return n ? u.listen(n, t, m.dispatchEvent.bind(null, e)) : null
+ },
+ trapCapturedEvent: function (e, t, n) {
+ return n ? u.capture(n, t, m.dispatchEvent.bind(null, e)) : null
+ },
+ monitorScrollValue: function (e) {
+ var t = a.bind(null, e);
+ u.listen(window, "scroll", t)
+ },
+ dispatchEvent: function (e, t) {
+ if (m._enabled) {
+ var n = o.getPooled(e, t);
+ try {
+ d.batchedUpdates(i, n)
+ } finally {
+ o.release(n)
+ }
+ }
+ }
+ };
+ t.exports = m
+ }, {102: 102, 122: 122, 123: 123, 134: 134, 143: 143, 24: 24, 33: 33, 71: 71}],
+ 53: [function (e, t, n) {
+ "use strict";
+ var r = {logTopLevelRenders: !1};
+ t.exports = r
+ }, {}],
+ 54: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return s || a("111", e.type), new s(e)
+ }
+
+ function o(e) {
+ return new u(e)
+ }
+
+ function i(e) {
+ return e instanceof u
+ }
+
+ var a = e(112), s = (e(137), null), u = null, l = {
+ injectGenericComponentClass: function (e) {
+ s = e
+ }, injectTextComponentClass: function (e) {
+ u = e
+ }
+ }, c = {
+ createInternalComponent: r,
+ createInstanceForText: o,
+ isTextComponent: i,
+ injection: l
+ };
+ t.exports = c
+ }, {112: 112, 137: 137}],
+ 55: [function (e, t, n) {
+ "use strict";
+ var r = e(11), o = e(16), i = e(18), a = e(28), s = e(49), u = e(25), l = e(54),
+ c = e(71), p = {
+ Component: a.injection,
+ DOMProperty: r.injection,
+ EmptyComponent: s.injection,
+ EventPluginHub: o.injection,
+ EventPluginUtils: i.injection,
+ EventEmitter: u.injection,
+ HostComponent: l.injection,
+ Updates: c.injection
+ };
+ t.exports = p
+ }, {11: 11, 16: 16, 18: 18, 25: 25, 28: 28, 49: 49, 54: 54, 71: 71}],
+ 56: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return i(document.documentElement, e)
+ }
+
+ var o = e(41), i = e(126), a = e(131), s = e(132), u = {
+ hasSelectionCapabilities: function (e) {
+ var t = e && e.nodeName && e.nodeName.toLowerCase();
+ return t && ("input" === t && "text" === e.type || "textarea" === t || "true"
+ === e.contentEditable)
+ }, getSelectionInformation: function () {
+ var e = s();
+ return {
+ focusedElem: e,
+ selectionRange: u.hasSelectionCapabilities(e) ? u.getSelection(e) : null
+ }
+ }, restoreSelection: function (e) {
+ var t = s(), n = e.focusedElem, o = e.selectionRange;
+ t !== n && r(n) && (u.hasSelectionCapabilities(n) && u.setSelection(n, o), a(n))
+ }, getSelection: function (e) {
+ var t;
+ if ("selectionStart" in e) {
+ t = {
+ start: e.selectionStart,
+ end: e.selectionEnd
+ };
+ } else if (document.selection && e.nodeName && "input"
+ === e.nodeName.toLowerCase()) {
+ var n = document.selection.createRange();
+ n.parentElement() === e && (t = {
+ start: -n.moveStart("character", -e.value.length),
+ end: -n.moveEnd("character", -e.value.length)
+ })
+ } else {
+ t = o.getOffsets(e);
+ }
+ return t || {start: 0, end: 0}
+ }, setSelection: function (e, t) {
+ var n = t.start, r = t.end;
+ if (void 0 === r && (r = n), "selectionStart"
+ in e) {
+ e.selectionStart = n, e.selectionEnd = Math.min(r,
+ e.value.length);
+ } else if (document.selection && e.nodeName && "input"
+ === e.nodeName.toLowerCase()) {
+ var i = e.createTextRange();
+ i.collapse(!0), i.moveStart("character", n), i.moveEnd("character",
+ r - n), i.select()
+ } else {
+ o.setOffsets(e, t)
+ }
+ }
+ };
+ t.exports = u
+ }, {126: 126, 131: 131, 132: 132, 41: 41}],
+ 57: [function (e, t, n) {
+ "use strict";
+ var r = {
+ remove: function (e) {
+ e._reactInternalInstance = void 0
+ }, get: function (e) {
+ return e._reactInternalInstance
+ }, has: function (e) {
+ return void 0 !== e._reactInternalInstance
+ }, set: function (e, t) {
+ e._reactInternalInstance = t
+ }
+ };
+ t.exports = r
+ }, {}],
+ 58: [function (e, t, n) {
+ "use strict";
+ t.exports = {debugTool: null}
+ }, {}],
+ 59: [function (e, t, n) {
+ "use strict";
+ var r = e(92), o = /^<\!\-\-/, i = {
+ CHECKSUM_ATTR_NAME: "data-react-checksum", addChecksumToMarkup: function (e) {
+ var t = r(e);
+ return o.test(e) ? e : e.replace(/\/?>/,
+ " " + i.CHECKSUM_ATTR_NAME + '="' + t + '"$&')
+ }, canReuseMarkup: function (e, t) {
+ var n = t.getAttribute(i.CHECKSUM_ATTR_NAME);
+ return n = n && parseInt(n, 10), r(e) === n
+ }
+ };
+ t.exports = i
+ }, {92: 92}],
+ 60: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ for (var n = Math.min(e.length, t.length), r = 0; r < n; r++) {
+ if (e.charAt(r)
+ !== t.charAt(r)) {
+ return r;
+ }
+ }
+ return e.length === t.length ? -1 : n
+ }
+
+ function o(e) {
+ return e ? e.nodeType === A ? e.documentElement : e.firstChild : null
+ }
+
+ function i(e) {
+ return e.getAttribute && e.getAttribute(I) || ""
+ }
+
+ function a(e, t, n, r, o) {
+ var i;
+ if (b.logTopLevelRenders) {
+ var a = e._currentElement.props.child, s = a.type;
+ i = "React mount: " + ("string" == typeof s ? s : s.displayName
+ || s.name), console.time(i)
+ }
+ var u = w.mountComponent(e, n, null, _(e, t), o, 0);
+ i && console.timeEnd(
+ i), e._renderedComponent._topLevelWrapper = e, j._mountImageIntoNode(u, t, e, r, n)
+ }
+
+ function s(e, t, n, r) {
+ var o = k.ReactReconcileTransaction.getPooled(!n && C.useCreateElement);
+ o.perform(a, null, e, t, o, n, r), k.ReactReconcileTransaction.release(o)
+ }
+
+ function u(e, t, n) {
+ for (w.unmountComponent(e, n), t.nodeType === A && (t = t.documentElement);
+ t.lastChild;) {
+ t.removeChild(t.lastChild)
+ }
+ }
+
+ function l(e) {
+ var t = o(e);
+ if (t) {
+ var n = y.getInstanceFromNode(t);
+ return !(!n || !n._hostParent)
+ }
+ }
+
+ function c(e) {
+ return !(!e || e.nodeType !== R && e.nodeType !== A && e.nodeType !== D)
+ }
+
+ function p(e) {
+ var t = o(e), n = t && y.getInstanceFromNode(t);
+ return n && !n._hostParent ? n : null
+ }
+
+ function d(e) {
+ var t = p(e);
+ return t ? t._hostContainerInfo._topLevelWrapper : null
+ }
+
+ var f = e(112), h = e(9), m = e(11), v = e(120), g = e(25), y = (e(119), e(33)),
+ _ = e(34), C = e(36), b = e(53), E = e(57), x = (e(58), e(59)), w = e(66), T = e(70),
+ k = e(71), P = e(130), S = e(108), N = (e(137), e(114)), M = e(116),
+ I = (e(142), m.ID_ATTRIBUTE_NAME), O = m.ROOT_ATTRIBUTE_NAME, R = 1, A = 9, D = 11,
+ L = {}, U = 1, F = function () {
+ this.rootID = U++
+ };
+ F.prototype.isReactComponent = {}, F.prototype.render = function () {
+ return this.props.child
+ }, F.isReactTopLevelWrapper = !0;
+ var j = {
+ TopLevelWrapper: F, _instancesByReactRootID: L, scrollMonitor: function (e, t) {
+ t()
+ }, _updateRootComponent: function (e, t, n, r, o) {
+ return j.scrollMonitor(r, function () {
+ T.enqueueElementInternal(e, t, n), o && T.enqueueCallbackInternal(e, o)
+ }), e
+ }, _renderNewRootComponent: function (e, t, n, r) {
+ c(t) || f("37"), g.ensureScrollValueMonitoring();
+ var o = S(e, !1);
+ k.batchedUpdates(s, o, t, n, r);
+ var i = o._instance.rootID;
+ return L[i] = o, o
+ }, renderSubtreeIntoContainer: function (e, t, n, r) {
+ return null != e && E.has(e) || f("38"), j._renderSubtreeIntoContainer(e, t, n, r)
+ }, _renderSubtreeIntoContainer: function (e, t, n, r) {
+ T.validateCallback(r, "ReactDOM.render"), v.isValidElement(t) || f("39",
+ "string" == typeof t
+ ? " Instead of passing a string like 'div', pass React.createElement('div') or ."
+ : "function" == typeof t
+ ? " Instead of passing a class like Foo, pass React.createElement(Foo) or ."
+ : null != t && void 0 !== t.props
+ ? " This may be caused by unintentionally loading two independent copies of React."
+ : "");
+ var a, s = v.createElement(F, {child: t});
+ if (e) {
+ var u = E.get(e);
+ a = u._processChildContext(u._context)
+ } else {
+ a = P;
+ }
+ var c = d(n);
+ if (c) {
+ var p = c._currentElement, h = p.props.child;
+ if (M(h, t)) {
+ var m = c._renderedComponent.getPublicInstance(), g = r && function () {
+ r.call(m)
+ };
+ return j._updateRootComponent(c, s, a, n, g), m
+ }
+ j.unmountComponentAtNode(n)
+ }
+ var y = o(n), _ = y && !!i(y), C = l(n), b = _ && !c && !C,
+ x = j._renderNewRootComponent(s, n, b, a)._renderedComponent.getPublicInstance();
+ return r && r.call(x), x
+ }, render: function (e, t, n) {
+ return j._renderSubtreeIntoContainer(null, e, t, n)
+ }, unmountComponentAtNode: function (e) {
+ c(e) || f("40");
+ var t = d(e);
+ return t ? (delete L[t._instance.rootID], k.batchedUpdates(u, t, e, !1), !0) : (l(
+ e), 1 === e.nodeType && e.hasAttribute(O), !1)
+ }, _mountImageIntoNode: function (e, t, n, i, a) {
+ if (c(t) || f("41"), i) {
+ var s = o(t);
+ if (x.canReuseMarkup(e, s)) {
+ return void y.precacheNode(n, s);
+ }
+ var u = s.getAttribute(x.CHECKSUM_ATTR_NAME);
+ s.removeAttribute(x.CHECKSUM_ATTR_NAME);
+ var l = s.outerHTML;
+ s.setAttribute(x.CHECKSUM_ATTR_NAME, u);
+ var p = e, d = r(p, l),
+ m = " (client) " + p.substring(d - 20, d + 20) + "\n (server) " + l.substring(
+ d - 20, d + 20);
+ t.nodeType === A && f("42", m)
+ }
+ if (t.nodeType === A && f("43"), a.useCreateElement) {
+ for (; t.lastChild;) {
+ t.removeChild(t.lastChild);
+ }
+ h.insertTreeBefore(t, e, null)
+ } else {
+ N(t, e), y.precacheNode(n, t.firstChild)
+ }
+ }
+ };
+ t.exports = j
+ }, {
+ 108: 108,
+ 11: 11,
+ 112: 112,
+ 114: 114,
+ 116: 116,
+ 119: 119,
+ 120: 120,
+ 130: 130,
+ 137: 137,
+ 142: 142,
+ 25: 25,
+ 33: 33,
+ 34: 34,
+ 36: 36,
+ 53: 53,
+ 57: 57,
+ 58: 58,
+ 59: 59,
+ 66: 66,
+ 70: 70,
+ 71: 71,
+ 9: 9
+ }],
+ 61: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n) {
+ return {
+ type: "INSERT_MARKUP",
+ content: e,
+ fromIndex: null,
+ fromNode: null,
+ toIndex: n,
+ afterNode: t
+ }
+ }
+
+ function o(e, t, n) {
+ return {
+ type: "MOVE_EXISTING",
+ content: null,
+ fromIndex: e._mountIndex,
+ fromNode: d.getHostNode(e),
+ toIndex: n,
+ afterNode: t
+ }
+ }
+
+ function i(e, t) {
+ return {
+ type: "REMOVE_NODE",
+ content: null,
+ fromIndex: e._mountIndex,
+ fromNode: t,
+ toIndex: null,
+ afterNode: null
+ }
+ }
+
+ function a(e) {
+ return {
+ type: "SET_MARKUP",
+ content: e,
+ fromIndex: null,
+ fromNode: null,
+ toIndex: null,
+ afterNode: null
+ }
+ }
+
+ function s(e) {
+ return {
+ type: "TEXT_CONTENT",
+ content: e,
+ fromIndex: null,
+ fromNode: null,
+ toIndex: null,
+ afterNode: null
+ }
+ }
+
+ function u(e, t) {
+ return t && (e = e || [], e.push(t)), e
+ }
+
+ function l(e, t) {
+ p.processChildrenUpdates(e, t)
+ }
+
+ var c = e(112), p = e(28), d = (e(57), e(58), e(119), e(66)), f = e(26),
+ h = (e(129), e(97)), m = (e(137), {
+ Mixin: {
+ _reconcilerInstantiateChildren: function (e, t, n) {
+ return f.instantiateChildren(e, t, n)
+ }, _reconcilerUpdateChildren: function (e, t, n, r, o, i) {
+ var a;
+ return a = h(t, 0), f.updateChildren(e, a, n, r, o, this, this._hostContainerInfo,
+ i, 0), a
+ }, mountChildren: function (e, t, n) {
+ var r = this._reconcilerInstantiateChildren(e, t, n);
+ this._renderedChildren = r;
+ var o = [], i = 0;
+ for (var a in r) {
+ if (r.hasOwnProperty(a)) {
+ var s = r[a], u = d.mountComponent(s, t, this, this._hostContainerInfo, n, 0);
+ s._mountIndex = i++, o.push(u)
+ }
+ }
+ return o
+ }, updateTextContent: function (e) {
+ var t = this._renderedChildren;
+ f.unmountChildren(t, !1);
+ for (var n in t) {
+ t.hasOwnProperty(n) && c("118");
+ }
+ l(this, [s(e)])
+ }, updateMarkup: function (e) {
+ var t = this._renderedChildren;
+ f.unmountChildren(t, !1);
+ for (var n in t) {
+ t.hasOwnProperty(n) && c("118");
+ }
+ l(this, [a(e)])
+ }, updateChildren: function (e, t, n) {
+ this._updateChildren(e, t, n)
+ }, _updateChildren: function (e, t, n) {
+ var r = this._renderedChildren, o = {}, i = [],
+ a = this._reconcilerUpdateChildren(r, e, i, o, t, n);
+ if (a || r) {
+ var s, c = null, p = 0, f = 0, h = 0, m = null;
+ for (s in a) {
+ if (a.hasOwnProperty(s)) {
+ var v = r && r[s], g = a[s];
+ v === g ? (c = u(c, this.moveChild(v, m, p, f)), f = Math.max(v._mountIndex,
+ f), v._mountIndex = p) : (v && (f = Math.max(v._mountIndex, f)), c = u(c,
+ this._mountChildAtIndex(g, i[h], m, p, t, n)), h++), p++, m = d.getHostNode(
+ g)
+ }
+ }
+ for (s in o) {
+ o.hasOwnProperty(s) && (c = u(c, this._unmountChild(r[s], o[s])));
+ }
+ c && l(this, c), this._renderedChildren = a
+ }
+ }, unmountChildren: function (e) {
+ var t = this._renderedChildren;
+ f.unmountChildren(t, e), this._renderedChildren = null
+ }, moveChild: function (e, t, n, r) {
+ if (e._mountIndex < r) {
+ return o(e, t, n)
+ }
+ }, createChild: function (e, t, n) {
+ return r(n, t, e._mountIndex)
+ }, removeChild: function (e, t) {
+ return i(e, t)
+ }, _mountChildAtIndex: function (e, t, n, r, o, i) {
+ return e._mountIndex = r, this.createChild(e, n, t)
+ }, _unmountChild: function (e, t) {
+ var n = this.removeChild(e, t);
+ return e._mountIndex = null, n
+ }
+ }
+ });
+ t.exports = m
+ },
+ {112: 112, 119: 119, 129: 129, 137: 137, 26: 26, 28: 28, 57: 57, 58: 58, 66: 66, 97: 97}],
+ 62: [function (e, t, n) {
+ "use strict";
+ var r = e(112), o = e(120), i = (e(137), {
+ HOST: 0, COMPOSITE: 1, EMPTY: 2, getType: function (e) {
+ return null === e || !1 === e ? i.EMPTY : o.isValidElement(e) ? "function"
+ == typeof e.type ? i.COMPOSITE : i.HOST : void r("26", e)
+ }
+ });
+ t.exports = i
+ }, {112: 112, 120: 120, 137: 137}],
+ 63: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return !(!e || "function" != typeof e.attachRef || "function" != typeof e.detachRef)
+ }
+
+ var o = e(112), i = (e(137), {
+ addComponentAsRefTo: function (e, t, n) {
+ r(n) || o("119"), n.attachRef(t, e)
+ }, removeComponentAsRefFrom: function (e, t, n) {
+ r(n) || o("120");
+ var i = n.getPublicInstance();
+ i && i.refs[t] === e.getPublicInstance() && n.detachRef(t)
+ }
+ });
+ t.exports = i
+ }, {112: 112, 137: 137}],
+ 64: [function (e, t, n) {
+ "use strict";
+ t.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"
+ }, {}],
+ 65: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ this.reinitializeTransaction(), this.renderToStaticMarkup = !1, this.reactMountReady = i.getPooled(
+ null), this.useCreateElement = e
+ }
+
+ var o = e(143), i = e(6), a = e(24), s = e(25), u = e(56), l = (e(58), e(89)), c = e(70),
+ p = {initialize: u.getSelectionInformation, close: u.restoreSelection}, d = {
+ initialize: function () {
+ var e = s.isEnabled();
+ return s.setEnabled(!1), e
+ }, close: function (e) {
+ s.setEnabled(e)
+ }
+ }, f = {
+ initialize: function () {
+ this.reactMountReady.reset()
+ }, close: function () {
+ this.reactMountReady.notifyAll()
+ }
+ }, h = [p, d, f], m = {
+ getTransactionWrappers: function () {
+ return h
+ }, getReactMountReady: function () {
+ return this.reactMountReady
+ }, getUpdateQueue: function () {
+ return c
+ }, checkpoint: function () {
+ return this.reactMountReady.checkpoint()
+ }, rollback: function (e) {
+ this.reactMountReady.rollback(e)
+ }, destructor: function () {
+ i.release(this.reactMountReady), this.reactMountReady = null
+ }
+ };
+ o(r.prototype, l, m), a.addPoolingTo(r), t.exports = r
+ }, {143: 143, 24: 24, 25: 25, 56: 56, 58: 58, 6: 6, 70: 70, 89: 89}],
+ 66: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ o.attachRefs(this, this._currentElement)
+ }
+
+ var o = e(67), i = (e(58), e(142), {
+ mountComponent: function (e, t, n, o, i, a) {
+ var s = e.mountComponent(t, n, o, i, a);
+ return e._currentElement && null != e._currentElement.ref
+ && t.getReactMountReady().enqueue(r, e), s
+ }, getHostNode: function (e) {
+ return e.getHostNode()
+ }, unmountComponent: function (e, t) {
+ o.detachRefs(e, e._currentElement), e.unmountComponent(t)
+ }, receiveComponent: function (e, t, n, i) {
+ var a = e._currentElement;
+ if (t !== a || i !== e._context) {
+ var s = o.shouldUpdateRefs(a, t);
+ s && o.detachRefs(e, a), e.receiveComponent(t, n, i), s && e._currentElement && null
+ != e._currentElement.ref && n.getReactMountReady().enqueue(r, e)
+ }
+ }, performUpdateIfNecessary: function (e, t, n) {
+ e._updateBatchNumber === n && e.performUpdateIfNecessary(t)
+ }
+ });
+ t.exports = i
+ }, {142: 142, 58: 58, 67: 67}],
+ 67: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n) {
+ "function" == typeof e ? e(t.getPublicInstance()) : i.addComponentAsRefTo(t, e, n)
+ }
+
+ function o(e, t, n) {
+ "function" == typeof e ? e(null) : i.removeComponentAsRefFrom(t, e, n)
+ }
+
+ var i = e(63), a = {};
+ a.attachRefs = function (e, t) {
+ if (null !== t && "object" == typeof t) {
+ var n = t.ref;
+ null != n && r(n, e, t._owner)
+ }
+ }, a.shouldUpdateRefs = function (e, t) {
+ var n = null, r = null;
+ null !== e && "object" == typeof e && (n = e.ref, r = e._owner);
+ var o = null, i = null;
+ return null !== t && "object" == typeof t && (o = t.ref, i = t._owner), n !== o
+ || "string" == typeof o && i !== r
+ }, a.detachRefs = function (e, t) {
+ if (null !== t && "object" == typeof t) {
+ var n = t.ref;
+ null != n && o(n, e, t._owner)
+ }
+ }, t.exports = a
+ }, {63: 63}],
+ 68: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ this.reinitializeTransaction(), this.renderToStaticMarkup = e, this.useCreateElement = !1, this.updateQueue = new s(
+ this)
+ }
+
+ var o = e(143), i = e(24), a = e(89), s = (e(58), e(69)), u = [], l = {
+ enqueue: function () {
+ }
+ }, c = {
+ getTransactionWrappers: function () {
+ return u
+ }, getReactMountReady: function () {
+ return l
+ }, getUpdateQueue: function () {
+ return this.updateQueue
+ }, destructor: function () {
+ }, checkpoint: function () {
+ }, rollback: function () {
+ }
+ };
+ o(r.prototype, a, c), i.addPoolingTo(r), t.exports = r
+ }, {143: 143, 24: 24, 58: 58, 69: 69, 89: 89}],
+ 69: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ if (!(e instanceof t)) {
+ throw new TypeError("Cannot call a class as a function")
+ }
+ }
+
+ var o = e(70), i = (e(142), function () {
+ function e(t) {
+ r(this, e), this.transaction = t
+ }
+
+ return e.prototype.isMounted = function (e) {
+ return !1
+ }, e.prototype.enqueueCallback = function (e, t, n) {
+ this.transaction.isInTransaction() && o.enqueueCallback(e, t, n)
+ }, e.prototype.enqueueForceUpdate = function (e) {
+ this.transaction.isInTransaction() && o.enqueueForceUpdate(e)
+ }, e.prototype.enqueueReplaceState = function (e, t) {
+ this.transaction.isInTransaction() && o.enqueueReplaceState(e, t)
+ }, e.prototype.enqueueSetState = function (e, t) {
+ this.transaction.isInTransaction() && o.enqueueSetState(e, t)
+ }, e
+ }());
+ t.exports = i
+ }, {142: 142, 70: 70}],
+ 70: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ u.enqueueUpdate(e)
+ }
+
+ function o(e) {
+ var t = typeof e;
+ if ("object" !== t) {
+ return t;
+ }
+ var n = e.constructor && e.constructor.name || t, r = Object.keys(e);
+ return r.length > 0 && r.length < 20 ? n + " (keys: " + r.join(", ") + ")" : n
+ }
+
+ function i(e, t) {
+ var n = s.get(e);
+ return n || null
+ }
+
+ var a = e(112), s = (e(119), e(57)), u = (e(58), e(71)), l = (e(137), e(142), {
+ isMounted: function (e) {
+ var t = s.get(e);
+ return !!t && !!t._renderedComponent
+ }, enqueueCallback: function (e, t, n) {
+ l.validateCallback(t, n);
+ var o = i(e);
+ if (!o) {
+ return null;
+ }
+ o._pendingCallbacks ? o._pendingCallbacks.push(t) : o._pendingCallbacks = [t], r(o)
+ }, enqueueCallbackInternal: function (e, t) {
+ e._pendingCallbacks ? e._pendingCallbacks.push(t) : e._pendingCallbacks = [t], r(e)
+ }, enqueueForceUpdate: function (e) {
+ var t = i(e, "forceUpdate");
+ t && (t._pendingForceUpdate = !0, r(t))
+ }, enqueueReplaceState: function (e, t, n) {
+ var o = i(e, "replaceState");
+ o && (o._pendingStateQueue = [t], o._pendingReplaceState = !0, void 0 !== n && null
+ !== n && (l.validateCallback(n, "replaceState"), o._pendingCallbacks
+ ? o._pendingCallbacks.push(n) : o._pendingCallbacks = [n]), r(o))
+ }, enqueueSetState: function (e, t) {
+ var n = i(e, "setState");
+ n && ((n._pendingStateQueue || (n._pendingStateQueue = [])).push(t), r(n))
+ }, enqueueElementInternal: function (e, t, n) {
+ e._pendingElement = t, e._context = n, r(e)
+ }, validateCallback: function (e, t) {
+ e && "function" != typeof e && a("122", t, o(e))
+ }
+ });
+ t.exports = l
+ }, {112: 112, 119: 119, 137: 137, 142: 142, 57: 57, 58: 58, 71: 71}],
+ 71: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ P.ReactReconcileTransaction && b || c("123")
+ }
+
+ function o() {
+ this.reinitializeTransaction(), this.dirtyComponentsLength = null, this.callbackQueue = d.getPooled(), this.reconcileTransaction = P.ReactReconcileTransaction.getPooled(
+ !0)
+ }
+
+ function i(e, t, n, o, i, a) {
+ return r(), b.batchedUpdates(e, t, n, o, i, a)
+ }
+
+ function a(e, t) {
+ return e._mountOrder - t._mountOrder
+ }
+
+ function s(e) {
+ var t = e.dirtyComponentsLength;
+ t !== g.length && c("124", t, g.length), g.sort(a), y++;
+ for (var n = 0; n < t; n++) {
+ var r = g[n], o = r._pendingCallbacks;
+ r._pendingCallbacks = null;
+ var i;
+ if (h.logTopLevelRenders) {
+ var s = r;
+ r._currentElement.type.isReactTopLevelWrapper
+ && (s = r._renderedComponent), i = "React update: " + s.getName(), console.time(i)
+ }
+ if (m.performUpdateIfNecessary(r, e.reconcileTransaction, y), i && console.timeEnd(
+ i), o) {
+ for (var u = 0; u < o.length; u++) {
+ e.callbackQueue.enqueue(o[u],
+ r.getPublicInstance())
+ }
+ }
+ }
+ }
+
+ function u(e) {
+ if (r(), !b.isBatchingUpdates) {
+ return void b.batchedUpdates(u, e);
+ }
+ g.push(e), null == e._updateBatchNumber && (e._updateBatchNumber = y + 1)
+ }
+
+ function l(e, t) {
+ b.isBatchingUpdates || c("125"), _.enqueue(e, t), C = !0
+ }
+
+ var c = e(112), p = e(143), d = e(6), f = e(24), h = e(53), m = e(66), v = e(89),
+ g = (e(137), []), y = 0, _ = d.getPooled(), C = !1, b = null, E = {
+ initialize: function () {
+ this.dirtyComponentsLength = g.length
+ }, close: function () {
+ this.dirtyComponentsLength !== g.length ? (g.splice(0,
+ this.dirtyComponentsLength), T()) : g.length = 0
+ }
+ }, x = {
+ initialize: function () {
+ this.callbackQueue.reset()
+ }, close: function () {
+ this.callbackQueue.notifyAll()
+ }
+ }, w = [E, x];
+ p(o.prototype, v, {
+ getTransactionWrappers: function () {
+ return w
+ }, destructor: function () {
+ this.dirtyComponentsLength = null, d.release(
+ this.callbackQueue), this.callbackQueue = null, P.ReactReconcileTransaction.release(
+ this.reconcileTransaction), this.reconcileTransaction = null
+ }, perform: function (e, t, n) {
+ return v.perform.call(this, this.reconcileTransaction.perform,
+ this.reconcileTransaction, e, t, n)
+ }
+ }), f.addPoolingTo(o);
+ var T = function () {
+ for (; g.length || C;) {
+ if (g.length) {
+ var e = o.getPooled();
+ e.perform(s, null, e), o.release(e)
+ }
+ if (C) {
+ C = !1;
+ var t = _;
+ _ = d.getPooled(), t.notifyAll(), d.release(t)
+ }
+ }
+ }, k = {
+ injectReconcileTransaction: function (e) {
+ e || c("126"), P.ReactReconcileTransaction = e
+ }, injectBatchingStrategy: function (e) {
+ e || c("127"), "function" != typeof e.batchedUpdates && c("128"), "boolean"
+ != typeof e.isBatchingUpdates && c("129"), b = e
+ }
+ }, P = {
+ ReactReconcileTransaction: null,
+ batchedUpdates: i,
+ enqueueUpdate: u,
+ flushBatchedUpdates: T,
+ injection: k,
+ asap: l
+ };
+ t.exports = P
+ }, {112: 112, 137: 137, 143: 143, 24: 24, 53: 53, 6: 6, 66: 66, 89: 89}],
+ 72: [function (e, t, n) {
+ "use strict";
+ t.exports = "15.5.4"
+ }, {}],
+ 73: [function (e, t, n) {
+ "use strict";
+ var r = {
+ xlink: "http://www.w3.org/1999/xlink",
+ xml: "http://www.w3.org/XML/1998/namespace"
+ }, o = {
+ accentHeight: "accent-height",
+ accumulate: 0,
+ additive: 0,
+ alignmentBaseline: "alignment-baseline",
+ allowReorder: "allowReorder",
+ alphabetic: 0,
+ amplitude: 0,
+ arabicForm: "arabic-form",
+ ascent: 0,
+ attributeName: "attributeName",
+ attributeType: "attributeType",
+ autoReverse: "autoReverse",
+ azimuth: 0,
+ baseFrequency: "baseFrequency",
+ baseProfile: "baseProfile",
+ baselineShift: "baseline-shift",
+ bbox: 0,
+ begin: 0,
+ bias: 0,
+ by: 0,
+ calcMode: "calcMode",
+ capHeight: "cap-height",
+ clip: 0,
+ clipPath: "clip-path",
+ clipRule: "clip-rule",
+ clipPathUnits: "clipPathUnits",
+ colorInterpolation: "color-interpolation",
+ colorInterpolationFilters: "color-interpolation-filters",
+ colorProfile: "color-profile",
+ colorRendering: "color-rendering",
+ contentScriptType: "contentScriptType",
+ contentStyleType: "contentStyleType",
+ cursor: 0,
+ cx: 0,
+ cy: 0,
+ d: 0,
+ decelerate: 0,
+ descent: 0,
+ diffuseConstant: "diffuseConstant",
+ direction: 0,
+ display: 0,
+ divisor: 0,
+ dominantBaseline: "dominant-baseline",
+ dur: 0,
+ dx: 0,
+ dy: 0,
+ edgeMode: "edgeMode",
+ elevation: 0,
+ enableBackground: "enable-background",
+ end: 0,
+ exponent: 0,
+ externalResourcesRequired: "externalResourcesRequired",
+ fill: 0,
+ fillOpacity: "fill-opacity",
+ fillRule: "fill-rule",
+ filter: 0,
+ filterRes: "filterRes",
+ filterUnits: "filterUnits",
+ floodColor: "flood-color",
+ floodOpacity: "flood-opacity",
+ focusable: 0,
+ fontFamily: "font-family",
+ fontSize: "font-size",
+ fontSizeAdjust: "font-size-adjust",
+ fontStretch: "font-stretch",
+ fontStyle: "font-style",
+ fontVariant: "font-variant",
+ fontWeight: "font-weight",
+ format: 0,
+ from: 0,
+ fx: 0,
+ fy: 0,
+ g1: 0,
+ g2: 0,
+ glyphName: "glyph-name",
+ glyphOrientationHorizontal: "glyph-orientation-horizontal",
+ glyphOrientationVertical: "glyph-orientation-vertical",
+ glyphRef: "glyphRef",
+ gradientTransform: "gradientTransform",
+ gradientUnits: "gradientUnits",
+ hanging: 0,
+ horizAdvX: "horiz-adv-x",
+ horizOriginX: "horiz-origin-x",
+ ideographic: 0,
+ imageRendering: "image-rendering",
+ in: 0,
+ in2: 0,
+ intercept: 0,
+ k: 0,
+ k1: 0,
+ k2: 0,
+ k3: 0,
+ k4: 0,
+ kernelMatrix: "kernelMatrix",
+ kernelUnitLength: "kernelUnitLength",
+ kerning: 0,
+ keyPoints: "keyPoints",
+ keySplines: "keySplines",
+ keyTimes: "keyTimes",
+ lengthAdjust: "lengthAdjust",
+ letterSpacing: "letter-spacing",
+ lightingColor: "lighting-color",
+ limitingConeAngle: "limitingConeAngle",
+ local: 0,
+ markerEnd: "marker-end",
+ markerMid: "marker-mid",
+ markerStart: "marker-start",
+ markerHeight: "markerHeight",
+ markerUnits: "markerUnits",
+ markerWidth: "markerWidth",
+ mask: 0,
+ maskContentUnits: "maskContentUnits",
+ maskUnits: "maskUnits",
+ mathematical: 0,
+ mode: 0,
+ numOctaves: "numOctaves",
+ offset: 0,
+ opacity: 0,
+ operator: 0,
+ order: 0,
+ orient: 0,
+ orientation: 0,
+ origin: 0,
+ overflow: 0,
+ overlinePosition: "overline-position",
+ overlineThickness: "overline-thickness",
+ paintOrder: "paint-order",
+ panose1: "panose-1",
+ pathLength: "pathLength",
+ patternContentUnits: "patternContentUnits",
+ patternTransform: "patternTransform",
+ patternUnits: "patternUnits",
+ pointerEvents: "pointer-events",
+ points: 0,
+ pointsAtX: "pointsAtX",
+ pointsAtY: "pointsAtY",
+ pointsAtZ: "pointsAtZ",
+ preserveAlpha: "preserveAlpha",
+ preserveAspectRatio: "preserveAspectRatio",
+ primitiveUnits: "primitiveUnits",
+ r: 0,
+ radius: 0,
+ refX: "refX",
+ refY: "refY",
+ renderingIntent: "rendering-intent",
+ repeatCount: "repeatCount",
+ repeatDur: "repeatDur",
+ requiredExtensions: "requiredExtensions",
+ requiredFeatures: "requiredFeatures",
+ restart: 0,
+ result: 0,
+ rotate: 0,
+ rx: 0,
+ ry: 0,
+ scale: 0,
+ seed: 0,
+ shapeRendering: "shape-rendering",
+ slope: 0,
+ spacing: 0,
+ specularConstant: "specularConstant",
+ specularExponent: "specularExponent",
+ speed: 0,
+ spreadMethod: "spreadMethod",
+ startOffset: "startOffset",
+ stdDeviation: "stdDeviation",
+ stemh: 0,
+ stemv: 0,
+ stitchTiles: "stitchTiles",
+ stopColor: "stop-color",
+ stopOpacity: "stop-opacity",
+ strikethroughPosition: "strikethrough-position",
+ strikethroughThickness: "strikethrough-thickness",
+ string: 0,
+ stroke: 0,
+ strokeDasharray: "stroke-dasharray",
+ strokeDashoffset: "stroke-dashoffset",
+ strokeLinecap: "stroke-linecap",
+ strokeLinejoin: "stroke-linejoin",
+ strokeMiterlimit: "stroke-miterlimit",
+ strokeOpacity: "stroke-opacity",
+ strokeWidth: "stroke-width",
+ surfaceScale: "surfaceScale",
+ systemLanguage: "systemLanguage",
+ tableValues: "tableValues",
+ targetX: "targetX",
+ targetY: "targetY",
+ textAnchor: "text-anchor",
+ textDecoration: "text-decoration",
+ textRendering: "text-rendering",
+ textLength: "textLength",
+ to: 0,
+ transform: 0,
+ u1: 0,
+ u2: 0,
+ underlinePosition: "underline-position",
+ underlineThickness: "underline-thickness",
+ unicode: 0,
+ unicodeBidi: "unicode-bidi",
+ unicodeRange: "unicode-range",
+ unitsPerEm: "units-per-em",
+ vAlphabetic: "v-alphabetic",
+ vHanging: "v-hanging",
+ vIdeographic: "v-ideographic",
+ vMathematical: "v-mathematical",
+ values: 0,
+ vectorEffect: "vector-effect",
+ version: 0,
+ vertAdvY: "vert-adv-y",
+ vertOriginX: "vert-origin-x",
+ vertOriginY: "vert-origin-y",
+ viewBox: "viewBox",
+ viewTarget: "viewTarget",
+ visibility: 0,
+ widths: 0,
+ wordSpacing: "word-spacing",
+ writingMode: "writing-mode",
+ x: 0,
+ xHeight: "x-height",
+ x1: 0,
+ x2: 0,
+ xChannelSelector: "xChannelSelector",
+ xlinkActuate: "xlink:actuate",
+ xlinkArcrole: "xlink:arcrole",
+ xlinkHref: "xlink:href",
+ xlinkRole: "xlink:role",
+ xlinkShow: "xlink:show",
+ xlinkTitle: "xlink:title",
+ xlinkType: "xlink:type",
+ xmlBase: "xml:base",
+ xmlns: 0,
+ xmlnsXlink: "xmlns:xlink",
+ xmlLang: "xml:lang",
+ xmlSpace: "xml:space",
+ y: 0,
+ y1: 0,
+ y2: 0,
+ yChannelSelector: "yChannelSelector",
+ z: 0,
+ zoomAndPan: "zoomAndPan"
+ }, i = {
+ Properties: {},
+ DOMAttributeNamespaces: {
+ xlinkActuate: r.xlink,
+ xlinkArcrole: r.xlink,
+ xlinkHref: r.xlink,
+ xlinkRole: r.xlink,
+ xlinkShow: r.xlink,
+ xlinkTitle: r.xlink,
+ xlinkType: r.xlink,
+ xmlBase: r.xml,
+ xmlLang: r.xml,
+ xmlSpace: r.xml
+ },
+ DOMAttributeNames: {}
+ };
+ Object.keys(o).forEach(function (e) {
+ i.Properties[e] = 0, o[e] && (i.DOMAttributeNames[e] = o[e])
+ }), t.exports = i
+ }, {}],
+ 74: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ if ("selectionStart" in e && u.hasSelectionCapabilities(
+ e)) {
+ return {start: e.selectionStart, end: e.selectionEnd};
+ }
+ if (window.getSelection) {
+ var t = window.getSelection();
+ return {
+ anchorNode: t.anchorNode,
+ anchorOffset: t.anchorOffset,
+ focusNode: t.focusNode,
+ focusOffset: t.focusOffset
+ }
+ }
+ if (document.selection) {
+ var n = document.selection.createRange();
+ return {
+ parentElement: n.parentElement(),
+ text: n.text,
+ top: n.boundingTop,
+ left: n.boundingLeft
+ }
+ }
+ }
+
+ function o(e, t) {
+ if (y || null == m || m !== c()) {
+ return null;
+ }
+ var n = r(m);
+ if (!g || !d(g, n)) {
+ g = n;
+ var o = l.getPooled(h.select, v, e, t);
+ return o.type = "select", o.target = m, i.accumulateTwoPhaseDispatches(o), o
+ }
+ return null
+ }
+
+ var i = e(19), a = e(123), s = e(33), u = e(56), l = e(80), c = e(132), p = e(110),
+ d = e(141),
+ f = a.canUseDOM && "documentMode" in document && document.documentMode <= 11, h = {
+ select: {
+ phasedRegistrationNames: {
+ bubbled: "onSelect",
+ captured: "onSelectCapture"
+ },
+ dependencies: ["topBlur", "topContextMenu", "topFocus", "topKeyDown", "topKeyUp",
+ "topMouseDown", "topMouseUp", "topSelectionChange"]
+ }
+ }, m = null, v = null, g = null, y = !1, _ = !1, C = {
+ eventTypes: h, extractEvents: function (e, t, n, r) {
+ if (!_) {
+ return null;
+ }
+ var i = t ? s.getNodeFromInstance(t) : window;
+ switch (e) {
+ case"topFocus":
+ (p(i) || "true" === i.contentEditable) && (m = i, v = t, g = null);
+ break
+ ;
+ case"topBlur":
+ m = null, v = null, g = null;
+ break;
+ case"topMouseDown":
+ y = !0;
+ break;
+ case"topContextMenu":
+ case"topMouseUp":
+ return y = !1, o(n, r);
+ case"topSelectionChange":
+ if (f) {
+ break;
+ }
+ case"topKeyDown":
+ case"topKeyUp":
+ return o(n, r)
+ }
+ return null
+ }, didPutListener: function (e, t, n) {
+ "onSelect" === t && (_ = !0)
+ }
+ };
+ t.exports = C
+ }, {110: 110, 123: 123, 132: 132, 141: 141, 19: 19, 33: 33, 56: 56, 80: 80}],
+ 75: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return "." + e._rootNodeID
+ }
+
+ function o(e) {
+ return "button" === e || "input" === e || "select" === e || "textarea" === e
+ }
+
+ var i = e(112), a = e(122), s = e(19), u = e(33), l = e(76), c = e(77), p = e(80),
+ d = e(81), f = e(83), h = e(84), m = e(79), v = e(85), g = e(86), y = e(87), _ = e(88),
+ C = e(129), b = e(99), E = (e(137), {}), x = {};
+ ["abort", "animationEnd", "animationIteration", "animationStart", "blur", "canPlay",
+ "canPlayThrough", "click", "contextMenu", "copy", "cut", "doubleClick", "drag",
+ "dragEnd", "dragEnter", "dragExit", "dragLeave", "dragOver", "dragStart", "drop",
+ "durationChange", "emptied", "encrypted", "ended", "error", "focus", "input", "invalid",
+ "keyDown", "keyPress", "keyUp", "load", "loadedData", "loadedMetadata", "loadStart",
+ "mouseDown", "mouseMove", "mouseOut", "mouseOver", "mouseUp", "paste", "pause", "play",
+ "playing", "progress", "rateChange", "reset", "scroll", "seeked", "seeking", "stalled",
+ "submit", "suspend", "timeUpdate", "touchCancel", "touchEnd", "touchMove", "touchStart",
+ "transitionEnd", "volumeChange", "waiting", "wheel"].forEach(function (e) {
+ var t = e[0].toUpperCase() + e.slice(1), n = "on" + t, r = "top" + t, o = {
+ phasedRegistrationNames: {bubbled: n, captured: n + "Capture"},
+ dependencies: [r]
+ };
+ E[e] = o, x[r] = o
+ });
+ var w = {}, T = {
+ eventTypes: E, extractEvents: function (e, t, n, r) {
+ var o = x[e];
+ if (!o) {
+ return null;
+ }
+ var a;
+ switch (e) {
+ case"topAbort":
+ case"topCanPlay":
+ case"topCanPlayThrough":
+ case"topDurationChange":
+ case"topEmptied":
+ case"topEncrypted":
+ case"topEnded":
+ case"topError":
+ case"topInput":
+ case"topInvalid":
+ case"topLoad":
+ case"topLoadedData":
+ case"topLoadedMetadata":
+ case"topLoadStart":
+ case"topPause":
+ case"topPlay":
+ case"topPlaying":
+ case"topProgress":
+ case"topRateChange":
+ case"topReset":
+ case"topSeeked":
+ case"topSeeking":
+ case"topStalled":
+ case"topSubmit":
+ case"topSuspend":
+ case"topTimeUpdate":
+ case"topVolumeChange":
+ case"topWaiting":
+ a = p;
+ break;
+ case"topKeyPress":
+ if (0 === b(n)) {
+ return null;
+ }
+ case"topKeyDown":
+ case"topKeyUp":
+ a = f;
+ break;
+ case"topBlur":
+ case"topFocus":
+ a = d;
+ break;
+ case"topClick":
+ if (2 === n.button) {
+ return null;
+ }
+ case"topDoubleClick":
+ case"topMouseDown":
+ case"topMouseMove":
+ case"topMouseUp":
+ case"topMouseOut":
+ case"topMouseOver":
+ case"topContextMenu":
+ a = h;
+ break;
+ case"topDrag":
+ case"topDragEnd":
+ case"topDragEnter":
+ case"topDragExit":
+ case"topDragLeave":
+ case"topDragOver":
+ case"topDragStart":
+ case"topDrop":
+ a = m;
+ break;
+ case"topTouchCancel":
+ case"topTouchEnd":
+ case"topTouchMove":
+ case"topTouchStart":
+ a = v;
+ break;
+ case"topAnimationEnd":
+ case"topAnimationIteration":
+ case"topAnimationStart":
+ a = l;
+ break;
+ case"topTransitionEnd":
+ a = g;
+ break;
+ case"topScroll":
+ a = y;
+ break;
+ case"topWheel":
+ a = _;
+ break;
+ case"topCopy":
+ case"topCut":
+ case"topPaste":
+ a = c
+ }
+ a || i("86", e);
+ var u = a.getPooled(o, t, n, r);
+ return s.accumulateTwoPhaseDispatches(u), u
+ }, didPutListener: function (e, t, n) {
+ if ("onClick" === t && !o(e._tag)) {
+ var i = r(e), s = u.getNodeFromInstance(e);
+ w[i] || (w[i] = a.listen(s, "click", C))
+ }
+ }, willDeleteListener: function (e, t) {
+ if ("onClick" === t && !o(e._tag)) {
+ var n = r(e);
+ w[n].remove(), delete w[n]
+ }
+ }
+ };
+ t.exports = T
+ }, {
+ 112: 112,
+ 122: 122,
+ 129: 129,
+ 137: 137,
+ 19: 19,
+ 33: 33,
+ 76: 76,
+ 77: 77,
+ 79: 79,
+ 80: 80,
+ 81: 81,
+ 83: 83,
+ 84: 84,
+ 85: 85,
+ 86: 86,
+ 87: 87,
+ 88: 88,
+ 99: 99
+ }],
+ 76: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(80), i = {animationName: null, elapsedTime: null, pseudoElement: null};
+ o.augmentClass(r, i), t.exports = r
+ }, {80: 80}],
+ 77: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(80), i = {
+ clipboardData: function (e) {
+ return "clipboardData" in e ? e.clipboardData : window.clipboardData
+ }
+ };
+ o.augmentClass(r, i), t.exports = r
+ }, {80: 80}],
+ 78: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(80), i = {data: null};
+ o.augmentClass(r, i), t.exports = r
+ }, {80: 80}],
+ 79: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(84), i = {dataTransfer: null};
+ o.augmentClass(r, i), t.exports = r
+ }, {84: 84}],
+ 80: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ this.dispatchConfig = e, this._targetInst = t, this.nativeEvent = n;
+ var o = this.constructor.Interface;
+ for (var i in o) {
+ if (o.hasOwnProperty(i)) {
+ var s = o[i];
+ s ? this[i] = s(n) : "target" === i ? this.target = r : this[i] = n[i]
+ }
+ }
+ var u = null != n.defaultPrevented ? n.defaultPrevented : !1 === n.returnValue;
+ return this.isDefaultPrevented = u ? a.thatReturnsTrue
+ : a.thatReturnsFalse, this.isPropagationStopped = a.thatReturnsFalse, this
+ }
+
+ var o = e(143), i = e(24), a = e(129),
+ s = (e(142), ["dispatchConfig", "_targetInst", "nativeEvent", "isDefaultPrevented",
+ "isPropagationStopped", "_dispatchListeners", "_dispatchInstances"]), u = {
+ type: null,
+ target: null,
+ currentTarget: a.thatReturnsNull,
+ eventPhase: null,
+ bubbles: null,
+ cancelable: null,
+ timeStamp: function (e) {
+ return e.timeStamp || Date.now()
+ },
+ defaultPrevented: null,
+ isTrusted: null
+ };
+ o(r.prototype, {
+ preventDefault: function () {
+ this.defaultPrevented = !0;
+ var e = this.nativeEvent;
+ e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e.returnValue
+ && (e.returnValue = !1), this.isDefaultPrevented = a.thatReturnsTrue)
+ }, stopPropagation: function () {
+ var e = this.nativeEvent;
+ e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e.cancelBubble
+ && (e.cancelBubble = !0), this.isPropagationStopped = a.thatReturnsTrue)
+ }, persist: function () {
+ this.isPersistent = a.thatReturnsTrue
+ }, isPersistent: a.thatReturnsFalse, destructor: function () {
+ var e = this.constructor.Interface;
+ for (var t in e) {
+ this[t] = null;
+ }
+ for (var n = 0; n < s.length; n++) {
+ this[s[n]] = null
+ }
+ }
+ }), r.Interface = u, r.augmentClass = function (e, t) {
+ var n = this, r = function () {
+ };
+ r.prototype = n.prototype;
+ var a = new r;
+ o(a, e.prototype), e.prototype = a, e.prototype.constructor = e, e.Interface = o({},
+ n.Interface, t), e.augmentClass = n.augmentClass, i.addPoolingTo(e,
+ i.fourArgumentPooler)
+ }, i.addPoolingTo(r, i.fourArgumentPooler), t.exports = r
+ }, {129: 129, 142: 142, 143: 143, 24: 24}],
+ 81: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(87), i = {relatedTarget: null};
+ o.augmentClass(r, i), t.exports = r
+ }, {87: 87}],
+ 82: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(80), i = {data: null};
+ o.augmentClass(r, i), t.exports = r
+ }, {80: 80}],
+ 83: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(87), i = e(99), a = e(100), s = e(101), u = {
+ key: a,
+ location: null,
+ ctrlKey: null,
+ shiftKey: null,
+ altKey: null,
+ metaKey: null,
+ repeat: null,
+ locale: null,
+ getModifierState: s,
+ charCode: function (e) {
+ return "keypress" === e.type ? i(e) : 0
+ },
+ keyCode: function (e) {
+ return "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0
+ },
+ which: function (e) {
+ return "keypress" === e.type ? i(e) : "keydown" === e.type || "keyup" === e.type
+ ? e.keyCode : 0
+ }
+ };
+ o.augmentClass(r, u), t.exports = r
+ }, {100: 100, 101: 101, 87: 87, 99: 99}],
+ 84: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(87), i = e(90), a = e(101), s = {
+ screenX: null,
+ screenY: null,
+ clientX: null,
+ clientY: null,
+ ctrlKey: null,
+ shiftKey: null,
+ altKey: null,
+ metaKey: null,
+ getModifierState: a,
+ button: function (e) {
+ var t = e.button;
+ return "which" in e ? t : 2 === t ? 2 : 4 === t ? 1 : 0
+ },
+ buttons: null,
+ relatedTarget: function (e) {
+ return e.relatedTarget || (e.fromElement === e.srcElement ? e.toElement
+ : e.fromElement)
+ },
+ pageX: function (e) {
+ return "pageX" in e ? e.pageX : e.clientX + i.currentScrollLeft
+ },
+ pageY: function (e) {
+ return "pageY" in e ? e.pageY : e.clientY + i.currentScrollTop
+ }
+ };
+ o.augmentClass(r, s), t.exports = r
+ }, {101: 101, 87: 87, 90: 90}],
+ 85: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(87), i = e(101), a = {
+ touches: null,
+ targetTouches: null,
+ changedTouches: null,
+ altKey: null,
+ metaKey: null,
+ ctrlKey: null,
+ shiftKey: null,
+ getModifierState: i
+ };
+ o.augmentClass(r, a), t.exports = r
+ }, {101: 101, 87: 87}],
+ 86: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(80), i = {propertyName: null, elapsedTime: null, pseudoElement: null};
+ o.augmentClass(r, i), t.exports = r
+ }, {80: 80}],
+ 87: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(80), i = e(102), a = {
+ view: function (e) {
+ if (e.view) {
+ return e.view;
+ }
+ var t = i(e);
+ if (t.window === t) {
+ return t;
+ }
+ var n = t.ownerDocument;
+ return n ? n.defaultView || n.parentWindow : window
+ }, detail: function (e) {
+ return e.detail || 0
+ }
+ };
+ o.augmentClass(r, a), t.exports = r
+ }, {102: 102, 80: 80}],
+ 88: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ return o.call(this, e, t, n, r)
+ }
+
+ var o = e(84), i = {
+ deltaX: function (e) {
+ return "deltaX" in e ? e.deltaX : "wheelDeltaX" in e ? -e.wheelDeltaX : 0
+ }, deltaY: function (e) {
+ return "deltaY" in e ? e.deltaY : "wheelDeltaY" in e ? -e.wheelDeltaY : "wheelDelta"
+ in e ? -e.wheelDelta : 0
+ }, deltaZ: null, deltaMode: null
+ };
+ o.augmentClass(r, i), t.exports = r
+ }, {84: 84}],
+ 89: [function (e, t, n) {
+ "use strict";
+ var r = e(112), o = (e(137), {}), i = {
+ reinitializeTransaction: function () {
+ this.transactionWrappers = this.getTransactionWrappers(), this.wrapperInitData
+ ? this.wrapperInitData.length = 0
+ : this.wrapperInitData = [], this._isInTransaction = !1
+ }, _isInTransaction: !1, getTransactionWrappers: null, isInTransaction: function () {
+ return !!this._isInTransaction
+ }, perform: function (e, t, n, o, i, a, s, u) {
+ this.isInTransaction() && r("27");
+ var l, c;
+ try {
+ this._isInTransaction = !0, l = !0, this.initializeAll(0), c = e.call(t, n, o, i, a,
+ s, u), l = !1
+ } finally {
+ try {
+ if (l) {
+ try {
+ this.closeAll(0)
+ } catch (e) {
+ }
+ } else {
+ this.closeAll(0)
+ }
+ } finally {
+ this._isInTransaction = !1
+ }
+ }
+ return c
+ }, initializeAll: function (e) {
+ for (var t = this.transactionWrappers, n = e; n < t.length; n++) {
+ var r = t[n];
+ try {
+ this.wrapperInitData[n] = o, this.wrapperInitData[n] = r.initialize
+ ? r.initialize.call(this) : null
+ } finally {
+ if (this.wrapperInitData[n] === o) {
+ try {
+ this.initializeAll(n + 1)
+ } catch (e) {
+ }
+ }
+ }
+ }
+ }, closeAll: function (e) {
+ this.isInTransaction() || r("28");
+ for (var t = this.transactionWrappers, n = e; n < t.length; n++) {
+ var i, a = t[n], s = this.wrapperInitData[n];
+ try {
+ i = !0, s !== o && a.close && a.close.call(this, s), i = !1
+ } finally {
+ if (i) {
+ try {
+ this.closeAll(n + 1)
+ } catch (e) {
+ }
+ }
+ }
+ }
+ this.wrapperInitData.length = 0
+ }
+ };
+ t.exports = i
+ }, {112: 112, 137: 137}],
+ 90: [function (e, t, n) {
+ "use strict";
+ var r = {
+ currentScrollLeft: 0, currentScrollTop: 0, refreshScrollValues: function (e) {
+ r.currentScrollLeft = e.x, r.currentScrollTop = e.y
+ }
+ };
+ t.exports = r
+ }, {}],
+ 91: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ return null == t && o("30"), null == e ? t : Array.isArray(e) ? Array.isArray(t)
+ ? (e.push.apply(e, t), e) : (e.push(t), e) : Array.isArray(t) ? [e].concat(t) : [e, t]
+ }
+
+ var o = e(112);
+ e(137);
+ t.exports = r
+ }, {112: 112, 137: 137}],
+ 92: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ for (var t = 1, n = 0, r = 0, i = e.length, a = -4 & i; r < a;) {
+ for (var s = Math.min(r + 4096, a); r < s; r += 4) {
+ n += (t += e.charCodeAt(r))
+ + (t += e.charCodeAt(r + 1)) + (t += e.charCodeAt(r + 2)) + (t += e.charCodeAt(
+ r + 3));
+ }
+ t %= o, n %= o
+ }
+ for (; r < i; r++) {
+ n += t += e.charCodeAt(r);
+ }
+ return t %= o, n %= o, t | n << 16
+ }
+
+ var o = 65521;
+ t.exports = r
+ }, {}],
+ 93: [function (e, t, n) {
+ "use strict";
+ var r = function (e) {
+ return "undefined" != typeof MSApp && MSApp.execUnsafeLocalFunction ? function (t, n, r,
+ o) {
+ MSApp.execUnsafeLocalFunction(function () {
+ return e(t, n, r, o)
+ })
+ } : e
+ };
+ t.exports = r
+ }, {}],
+ 94: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n) {
+ return null == t || "boolean" == typeof t || "" === t ? "" : isNaN(t) || 0 === t
+ || i.hasOwnProperty(e) && i[e] ? "" + t : ("string" == typeof t && (t = t.trim()), t
+ + "px")
+ }
+
+ var o = e(4), i = (e(142), o.isUnitlessNumber);
+ t.exports = r
+ }, {142: 142, 4: 4}],
+ 95: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = "" + e, n = i.exec(t);
+ if (!n) {
+ return t;
+ }
+ var r, o = "", a = 0, s = 0;
+ for (a = n.index; a < t.length; a++) {
+ switch (t.charCodeAt(a)) {
+ case 34:
+ r = """;
+ break;
+ case 38:
+ r = "&";
+ break;
+ case 39:
+ r = "'";
+ break;
+ case 60:
+ r = "<";
+ break;
+ case 62:
+ r = ">";
+ break;
+ default:
+ continue
+ }
+ s !== a && (o += t.substring(s, a)), s = a + 1, o += r
+ }
+ return s !== a ? o + t.substring(s, a) : o
+ }
+
+ function o(e) {
+ return "boolean" == typeof e || "number" == typeof e ? "" + e : r(e)
+ }
+
+ var i = /["'&<>]/;
+ t.exports = o
+ }, {}],
+ 96: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ if (null == e) {
+ return null;
+ }
+ if (1 === e.nodeType) {
+ return e;
+ }
+ var t = a.get(e);
+ if (t) {
+ return t = s(t), t ? i.getNodeFromInstance(t) : null;
+ }
+ "function" == typeof e.render ? o("44") : o("45", Object.keys(e))
+ }
+
+ var o = e(112), i = (e(119), e(33)), a = e(57), s = e(103);
+ e(137), e(142);
+ t.exports = r
+ }, {103: 103, 112: 112, 119: 119, 137: 137, 142: 142, 33: 33, 57: 57}],
+ 97: [function (e, t, n) {
+ (function (n) {
+ "use strict";
+
+ function r(e, t, n, r) {
+ if (e && "object" == typeof e) {
+ var o = e;
+ void 0 === o[n] && null != t && (o[n] = t)
+ }
+ }
+
+ function o(e, t) {
+ if (null == e) {
+ return e;
+ }
+ var n = {};
+ return i(e, r, n), n
+ }
+
+ var i = (e(22), e(117));
+ e(142);
+ void 0 !== n && n.env, t.exports = o
+ }).call(this, void 0)
+ }, {117: 117, 142: 142, 22: 22}],
+ 98: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t, n) {
+ Array.isArray(e) ? e.forEach(t, n) : e && t.call(n, e)
+ }
+
+ t.exports = r
+ }, {}],
+ 99: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t, n = e.keyCode;
+ return "charCode" in e ? 0 === (t = e.charCode) && 13 === n && (t = 13) : t = n, t >= 32
+ || 13 === t ? t : 0
+ }
+
+ t.exports = r
+ }, {}],
+ 100: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ if (e.key) {
+ var t = i[e.key] || e.key;
+ if ("Unidentified" !== t) {
+ return t
+ }
+ }
+ if ("keypress" === e.type) {
+ var n = o(e);
+ return 13 === n ? "Enter" : String.fromCharCode(n)
+ }
+ return "keydown" === e.type || "keyup" === e.type ? a[e.keyCode] || "Unidentified" : ""
+ }
+
+ var o = e(99), i = {
+ Esc: "Escape",
+ Spacebar: " ",
+ Left: "ArrowLeft",
+ Up: "ArrowUp",
+ Right: "ArrowRight",
+ Down: "ArrowDown",
+ Del: "Delete",
+ Win: "OS",
+ Menu: "ContextMenu",
+ Apps: "ContextMenu",
+ Scroll: "ScrollLock",
+ MozPrintableKey: "Unidentified"
+ }, a = {
+ 8: "Backspace",
+ 9: "Tab",
+ 12: "Clear",
+ 13: "Enter",
+ 16: "Shift",
+ 17: "Control",
+ 18: "Alt",
+ 19: "Pause",
+ 20: "CapsLock",
+ 27: "Escape",
+ 32: " ",
+ 33: "PageUp",
+ 34: "PageDown",
+ 35: "End",
+ 36: "Home",
+ 37: "ArrowLeft",
+ 38: "ArrowUp",
+ 39: "ArrowRight",
+ 40: "ArrowDown",
+ 45: "Insert",
+ 46: "Delete",
+ 112: "F1",
+ 113: "F2",
+ 114: "F3",
+ 115: "F4",
+ 116: "F5",
+ 117: "F6",
+ 118: "F7",
+ 119: "F8",
+ 120: "F9",
+ 121: "F10",
+ 122: "F11",
+ 123: "F12",
+ 144: "NumLock",
+ 145: "ScrollLock",
+ 224: "Meta"
+ };
+ t.exports = r
+ }, {99: 99}],
+ 101: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = this, n = t.nativeEvent;
+ if (n.getModifierState) {
+ return n.getModifierState(e);
+ }
+ var r = i[e];
+ return !!r && !!n[r]
+ }
+
+ function o(e) {
+ return r
+ }
+
+ var i = {Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey"};
+ t.exports = o
+ }, {}],
+ 102: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = e.target || e.srcElement || window;
+ return t.correspondingUseElement && (t = t.correspondingUseElement), 3 === t.nodeType
+ ? t.parentNode : t
+ }
+
+ t.exports = r
+ }, {}],
+ 103: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ for (var t; (t = e._renderedNodeType) === o.COMPOSITE;) {
+ e = e._renderedComponent;
+ }
+ return t === o.HOST ? e._renderedComponent : t === o.EMPTY ? null : void 0
+ }
+
+ var o = e(62);
+ t.exports = r
+ }, {62: 62}],
+ 104: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = e && (o && e[o] || e[i]);
+ if ("function" == typeof t) {
+ return t
+ }
+ }
+
+ var o = "function" == typeof Symbol && Symbol.iterator, i = "@@iterator";
+ t.exports = r
+ }, {}],
+ 105: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ for (; e && e.firstChild;) {
+ e = e.firstChild;
+ }
+ return e
+ }
+
+ function o(e) {
+ for (; e;) {
+ if (e.nextSibling) {
+ return e.nextSibling;
+ }
+ e = e.parentNode
+ }
+ }
+
+ function i(e, t) {
+ for (var n = r(e), i = 0, a = 0; n;) {
+ if (3 === n.nodeType) {
+ if (a = i + n.textContent.length, i <= t && a >= t) {
+ return {node: n, offset: t - i};
+ }
+ i = a
+ }
+ n = r(o(n))
+ }
+ }
+
+ t.exports = i
+ }, {}],
+ 106: [function (e, t, n) {
+ "use strict";
+
+ function r() {
+ return !i && o.canUseDOM && (i = "textContent" in document.documentElement
+ ? "textContent" : "innerText"), i
+ }
+
+ var o = e(123), i = null;
+ t.exports = r
+ }, {123: 123}],
+ 107: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ var n = {};
+ return n[e.toLowerCase()] = t.toLowerCase(), n["Webkit" + e] = "webkit" + t, n["Moz"
+ + e] = "moz" + t, n["ms" + e] = "MS" + t, n["O" + e] = "o" + t.toLowerCase(), n
+ }
+
+ function o(e) {
+ if (s[e]) {
+ return s[e];
+ }
+ if (!a[e]) {
+ return e;
+ }
+ var t = a[e];
+ for (var n in t) {
+ if (t.hasOwnProperty(n) && n in u) {
+ return s[e] = t[n];
+ }
+ }
+ return ""
+ }
+
+ var i = e(123), a = {
+ animationend: r("Animation", "AnimationEnd"),
+ animationiteration: r("Animation", "AnimationIteration"),
+ animationstart: r("Animation", "AnimationStart"),
+ transitionend: r("Transition", "TransitionEnd")
+ }, s = {}, u = {};
+ i.canUseDOM && (u = document.createElement("div").style, "AnimationEvent" in window
+ || (delete a.animationend.animation, delete a.animationiteration.animation, delete a.animationstart.animation), "TransitionEvent"
+ in window || delete a.transitionend.transition), t.exports = o
+ }, {123: 123}],
+ 108: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ if (e) {
+ var t = e.getName();
+ if (t) {
+ return " Check the render method of `" + t + "`."
+ }
+ }
+ return ""
+ }
+
+ function o(e) {
+ return "function" == typeof e && void 0 !== e.prototype && "function"
+ == typeof e.prototype.mountComponent && "function"
+ == typeof e.prototype.receiveComponent
+ }
+
+ function i(e, t) {
+ var n;
+ if (null === e || !1 === e) {
+ n = l.create(i);
+ } else if ("object" == typeof e) {
+ var s = e, u = s.type;
+ if ("function" != typeof u && "string" != typeof u) {
+ var d = "";
+ d += r(s._owner), a("130", null == u ? u : typeof u, d)
+ }
+ "string" == typeof s.type ? n = c.createInternalComponent(s) : o(s.type)
+ ? (n = new s.type(s), n.getHostNode || (n.getHostNode = n.getNativeNode))
+ : n = new p(s)
+ } else {
+ "string" == typeof e || "number" == typeof e ? n = c.createInstanceForText(e)
+ : a("131", typeof e);
+ }
+ return n._mountIndex = 0, n._mountImage = null, n
+ }
+
+ var a = e(112), s = e(143), u = e(29), l = e(49), c = e(54),
+ p = (e(121), e(137), e(142), function (e) {
+ this.construct(e)
+ });
+ s(p.prototype, u, {_instantiateReactComponent: i}), t.exports = i
+ }, {112: 112, 121: 121, 137: 137, 142: 142, 143: 143, 29: 29, 49: 49, 54: 54}],
+ 109: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ if (!i.canUseDOM || t && !("addEventListener" in document)) {
+ return !1;
+ }
+ var n = "on" + e, r = n in document;
+ if (!r) {
+ var a = document.createElement("div");
+ a.setAttribute(n, "return;"), r = "function" == typeof a[n]
+ }
+ return !r && o && "wheel" === e && (r = document.implementation.hasFeature(
+ "Events.wheel", "3.0")), r
+ }
+
+ var o, i = e(123);
+ i.canUseDOM && (o = document.implementation && document.implementation.hasFeature && !0
+ !== document.implementation.hasFeature("", "")), t.exports = r
+ }, {123: 123}],
+ 110: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = e && e.nodeName && e.nodeName.toLowerCase();
+ return "input" === t ? !!o[e.type] : "textarea" === t
+ }
+
+ var o = {
+ color: !0,
+ date: !0,
+ datetime: !0,
+ "datetime-local": !0,
+ email: !0,
+ month: !0,
+ number: !0,
+ password: !0,
+ range: !0,
+ search: !0,
+ tel: !0,
+ text: !0,
+ time: !0,
+ url: !0,
+ week: !0
+ };
+ t.exports = r
+ }, {}],
+ 111: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return '"' + o(e) + '"'
+ }
+
+ var o = e(95);
+ t.exports = r
+ }, {95: 95}],
+ 112: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ for (var t = arguments.length - 1, n = "Minified React error #" + e
+ + "; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=" + e,
+ r = 0; r < t; r++) {
+ n += "&args[]=" + encodeURIComponent(arguments[r + 1]);
+ }
+ n += " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
+ var o = new Error(n);
+ throw o.name = "Invariant Violation", o.framesToPop = 1, o
+ }
+
+ t.exports = r
+ }, {}],
+ 113: [function (e, t, n) {
+ "use strict";
+ var r = e(60);
+ t.exports = r.renderSubtreeIntoContainer
+ }, {60: 60}],
+ 114: [function (e, t, n) {
+ "use strict";
+ var r, o = e(123), i = e(10), a = /^[ \r\n\t\f]/,
+ s = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/, u = e(93),
+ l = u(function (e, t) {
+ if (e.namespaceURI !== i.svg || "innerHTML" in e) {
+ e.innerHTML = t;
+ } else {
+ r = r || document.createElement("div"), r.innerHTML = "";
+ for (var n = r.firstChild; n.firstChild;) {
+ e.appendChild(n.firstChild)
+ }
+ }
+ });
+ if (o.canUseDOM) {
+ var c = document.createElement("div");
+ c.innerHTML = " ", "" === c.innerHTML && (l = function (e, t) {
+ if (e.parentNode && e.parentNode.replaceChild(e, e), a.test(t) || "<" === t[0]
+ && s.test(t)) {
+ e.innerHTML = String.fromCharCode(65279) + t;
+ var n = e.firstChild;
+ 1 === n.data.length ? e.removeChild(n) : n.deleteData(0, 1)
+ } else {
+ e.innerHTML = t
+ }
+ }), c = null
+ }
+ t.exports = l
+ }, {10: 10, 123: 123, 93: 93}],
+ 115: [function (e, t, n) {
+ "use strict";
+ var r = e(123), o = e(95), i = e(114), a = function (e, t) {
+ if (t) {
+ var n = e.firstChild;
+ if (n && n === e.lastChild && 3 === n.nodeType) {
+ return void (n.nodeValue = t)
+ }
+ }
+ e.textContent = t
+ };
+ r.canUseDOM && ("textContent" in document.documentElement || (a = function (e, t) {
+ if (3 === e.nodeType) {
+ return void (e.nodeValue = t);
+ }
+ i(e, o(t))
+ })), t.exports = a
+ }, {114: 114, 123: 123, 95: 95}],
+ 116: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ var n = null === e || !1 === e, r = null === t || !1 === t;
+ if (n || r) {
+ return n === r;
+ }
+ var o = typeof e, i = typeof t;
+ return "string" === o || "number" === o ? "string" === i || "number" === i : "object"
+ === i && e.type === t.type && e.key === t.key
+ }
+
+ t.exports = r
+ }, {}],
+ 117: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ return e && "object" == typeof e && null != e.key ? l.escape(e.key) : t.toString(36)
+ }
+
+ function o(e, t, n, i) {
+ var d = typeof e;
+ if ("undefined" !== d && "boolean" !== d || (e = null), null === e || "string" === d
+ || "number" === d || "object" === d && e.$$typeof === s) {
+ return n(i, e,
+ "" === t ? c + r(e, 0) : t), 1;
+ }
+ var f, h, m = 0, v = "" === t ? c : t + p;
+ if (Array.isArray(e)) {
+ for (var g = 0; g < e.length; g++) {
+ f = e[g], h = v + r(f,
+ g), m += o(f, h, n, i);
+ }
+ } else {
+ var y = u(e);
+ if (y) {
+ var _, C = y.call(e);
+ if (y !== e.entries) {
+ for (var b = 0; !(_ = C.next()).done;) {
+ f = _.value, h = v + r(
+ f, b++), m += o(f, h, n, i);
+ }
+ } else {
+ for (; !(_ = C.next()).done;) {
+ var E = _.value;
+ E && (f = E[1], h = v + l.escape(E[0]) + p + r(f, 0), m += o(f, h, n, i))
+ }
+ }
+ } else if ("object" === d) {
+ var x = String(e);
+ a("31",
+ "[object Object]" === x ? "object with keys {" + Object.keys(e).join(", ") + "}"
+ : x, "")
+ }
+ }
+ return m
+ }
+
+ function i(e, t, n) {
+ return null == e ? 0 : o(e, "", t, n)
+ }
+
+ var a = e(112), s = (e(119), e(48)), u = e(104), l = (e(137), e(22)), c = (e(142), "."),
+ p = ":";
+ t.exports = i
+ }, {104: 104, 112: 112, 119: 119, 137: 137, 142: 142, 22: 22, 48: 48}],
+ 118: [function (e, t, n) {
+ "use strict";
+ var r = (e(143), e(129)), o = (e(142), r);
+ t.exports = o
+ }, {129: 129, 142: 142, 143: 143}],
+ 119: [function (t, n, r) {
+ "use strict";
+ var o = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
+ n.exports = o.ReactCurrentOwner
+ }, {}],
+ 120: [function (t, n, r) {
+ "use strict";
+ n.exports = e
+ }, {}],
+ 121: [function (t, n, r) {
+ "use strict";
+ var o = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
+ n.exports = o.getNextDebugID
+ }, {}],
+ 122: [function (e, t, n) {
+ "use strict";
+ var r = e(129), o = {
+ listen: function (e, t, n) {
+ return e.addEventListener ? (e.addEventListener(t, n, !1), {
+ remove: function () {
+ e.removeEventListener(t, n, !1)
+ }
+ }) : e.attachEvent ? (e.attachEvent("on" + t, n), {
+ remove: function () {
+ e.detachEvent("on" + t, n)
+ }
+ }) : void 0
+ }, capture: function (e, t, n) {
+ return e.addEventListener ? (e.addEventListener(t, n, !0), {
+ remove: function () {
+ e.removeEventListener(t, n, !0)
+ }
+ }) : {remove: r}
+ }, registerDefault: function () {
+ }
+ };
+ t.exports = o
+ }, {129: 129}],
+ 123: [function (e, t, n) {
+ "use strict";
+ var r = !("undefined" == typeof window || !window.document
+ || !window.document.createElement), o = {
+ canUseDOM: r,
+ canUseWorkers: "undefined" != typeof Worker,
+ canUseEventListeners: r && !(!window.addEventListener && !window.attachEvent),
+ canUseViewport: r && !!window.screen,
+ isInWorker: !r
+ };
+ t.exports = o
+ }, {}],
+ 124: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return e.replace(o, function (e, t) {
+ return t.toUpperCase()
+ })
+ }
+
+ var o = /-(.)/g;
+ t.exports = r
+ }, {}],
+ 125: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return o(e.replace(i, "ms-"))
+ }
+
+ var o = e(124), i = /^-ms-/;
+ t.exports = r
+ }, {124: 124}],
+ 126: [function (e, t, n) {
+ "use strict";
+
+ function r(e, t) {
+ return !(!e || !t) && (e === t || !o(e) && (o(t) ? r(e, t.parentNode) : "contains" in e
+ ? e.contains(t) : !!e.compareDocumentPosition && !!(16 & e.compareDocumentPosition(
+ t))))
+ }
+
+ var o = e(139);
+ t.exports = r
+ }, {139: 139}],
+ 127: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = e.length;
+ if ((Array.isArray(e) || "object" != typeof e && "function" != typeof e) && a(
+ !1), "number" != typeof t && a(!1), 0 === t || t - 1 in e || a(!1), "function"
+ == typeof e.callee && a(!1), e.hasOwnProperty) {
+ try {
+ return Array.prototype.slice.call(e)
+ } catch (e) {
+ }
+ }
+ for (var n = Array(t), r = 0; r < t; r++) {
+ n[r] = e[r];
+ }
+ return n
+ }
+
+ function o(e) {
+ return !!e && ("object" == typeof e || "function" == typeof e) && "length" in e
+ && !("setInterval" in e) && "number" != typeof e.nodeType && (Array.isArray(e)
+ || "callee" in e || "item" in e)
+ }
+
+ function i(e) {
+ return o(e) ? Array.isArray(e) ? e.slice() : r(e) : [e]
+ }
+
+ var a = e(137);
+ t.exports = i
+ }, {137: 137}],
+ 128: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ var t = e.match(c);
+ return t && t[1].toLowerCase()
+ }
+
+ function o(e, t) {
+ var n = l;
+ l || u(!1);
+ var o = r(e), i = o && s(o);
+ if (i) {
+ n.innerHTML = i[1] + e + i[2];
+ for (var c = i[0]; c--;) {
+ n = n.lastChild
+ }
+ } else {
+ n.innerHTML = e;
+ }
+ var p = n.getElementsByTagName("script");
+ p.length && (t || u(!1), a(p).forEach(t));
+ for (var d = Array.from(n.childNodes); n.lastChild;) {
+ n.removeChild(n.lastChild);
+ }
+ return d
+ }
+
+ var i = e(123), a = e(127), s = e(133), u = e(137),
+ l = i.canUseDOM ? document.createElement("div") : null, c = /^\s*<(\w+)/;
+ t.exports = o
+ }, {123: 123, 127: 127, 133: 133, 137: 137}],
+ 129: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return function () {
+ return e
+ }
+ }
+
+ var o = function () {
+ };
+ o.thatReturns = r, o.thatReturnsFalse = r(!1), o.thatReturnsTrue = r(
+ !0), o.thatReturnsNull = r(null), o.thatReturnsThis = function () {
+ return this
+ }, o.thatReturnsArgument = function (e) {
+ return e
+ }, t.exports = o
+ }, {}],
+ 130: [function (e, t, n) {
+ "use strict";
+ var r = {};
+ t.exports = r
+ }, {}],
+ 131: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ try {
+ e.focus()
+ } catch (e) {
+ }
+ }
+
+ t.exports = r
+ }, {}],
+ 132: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ if (void 0 === (e = e || ("undefined" != typeof document ? document
+ : void 0))) {
+ return null;
+ }
+ try {
+ return e.activeElement || e.body
+ } catch (t) {
+ return e.body
+ }
+ }
+
+ t.exports = r
+ }, {}],
+ 133: [function (e, t, n) {
+ "use strict";
+
+ function r(e) {
+ return a || i(!1), d.hasOwnProperty(e) || (e = "*"), s.hasOwnProperty(e)
+ || (a.innerHTML = "*" === e ? "" : "<" + e + ">" + e
+ + ">", s[e] = !a.firstChild), s[e] ? d[e] : null
+ }
+
+ var o = e(123), i = e(137), a = o.canUseDOM ? document.createElement("div") : null,
+ s = {}, u = [1, '"],
+ l = [1, "