Revive Old Posts – Auto Post to Social Media - Version 8.0.5

Version Description

  • 2018-05-04
Download this release

Release Info

Developer codeinwp
Plugin Icon 128x128 Revive Old Posts – Auto Post to Social Media
Version 8.0.5
Comparing to
See all releases

Code changes from version 8.0.4 to 8.0.5

Files changed (2) hide show
  1. CHANGELOG.md +13 -0
  2. assets/js/build/dashboard.js +32919 -0
CHANGELOG.md CHANGED
@@ -1,4 +1,17 @@
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  ### v8.0.4 - 2018-05-02
3
  **Changes:**
4
  * Fix issue with UTM tags and shortner consistency.
1
 
2
+ ### v8.0.5 - 2018-05-04
3
+ **Changes:**
4
+ * Fix issue with common hashtags using post content.
5
+ * Fix issue with add service when an account was removed from the list.
6
+ * Fix issue with cron lag between shares
7
+ * Improve disable state for pro services.
8
+ * Fix exclude posts inconsistency.
9
+ * Fix incomplete UTM tags on certain shortners.
10
+ * Fix refresh queue on start sharing.
11
+ * Fix freezing message in frontend when the sharing is happening.
12
+ * Fix Facebook limits regarding the number of accounts fetched.
13
+ * Fix compatibility with PRO version regarding sharing on LinkedIn.
14
+
15
  ### v8.0.4 - 2018-05-02
16
  **Changes:**
17
  * Fix issue with UTM tags and shortner consistency.
assets/js/build/dashboard.js ADDED
@@ -0,0 +1,39336 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, {
40
+ /******/ configurable: false,
41
+ /******/ enumerable: true,
42
+ /******/ get: getter
43
+ /******/ });
44
+ /******/ }
45
+ /******/ };
46
+ /******/
47
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
48
+ /******/ __webpack_require__.n = function(module) {
49
+ /******/ var getter = module && module.__esModule ?
50
+ /******/ function getDefault() { return module['default']; } :
51
+ /******/ function getModuleExports() { return module; };
52
+ /******/ __webpack_require__.d(getter, 'a', getter);
53
+ /******/ return getter;
54
+ /******/ };
55
+ /******/
56
+ /******/ // Object.prototype.hasOwnProperty.call
57
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58
+ /******/
59
+ /******/ // __webpack_public_path__
60
+ /******/ __webpack_require__.p = "/";
61
+ /******/
62
+ /******/ // Load entry module and return exports
63
+ /******/ return __webpack_require__(__webpack_require__.s = 202);
64
+ /******/ })
65
+ /************************************************************************/
66
+ /******/ ([
67
+ /* 0 */
68
+ /***/ (function(module, exports, __webpack_require__) {
69
+
70
+ /* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js
71
+
72
+ ;(function (global, factory) {
73
+ true ? module.exports = factory() :
74
+ typeof define === 'function' && define.amd ? define(factory) :
75
+ global.moment = factory()
76
+ }(this, (function () { 'use strict';
77
+
78
+ var hookCallback;
79
+
80
+ function hooks () {
81
+ return hookCallback.apply(null, arguments);
82
+ }
83
+
84
+ // This is done to register the method called with moment()
85
+ // without creating circular dependencies.
86
+ function setHookCallback (callback) {
87
+ hookCallback = callback;
88
+ }
89
+
90
+ function isArray(input) {
91
+ return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
92
+ }
93
+
94
+ function isObject(input) {
95
+ // IE8 will treat undefined and null as object if it wasn't for
96
+ // input != null
97
+ return input != null && Object.prototype.toString.call(input) === '[object Object]';
98
+ }
99
+
100
+ function isObjectEmpty(obj) {
101
+ if (Object.getOwnPropertyNames) {
102
+ return (Object.getOwnPropertyNames(obj).length === 0);
103
+ } else {
104
+ var k;
105
+ for (k in obj) {
106
+ if (obj.hasOwnProperty(k)) {
107
+ return false;
108
+ }
109
+ }
110
+ return true;
111
+ }
112
+ }
113
+
114
+ function isUndefined(input) {
115
+ return input === void 0;
116
+ }
117
+
118
+ function isNumber(input) {
119
+ return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
120
+ }
121
+
122
+ function isDate(input) {
123
+ return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
124
+ }
125
+
126
+ function map(arr, fn) {
127
+ var res = [], i;
128
+ for (i = 0; i < arr.length; ++i) {
129
+ res.push(fn(arr[i], i));
130
+ }
131
+ return res;
132
+ }
133
+
134
+ function hasOwnProp(a, b) {
135
+ return Object.prototype.hasOwnProperty.call(a, b);
136
+ }
137
+
138
+ function extend(a, b) {
139
+ for (var i in b) {
140
+ if (hasOwnProp(b, i)) {
141
+ a[i] = b[i];
142
+ }
143
+ }
144
+
145
+ if (hasOwnProp(b, 'toString')) {
146
+ a.toString = b.toString;
147
+ }
148
+
149
+ if (hasOwnProp(b, 'valueOf')) {
150
+ a.valueOf = b.valueOf;
151
+ }
152
+
153
+ return a;
154
+ }
155
+
156
+ function createUTC (input, format, locale, strict) {
157
+ return createLocalOrUTC(input, format, locale, strict, true).utc();
158
+ }
159
+
160
+ function defaultParsingFlags() {
161
+ // We need to deep clone this object.
162
+ return {
163
+ empty : false,
164
+ unusedTokens : [],
165
+ unusedInput : [],
166
+ overflow : -2,
167
+ charsLeftOver : 0,
168
+ nullInput : false,
169
+ invalidMonth : null,
170
+ invalidFormat : false,
171
+ userInvalidated : false,
172
+ iso : false,
173
+ parsedDateParts : [],
174
+ meridiem : null,
175
+ rfc2822 : false,
176
+ weekdayMismatch : false
177
+ };
178
+ }
179
+
180
+ function getParsingFlags(m) {
181
+ if (m._pf == null) {
182
+ m._pf = defaultParsingFlags();
183
+ }
184
+ return m._pf;
185
+ }
186
+
187
+ var some;
188
+ if (Array.prototype.some) {
189
+ some = Array.prototype.some;
190
+ } else {
191
+ some = function (fun) {
192
+ var t = Object(this);
193
+ var len = t.length >>> 0;
194
+
195
+ for (var i = 0; i < len; i++) {
196
+ if (i in t && fun.call(this, t[i], i, t)) {
197
+ return true;
198
+ }
199
+ }
200
+
201
+ return false;
202
+ };
203
+ }
204
+
205
+ function isValid(m) {
206
+ if (m._isValid == null) {
207
+ var flags = getParsingFlags(m);
208
+ var parsedParts = some.call(flags.parsedDateParts, function (i) {
209
+ return i != null;
210
+ });
211
+ var isNowValid = !isNaN(m._d.getTime()) &&
212
+ flags.overflow < 0 &&
213
+ !flags.empty &&
214
+ !flags.invalidMonth &&
215
+ !flags.invalidWeekday &&
216
+ !flags.weekdayMismatch &&
217
+ !flags.nullInput &&
218
+ !flags.invalidFormat &&
219
+ !flags.userInvalidated &&
220
+ (!flags.meridiem || (flags.meridiem && parsedParts));
221
+
222
+ if (m._strict) {
223
+ isNowValid = isNowValid &&
224
+ flags.charsLeftOver === 0 &&
225
+ flags.unusedTokens.length === 0 &&
226
+ flags.bigHour === undefined;
227
+ }
228
+
229
+ if (Object.isFrozen == null || !Object.isFrozen(m)) {
230
+ m._isValid = isNowValid;
231
+ }
232
+ else {
233
+ return isNowValid;
234
+ }
235
+ }
236
+ return m._isValid;
237
+ }
238
+
239
+ function createInvalid (flags) {
240
+ var m = createUTC(NaN);
241
+ if (flags != null) {
242
+ extend(getParsingFlags(m), flags);
243
+ }
244
+ else {
245
+ getParsingFlags(m).userInvalidated = true;
246
+ }
247
+
248
+ return m;
249
+ }
250
+
251
+ // Plugins that add properties should also add the key here (null value),
252
+ // so we can properly clone ourselves.
253
+ var momentProperties = hooks.momentProperties = [];
254
+
255
+ function copyConfig(to, from) {
256
+ var i, prop, val;
257
+
258
+ if (!isUndefined(from._isAMomentObject)) {
259
+ to._isAMomentObject = from._isAMomentObject;
260
+ }
261
+ if (!isUndefined(from._i)) {
262
+ to._i = from._i;
263
+ }
264
+ if (!isUndefined(from._f)) {
265
+ to._f = from._f;
266
+ }
267
+ if (!isUndefined(from._l)) {
268
+ to._l = from._l;
269
+ }
270
+ if (!isUndefined(from._strict)) {
271
+ to._strict = from._strict;
272
+ }
273
+ if (!isUndefined(from._tzm)) {
274
+ to._tzm = from._tzm;
275
+ }
276
+ if (!isUndefined(from._isUTC)) {
277
+ to._isUTC = from._isUTC;
278
+ }
279
+ if (!isUndefined(from._offset)) {
280
+ to._offset = from._offset;
281
+ }
282
+ if (!isUndefined(from._pf)) {
283
+ to._pf = getParsingFlags(from);
284
+ }
285
+ if (!isUndefined(from._locale)) {
286
+ to._locale = from._locale;
287
+ }
288
+
289
+ if (momentProperties.length > 0) {
290
+ for (i = 0; i < momentProperties.length; i++) {
291
+ prop = momentProperties[i];
292
+ val = from[prop];
293
+ if (!isUndefined(val)) {
294
+ to[prop] = val;
295
+ }
296
+ }
297
+ }
298
+
299
+ return to;
300
+ }
301
+
302
+ var updateInProgress = false;
303
+
304
+ // Moment prototype object
305
+ function Moment(config) {
306
+ copyConfig(this, config);
307
+ this._d = new Date(config._d != null ? config._d.getTime() : NaN);
308
+ if (!this.isValid()) {
309
+ this._d = new Date(NaN);
310
+ }
311
+ // Prevent infinite loop in case updateOffset creates new moment
312
+ // objects.
313
+ if (updateInProgress === false) {
314
+ updateInProgress = true;
315
+ hooks.updateOffset(this);
316
+ updateInProgress = false;
317
+ }
318
+ }
319
+
320
+ function isMoment (obj) {
321
+ return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
322
+ }
323
+
324
+ function absFloor (number) {
325
+ if (number < 0) {
326
+ // -0 -> 0
327
+ return Math.ceil(number) || 0;
328
+ } else {
329
+ return Math.floor(number);
330
+ }
331
+ }
332
+
333
+ function toInt(argumentForCoercion) {
334
+ var coercedNumber = +argumentForCoercion,
335
+ value = 0;
336
+
337
+ if (coercedNumber !== 0 && isFinite(coercedNumber)) {
338
+ value = absFloor(coercedNumber);
339
+ }
340
+
341
+ return value;
342
+ }
343
+
344
+ // compare two arrays, return the number of differences
345
+ function compareArrays(array1, array2, dontConvert) {
346
+ var len = Math.min(array1.length, array2.length),
347
+ lengthDiff = Math.abs(array1.length - array2.length),
348
+ diffs = 0,
349
+ i;
350
+ for (i = 0; i < len; i++) {
351
+ if ((dontConvert && array1[i] !== array2[i]) ||
352
+ (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
353
+ diffs++;
354
+ }
355
+ }
356
+ return diffs + lengthDiff;
357
+ }
358
+
359
+ function warn(msg) {
360
+ if (hooks.suppressDeprecationWarnings === false &&
361
+ (typeof console !== 'undefined') && console.warn) {
362
+ console.warn('Deprecation warning: ' + msg);
363
+ }
364
+ }
365
+
366
+ function deprecate(msg, fn) {
367
+ var firstTime = true;
368
+
369
+ return extend(function () {
370
+ if (hooks.deprecationHandler != null) {
371
+ hooks.deprecationHandler(null, msg);
372
+ }
373
+ if (firstTime) {
374
+ var args = [];
375
+ var arg;
376
+ for (var i = 0; i < arguments.length; i++) {
377
+ arg = '';
378
+ if (typeof arguments[i] === 'object') {
379
+ arg += '\n[' + i + '] ';
380
+ for (var key in arguments[0]) {
381
+ arg += key + ': ' + arguments[0][key] + ', ';
382
+ }
383
+ arg = arg.slice(0, -2); // Remove trailing comma and space
384
+ } else {
385
+ arg = arguments[i];
386
+ }
387
+ args.push(arg);
388
+ }
389
+ warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
390
+ firstTime = false;
391
+ }
392
+ return fn.apply(this, arguments);
393
+ }, fn);
394
+ }
395
+
396
+ var deprecations = {};
397
+
398
+ function deprecateSimple(name, msg) {
399
+ if (hooks.deprecationHandler != null) {
400
+ hooks.deprecationHandler(name, msg);
401
+ }
402
+ if (!deprecations[name]) {
403
+ warn(msg);
404
+ deprecations[name] = true;
405
+ }
406
+ }
407
+
408
+ hooks.suppressDeprecationWarnings = false;
409
+ hooks.deprecationHandler = null;
410
+
411
+ function isFunction(input) {
412
+ return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
413
+ }
414
+
415
+ function set (config) {
416
+ var prop, i;
417
+ for (i in config) {
418
+ prop = config[i];
419
+ if (isFunction(prop)) {
420
+ this[i] = prop;
421
+ } else {
422
+ this['_' + i] = prop;
423
+ }
424
+ }
425
+ this._config = config;
426
+ // Lenient ordinal parsing accepts just a number in addition to
427
+ // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
428
+ // TODO: Remove "ordinalParse" fallback in next major release.
429
+ this._dayOfMonthOrdinalParseLenient = new RegExp(
430
+ (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
431
+ '|' + (/\d{1,2}/).source);
432
+ }
433
+
434
+ function mergeConfigs(parentConfig, childConfig) {
435
+ var res = extend({}, parentConfig), prop;
436
+ for (prop in childConfig) {
437
+ if (hasOwnProp(childConfig, prop)) {
438
+ if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
439
+ res[prop] = {};
440
+ extend(res[prop], parentConfig[prop]);
441
+ extend(res[prop], childConfig[prop]);
442
+ } else if (childConfig[prop] != null) {
443
+ res[prop] = childConfig[prop];
444
+ } else {
445
+ delete res[prop];
446
+ }
447
+ }
448
+ }
449
+ for (prop in parentConfig) {
450
+ if (hasOwnProp(parentConfig, prop) &&
451
+ !hasOwnProp(childConfig, prop) &&
452
+ isObject(parentConfig[prop])) {
453
+ // make sure changes to properties don't modify parent config
454
+ res[prop] = extend({}, res[prop]);
455
+ }
456
+ }
457
+ return res;
458
+ }
459
+
460
+ function Locale(config) {
461
+ if (config != null) {
462
+ this.set(config);
463
+ }
464
+ }
465
+
466
+ var keys;
467
+
468
+ if (Object.keys) {
469
+ keys = Object.keys;
470
+ } else {
471
+ keys = function (obj) {
472
+ var i, res = [];
473
+ for (i in obj) {
474
+ if (hasOwnProp(obj, i)) {
475
+ res.push(i);
476
+ }
477
+ }
478
+ return res;
479
+ };
480
+ }
481
+
482
+ var defaultCalendar = {
483
+ sameDay : '[Today at] LT',
484
+ nextDay : '[Tomorrow at] LT',
485
+ nextWeek : 'dddd [at] LT',
486
+ lastDay : '[Yesterday at] LT',
487
+ lastWeek : '[Last] dddd [at] LT',
488
+ sameElse : 'L'
489
+ };
490
+
491
+ function calendar (key, mom, now) {
492
+ var output = this._calendar[key] || this._calendar['sameElse'];
493
+ return isFunction(output) ? output.call(mom, now) : output;
494
+ }
495
+
496
+ var defaultLongDateFormat = {
497
+ LTS : 'h:mm:ss A',
498
+ LT : 'h:mm A',
499
+ L : 'MM/DD/YYYY',
500
+ LL : 'MMMM D, YYYY',
501
+ LLL : 'MMMM D, YYYY h:mm A',
502
+ LLLL : 'dddd, MMMM D, YYYY h:mm A'
503
+ };
504
+
505
+ function longDateFormat (key) {
506
+ var format = this._longDateFormat[key],
507
+ formatUpper = this._longDateFormat[key.toUpperCase()];
508
+
509
+ if (format || !formatUpper) {
510
+ return format;
511
+ }
512
+
513
+ this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
514
+ return val.slice(1);
515
+ });
516
+
517
+ return this._longDateFormat[key];
518
+ }
519
+
520
+ var defaultInvalidDate = 'Invalid date';
521
+
522
+ function invalidDate () {
523
+ return this._invalidDate;
524
+ }
525
+
526
+ var defaultOrdinal = '%d';
527
+ var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
528
+
529
+ function ordinal (number) {
530
+ return this._ordinal.replace('%d', number);
531
+ }
532
+
533
+ var defaultRelativeTime = {
534
+ future : 'in %s',
535
+ past : '%s ago',
536
+ s : 'a few seconds',
537
+ ss : '%d seconds',
538
+ m : 'a minute',
539
+ mm : '%d minutes',
540
+ h : 'an hour',
541
+ hh : '%d hours',
542
+ d : 'a day',
543
+ dd : '%d days',
544
+ M : 'a month',
545
+ MM : '%d months',
546
+ y : 'a year',
547
+ yy : '%d years'
548
+ };
549
+
550
+ function relativeTime (number, withoutSuffix, string, isFuture) {
551
+ var output = this._relativeTime[string];
552
+ return (isFunction(output)) ?
553
+ output(number, withoutSuffix, string, isFuture) :
554
+ output.replace(/%d/i, number);
555
+ }
556
+
557
+ function pastFuture (diff, output) {
558
+ var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
559
+ return isFunction(format) ? format(output) : format.replace(/%s/i, output);
560
+ }
561
+
562
+ var aliases = {};
563
+
564
+ function addUnitAlias (unit, shorthand) {
565
+ var lowerCase = unit.toLowerCase();
566
+ aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
567
+ }
568
+
569
+ function normalizeUnits(units) {
570
+ return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
571
+ }
572
+
573
+ function normalizeObjectUnits(inputObject) {
574
+ var normalizedInput = {},
575
+ normalizedProp,
576
+ prop;
577
+
578
+ for (prop in inputObject) {
579
+ if (hasOwnProp(inputObject, prop)) {
580
+ normalizedProp = normalizeUnits(prop);
581
+ if (normalizedProp) {
582
+ normalizedInput[normalizedProp] = inputObject[prop];
583
+ }
584
+ }
585
+ }
586
+
587
+ return normalizedInput;
588
+ }
589
+
590
+ var priorities = {};
591
+
592
+ function addUnitPriority(unit, priority) {
593
+ priorities[unit] = priority;
594
+ }
595
+
596
+ function getPrioritizedUnits(unitsObj) {
597
+ var units = [];
598
+ for (var u in unitsObj) {
599
+ units.push({unit: u, priority: priorities[u]});
600
+ }
601
+ units.sort(function (a, b) {
602
+ return a.priority - b.priority;
603
+ });
604
+ return units;
605
+ }
606
+
607
+ function zeroFill(number, targetLength, forceSign) {
608
+ var absNumber = '' + Math.abs(number),
609
+ zerosToFill = targetLength - absNumber.length,
610
+ sign = number >= 0;
611
+ return (sign ? (forceSign ? '+' : '') : '-') +
612
+ Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
613
+ }
614
+
615
+ var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
616
+
617
+ var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
618
+
619
+ var formatFunctions = {};
620
+
621
+ var formatTokenFunctions = {};
622
+
623
+ // token: 'M'
624
+ // padded: ['MM', 2]
625
+ // ordinal: 'Mo'
626
+ // callback: function () { this.month() + 1 }
627
+ function addFormatToken (token, padded, ordinal, callback) {
628
+ var func = callback;
629
+ if (typeof callback === 'string') {
630
+ func = function () {
631
+ return this[callback]();
632
+ };
633
+ }
634
+ if (token) {
635
+ formatTokenFunctions[token] = func;
636
+ }
637
+ if (padded) {
638
+ formatTokenFunctions[padded[0]] = function () {
639
+ return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
640
+ };
641
+ }
642
+ if (ordinal) {
643
+ formatTokenFunctions[ordinal] = function () {
644
+ return this.localeData().ordinal(func.apply(this, arguments), token);
645
+ };
646
+ }
647
+ }
648
+
649
+ function removeFormattingTokens(input) {
650
+ if (input.match(/\[[\s\S]/)) {
651
+ return input.replace(/^\[|\]$/g, '');
652
+ }
653
+ return input.replace(/\\/g, '');
654
+ }
655
+
656
+ function makeFormatFunction(format) {
657
+ var array = format.match(formattingTokens), i, length;
658
+
659
+ for (i = 0, length = array.length; i < length; i++) {
660
+ if (formatTokenFunctions[array[i]]) {
661
+ array[i] = formatTokenFunctions[array[i]];
662
+ } else {
663
+ array[i] = removeFormattingTokens(array[i]);
664
+ }
665
+ }
666
+
667
+ return function (mom) {
668
+ var output = '', i;
669
+ for (i = 0; i < length; i++) {
670
+ output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
671
+ }
672
+ return output;
673
+ };
674
+ }
675
+
676
+ // format date using native date object
677
+ function formatMoment(m, format) {
678
+ if (!m.isValid()) {
679
+ return m.localeData().invalidDate();
680
+ }
681
+
682
+ format = expandFormat(format, m.localeData());
683
+ formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
684
+
685
+ return formatFunctions[format](m);
686
+ }
687
+
688
+ function expandFormat(format, locale) {
689
+ var i = 5;
690
+
691
+ function replaceLongDateFormatTokens(input) {
692
+ return locale.longDateFormat(input) || input;
693
+ }
694
+
695
+ localFormattingTokens.lastIndex = 0;
696
+ while (i >= 0 && localFormattingTokens.test(format)) {
697
+ format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
698
+ localFormattingTokens.lastIndex = 0;
699
+ i -= 1;
700
+ }
701
+
702
+ return format;
703
+ }
704
+
705
+ var match1 = /\d/; // 0 - 9
706
+ var match2 = /\d\d/; // 00 - 99
707
+ var match3 = /\d{3}/; // 000 - 999
708
+ var match4 = /\d{4}/; // 0000 - 9999
709
+ var match6 = /[+-]?\d{6}/; // -999999 - 999999
710
+ var match1to2 = /\d\d?/; // 0 - 99
711
+ var match3to4 = /\d\d\d\d?/; // 999 - 9999
712
+ var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
713
+ var match1to3 = /\d{1,3}/; // 0 - 999
714
+ var match1to4 = /\d{1,4}/; // 0 - 9999
715
+ var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
716
+
717
+ var matchUnsigned = /\d+/; // 0 - inf
718
+ var matchSigned = /[+-]?\d+/; // -inf - inf
719
+
720
+ var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
721
+ var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
722
+
723
+ var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
724
+
725
+ // any word (or two) characters or numbers including two/three word month in arabic.
726
+ // includes scottish gaelic two word and hyphenated months
727
+ var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
728
+
729
+ var regexes = {};
730
+
731
+ function addRegexToken (token, regex, strictRegex) {
732
+ regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
733
+ return (isStrict && strictRegex) ? strictRegex : regex;
734
+ };
735
+ }
736
+
737
+ function getParseRegexForToken (token, config) {
738
+ if (!hasOwnProp(regexes, token)) {
739
+ return new RegExp(unescapeFormat(token));
740
+ }
741
+
742
+ return regexes[token](config._strict, config._locale);
743
+ }
744
+
745
+ // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
746
+ function unescapeFormat(s) {
747
+ return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
748
+ return p1 || p2 || p3 || p4;
749
+ }));
750
+ }
751
+
752
+ function regexEscape(s) {
753
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
754
+ }
755
+
756
+ var tokens = {};
757
+
758
+ function addParseToken (token, callback) {
759
+ var i, func = callback;
760
+ if (typeof token === 'string') {
761
+ token = [token];
762
+ }
763
+ if (isNumber(callback)) {
764
+ func = function (input, array) {
765
+ array[callback] = toInt(input);
766
+ };
767
+ }
768
+ for (i = 0; i < token.length; i++) {
769
+ tokens[token[i]] = func;
770
+ }
771
+ }
772
+
773
+ function addWeekParseToken (token, callback) {
774
+ addParseToken(token, function (input, array, config, token) {
775
+ config._w = config._w || {};
776
+ callback(input, config._w, config, token);
777
+ });
778
+ }
779
+
780
+ function addTimeToArrayFromToken(token, input, config) {
781
+ if (input != null && hasOwnProp(tokens, token)) {
782
+ tokens[token](input, config._a, config, token);
783
+ }
784
+ }
785
+
786
+ var YEAR = 0;
787
+ var MONTH = 1;
788
+ var DATE = 2;
789
+ var HOUR = 3;
790
+ var MINUTE = 4;
791
+ var SECOND = 5;
792
+ var MILLISECOND = 6;
793
+ var WEEK = 7;
794
+ var WEEKDAY = 8;
795
+
796
+ // FORMATTING
797
+
798
+ addFormatToken('Y', 0, 0, function () {
799
+ var y = this.year();
800
+ return y <= 9999 ? '' + y : '+' + y;
801
+ });
802
+
803
+ addFormatToken(0, ['YY', 2], 0, function () {
804
+ return this.year() % 100;
805
+ });
806
+
807
+ addFormatToken(0, ['YYYY', 4], 0, 'year');
808
+ addFormatToken(0, ['YYYYY', 5], 0, 'year');
809
+ addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
810
+
811
+ // ALIASES
812
+
813
+ addUnitAlias('year', 'y');
814
+
815
+ // PRIORITIES
816
+
817
+ addUnitPriority('year', 1);
818
+
819
+ // PARSING
820
+
821
+ addRegexToken('Y', matchSigned);
822
+ addRegexToken('YY', match1to2, match2);
823
+ addRegexToken('YYYY', match1to4, match4);
824
+ addRegexToken('YYYYY', match1to6, match6);
825
+ addRegexToken('YYYYYY', match1to6, match6);
826
+
827
+ addParseToken(['YYYYY', 'YYYYYY'], YEAR);
828
+ addParseToken('YYYY', function (input, array) {
829
+ array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
830
+ });
831
+ addParseToken('YY', function (input, array) {
832
+ array[YEAR] = hooks.parseTwoDigitYear(input);
833
+ });
834
+ addParseToken('Y', function (input, array) {
835
+ array[YEAR] = parseInt(input, 10);
836
+ });
837
+
838
+ // HELPERS
839
+
840
+ function daysInYear(year) {
841
+ return isLeapYear(year) ? 366 : 365;
842
+ }
843
+
844
+ function isLeapYear(year) {
845
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
846
+ }
847
+
848
+ // HOOKS
849
+
850
+ hooks.parseTwoDigitYear = function (input) {
851
+ return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
852
+ };
853
+
854
+ // MOMENTS
855
+
856
+ var getSetYear = makeGetSet('FullYear', true);
857
+
858
+ function getIsLeapYear () {
859
+ return isLeapYear(this.year());
860
+ }
861
+
862
+ function makeGetSet (unit, keepTime) {
863
+ return function (value) {
864
+ if (value != null) {
865
+ set$1(this, unit, value);
866
+ hooks.updateOffset(this, keepTime);
867
+ return this;
868
+ } else {
869
+ return get(this, unit);
870
+ }
871
+ };
872
+ }
873
+
874
+ function get (mom, unit) {
875
+ return mom.isValid() ?
876
+ mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
877
+ }
878
+
879
+ function set$1 (mom, unit, value) {
880
+ if (mom.isValid() && !isNaN(value)) {
881
+ if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
882
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
883
+ }
884
+ else {
885
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
886
+ }
887
+ }
888
+ }
889
+
890
+ // MOMENTS
891
+
892
+ function stringGet (units) {
893
+ units = normalizeUnits(units);
894
+ if (isFunction(this[units])) {
895
+ return this[units]();
896
+ }
897
+ return this;
898
+ }
899
+
900
+
901
+ function stringSet (units, value) {
902
+ if (typeof units === 'object') {
903
+ units = normalizeObjectUnits(units);
904
+ var prioritized = getPrioritizedUnits(units);
905
+ for (var i = 0; i < prioritized.length; i++) {
906
+ this[prioritized[i].unit](units[prioritized[i].unit]);
907
+ }
908
+ } else {
909
+ units = normalizeUnits(units);
910
+ if (isFunction(this[units])) {
911
+ return this[units](value);
912
+ }
913
+ }
914
+ return this;
915
+ }
916
+
917
+ function mod(n, x) {
918
+ return ((n % x) + x) % x;
919
+ }
920
+
921
+ var indexOf;
922
+
923
+ if (Array.prototype.indexOf) {
924
+ indexOf = Array.prototype.indexOf;
925
+ } else {
926
+ indexOf = function (o) {
927
+ // I know
928
+ var i;
929
+ for (i = 0; i < this.length; ++i) {
930
+ if (this[i] === o) {
931
+ return i;
932
+ }
933
+ }
934
+ return -1;
935
+ };
936
+ }
937
+
938
+ function daysInMonth(year, month) {
939
+ if (isNaN(year) || isNaN(month)) {
940
+ return NaN;
941
+ }
942
+ var modMonth = mod(month, 12);
943
+ year += (month - modMonth) / 12;
944
+ return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
945
+ }
946
+
947
+ // FORMATTING
948
+
949
+ addFormatToken('M', ['MM', 2], 'Mo', function () {
950
+ return this.month() + 1;
951
+ });
952
+
953
+ addFormatToken('MMM', 0, 0, function (format) {
954
+ return this.localeData().monthsShort(this, format);
955
+ });
956
+
957
+ addFormatToken('MMMM', 0, 0, function (format) {
958
+ return this.localeData().months(this, format);
959
+ });
960
+
961
+ // ALIASES
962
+
963
+ addUnitAlias('month', 'M');
964
+
965
+ // PRIORITY
966
+
967
+ addUnitPriority('month', 8);
968
+
969
+ // PARSING
970
+
971
+ addRegexToken('M', match1to2);
972
+ addRegexToken('MM', match1to2, match2);
973
+ addRegexToken('MMM', function (isStrict, locale) {
974
+ return locale.monthsShortRegex(isStrict);
975
+ });
976
+ addRegexToken('MMMM', function (isStrict, locale) {
977
+ return locale.monthsRegex(isStrict);
978
+ });
979
+
980
+ addParseToken(['M', 'MM'], function (input, array) {
981
+ array[MONTH] = toInt(input) - 1;
982
+ });
983
+
984
+ addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
985
+ var month = config._locale.monthsParse(input, token, config._strict);
986
+ // if we didn't find a month name, mark the date as invalid.
987
+ if (month != null) {
988
+ array[MONTH] = month;
989
+ } else {
990
+ getParsingFlags(config).invalidMonth = input;
991
+ }
992
+ });
993
+
994
+ // LOCALES
995
+
996
+ var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
997
+ var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
998
+ function localeMonths (m, format) {
999
+ if (!m) {
1000
+ return isArray(this._months) ? this._months :
1001
+ this._months['standalone'];
1002
+ }
1003
+ return isArray(this._months) ? this._months[m.month()] :
1004
+ this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
1005
+ }
1006
+
1007
+ var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
1008
+ function localeMonthsShort (m, format) {
1009
+ if (!m) {
1010
+ return isArray(this._monthsShort) ? this._monthsShort :
1011
+ this._monthsShort['standalone'];
1012
+ }
1013
+ return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
1014
+ this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
1015
+ }
1016
+
1017
+ function handleStrictParse(monthName, format, strict) {
1018
+ var i, ii, mom, llc = monthName.toLocaleLowerCase();
1019
+ if (!this._monthsParse) {
1020
+ // this is not used
1021
+ this._monthsParse = [];
1022
+ this._longMonthsParse = [];
1023
+ this._shortMonthsParse = [];
1024
+ for (i = 0; i < 12; ++i) {
1025
+ mom = createUTC([2000, i]);
1026
+ this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
1027
+ this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
1028
+ }
1029
+ }
1030
+
1031
+ if (strict) {
1032
+ if (format === 'MMM') {
1033
+ ii = indexOf.call(this._shortMonthsParse, llc);
1034
+ return ii !== -1 ? ii : null;
1035
+ } else {
1036
+ ii = indexOf.call(this._longMonthsParse, llc);
1037
+ return ii !== -1 ? ii : null;
1038
+ }
1039
+ } else {
1040
+ if (format === 'MMM') {
1041
+ ii = indexOf.call(this._shortMonthsParse, llc);
1042
+ if (ii !== -1) {
1043
+ return ii;
1044
+ }
1045
+ ii = indexOf.call(this._longMonthsParse, llc);
1046
+ return ii !== -1 ? ii : null;
1047
+ } else {
1048
+ ii = indexOf.call(this._longMonthsParse, llc);
1049
+ if (ii !== -1) {
1050
+ return ii;
1051
+ }
1052
+ ii = indexOf.call(this._shortMonthsParse, llc);
1053
+ return ii !== -1 ? ii : null;
1054
+ }
1055
+ }
1056
+ }
1057
+
1058
+ function localeMonthsParse (monthName, format, strict) {
1059
+ var i, mom, regex;
1060
+
1061
+ if (this._monthsParseExact) {
1062
+ return handleStrictParse.call(this, monthName, format, strict);
1063
+ }
1064
+
1065
+ if (!this._monthsParse) {
1066
+ this._monthsParse = [];
1067
+ this._longMonthsParse = [];
1068
+ this._shortMonthsParse = [];
1069
+ }
1070
+
1071
+ // TODO: add sorting
1072
+ // Sorting makes sure if one month (or abbr) is a prefix of another
1073
+ // see sorting in computeMonthsParse
1074
+ for (i = 0; i < 12; i++) {
1075
+ // make the regex if we don't have it already
1076
+ mom = createUTC([2000, i]);
1077
+ if (strict && !this._longMonthsParse[i]) {
1078
+ this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
1079
+ this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
1080
+ }
1081
+ if (!strict && !this._monthsParse[i]) {
1082
+ regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
1083
+ this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
1084
+ }
1085
+ // test the regex
1086
+ if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
1087
+ return i;
1088
+ } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
1089
+ return i;
1090
+ } else if (!strict && this._monthsParse[i].test(monthName)) {
1091
+ return i;
1092
+ }
1093
+ }
1094
+ }
1095
+
1096
+ // MOMENTS
1097
+
1098
+ function setMonth (mom, value) {
1099
+ var dayOfMonth;
1100
+
1101
+ if (!mom.isValid()) {
1102
+ // No op
1103
+ return mom;
1104
+ }
1105
+
1106
+ if (typeof value === 'string') {
1107
+ if (/^\d+$/.test(value)) {
1108
+ value = toInt(value);
1109
+ } else {
1110
+ value = mom.localeData().monthsParse(value);
1111
+ // TODO: Another silent failure?
1112
+ if (!isNumber(value)) {
1113
+ return mom;
1114
+ }
1115
+ }
1116
+ }
1117
+
1118
+ dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
1119
+ mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
1120
+ return mom;
1121
+ }
1122
+
1123
+ function getSetMonth (value) {
1124
+ if (value != null) {
1125
+ setMonth(this, value);
1126
+ hooks.updateOffset(this, true);
1127
+ return this;
1128
+ } else {
1129
+ return get(this, 'Month');
1130
+ }
1131
+ }
1132
+
1133
+ function getDaysInMonth () {
1134
+ return daysInMonth(this.year(), this.month());
1135
+ }
1136
+
1137
+ var defaultMonthsShortRegex = matchWord;
1138
+ function monthsShortRegex (isStrict) {
1139
+ if (this._monthsParseExact) {
1140
+ if (!hasOwnProp(this, '_monthsRegex')) {
1141
+ computeMonthsParse.call(this);
1142
+ }
1143
+ if (isStrict) {
1144
+ return this._monthsShortStrictRegex;
1145
+ } else {
1146
+ return this._monthsShortRegex;
1147
+ }
1148
+ } else {
1149
+ if (!hasOwnProp(this, '_monthsShortRegex')) {
1150
+ this._monthsShortRegex = defaultMonthsShortRegex;
1151
+ }
1152
+ return this._monthsShortStrictRegex && isStrict ?
1153
+ this._monthsShortStrictRegex : this._monthsShortRegex;
1154
+ }
1155
+ }
1156
+
1157
+ var defaultMonthsRegex = matchWord;
1158
+ function monthsRegex (isStrict) {
1159
+ if (this._monthsParseExact) {
1160
+ if (!hasOwnProp(this, '_monthsRegex')) {
1161
+ computeMonthsParse.call(this);
1162
+ }
1163
+ if (isStrict) {
1164
+ return this._monthsStrictRegex;
1165
+ } else {
1166
+ return this._monthsRegex;
1167
+ }
1168
+ } else {
1169
+ if (!hasOwnProp(this, '_monthsRegex')) {
1170
+ this._monthsRegex = defaultMonthsRegex;
1171
+ }
1172
+ return this._monthsStrictRegex && isStrict ?
1173
+ this._monthsStrictRegex : this._monthsRegex;
1174
+ }
1175
+ }
1176
+
1177
+ function computeMonthsParse () {
1178
+ function cmpLenRev(a, b) {
1179
+ return b.length - a.length;
1180
+ }
1181
+
1182
+ var shortPieces = [], longPieces = [], mixedPieces = [],
1183
+ i, mom;
1184
+ for (i = 0; i < 12; i++) {
1185
+ // make the regex if we don't have it already
1186
+ mom = createUTC([2000, i]);
1187
+ shortPieces.push(this.monthsShort(mom, ''));
1188
+ longPieces.push(this.months(mom, ''));
1189
+ mixedPieces.push(this.months(mom, ''));
1190
+ mixedPieces.push(this.monthsShort(mom, ''));
1191
+ }
1192
+ // Sorting makes sure if one month (or abbr) is a prefix of another it
1193
+ // will match the longer piece.
1194
+ shortPieces.sort(cmpLenRev);
1195
+ longPieces.sort(cmpLenRev);
1196
+ mixedPieces.sort(cmpLenRev);
1197
+ for (i = 0; i < 12; i++) {
1198
+ shortPieces[i] = regexEscape(shortPieces[i]);
1199
+ longPieces[i] = regexEscape(longPieces[i]);
1200
+ }
1201
+ for (i = 0; i < 24; i++) {
1202
+ mixedPieces[i] = regexEscape(mixedPieces[i]);
1203
+ }
1204
+
1205
+ this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1206
+ this._monthsShortRegex = this._monthsRegex;
1207
+ this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1208
+ this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1209
+ }
1210
+
1211
+ function createDate (y, m, d, h, M, s, ms) {
1212
+ // can't just apply() to create a date:
1213
+ // https://stackoverflow.com/q/181348
1214
+ var date = new Date(y, m, d, h, M, s, ms);
1215
+
1216
+ // the date constructor remaps years 0-99 to 1900-1999
1217
+ if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
1218
+ date.setFullYear(y);
1219
+ }
1220
+ return date;
1221
+ }
1222
+
1223
+ function createUTCDate (y) {
1224
+ var date = new Date(Date.UTC.apply(null, arguments));
1225
+
1226
+ // the Date.UTC function remaps years 0-99 to 1900-1999
1227
+ if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
1228
+ date.setUTCFullYear(y);
1229
+ }
1230
+ return date;
1231
+ }
1232
+
1233
+ // start-of-first-week - start-of-year
1234
+ function firstWeekOffset(year, dow, doy) {
1235
+ var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1236
+ fwd = 7 + dow - doy,
1237
+ // first-week day local weekday -- which local weekday is fwd
1238
+ fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1239
+
1240
+ return -fwdlw + fwd - 1;
1241
+ }
1242
+
1243
+ // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1244
+ function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1245
+ var localWeekday = (7 + weekday - dow) % 7,
1246
+ weekOffset = firstWeekOffset(year, dow, doy),
1247
+ dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1248
+ resYear, resDayOfYear;
1249
+
1250
+ if (dayOfYear <= 0) {
1251
+ resYear = year - 1;
1252
+ resDayOfYear = daysInYear(resYear) + dayOfYear;
1253
+ } else if (dayOfYear > daysInYear(year)) {
1254
+ resYear = year + 1;
1255
+ resDayOfYear = dayOfYear - daysInYear(year);
1256
+ } else {
1257
+ resYear = year;
1258
+ resDayOfYear = dayOfYear;
1259
+ }
1260
+
1261
+ return {
1262
+ year: resYear,
1263
+ dayOfYear: resDayOfYear
1264
+ };
1265
+ }
1266
+
1267
+ function weekOfYear(mom, dow, doy) {
1268
+ var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1269
+ week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1270
+ resWeek, resYear;
1271
+
1272
+ if (week < 1) {
1273
+ resYear = mom.year() - 1;
1274
+ resWeek = week + weeksInYear(resYear, dow, doy);
1275
+ } else if (week > weeksInYear(mom.year(), dow, doy)) {
1276
+ resWeek = week - weeksInYear(mom.year(), dow, doy);
1277
+ resYear = mom.year() + 1;
1278
+ } else {
1279
+ resYear = mom.year();
1280
+ resWeek = week;
1281
+ }
1282
+
1283
+ return {
1284
+ week: resWeek,
1285
+ year: resYear
1286
+ };
1287
+ }
1288
+
1289
+ function weeksInYear(year, dow, doy) {
1290
+ var weekOffset = firstWeekOffset(year, dow, doy),
1291
+ weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1292
+ return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1293
+ }
1294
+
1295
+ // FORMATTING
1296
+
1297
+ addFormatToken('w', ['ww', 2], 'wo', 'week');
1298
+ addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1299
+
1300
+ // ALIASES
1301
+
1302
+ addUnitAlias('week', 'w');
1303
+ addUnitAlias('isoWeek', 'W');
1304
+
1305
+ // PRIORITIES
1306
+
1307
+ addUnitPriority('week', 5);
1308
+ addUnitPriority('isoWeek', 5);
1309
+
1310
+ // PARSING
1311
+
1312
+ addRegexToken('w', match1to2);
1313
+ addRegexToken('ww', match1to2, match2);
1314
+ addRegexToken('W', match1to2);
1315
+ addRegexToken('WW', match1to2, match2);
1316
+
1317
+ addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
1318
+ week[token.substr(0, 1)] = toInt(input);
1319
+ });
1320
+
1321
+ // HELPERS
1322
+
1323
+ // LOCALES
1324
+
1325
+ function localeWeek (mom) {
1326
+ return weekOfYear(mom, this._week.dow, this._week.doy).week;
1327
+ }
1328
+
1329
+ var defaultLocaleWeek = {
1330
+ dow : 0, // Sunday is the first day of the week.
1331
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
1332
+ };
1333
+
1334
+ function localeFirstDayOfWeek () {
1335
+ return this._week.dow;
1336
+ }
1337
+
1338
+ function localeFirstDayOfYear () {
1339
+ return this._week.doy;
1340
+ }
1341
+
1342
+ // MOMENTS
1343
+
1344
+ function getSetWeek (input) {
1345
+ var week = this.localeData().week(this);
1346
+ return input == null ? week : this.add((input - week) * 7, 'd');
1347
+ }
1348
+
1349
+ function getSetISOWeek (input) {
1350
+ var week = weekOfYear(this, 1, 4).week;
1351
+ return input == null ? week : this.add((input - week) * 7, 'd');
1352
+ }
1353
+
1354
+ // FORMATTING
1355
+
1356
+ addFormatToken('d', 0, 'do', 'day');
1357
+
1358
+ addFormatToken('dd', 0, 0, function (format) {
1359
+ return this.localeData().weekdaysMin(this, format);
1360
+ });
1361
+
1362
+ addFormatToken('ddd', 0, 0, function (format) {
1363
+ return this.localeData().weekdaysShort(this, format);
1364
+ });
1365
+
1366
+ addFormatToken('dddd', 0, 0, function (format) {
1367
+ return this.localeData().weekdays(this, format);
1368
+ });
1369
+
1370
+ addFormatToken('e', 0, 0, 'weekday');
1371
+ addFormatToken('E', 0, 0, 'isoWeekday');
1372
+
1373
+ // ALIASES
1374
+
1375
+ addUnitAlias('day', 'd');
1376
+ addUnitAlias('weekday', 'e');
1377
+ addUnitAlias('isoWeekday', 'E');
1378
+
1379
+ // PRIORITY
1380
+ addUnitPriority('day', 11);
1381
+ addUnitPriority('weekday', 11);
1382
+ addUnitPriority('isoWeekday', 11);
1383
+
1384
+ // PARSING
1385
+
1386
+ addRegexToken('d', match1to2);
1387
+ addRegexToken('e', match1to2);
1388
+ addRegexToken('E', match1to2);
1389
+ addRegexToken('dd', function (isStrict, locale) {
1390
+ return locale.weekdaysMinRegex(isStrict);
1391
+ });
1392
+ addRegexToken('ddd', function (isStrict, locale) {
1393
+ return locale.weekdaysShortRegex(isStrict);
1394
+ });
1395
+ addRegexToken('dddd', function (isStrict, locale) {
1396
+ return locale.weekdaysRegex(isStrict);
1397
+ });
1398
+
1399
+ addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
1400
+ var weekday = config._locale.weekdaysParse(input, token, config._strict);
1401
+ // if we didn't get a weekday name, mark the date as invalid
1402
+ if (weekday != null) {
1403
+ week.d = weekday;
1404
+ } else {
1405
+ getParsingFlags(config).invalidWeekday = input;
1406
+ }
1407
+ });
1408
+
1409
+ addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
1410
+ week[token] = toInt(input);
1411
+ });
1412
+
1413
+ // HELPERS
1414
+
1415
+ function parseWeekday(input, locale) {
1416
+ if (typeof input !== 'string') {
1417
+ return input;
1418
+ }
1419
+
1420
+ if (!isNaN(input)) {
1421
+ return parseInt(input, 10);
1422
+ }
1423
+
1424
+ input = locale.weekdaysParse(input);
1425
+ if (typeof input === 'number') {
1426
+ return input;
1427
+ }
1428
+
1429
+ return null;
1430
+ }
1431
+
1432
+ function parseIsoWeekday(input, locale) {
1433
+ if (typeof input === 'string') {
1434
+ return locale.weekdaysParse(input) % 7 || 7;
1435
+ }
1436
+ return isNaN(input) ? null : input;
1437
+ }
1438
+
1439
+ // LOCALES
1440
+
1441
+ var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
1442
+ function localeWeekdays (m, format) {
1443
+ if (!m) {
1444
+ return isArray(this._weekdays) ? this._weekdays :
1445
+ this._weekdays['standalone'];
1446
+ }
1447
+ return isArray(this._weekdays) ? this._weekdays[m.day()] :
1448
+ this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
1449
+ }
1450
+
1451
+ var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
1452
+ function localeWeekdaysShort (m) {
1453
+ return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
1454
+ }
1455
+
1456
+ var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
1457
+ function localeWeekdaysMin (m) {
1458
+ return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
1459
+ }
1460
+
1461
+ function handleStrictParse$1(weekdayName, format, strict) {
1462
+ var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
1463
+ if (!this._weekdaysParse) {
1464
+ this._weekdaysParse = [];
1465
+ this._shortWeekdaysParse = [];
1466
+ this._minWeekdaysParse = [];
1467
+
1468
+ for (i = 0; i < 7; ++i) {
1469
+ mom = createUTC([2000, 1]).day(i);
1470
+ this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
1471
+ this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
1472
+ this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
1473
+ }
1474
+ }
1475
+
1476
+ if (strict) {
1477
+ if (format === 'dddd') {
1478
+ ii = indexOf.call(this._weekdaysParse, llc);
1479
+ return ii !== -1 ? ii : null;
1480
+ } else if (format === 'ddd') {
1481
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
1482
+ return ii !== -1 ? ii : null;
1483
+ } else {
1484
+ ii = indexOf.call(this._minWeekdaysParse, llc);
1485
+ return ii !== -1 ? ii : null;
1486
+ }
1487
+ } else {
1488
+ if (format === 'dddd') {
1489
+ ii = indexOf.call(this._weekdaysParse, llc);
1490
+ if (ii !== -1) {
1491
+ return ii;
1492
+ }
1493
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
1494
+ if (ii !== -1) {
1495
+ return ii;
1496
+ }
1497
+ ii = indexOf.call(this._minWeekdaysParse, llc);
1498
+ return ii !== -1 ? ii : null;
1499
+ } else if (format === 'ddd') {
1500
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
1501
+ if (ii !== -1) {
1502
+ return ii;
1503
+ }
1504
+ ii = indexOf.call(this._weekdaysParse, llc);
1505
+ if (ii !== -1) {
1506
+ return ii;
1507
+ }
1508
+ ii = indexOf.call(this._minWeekdaysParse, llc);
1509
+ return ii !== -1 ? ii : null;
1510
+ } else {
1511
+ ii = indexOf.call(this._minWeekdaysParse, llc);
1512
+ if (ii !== -1) {
1513
+ return ii;
1514
+ }
1515
+ ii = indexOf.call(this._weekdaysParse, llc);
1516
+ if (ii !== -1) {
1517
+ return ii;
1518
+ }
1519
+ ii = indexOf.call(this._shortWeekdaysParse, llc);
1520
+ return ii !== -1 ? ii : null;
1521
+ }
1522
+ }
1523
+ }
1524
+
1525
+ function localeWeekdaysParse (weekdayName, format, strict) {
1526
+ var i, mom, regex;
1527
+
1528
+ if (this._weekdaysParseExact) {
1529
+ return handleStrictParse$1.call(this, weekdayName, format, strict);
1530
+ }
1531
+
1532
+ if (!this._weekdaysParse) {
1533
+ this._weekdaysParse = [];
1534
+ this._minWeekdaysParse = [];
1535
+ this._shortWeekdaysParse = [];
1536
+ this._fullWeekdaysParse = [];
1537
+ }
1538
+
1539
+ for (i = 0; i < 7; i++) {
1540
+ // make the regex if we don't have it already
1541
+
1542
+ mom = createUTC([2000, 1]).day(i);
1543
+ if (strict && !this._fullWeekdaysParse[i]) {
1544
+ this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i');
1545
+ this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i');
1546
+ this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i');
1547
+ }
1548
+ if (!this._weekdaysParse[i]) {
1549
+ regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
1550
+ this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
1551
+ }
1552
+ // test the regex
1553
+ if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
1554
+ return i;
1555
+ } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
1556
+ return i;
1557
+ } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
1558
+ return i;
1559
+ } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
1560
+ return i;
1561
+ }
1562
+ }
1563
+ }
1564
+
1565
+ // MOMENTS
1566
+
1567
+ function getSetDayOfWeek (input) {
1568
+ if (!this.isValid()) {
1569
+ return input != null ? this : NaN;
1570
+ }
1571
+ var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
1572
+ if (input != null) {
1573
+ input = parseWeekday(input, this.localeData());
1574
+ return this.add(input - day, 'd');
1575
+ } else {
1576
+ return day;
1577
+ }
1578
+ }
1579
+
1580
+ function getSetLocaleDayOfWeek (input) {
1581
+ if (!this.isValid()) {
1582
+ return input != null ? this : NaN;
1583
+ }
1584
+ var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1585
+ return input == null ? weekday : this.add(input - weekday, 'd');
1586
+ }
1587
+
1588
+ function getSetISODayOfWeek (input) {
1589
+ if (!this.isValid()) {
1590
+ return input != null ? this : NaN;
1591
+ }
1592
+
1593
+ // behaves the same as moment#day except
1594
+ // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1595
+ // as a setter, sunday should belong to the previous week.
1596
+
1597
+ if (input != null) {
1598
+ var weekday = parseIsoWeekday(input, this.localeData());
1599
+ return this.day(this.day() % 7 ? weekday : weekday - 7);
1600
+ } else {
1601
+ return this.day() || 7;
1602
+ }
1603
+ }
1604
+
1605
+ var defaultWeekdaysRegex = matchWord;
1606
+ function weekdaysRegex (isStrict) {
1607
+ if (this._weekdaysParseExact) {
1608
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
1609
+ computeWeekdaysParse.call(this);
1610
+ }
1611
+ if (isStrict) {
1612
+ return this._weekdaysStrictRegex;
1613
+ } else {
1614
+ return this._weekdaysRegex;
1615
+ }
1616
+ } else {
1617
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
1618
+ this._weekdaysRegex = defaultWeekdaysRegex;
1619
+ }
1620
+ return this._weekdaysStrictRegex && isStrict ?
1621
+ this._weekdaysStrictRegex : this._weekdaysRegex;
1622
+ }
1623
+ }
1624
+
1625
+ var defaultWeekdaysShortRegex = matchWord;
1626
+ function weekdaysShortRegex (isStrict) {
1627
+ if (this._weekdaysParseExact) {
1628
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
1629
+ computeWeekdaysParse.call(this);
1630
+ }
1631
+ if (isStrict) {
1632
+ return this._weekdaysShortStrictRegex;
1633
+ } else {
1634
+ return this._weekdaysShortRegex;
1635
+ }
1636
+ } else {
1637
+ if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1638
+ this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1639
+ }
1640
+ return this._weekdaysShortStrictRegex && isStrict ?
1641
+ this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
1642
+ }
1643
+ }
1644
+
1645
+ var defaultWeekdaysMinRegex = matchWord;
1646
+ function weekdaysMinRegex (isStrict) {
1647
+ if (this._weekdaysParseExact) {
1648
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
1649
+ computeWeekdaysParse.call(this);
1650
+ }
1651
+ if (isStrict) {
1652
+ return this._weekdaysMinStrictRegex;
1653
+ } else {
1654
+ return this._weekdaysMinRegex;
1655
+ }
1656
+ } else {
1657
+ if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1658
+ this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1659
+ }
1660
+ return this._weekdaysMinStrictRegex && isStrict ?
1661
+ this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
1662
+ }
1663
+ }
1664
+
1665
+
1666
+ function computeWeekdaysParse () {
1667
+ function cmpLenRev(a, b) {
1668
+ return b.length - a.length;
1669
+ }
1670
+
1671
+ var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
1672
+ i, mom, minp, shortp, longp;
1673
+ for (i = 0; i < 7; i++) {
1674
+ // make the regex if we don't have it already
1675
+ mom = createUTC([2000, 1]).day(i);
1676
+ minp = this.weekdaysMin(mom, '');
1677
+ shortp = this.weekdaysShort(mom, '');
1678
+ longp = this.weekdays(mom, '');
1679
+ minPieces.push(minp);
1680
+ shortPieces.push(shortp);
1681
+ longPieces.push(longp);
1682
+ mixedPieces.push(minp);
1683
+ mixedPieces.push(shortp);
1684
+ mixedPieces.push(longp);
1685
+ }
1686
+ // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1687
+ // will match the longer piece.
1688
+ minPieces.sort(cmpLenRev);
1689
+ shortPieces.sort(cmpLenRev);
1690
+ longPieces.sort(cmpLenRev);
1691
+ mixedPieces.sort(cmpLenRev);
1692
+ for (i = 0; i < 7; i++) {
1693
+ shortPieces[i] = regexEscape(shortPieces[i]);
1694
+ longPieces[i] = regexEscape(longPieces[i]);
1695
+ mixedPieces[i] = regexEscape(mixedPieces[i]);
1696
+ }
1697
+
1698
+ this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1699
+ this._weekdaysShortRegex = this._weekdaysRegex;
1700
+ this._weekdaysMinRegex = this._weekdaysRegex;
1701
+
1702
+ this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
1703
+ this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
1704
+ this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
1705
+ }
1706
+
1707
+ // FORMATTING
1708
+
1709
+ function hFormat() {
1710
+ return this.hours() % 12 || 12;
1711
+ }
1712
+
1713
+ function kFormat() {
1714
+ return this.hours() || 24;
1715
+ }
1716
+
1717
+ addFormatToken('H', ['HH', 2], 0, 'hour');
1718
+ addFormatToken('h', ['hh', 2], 0, hFormat);
1719
+ addFormatToken('k', ['kk', 2], 0, kFormat);
1720
+
1721
+ addFormatToken('hmm', 0, 0, function () {
1722
+ return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
1723
+ });
1724
+
1725
+ addFormatToken('hmmss', 0, 0, function () {
1726
+ return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
1727
+ zeroFill(this.seconds(), 2);
1728
+ });
1729
+
1730
+ addFormatToken('Hmm', 0, 0, function () {
1731
+ return '' + this.hours() + zeroFill(this.minutes(), 2);
1732
+ });
1733
+
1734
+ addFormatToken('Hmmss', 0, 0, function () {
1735
+ return '' + this.hours() + zeroFill(this.minutes(), 2) +
1736
+ zeroFill(this.seconds(), 2);
1737
+ });
1738
+
1739
+ function meridiem (token, lowercase) {
1740
+ addFormatToken(token, 0, 0, function () {
1741
+ return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
1742
+ });
1743
+ }
1744
+
1745
+ meridiem('a', true);
1746
+ meridiem('A', false);
1747
+
1748
+ // ALIASES
1749
+
1750
+ addUnitAlias('hour', 'h');
1751
+
1752
+ // PRIORITY
1753
+ addUnitPriority('hour', 13);
1754
+
1755
+ // PARSING
1756
+
1757
+ function matchMeridiem (isStrict, locale) {
1758
+ return locale._meridiemParse;
1759
+ }
1760
+
1761
+ addRegexToken('a', matchMeridiem);
1762
+ addRegexToken('A', matchMeridiem);
1763
+ addRegexToken('H', match1to2);
1764
+ addRegexToken('h', match1to2);
1765
+ addRegexToken('k', match1to2);
1766
+ addRegexToken('HH', match1to2, match2);
1767
+ addRegexToken('hh', match1to2, match2);
1768
+ addRegexToken('kk', match1to2, match2);
1769
+
1770
+ addRegexToken('hmm', match3to4);
1771
+ addRegexToken('hmmss', match5to6);
1772
+ addRegexToken('Hmm', match3to4);
1773
+ addRegexToken('Hmmss', match5to6);
1774
+
1775
+ addParseToken(['H', 'HH'], HOUR);
1776
+ addParseToken(['k', 'kk'], function (input, array, config) {
1777
+ var kInput = toInt(input);
1778
+ array[HOUR] = kInput === 24 ? 0 : kInput;
1779
+ });
1780
+ addParseToken(['a', 'A'], function (input, array, config) {
1781
+ config._isPm = config._locale.isPM(input);
1782
+ config._meridiem = input;
1783
+ });
1784
+ addParseToken(['h', 'hh'], function (input, array, config) {
1785
+ array[HOUR] = toInt(input);
1786
+ getParsingFlags(config).bigHour = true;
1787
+ });
1788
+ addParseToken('hmm', function (input, array, config) {
1789
+ var pos = input.length - 2;
1790
+ array[HOUR] = toInt(input.substr(0, pos));
1791
+ array[MINUTE] = toInt(input.substr(pos));
1792
+ getParsingFlags(config).bigHour = true;
1793
+ });
1794
+ addParseToken('hmmss', function (input, array, config) {
1795
+ var pos1 = input.length - 4;
1796
+ var pos2 = input.length - 2;
1797
+ array[HOUR] = toInt(input.substr(0, pos1));
1798
+ array[MINUTE] = toInt(input.substr(pos1, 2));
1799
+ array[SECOND] = toInt(input.substr(pos2));
1800
+ getParsingFlags(config).bigHour = true;
1801
+ });
1802
+ addParseToken('Hmm', function (input, array, config) {
1803
+ var pos = input.length - 2;
1804
+ array[HOUR] = toInt(input.substr(0, pos));
1805
+ array[MINUTE] = toInt(input.substr(pos));
1806
+ });
1807
+ addParseToken('Hmmss', function (input, array, config) {
1808
+ var pos1 = input.length - 4;
1809
+ var pos2 = input.length - 2;
1810
+ array[HOUR] = toInt(input.substr(0, pos1));
1811
+ array[MINUTE] = toInt(input.substr(pos1, 2));
1812
+ array[SECOND] = toInt(input.substr(pos2));
1813
+ });
1814
+
1815
+ // LOCALES
1816
+
1817
+ function localeIsPM (input) {
1818
+ // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
1819
+ // Using charAt should be more compatible.
1820
+ return ((input + '').toLowerCase().charAt(0) === 'p');
1821
+ }
1822
+
1823
+ var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
1824
+ function localeMeridiem (hours, minutes, isLower) {
1825
+ if (hours > 11) {
1826
+ return isLower ? 'pm' : 'PM';
1827
+ } else {
1828
+ return isLower ? 'am' : 'AM';
1829
+ }
1830
+ }
1831
+
1832
+
1833
+ // MOMENTS
1834
+
1835
+ // Setting the hour should keep the time, because the user explicitly
1836
+ // specified which hour they want. So trying to maintain the same hour (in
1837
+ // a new timezone) makes sense. Adding/subtracting hours does not follow
1838
+ // this rule.
1839
+ var getSetHour = makeGetSet('Hours', true);
1840
+
1841
+ var baseConfig = {
1842
+ calendar: defaultCalendar,
1843
+ longDateFormat: defaultLongDateFormat,
1844
+ invalidDate: defaultInvalidDate,
1845
+ ordinal: defaultOrdinal,
1846
+ dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
1847
+ relativeTime: defaultRelativeTime,
1848
+
1849
+ months: defaultLocaleMonths,
1850
+ monthsShort: defaultLocaleMonthsShort,
1851
+
1852
+ week: defaultLocaleWeek,
1853
+
1854
+ weekdays: defaultLocaleWeekdays,
1855
+ weekdaysMin: defaultLocaleWeekdaysMin,
1856
+ weekdaysShort: defaultLocaleWeekdaysShort,
1857
+
1858
+ meridiemParse: defaultLocaleMeridiemParse
1859
+ };
1860
+
1861
+ // internal storage for locale config files
1862
+ var locales = {};
1863
+ var localeFamilies = {};
1864
+ var globalLocale;
1865
+
1866
+ function normalizeLocale(key) {
1867
+ return key ? key.toLowerCase().replace('_', '-') : key;
1868
+ }
1869
+
1870
+ // pick the locale from the array
1871
+ // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
1872
+ // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
1873
+ function chooseLocale(names) {
1874
+ var i = 0, j, next, locale, split;
1875
+
1876
+ while (i < names.length) {
1877
+ split = normalizeLocale(names[i]).split('-');
1878
+ j = split.length;
1879
+ next = normalizeLocale(names[i + 1]);
1880
+ next = next ? next.split('-') : null;
1881
+ while (j > 0) {
1882
+ locale = loadLocale(split.slice(0, j).join('-'));
1883
+ if (locale) {
1884
+ return locale;
1885
+ }
1886
+ if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
1887
+ //the next array item is better than a shallower substring of this one
1888
+ break;
1889
+ }
1890
+ j--;
1891
+ }
1892
+ i++;
1893
+ }
1894
+ return globalLocale;
1895
+ }
1896
+
1897
+ function loadLocale(name) {
1898
+ var oldLocale = null;
1899
+ // TODO: Find a better way to register and load all the locales in Node
1900
+ if (!locales[name] && (typeof module !== 'undefined') &&
1901
+ module && module.exports) {
1902
+ try {
1903
+ oldLocale = globalLocale._abbr;
1904
+ var aliasedRequire = require;
1905
+ __webpack_require__(281)("./" + name);
1906
+ getSetGlobalLocale(oldLocale);
1907
+ } catch (e) {}
1908
+ }
1909
+ return locales[name];
1910
+ }
1911
+
1912
+ // This function will load locale and then set the global locale. If
1913
+ // no arguments are passed in, it will simply return the current global
1914
+ // locale key.
1915
+ function getSetGlobalLocale (key, values) {
1916
+ var data;
1917
+ if (key) {
1918
+ if (isUndefined(values)) {
1919
+ data = getLocale(key);
1920
+ }
1921
+ else {
1922
+ data = defineLocale(key, values);
1923
+ }
1924
+
1925
+ if (data) {
1926
+ // moment.duration._locale = moment._locale = data;
1927
+ globalLocale = data;
1928
+ }
1929
+ else {
1930
+ if ((typeof console !== 'undefined') && console.warn) {
1931
+ //warn user if arguments are passed but the locale could not be set
1932
+ console.warn('Locale ' + key + ' not found. Did you forget to load it?');
1933
+ }
1934
+ }
1935
+ }
1936
+
1937
+ return globalLocale._abbr;
1938
+ }
1939
+
1940
+ function defineLocale (name, config) {
1941
+ if (config !== null) {
1942
+ var locale, parentConfig = baseConfig;
1943
+ config.abbr = name;
1944
+ if (locales[name] != null) {
1945
+ deprecateSimple('defineLocaleOverride',
1946
+ 'use moment.updateLocale(localeName, config) to change ' +
1947
+ 'an existing locale. moment.defineLocale(localeName, ' +
1948
+ 'config) should only be used for creating a new locale ' +
1949
+ 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
1950
+ parentConfig = locales[name]._config;
1951
+ } else if (config.parentLocale != null) {
1952
+ if (locales[config.parentLocale] != null) {
1953
+ parentConfig = locales[config.parentLocale]._config;
1954
+ } else {
1955
+ locale = loadLocale(config.parentLocale);
1956
+ if (locale != null) {
1957
+ parentConfig = locale._config;
1958
+ } else {
1959
+ if (!localeFamilies[config.parentLocale]) {
1960
+ localeFamilies[config.parentLocale] = [];
1961
+ }
1962
+ localeFamilies[config.parentLocale].push({
1963
+ name: name,
1964
+ config: config
1965
+ });
1966
+ return null;
1967
+ }
1968
+ }
1969
+ }
1970
+ locales[name] = new Locale(mergeConfigs(parentConfig, config));
1971
+
1972
+ if (localeFamilies[name]) {
1973
+ localeFamilies[name].forEach(function (x) {
1974
+ defineLocale(x.name, x.config);
1975
+ });
1976
+ }
1977
+
1978
+ // backwards compat for now: also set the locale
1979
+ // make sure we set the locale AFTER all child locales have been
1980
+ // created, so we won't end up with the child locale set.
1981
+ getSetGlobalLocale(name);
1982
+
1983
+
1984
+ return locales[name];
1985
+ } else {
1986
+ // useful for testing
1987
+ delete locales[name];
1988
+ return null;
1989
+ }
1990
+ }
1991
+
1992
+ function updateLocale(name, config) {
1993
+ if (config != null) {
1994
+ var locale, tmpLocale, parentConfig = baseConfig;
1995
+ // MERGE
1996
+ tmpLocale = loadLocale(name);
1997
+ if (tmpLocale != null) {
1998
+ parentConfig = tmpLocale._config;
1999
+ }
2000
+ config = mergeConfigs(parentConfig, config);
2001
+ locale = new Locale(config);
2002
+ locale.parentLocale = locales[name];
2003
+ locales[name] = locale;
2004
+
2005
+ // backwards compat for now: also set the locale
2006
+ getSetGlobalLocale(name);
2007
+ } else {
2008
+ // pass null for config to unupdate, useful for tests
2009
+ if (locales[name] != null) {
2010
+ if (locales[name].parentLocale != null) {
2011
+ locales[name] = locales[name].parentLocale;
2012
+ } else if (locales[name] != null) {
2013
+ delete locales[name];
2014
+ }
2015
+ }
2016
+ }
2017
+ return locales[name];
2018
+ }
2019
+
2020
+ // returns locale data
2021
+ function getLocale (key) {
2022
+ var locale;
2023
+
2024
+ if (key && key._locale && key._locale._abbr) {
2025
+ key = key._locale._abbr;
2026
+ }
2027
+
2028
+ if (!key) {
2029
+ return globalLocale;
2030
+ }
2031
+
2032
+ if (!isArray(key)) {
2033
+ //short-circuit everything else
2034
+ locale = loadLocale(key);
2035
+ if (locale) {
2036
+ return locale;
2037
+ }
2038
+ key = [key];
2039
+ }
2040
+
2041
+ return chooseLocale(key);
2042
+ }
2043
+
2044
+ function listLocales() {
2045
+ return keys(locales);
2046
+ }
2047
+
2048
+ function checkOverflow (m) {
2049
+ var overflow;
2050
+ var a = m._a;
2051
+
2052
+ if (a && getParsingFlags(m).overflow === -2) {
2053
+ overflow =
2054
+ a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
2055
+ a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
2056
+ a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
2057
+ a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
2058
+ a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
2059
+ a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
2060
+ -1;
2061
+
2062
+ if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
2063
+ overflow = DATE;
2064
+ }
2065
+ if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
2066
+ overflow = WEEK;
2067
+ }
2068
+ if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
2069
+ overflow = WEEKDAY;
2070
+ }
2071
+
2072
+ getParsingFlags(m).overflow = overflow;
2073
+ }
2074
+
2075
+ return m;
2076
+ }
2077
+
2078
+ // Pick the first defined of two or three arguments.
2079
+ function defaults(a, b, c) {
2080
+ if (a != null) {
2081
+ return a;
2082
+ }
2083
+ if (b != null) {
2084
+ return b;
2085
+ }
2086
+ return c;
2087
+ }
2088
+
2089
+ function currentDateArray(config) {
2090
+ // hooks is actually the exported moment object
2091
+ var nowValue = new Date(hooks.now());
2092
+ if (config._useUTC) {
2093
+ return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
2094
+ }
2095
+ return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2096
+ }
2097
+
2098
+ // convert an array to a date.
2099
+ // the array should mirror the parameters below
2100
+ // note: all values past the year are optional and will default to the lowest possible value.
2101
+ // [year, month, day , hour, minute, second, millisecond]
2102
+ function configFromArray (config) {
2103
+ var i, date, input = [], currentDate, expectedWeekday, yearToUse;
2104
+
2105
+ if (config._d) {
2106
+ return;
2107
+ }
2108
+
2109
+ currentDate = currentDateArray(config);
2110
+
2111
+ //compute day of the year from weeks and weekdays
2112
+ if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2113
+ dayOfYearFromWeekInfo(config);
2114
+ }
2115
+
2116
+ //if the day of the year is set, figure out what it is
2117
+ if (config._dayOfYear != null) {
2118
+ yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2119
+
2120
+ if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
2121
+ getParsingFlags(config)._overflowDayOfYear = true;
2122
+ }
2123
+
2124
+ date = createUTCDate(yearToUse, 0, config._dayOfYear);
2125
+ config._a[MONTH] = date.getUTCMonth();
2126
+ config._a[DATE] = date.getUTCDate();
2127
+ }
2128
+
2129
+ // Default to current date.
2130
+ // * if no year, month, day of month are given, default to today
2131
+ // * if day of month is given, default month and year
2132
+ // * if month is given, default only year
2133
+ // * if year is given, don't default anything
2134
+ for (i = 0; i < 3 && config._a[i] == null; ++i) {
2135
+ config._a[i] = input[i] = currentDate[i];
2136
+ }
2137
+
2138
+ // Zero out whatever was not defaulted, including time
2139
+ for (; i < 7; i++) {
2140
+ config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
2141
+ }
2142
+
2143
+ // Check for 24:00:00.000
2144
+ if (config._a[HOUR] === 24 &&
2145
+ config._a[MINUTE] === 0 &&
2146
+ config._a[SECOND] === 0 &&
2147
+ config._a[MILLISECOND] === 0) {
2148
+ config._nextDay = true;
2149
+ config._a[HOUR] = 0;
2150
+ }
2151
+
2152
+ config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
2153
+ expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
2154
+
2155
+ // Apply timezone offset from input. The actual utcOffset can be changed
2156
+ // with parseZone.
2157
+ if (config._tzm != null) {
2158
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2159
+ }
2160
+
2161
+ if (config._nextDay) {
2162
+ config._a[HOUR] = 24;
2163
+ }
2164
+
2165
+ // check for mismatching day of week
2166
+ if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
2167
+ getParsingFlags(config).weekdayMismatch = true;
2168
+ }
2169
+ }
2170
+
2171
+ function dayOfYearFromWeekInfo(config) {
2172
+ var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
2173
+
2174
+ w = config._w;
2175
+ if (w.GG != null || w.W != null || w.E != null) {
2176
+ dow = 1;
2177
+ doy = 4;
2178
+
2179
+ // TODO: We need to take the current isoWeekYear, but that depends on
2180
+ // how we interpret now (local, utc, fixed offset). So create
2181
+ // a now version of current config (take local/utc/offset flags, and
2182
+ // create now).
2183
+ weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
2184
+ week = defaults(w.W, 1);
2185
+ weekday = defaults(w.E, 1);
2186
+ if (weekday < 1 || weekday > 7) {
2187
+ weekdayOverflow = true;
2188
+ }
2189
+ } else {
2190
+ dow = config._locale._week.dow;
2191
+ doy = config._locale._week.doy;
2192
+
2193
+ var curWeek = weekOfYear(createLocal(), dow, doy);
2194
+
2195
+ weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2196
+
2197
+ // Default to current week.
2198
+ week = defaults(w.w, curWeek.week);
2199
+
2200
+ if (w.d != null) {
2201
+ // weekday -- low day numbers are considered next week
2202
+ weekday = w.d;
2203
+ if (weekday < 0 || weekday > 6) {
2204
+ weekdayOverflow = true;
2205
+ }
2206
+ } else if (w.e != null) {
2207
+ // local weekday -- counting starts from begining of week
2208
+ weekday = w.e + dow;
2209
+ if (w.e < 0 || w.e > 6) {
2210
+ weekdayOverflow = true;
2211
+ }
2212
+ } else {
2213
+ // default to begining of week
2214
+ weekday = dow;
2215
+ }
2216
+ }
2217
+ if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
2218
+ getParsingFlags(config)._overflowWeeks = true;
2219
+ } else if (weekdayOverflow != null) {
2220
+ getParsingFlags(config)._overflowWeekday = true;
2221
+ } else {
2222
+ temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
2223
+ config._a[YEAR] = temp.year;
2224
+ config._dayOfYear = temp.dayOfYear;
2225
+ }
2226
+ }
2227
+
2228
+ // iso 8601 regex
2229
+ // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
2230
+ var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
2231
+ var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
2232
+
2233
+ var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
2234
+
2235
+ var isoDates = [
2236
+ ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
2237
+ ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
2238
+ ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
2239
+ ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
2240
+ ['YYYY-DDD', /\d{4}-\d{3}/],
2241
+ ['YYYY-MM', /\d{4}-\d\d/, false],
2242
+ ['YYYYYYMMDD', /[+-]\d{10}/],
2243
+ ['YYYYMMDD', /\d{8}/],
2244
+ // YYYYMM is NOT allowed by the standard
2245
+ ['GGGG[W]WWE', /\d{4}W\d{3}/],
2246
+ ['GGGG[W]WW', /\d{4}W\d{2}/, false],
2247
+ ['YYYYDDD', /\d{7}/]
2248
+ ];
2249
+
2250
+ // iso time formats and regexes
2251
+ var isoTimes = [
2252
+ ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
2253
+ ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
2254
+ ['HH:mm:ss', /\d\d:\d\d:\d\d/],
2255
+ ['HH:mm', /\d\d:\d\d/],
2256
+ ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
2257
+ ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
2258
+ ['HHmmss', /\d\d\d\d\d\d/],
2259
+ ['HHmm', /\d\d\d\d/],
2260
+ ['HH', /\d\d/]
2261
+ ];
2262
+
2263
+ var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
2264
+
2265
+ // date from iso format
2266
+ function configFromISO(config) {
2267
+ var i, l,
2268
+ string = config._i,
2269
+ match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
2270
+ allowTime, dateFormat, timeFormat, tzFormat;
2271
+
2272
+ if (match) {
2273
+ getParsingFlags(config).iso = true;
2274
+
2275
+ for (i = 0, l = isoDates.length; i < l; i++) {
2276
+ if (isoDates[i][1].exec(match[1])) {
2277
+ dateFormat = isoDates[i][0];
2278
+ allowTime = isoDates[i][2] !== false;
2279
+ break;
2280
+ }
2281
+ }
2282
+ if (dateFormat == null) {
2283
+ config._isValid = false;
2284
+ return;
2285
+ }
2286
+ if (match[3]) {
2287
+ for (i = 0, l = isoTimes.length; i < l; i++) {
2288
+ if (isoTimes[i][1].exec(match[3])) {
2289
+ // match[2] should be 'T' or space
2290
+ timeFormat = (match[2] || ' ') + isoTimes[i][0];
2291
+ break;
2292
+ }
2293
+ }
2294
+ if (timeFormat == null) {
2295
+ config._isValid = false;
2296
+ return;
2297
+ }
2298
+ }
2299
+ if (!allowTime && timeFormat != null) {
2300
+ config._isValid = false;
2301
+ return;
2302
+ }
2303
+ if (match[4]) {
2304
+ if (tzRegex.exec(match[4])) {
2305
+ tzFormat = 'Z';
2306
+ } else {
2307
+ config._isValid = false;
2308
+ return;
2309
+ }
2310
+ }
2311
+ config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
2312
+ configFromStringAndFormat(config);
2313
+ } else {
2314
+ config._isValid = false;
2315
+ }
2316
+ }
2317
+
2318
+ // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
2319
+ var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
2320
+
2321
+ function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
2322
+ var result = [
2323
+ untruncateYear(yearStr),
2324
+ defaultLocaleMonthsShort.indexOf(monthStr),
2325
+ parseInt(dayStr, 10),
2326
+ parseInt(hourStr, 10),
2327
+ parseInt(minuteStr, 10)
2328
+ ];
2329
+
2330
+ if (secondStr) {
2331
+ result.push(parseInt(secondStr, 10));
2332
+ }
2333
+
2334
+ return result;
2335
+ }
2336
+
2337
+ function untruncateYear(yearStr) {
2338
+ var year = parseInt(yearStr, 10);
2339
+ if (year <= 49) {
2340
+ return 2000 + year;
2341
+ } else if (year <= 999) {
2342
+ return 1900 + year;
2343
+ }
2344
+ return year;
2345
+ }
2346
+
2347
+ function preprocessRFC2822(s) {
2348
+ // Remove comments and folding whitespace and replace multiple-spaces with a single space
2349
+ return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').trim();
2350
+ }
2351
+
2352
+ function checkWeekday(weekdayStr, parsedInput, config) {
2353
+ if (weekdayStr) {
2354
+ // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
2355
+ var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
2356
+ weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
2357
+ if (weekdayProvided !== weekdayActual) {
2358
+ getParsingFlags(config).weekdayMismatch = true;
2359
+ config._isValid = false;
2360
+ return false;
2361
+ }
2362
+ }
2363
+ return true;
2364
+ }
2365
+
2366
+ var obsOffsets = {
2367
+ UT: 0,
2368
+ GMT: 0,
2369
+ EDT: -4 * 60,
2370
+ EST: -5 * 60,
2371
+ CDT: -5 * 60,
2372
+ CST: -6 * 60,
2373
+ MDT: -6 * 60,
2374
+ MST: -7 * 60,
2375
+ PDT: -7 * 60,
2376
+ PST: -8 * 60
2377
+ };
2378
+
2379
+ function calculateOffset(obsOffset, militaryOffset, numOffset) {
2380
+ if (obsOffset) {
2381
+ return obsOffsets[obsOffset];
2382
+ } else if (militaryOffset) {
2383
+ // the only allowed military tz is Z
2384
+ return 0;
2385
+ } else {
2386
+ var hm = parseInt(numOffset, 10);
2387
+ var m = hm % 100, h = (hm - m) / 100;
2388
+ return h * 60 + m;
2389
+ }
2390
+ }
2391
+
2392
+ // date and time from ref 2822 format
2393
+ function configFromRFC2822(config) {
2394
+ var match = rfc2822.exec(preprocessRFC2822(config._i));
2395
+ if (match) {
2396
+ var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
2397
+ if (!checkWeekday(match[1], parsedArray, config)) {
2398
+ return;
2399
+ }
2400
+
2401
+ config._a = parsedArray;
2402
+ config._tzm = calculateOffset(match[8], match[9], match[10]);
2403
+
2404
+ config._d = createUTCDate.apply(null, config._a);
2405
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2406
+
2407
+ getParsingFlags(config).rfc2822 = true;
2408
+ } else {
2409
+ config._isValid = false;
2410
+ }
2411
+ }
2412
+
2413
+ // date from iso format or fallback
2414
+ function configFromString(config) {
2415
+ var matched = aspNetJsonRegex.exec(config._i);
2416
+
2417
+ if (matched !== null) {
2418
+ config._d = new Date(+matched[1]);
2419
+ return;
2420
+ }
2421
+
2422
+ configFromISO(config);
2423
+ if (config._isValid === false) {
2424
+ delete config._isValid;
2425
+ } else {
2426
+ return;
2427
+ }
2428
+
2429
+ configFromRFC2822(config);
2430
+ if (config._isValid === false) {
2431
+ delete config._isValid;
2432
+ } else {
2433
+ return;
2434
+ }
2435
+
2436
+ // Final attempt, use Input Fallback
2437
+ hooks.createFromInputFallback(config);
2438
+ }
2439
+
2440
+ hooks.createFromInputFallback = deprecate(
2441
+ 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
2442
+ 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
2443
+ 'discouraged and will be removed in an upcoming major release. Please refer to ' +
2444
+ 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
2445
+ function (config) {
2446
+ config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
2447
+ }
2448
+ );
2449
+
2450
+ // constant that refers to the ISO standard
2451
+ hooks.ISO_8601 = function () {};
2452
+
2453
+ // constant that refers to the RFC 2822 form
2454
+ hooks.RFC_2822 = function () {};
2455
+
2456
+ // date from string and format string
2457
+ function configFromStringAndFormat(config) {
2458
+ // TODO: Move this to another part of the creation flow to prevent circular deps
2459
+ if (config._f === hooks.ISO_8601) {
2460
+ configFromISO(config);
2461
+ return;
2462
+ }
2463
+ if (config._f === hooks.RFC_2822) {
2464
+ configFromRFC2822(config);
2465
+ return;
2466
+ }
2467
+ config._a = [];
2468
+ getParsingFlags(config).empty = true;
2469
+
2470
+ // This array is used to make a Date, either with `new Date` or `Date.UTC`
2471
+ var string = '' + config._i,
2472
+ i, parsedInput, tokens, token, skipped,
2473
+ stringLength = string.length,
2474
+ totalParsedInputLength = 0;
2475
+
2476
+ tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
2477
+
2478
+ for (i = 0; i < tokens.length; i++) {
2479
+ token = tokens[i];
2480
+ parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
2481
+ // console.log('token', token, 'parsedInput', parsedInput,
2482
+ // 'regex', getParseRegexForToken(token, config));
2483
+ if (parsedInput) {
2484
+ skipped = string.substr(0, string.indexOf(parsedInput));
2485
+ if (skipped.length > 0) {
2486
+ getParsingFlags(config).unusedInput.push(skipped);
2487
+ }
2488
+ string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
2489
+ totalParsedInputLength += parsedInput.length;
2490
+ }
2491
+ // don't parse if it's not a known token
2492
+ if (formatTokenFunctions[token]) {
2493
+ if (parsedInput) {
2494
+ getParsingFlags(config).empty = false;
2495
+ }
2496
+ else {
2497
+ getParsingFlags(config).unusedTokens.push(token);
2498
+ }
2499
+ addTimeToArrayFromToken(token, parsedInput, config);
2500
+ }
2501
+ else if (config._strict && !parsedInput) {
2502
+ getParsingFlags(config).unusedTokens.push(token);
2503
+ }
2504
+ }
2505
+
2506
+ // add remaining unparsed input length to the string
2507
+ getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
2508
+ if (string.length > 0) {
2509
+ getParsingFlags(config).unusedInput.push(string);
2510
+ }
2511
+
2512
+ // clear _12h flag if hour is <= 12
2513
+ if (config._a[HOUR] <= 12 &&
2514
+ getParsingFlags(config).bigHour === true &&
2515
+ config._a[HOUR] > 0) {
2516
+ getParsingFlags(config).bigHour = undefined;
2517
+ }
2518
+
2519
+ getParsingFlags(config).parsedDateParts = config._a.slice(0);
2520
+ getParsingFlags(config).meridiem = config._meridiem;
2521
+ // handle meridiem
2522
+ config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
2523
+
2524
+ configFromArray(config);
2525
+ checkOverflow(config);
2526
+ }
2527
+
2528
+
2529
+ function meridiemFixWrap (locale, hour, meridiem) {
2530
+ var isPm;
2531
+
2532
+ if (meridiem == null) {
2533
+ // nothing to do
2534
+ return hour;
2535
+ }
2536
+ if (locale.meridiemHour != null) {
2537
+ return locale.meridiemHour(hour, meridiem);
2538
+ } else if (locale.isPM != null) {
2539
+ // Fallback
2540
+ isPm = locale.isPM(meridiem);
2541
+ if (isPm && hour < 12) {
2542
+ hour += 12;
2543
+ }
2544
+ if (!isPm && hour === 12) {
2545
+ hour = 0;
2546
+ }
2547
+ return hour;
2548
+ } else {
2549
+ // this is not supposed to happen
2550
+ return hour;
2551
+ }
2552
+ }
2553
+
2554
+ // date from string and array of format strings
2555
+ function configFromStringAndArray(config) {
2556
+ var tempConfig,
2557
+ bestMoment,
2558
+
2559
+ scoreToBeat,
2560
+ i,
2561
+ currentScore;
2562
+
2563
+ if (config._f.length === 0) {
2564
+ getParsingFlags(config).invalidFormat = true;
2565
+ config._d = new Date(NaN);
2566
+ return;
2567
+ }
2568
+
2569
+ for (i = 0; i < config._f.length; i++) {
2570
+ currentScore = 0;
2571
+ tempConfig = copyConfig({}, config);
2572
+ if (config._useUTC != null) {
2573
+ tempConfig._useUTC = config._useUTC;
2574
+ }
2575
+ tempConfig._f = config._f[i];
2576
+ configFromStringAndFormat(tempConfig);
2577
+
2578
+ if (!isValid(tempConfig)) {
2579
+ continue;
2580
+ }
2581
+
2582
+ // if there is any input that was not parsed add a penalty for that format
2583
+ currentScore += getParsingFlags(tempConfig).charsLeftOver;
2584
+
2585
+ //or tokens
2586
+ currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
2587
+
2588
+ getParsingFlags(tempConfig).score = currentScore;
2589
+
2590
+ if (scoreToBeat == null || currentScore < scoreToBeat) {
2591
+ scoreToBeat = currentScore;
2592
+ bestMoment = tempConfig;
2593
+ }
2594
+ }
2595
+
2596
+ extend(config, bestMoment || tempConfig);
2597
+ }
2598
+
2599
+ function configFromObject(config) {
2600
+ if (config._d) {
2601
+ return;
2602
+ }
2603
+
2604
+ var i = normalizeObjectUnits(config._i);
2605
+ config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
2606
+ return obj && parseInt(obj, 10);
2607
+ });
2608
+
2609
+ configFromArray(config);
2610
+ }
2611
+
2612
+ function createFromConfig (config) {
2613
+ var res = new Moment(checkOverflow(prepareConfig(config)));
2614
+ if (res._nextDay) {
2615
+ // Adding is smart enough around DST
2616
+ res.add(1, 'd');
2617
+ res._nextDay = undefined;
2618
+ }
2619
+
2620
+ return res;
2621
+ }
2622
+
2623
+ function prepareConfig (config) {
2624
+ var input = config._i,
2625
+ format = config._f;
2626
+
2627
+ config._locale = config._locale || getLocale(config._l);
2628
+
2629
+ if (input === null || (format === undefined && input === '')) {
2630
+ return createInvalid({nullInput: true});
2631
+ }
2632
+
2633
+ if (typeof input === 'string') {
2634
+ config._i = input = config._locale.preparse(input);
2635
+ }
2636
+
2637
+ if (isMoment(input)) {
2638
+ return new Moment(checkOverflow(input));
2639
+ } else if (isDate(input)) {
2640
+ config._d = input;
2641
+ } else if (isArray(format)) {
2642
+ configFromStringAndArray(config);
2643
+ } else if (format) {
2644
+ configFromStringAndFormat(config);
2645
+ } else {
2646
+ configFromInput(config);
2647
+ }
2648
+
2649
+ if (!isValid(config)) {
2650
+ config._d = null;
2651
+ }
2652
+
2653
+ return config;
2654
+ }
2655
+
2656
+ function configFromInput(config) {
2657
+ var input = config._i;
2658
+ if (isUndefined(input)) {
2659
+ config._d = new Date(hooks.now());
2660
+ } else if (isDate(input)) {
2661
+ config._d = new Date(input.valueOf());
2662
+ } else if (typeof input === 'string') {
2663
+ configFromString(config);
2664
+ } else if (isArray(input)) {
2665
+ config._a = map(input.slice(0), function (obj) {
2666
+ return parseInt(obj, 10);
2667
+ });
2668
+ configFromArray(config);
2669
+ } else if (isObject(input)) {
2670
+ configFromObject(config);
2671
+ } else if (isNumber(input)) {
2672
+ // from milliseconds
2673
+ config._d = new Date(input);
2674
+ } else {
2675
+ hooks.createFromInputFallback(config);
2676
+ }
2677
+ }
2678
+
2679
+ function createLocalOrUTC (input, format, locale, strict, isUTC) {
2680
+ var c = {};
2681
+
2682
+ if (locale === true || locale === false) {
2683
+ strict = locale;
2684
+ locale = undefined;
2685
+ }
2686
+
2687
+ if ((isObject(input) && isObjectEmpty(input)) ||
2688
+ (isArray(input) && input.length === 0)) {
2689
+ input = undefined;
2690
+ }
2691
+ // object construction must be done this way.
2692
+ // https://github.com/moment/moment/issues/1423
2693
+ c._isAMomentObject = true;
2694
+ c._useUTC = c._isUTC = isUTC;
2695
+ c._l = locale;
2696
+ c._i = input;
2697
+ c._f = format;
2698
+ c._strict = strict;
2699
+
2700
+ return createFromConfig(c);
2701
+ }
2702
+
2703
+ function createLocal (input, format, locale, strict) {
2704
+ return createLocalOrUTC(input, format, locale, strict, false);
2705
+ }
2706
+
2707
+ var prototypeMin = deprecate(
2708
+ 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
2709
+ function () {
2710
+ var other = createLocal.apply(null, arguments);
2711
+ if (this.isValid() && other.isValid()) {
2712
+ return other < this ? this : other;
2713
+ } else {
2714
+ return createInvalid();
2715
+ }
2716
+ }
2717
+ );
2718
+
2719
+ var prototypeMax = deprecate(
2720
+ 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
2721
+ function () {
2722
+ var other = createLocal.apply(null, arguments);
2723
+ if (this.isValid() && other.isValid()) {
2724
+ return other > this ? this : other;
2725
+ } else {
2726
+ return createInvalid();
2727
+ }
2728
+ }
2729
+ );
2730
+
2731
+ // Pick a moment m from moments so that m[fn](other) is true for all
2732
+ // other. This relies on the function fn to be transitive.
2733
+ //
2734
+ // moments should either be an array of moment objects or an array, whose
2735
+ // first element is an array of moment objects.
2736
+ function pickBy(fn, moments) {
2737
+ var res, i;
2738
+ if (moments.length === 1 && isArray(moments[0])) {
2739
+ moments = moments[0];
2740
+ }
2741
+ if (!moments.length) {
2742
+ return createLocal();
2743
+ }
2744
+ res = moments[0];
2745
+ for (i = 1; i < moments.length; ++i) {
2746
+ if (!moments[i].isValid() || moments[i][fn](res)) {
2747
+ res = moments[i];
2748
+ }
2749
+ }
2750
+ return res;
2751
+ }
2752
+
2753
+ // TODO: Use [].sort instead?
2754
+ function min () {
2755
+ var args = [].slice.call(arguments, 0);
2756
+
2757
+ return pickBy('isBefore', args);
2758
+ }
2759
+
2760
+ function max () {
2761
+ var args = [].slice.call(arguments, 0);
2762
+
2763
+ return pickBy('isAfter', args);
2764
+ }
2765
+
2766
+ var now = function () {
2767
+ return Date.now ? Date.now() : +(new Date());
2768
+ };
2769
+
2770
+ var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
2771
+
2772
+ function isDurationValid(m) {
2773
+ for (var key in m) {
2774
+ if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
2775
+ return false;
2776
+ }
2777
+ }
2778
+
2779
+ var unitHasDecimal = false;
2780
+ for (var i = 0; i < ordering.length; ++i) {
2781
+ if (m[ordering[i]]) {
2782
+ if (unitHasDecimal) {
2783
+ return false; // only allow non-integers for smallest unit
2784
+ }
2785
+ if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
2786
+ unitHasDecimal = true;
2787
+ }
2788
+ }
2789
+ }
2790
+
2791
+ return true;
2792
+ }
2793
+
2794
+ function isValid$1() {
2795
+ return this._isValid;
2796
+ }
2797
+
2798
+ function createInvalid$1() {
2799
+ return createDuration(NaN);
2800
+ }
2801
+
2802
+ function Duration (duration) {
2803
+ var normalizedInput = normalizeObjectUnits(duration),
2804
+ years = normalizedInput.year || 0,
2805
+ quarters = normalizedInput.quarter || 0,
2806
+ months = normalizedInput.month || 0,
2807
+ weeks = normalizedInput.week || 0,
2808
+ days = normalizedInput.day || 0,
2809
+ hours = normalizedInput.hour || 0,
2810
+ minutes = normalizedInput.minute || 0,
2811
+ seconds = normalizedInput.second || 0,
2812
+ milliseconds = normalizedInput.millisecond || 0;
2813
+
2814
+ this._isValid = isDurationValid(normalizedInput);
2815
+
2816
+ // representation for dateAddRemove
2817
+ this._milliseconds = +milliseconds +
2818
+ seconds * 1e3 + // 1000
2819
+ minutes * 6e4 + // 1000 * 60
2820
+ hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
2821
+ // Because of dateAddRemove treats 24 hours as different from a
2822
+ // day when working around DST, we need to store them separately
2823
+ this._days = +days +
2824
+ weeks * 7;
2825
+ // It is impossible to translate months into days without knowing
2826
+ // which months you are are talking about, so we have to store
2827
+ // it separately.
2828
+ this._months = +months +
2829
+ quarters * 3 +
2830
+ years * 12;
2831
+
2832
+ this._data = {};
2833
+
2834
+ this._locale = getLocale();
2835
+
2836
+ this._bubble();
2837
+ }
2838
+
2839
+ function isDuration (obj) {
2840
+ return obj instanceof Duration;
2841
+ }
2842
+
2843
+ function absRound (number) {
2844
+ if (number < 0) {
2845
+ return Math.round(-1 * number) * -1;
2846
+ } else {
2847
+ return Math.round(number);
2848
+ }
2849
+ }
2850
+
2851
+ // FORMATTING
2852
+
2853
+ function offset (token, separator) {
2854
+ addFormatToken(token, 0, 0, function () {
2855
+ var offset = this.utcOffset();
2856
+ var sign = '+';
2857
+ if (offset < 0) {
2858
+ offset = -offset;
2859
+ sign = '-';
2860
+ }
2861
+ return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
2862
+ });
2863
+ }
2864
+
2865
+ offset('Z', ':');
2866
+ offset('ZZ', '');
2867
+
2868
+ // PARSING
2869
+
2870
+ addRegexToken('Z', matchShortOffset);
2871
+ addRegexToken('ZZ', matchShortOffset);
2872
+ addParseToken(['Z', 'ZZ'], function (input, array, config) {
2873
+ config._useUTC = true;
2874
+ config._tzm = offsetFromString(matchShortOffset, input);
2875
+ });
2876
+
2877
+ // HELPERS
2878
+
2879
+ // timezone chunker
2880
+ // '+10:00' > ['10', '00']
2881
+ // '-1530' > ['-15', '30']
2882
+ var chunkOffset = /([\+\-]|\d\d)/gi;
2883
+
2884
+ function offsetFromString(matcher, string) {
2885
+ var matches = (string || '').match(matcher);
2886
+
2887
+ if (matches === null) {
2888
+ return null;
2889
+ }
2890
+
2891
+ var chunk = matches[matches.length - 1] || [];
2892
+ var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
2893
+ var minutes = +(parts[1] * 60) + toInt(parts[2]);
2894
+
2895
+ return minutes === 0 ?
2896
+ 0 :
2897
+ parts[0] === '+' ? minutes : -minutes;
2898
+ }
2899
+
2900
+ // Return a moment from input, that is local/utc/zone equivalent to model.
2901
+ function cloneWithOffset(input, model) {
2902
+ var res, diff;
2903
+ if (model._isUTC) {
2904
+ res = model.clone();
2905
+ diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
2906
+ // Use low-level api, because this fn is low-level api.
2907
+ res._d.setTime(res._d.valueOf() + diff);
2908
+ hooks.updateOffset(res, false);
2909
+ return res;
2910
+ } else {
2911
+ return createLocal(input).local();
2912
+ }
2913
+ }
2914
+
2915
+ function getDateOffset (m) {
2916
+ // On Firefox.24 Date#getTimezoneOffset returns a floating point.
2917
+ // https://github.com/moment/moment/pull/1871
2918
+ return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
2919
+ }
2920
+
2921
+ // HOOKS
2922
+
2923
+ // This function will be called whenever a moment is mutated.
2924
+ // It is intended to keep the offset in sync with the timezone.
2925
+ hooks.updateOffset = function () {};
2926
+
2927
+ // MOMENTS
2928
+
2929
+ // keepLocalTime = true means only change the timezone, without
2930
+ // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
2931
+ // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
2932
+ // +0200, so we adjust the time as needed, to be valid.
2933
+ //
2934
+ // Keeping the time actually adds/subtracts (one hour)
2935
+ // from the actual represented time. That is why we call updateOffset
2936
+ // a second time. In case it wants us to change the offset again
2937
+ // _changeInProgress == true case, then we have to adjust, because
2938
+ // there is no such time in the given timezone.
2939
+ function getSetOffset (input, keepLocalTime, keepMinutes) {
2940
+ var offset = this._offset || 0,
2941
+ localAdjust;
2942
+ if (!this.isValid()) {
2943
+ return input != null ? this : NaN;
2944
+ }
2945
+ if (input != null) {
2946
+ if (typeof input === 'string') {
2947
+ input = offsetFromString(matchShortOffset, input);
2948
+ if (input === null) {
2949
+ return this;
2950
+ }
2951
+ } else if (Math.abs(input) < 16 && !keepMinutes) {
2952
+ input = input * 60;
2953
+ }
2954
+ if (!this._isUTC && keepLocalTime) {
2955
+ localAdjust = getDateOffset(this);
2956
+ }
2957
+ this._offset = input;
2958
+ this._isUTC = true;
2959
+ if (localAdjust != null) {
2960
+ this.add(localAdjust, 'm');
2961
+ }
2962
+ if (offset !== input) {
2963
+ if (!keepLocalTime || this._changeInProgress) {
2964
+ addSubtract(this, createDuration(input - offset, 'm'), 1, false);
2965
+ } else if (!this._changeInProgress) {
2966
+ this._changeInProgress = true;
2967
+ hooks.updateOffset(this, true);
2968
+ this._changeInProgress = null;
2969
+ }
2970
+ }
2971
+ return this;
2972
+ } else {
2973
+ return this._isUTC ? offset : getDateOffset(this);
2974
+ }
2975
+ }
2976
+
2977
+ function getSetZone (input, keepLocalTime) {
2978
+ if (input != null) {
2979
+ if (typeof input !== 'string') {
2980
+ input = -input;
2981
+ }
2982
+
2983
+ this.utcOffset(input, keepLocalTime);
2984
+
2985
+ return this;
2986
+ } else {
2987
+ return -this.utcOffset();
2988
+ }
2989
+ }
2990
+
2991
+ function setOffsetToUTC (keepLocalTime) {
2992
+ return this.utcOffset(0, keepLocalTime);
2993
+ }
2994
+
2995
+ function setOffsetToLocal (keepLocalTime) {
2996
+ if (this._isUTC) {
2997
+ this.utcOffset(0, keepLocalTime);
2998
+ this._isUTC = false;
2999
+
3000
+ if (keepLocalTime) {
3001
+ this.subtract(getDateOffset(this), 'm');
3002
+ }
3003
+ }
3004
+ return this;
3005
+ }
3006
+
3007
+ function setOffsetToParsedOffset () {
3008
+ if (this._tzm != null) {
3009
+ this.utcOffset(this._tzm, false, true);
3010
+ } else if (typeof this._i === 'string') {
3011
+ var tZone = offsetFromString(matchOffset, this._i);
3012
+ if (tZone != null) {
3013
+ this.utcOffset(tZone);
3014
+ }
3015
+ else {
3016
+ this.utcOffset(0, true);
3017
+ }
3018
+ }
3019
+ return this;
3020
+ }
3021
+
3022
+ function hasAlignedHourOffset (input) {
3023
+ if (!this.isValid()) {
3024
+ return false;
3025
+ }
3026
+ input = input ? createLocal(input).utcOffset() : 0;
3027
+
3028
+ return (this.utcOffset() - input) % 60 === 0;
3029
+ }
3030
+
3031
+ function isDaylightSavingTime () {
3032
+ return (
3033
+ this.utcOffset() > this.clone().month(0).utcOffset() ||
3034
+ this.utcOffset() > this.clone().month(5).utcOffset()
3035
+ );
3036
+ }
3037
+
3038
+ function isDaylightSavingTimeShifted () {
3039
+ if (!isUndefined(this._isDSTShifted)) {
3040
+ return this._isDSTShifted;
3041
+ }
3042
+
3043
+ var c = {};
3044
+
3045
+ copyConfig(c, this);
3046
+ c = prepareConfig(c);
3047
+
3048
+ if (c._a) {
3049
+ var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
3050
+ this._isDSTShifted = this.isValid() &&
3051
+ compareArrays(c._a, other.toArray()) > 0;
3052
+ } else {
3053
+ this._isDSTShifted = false;
3054
+ }
3055
+
3056
+ return this._isDSTShifted;
3057
+ }
3058
+
3059
+ function isLocal () {
3060
+ return this.isValid() ? !this._isUTC : false;
3061
+ }
3062
+
3063
+ function isUtcOffset () {
3064
+ return this.isValid() ? this._isUTC : false;
3065
+ }
3066
+
3067
+ function isUtc () {
3068
+ return this.isValid() ? this._isUTC && this._offset === 0 : false;
3069
+ }
3070
+
3071
+ // ASP.NET json date format regex
3072
+ var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
3073
+
3074
+ // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
3075
+ // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3076
+ // and further modified to allow for strings containing both week and day
3077
+ var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
3078
+
3079
+ function createDuration (input, key) {
3080
+ var duration = input,
3081
+ // matching against regexp is expensive, do it on demand
3082
+ match = null,
3083
+ sign,
3084
+ ret,
3085
+ diffRes;
3086
+
3087
+ if (isDuration(input)) {
3088
+ duration = {
3089
+ ms : input._milliseconds,
3090
+ d : input._days,
3091
+ M : input._months
3092
+ };
3093
+ } else if (isNumber(input)) {
3094
+ duration = {};
3095
+ if (key) {
3096
+ duration[key] = input;
3097
+ } else {
3098
+ duration.milliseconds = input;
3099
+ }
3100
+ } else if (!!(match = aspNetRegex.exec(input))) {
3101
+ sign = (match[1] === '-') ? -1 : 1;
3102
+ duration = {
3103
+ y : 0,
3104
+ d : toInt(match[DATE]) * sign,
3105
+ h : toInt(match[HOUR]) * sign,
3106
+ m : toInt(match[MINUTE]) * sign,
3107
+ s : toInt(match[SECOND]) * sign,
3108
+ ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
3109
+ };
3110
+ } else if (!!(match = isoRegex.exec(input))) {
3111
+ sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
3112
+ duration = {
3113
+ y : parseIso(match[2], sign),
3114
+ M : parseIso(match[3], sign),
3115
+ w : parseIso(match[4], sign),
3116
+ d : parseIso(match[5], sign),
3117
+ h : parseIso(match[6], sign),
3118
+ m : parseIso(match[7], sign),
3119
+ s : parseIso(match[8], sign)
3120
+ };
3121
+ } else if (duration == null) {// checks for null or undefined
3122
+ duration = {};
3123
+ } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
3124
+ diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
3125
+
3126
+ duration = {};
3127
+ duration.ms = diffRes.milliseconds;
3128
+ duration.M = diffRes.months;
3129
+ }
3130
+
3131
+ ret = new Duration(duration);
3132
+
3133
+ if (isDuration(input) && hasOwnProp(input, '_locale')) {
3134
+ ret._locale = input._locale;
3135
+ }
3136
+
3137
+ return ret;
3138
+ }
3139
+
3140
+ createDuration.fn = Duration.prototype;
3141
+ createDuration.invalid = createInvalid$1;
3142
+
3143
+ function parseIso (inp, sign) {
3144
+ // We'd normally use ~~inp for this, but unfortunately it also
3145
+ // converts floats to ints.
3146
+ // inp may be undefined, so careful calling replace on it.
3147
+ var res = inp && parseFloat(inp.replace(',', '.'));
3148
+ // apply sign while we're at it
3149
+ return (isNaN(res) ? 0 : res) * sign;
3150
+ }
3151
+
3152
+ function positiveMomentsDifference(base, other) {
3153
+ var res = {milliseconds: 0, months: 0};
3154
+
3155
+ res.months = other.month() - base.month() +
3156
+ (other.year() - base.year()) * 12;
3157
+ if (base.clone().add(res.months, 'M').isAfter(other)) {
3158
+ --res.months;
3159
+ }
3160
+
3161
+ res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
3162
+
3163
+ return res;
3164
+ }
3165
+
3166
+ function momentsDifference(base, other) {
3167
+ var res;
3168
+ if (!(base.isValid() && other.isValid())) {
3169
+ return {milliseconds: 0, months: 0};
3170
+ }
3171
+
3172
+ other = cloneWithOffset(other, base);
3173
+ if (base.isBefore(other)) {
3174
+ res = positiveMomentsDifference(base, other);
3175
+ } else {
3176
+ res = positiveMomentsDifference(other, base);
3177
+ res.milliseconds = -res.milliseconds;
3178
+ res.months = -res.months;
3179
+ }
3180
+
3181
+ return res;
3182
+ }
3183
+
3184
+ // TODO: remove 'name' arg after deprecation is removed
3185
+ function createAdder(direction, name) {
3186
+ return function (val, period) {
3187
+ var dur, tmp;
3188
+ //invert the arguments, but complain about it
3189
+ if (period !== null && !isNaN(+period)) {
3190
+ deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
3191
+ 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
3192
+ tmp = val; val = period; period = tmp;
3193
+ }
3194
+
3195
+ val = typeof val === 'string' ? +val : val;
3196
+ dur = createDuration(val, period);
3197
+ addSubtract(this, dur, direction);
3198
+ return this;
3199
+ };
3200
+ }
3201
+
3202
+ function addSubtract (mom, duration, isAdding, updateOffset) {
3203
+ var milliseconds = duration._milliseconds,
3204
+ days = absRound(duration._days),
3205
+ months = absRound(duration._months);
3206
+
3207
+ if (!mom.isValid()) {
3208
+ // No op
3209
+ return;
3210
+ }
3211
+
3212
+ updateOffset = updateOffset == null ? true : updateOffset;
3213
+
3214
+ if (months) {
3215
+ setMonth(mom, get(mom, 'Month') + months * isAdding);
3216
+ }
3217
+ if (days) {
3218
+ set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3219
+ }
3220
+ if (milliseconds) {
3221
+ mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
3222
+ }
3223
+ if (updateOffset) {
3224
+ hooks.updateOffset(mom, days || months);
3225
+ }
3226
+ }
3227
+
3228
+ var add = createAdder(1, 'add');
3229
+ var subtract = createAdder(-1, 'subtract');
3230
+
3231
+ function getCalendarFormat(myMoment, now) {
3232
+ var diff = myMoment.diff(now, 'days', true);
3233
+ return diff < -6 ? 'sameElse' :
3234
+ diff < -1 ? 'lastWeek' :
3235
+ diff < 0 ? 'lastDay' :
3236
+ diff < 1 ? 'sameDay' :
3237
+ diff < 2 ? 'nextDay' :
3238
+ diff < 7 ? 'nextWeek' : 'sameElse';
3239
+ }
3240
+
3241
+ function calendar$1 (time, formats) {
3242
+ // We want to compare the start of today, vs this.
3243
+ // Getting start-of-today depends on whether we're local/utc/offset or not.
3244
+ var now = time || createLocal(),
3245
+ sod = cloneWithOffset(now, this).startOf('day'),
3246
+ format = hooks.calendarFormat(this, sod) || 'sameElse';
3247
+
3248
+ var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
3249
+
3250
+ return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
3251
+ }
3252
+
3253
+ function clone () {
3254
+ return new Moment(this);
3255
+ }
3256
+
3257
+ function isAfter (input, units) {
3258
+ var localInput = isMoment(input) ? input : createLocal(input);
3259
+ if (!(this.isValid() && localInput.isValid())) {
3260
+ return false;
3261
+ }
3262
+ units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3263
+ if (units === 'millisecond') {
3264
+ return this.valueOf() > localInput.valueOf();
3265
+ } else {
3266
+ return localInput.valueOf() < this.clone().startOf(units).valueOf();
3267
+ }
3268
+ }
3269
+
3270
+ function isBefore (input, units) {
3271
+ var localInput = isMoment(input) ? input : createLocal(input);
3272
+ if (!(this.isValid() && localInput.isValid())) {
3273
+ return false;
3274
+ }
3275
+ units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
3276
+ if (units === 'millisecond') {
3277
+ return this.valueOf() < localInput.valueOf();
3278
+ } else {
3279
+ return this.clone().endOf(units).valueOf() < localInput.valueOf();
3280
+ }
3281
+ }
3282
+
3283
+ function isBetween (from, to, units, inclusivity) {
3284
+ inclusivity = inclusivity || '()';
3285
+ return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
3286
+ (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
3287
+ }
3288
+
3289
+ function isSame (input, units) {
3290
+ var localInput = isMoment(input) ? input : createLocal(input),
3291
+ inputMs;
3292
+ if (!(this.isValid() && localInput.isValid())) {
3293
+ return false;
3294
+ }
3295
+ units = normalizeUnits(units || 'millisecond');
3296
+ if (units === 'millisecond') {
3297
+ return this.valueOf() === localInput.valueOf();
3298
+ } else {
3299
+ inputMs = localInput.valueOf();
3300
+ return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
3301
+ }
3302
+ }
3303
+
3304
+ function isSameOrAfter (input, units) {
3305
+ return this.isSame(input, units) || this.isAfter(input,units);
3306
+ }
3307
+
3308
+ function isSameOrBefore (input, units) {
3309
+ return this.isSame(input, units) || this.isBefore(input,units);
3310
+ }
3311
+
3312
+ function diff (input, units, asFloat) {
3313
+ var that,
3314
+ zoneDelta,
3315
+ output;
3316
+
3317
+ if (!this.isValid()) {
3318
+ return NaN;
3319
+ }
3320
+
3321
+ that = cloneWithOffset(input, this);
3322
+
3323
+ if (!that.isValid()) {
3324
+ return NaN;
3325
+ }
3326
+
3327
+ zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
3328
+
3329
+ units = normalizeUnits(units);
3330
+
3331
+ switch (units) {
3332
+ case 'year': output = monthDiff(this, that) / 12; break;
3333
+ case 'month': output = monthDiff(this, that); break;
3334
+ case 'quarter': output = monthDiff(this, that) / 3; break;
3335
+ case 'second': output = (this - that) / 1e3; break; // 1000
3336
+ case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
3337
+ case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
3338
+ case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
3339
+ case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
3340
+ default: output = this - that;
3341
+ }
3342
+
3343
+ return asFloat ? output : absFloor(output);
3344
+ }
3345
+
3346
+ function monthDiff (a, b) {
3347
+ // difference in months
3348
+ var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
3349
+ // b is in (anchor - 1 month, anchor + 1 month)
3350
+ anchor = a.clone().add(wholeMonthDiff, 'months'),
3351
+ anchor2, adjust;
3352
+
3353
+ if (b - anchor < 0) {
3354
+ anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
3355
+ // linear across the month
3356
+ adjust = (b - anchor) / (anchor - anchor2);
3357
+ } else {
3358
+ anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
3359
+ // linear across the month
3360
+ adjust = (b - anchor) / (anchor2 - anchor);
3361
+ }
3362
+
3363
+ //check for negative zero, return zero if negative zero
3364
+ return -(wholeMonthDiff + adjust) || 0;
3365
+ }
3366
+
3367
+ hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
3368
+ hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
3369
+
3370
+ function toString () {
3371
+ return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3372
+ }
3373
+
3374
+ function toISOString(keepOffset) {
3375
+ if (!this.isValid()) {
3376
+ return null;
3377
+ }
3378
+ var utc = keepOffset !== true;
3379
+ var m = utc ? this.clone().utc() : this;
3380
+ if (m.year() < 0 || m.year() > 9999) {
3381
+ return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
3382
+ }
3383
+ if (isFunction(Date.prototype.toISOString)) {
3384
+ // native implementation is ~50x faster, use it when we can
3385
+ if (utc) {
3386
+ return this.toDate().toISOString();
3387
+ } else {
3388
+ return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
3389
+ }
3390
+ }
3391
+ return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
3392
+ }
3393
+
3394
+ /**
3395
+ * Return a human readable representation of a moment that can
3396
+ * also be evaluated to get a new moment which is the same
3397
+ *
3398
+ * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
3399
+ */
3400
+ function inspect () {
3401
+ if (!this.isValid()) {
3402
+ return 'moment.invalid(/* ' + this._i + ' */)';
3403
+ }
3404
+ var func = 'moment';
3405
+ var zone = '';
3406
+ if (!this.isLocal()) {
3407
+ func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
3408
+ zone = 'Z';
3409
+ }
3410
+ var prefix = '[' + func + '("]';
3411
+ var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
3412
+ var datetime = '-MM-DD[T]HH:mm:ss.SSS';
3413
+ var suffix = zone + '[")]';
3414
+
3415
+ return this.format(prefix + year + datetime + suffix);
3416
+ }
3417
+
3418
+ function format (inputString) {
3419
+ if (!inputString) {
3420
+ inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
3421
+ }
3422
+ var output = formatMoment(this, inputString);
3423
+ return this.localeData().postformat(output);
3424
+ }
3425
+
3426
+ function from (time, withoutSuffix) {
3427
+ if (this.isValid() &&
3428
+ ((isMoment(time) && time.isValid()) ||
3429
+ createLocal(time).isValid())) {
3430
+ return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
3431
+ } else {
3432
+ return this.localeData().invalidDate();
3433
+ }
3434
+ }
3435
+
3436
+ function fromNow (withoutSuffix) {
3437
+ return this.from(createLocal(), withoutSuffix);
3438
+ }
3439
+
3440
+ function to (time, withoutSuffix) {
3441
+ if (this.isValid() &&
3442
+ ((isMoment(time) && time.isValid()) ||
3443
+ createLocal(time).isValid())) {
3444
+ return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
3445
+ } else {
3446
+ return this.localeData().invalidDate();
3447
+ }
3448
+ }
3449
+
3450
+ function toNow (withoutSuffix) {
3451
+ return this.to(createLocal(), withoutSuffix);
3452
+ }
3453
+
3454
+ // If passed a locale key, it will set the locale for this
3455
+ // instance. Otherwise, it will return the locale configuration
3456
+ // variables for this instance.
3457
+ function locale (key) {
3458
+ var newLocaleData;
3459
+
3460
+ if (key === undefined) {
3461
+ return this._locale._abbr;
3462
+ } else {
3463
+ newLocaleData = getLocale(key);
3464
+ if (newLocaleData != null) {
3465
+ this._locale = newLocaleData;
3466
+ }
3467
+ return this;
3468
+ }
3469
+ }
3470
+
3471
+ var lang = deprecate(
3472
+ 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
3473
+ function (key) {
3474
+ if (key === undefined) {
3475
+ return this.localeData();
3476
+ } else {
3477
+ return this.locale(key);
3478
+ }
3479
+ }
3480
+ );
3481
+
3482
+ function localeData () {
3483
+ return this._locale;
3484
+ }
3485
+
3486
+ function startOf (units) {
3487
+ units = normalizeUnits(units);
3488
+ // the following switch intentionally omits break keywords
3489
+ // to utilize falling through the cases.
3490
+ switch (units) {
3491
+ case 'year':
3492
+ this.month(0);
3493
+ /* falls through */
3494
+ case 'quarter':
3495
+ case 'month':
3496
+ this.date(1);
3497
+ /* falls through */
3498
+ case 'week':
3499
+ case 'isoWeek':
3500
+ case 'day':
3501
+ case 'date':
3502
+ this.hours(0);
3503
+ /* falls through */
3504
+ case 'hour':
3505
+ this.minutes(0);
3506
+ /* falls through */
3507
+ case 'minute':
3508
+ this.seconds(0);
3509
+ /* falls through */
3510
+ case 'second':
3511
+ this.milliseconds(0);
3512
+ }
3513
+
3514
+ // weeks are a special case
3515
+ if (units === 'week') {
3516
+ this.weekday(0);
3517
+ }
3518
+ if (units === 'isoWeek') {
3519
+ this.isoWeekday(1);
3520
+ }
3521
+
3522
+ // quarters are also special
3523
+ if (units === 'quarter') {
3524
+ this.month(Math.floor(this.month() / 3) * 3);
3525
+ }
3526
+
3527
+ return this;
3528
+ }
3529
+
3530
+ function endOf (units) {
3531
+ units = normalizeUnits(units);
3532
+ if (units === undefined || units === 'millisecond') {
3533
+ return this;
3534
+ }
3535
+
3536
+ // 'date' is an alias for 'day', so it should be considered as such.
3537
+ if (units === 'date') {
3538
+ units = 'day';
3539
+ }
3540
+
3541
+ return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
3542
+ }
3543
+
3544
+ function valueOf () {
3545
+ return this._d.valueOf() - ((this._offset || 0) * 60000);
3546
+ }
3547
+
3548
+ function unix () {
3549
+ return Math.floor(this.valueOf() / 1000);
3550
+ }
3551
+
3552
+ function toDate () {
3553
+ return new Date(this.valueOf());
3554
+ }
3555
+
3556
+ function toArray () {
3557
+ var m = this;
3558
+ return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
3559
+ }
3560
+
3561
+ function toObject () {
3562
+ var m = this;
3563
+ return {
3564
+ years: m.year(),
3565
+ months: m.month(),
3566
+ date: m.date(),
3567
+ hours: m.hours(),
3568
+ minutes: m.minutes(),
3569
+ seconds: m.seconds(),
3570
+ milliseconds: m.milliseconds()
3571
+ };
3572
+ }
3573
+
3574
+ function toJSON () {
3575
+ // new Date(NaN).toJSON() === null
3576
+ return this.isValid() ? this.toISOString() : null;
3577
+ }
3578
+
3579
+ function isValid$2 () {
3580
+ return isValid(this);
3581
+ }
3582
+
3583
+ function parsingFlags () {
3584
+ return extend({}, getParsingFlags(this));
3585
+ }
3586
+
3587
+ function invalidAt () {
3588
+ return getParsingFlags(this).overflow;
3589
+ }
3590
+
3591
+ function creationData() {
3592
+ return {
3593
+ input: this._i,
3594
+ format: this._f,
3595
+ locale: this._locale,
3596
+ isUTC: this._isUTC,
3597
+ strict: this._strict
3598
+ };
3599
+ }
3600
+
3601
+ // FORMATTING
3602
+
3603
+ addFormatToken(0, ['gg', 2], 0, function () {
3604
+ return this.weekYear() % 100;
3605
+ });
3606
+
3607
+ addFormatToken(0, ['GG', 2], 0, function () {
3608
+ return this.isoWeekYear() % 100;
3609
+ });
3610
+
3611
+ function addWeekYearFormatToken (token, getter) {
3612
+ addFormatToken(0, [token, token.length], 0, getter);
3613
+ }
3614
+
3615
+ addWeekYearFormatToken('gggg', 'weekYear');
3616
+ addWeekYearFormatToken('ggggg', 'weekYear');
3617
+ addWeekYearFormatToken('GGGG', 'isoWeekYear');
3618
+ addWeekYearFormatToken('GGGGG', 'isoWeekYear');
3619
+
3620
+ // ALIASES
3621
+
3622
+ addUnitAlias('weekYear', 'gg');
3623
+ addUnitAlias('isoWeekYear', 'GG');
3624
+
3625
+ // PRIORITY
3626
+
3627
+ addUnitPriority('weekYear', 1);
3628
+ addUnitPriority('isoWeekYear', 1);
3629
+
3630
+
3631
+ // PARSING
3632
+
3633
+ addRegexToken('G', matchSigned);
3634
+ addRegexToken('g', matchSigned);
3635
+ addRegexToken('GG', match1to2, match2);
3636
+ addRegexToken('gg', match1to2, match2);
3637
+ addRegexToken('GGGG', match1to4, match4);
3638
+ addRegexToken('gggg', match1to4, match4);
3639
+ addRegexToken('GGGGG', match1to6, match6);
3640
+ addRegexToken('ggggg', match1to6, match6);
3641
+
3642
+ addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
3643
+ week[token.substr(0, 2)] = toInt(input);
3644
+ });
3645
+
3646
+ addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
3647
+ week[token] = hooks.parseTwoDigitYear(input);
3648
+ });
3649
+
3650
+ // MOMENTS
3651
+
3652
+ function getSetWeekYear (input) {
3653
+ return getSetWeekYearHelper.call(this,
3654
+ input,
3655
+ this.week(),
3656
+ this.weekday(),
3657
+ this.localeData()._week.dow,
3658
+ this.localeData()._week.doy);
3659
+ }
3660
+
3661
+ function getSetISOWeekYear (input) {
3662
+ return getSetWeekYearHelper.call(this,
3663
+ input, this.isoWeek(), this.isoWeekday(), 1, 4);
3664
+ }
3665
+
3666
+ function getISOWeeksInYear () {
3667
+ return weeksInYear(this.year(), 1, 4);
3668
+ }
3669
+
3670
+ function getWeeksInYear () {
3671
+ var weekInfo = this.localeData()._week;
3672
+ return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
3673
+ }
3674
+
3675
+ function getSetWeekYearHelper(input, week, weekday, dow, doy) {
3676
+ var weeksTarget;
3677
+ if (input == null) {
3678
+ return weekOfYear(this, dow, doy).year;
3679
+ } else {
3680
+ weeksTarget = weeksInYear(input, dow, doy);
3681
+ if (week > weeksTarget) {
3682
+ week = weeksTarget;
3683
+ }
3684
+ return setWeekAll.call(this, input, week, weekday, dow, doy);
3685
+ }
3686
+ }
3687
+
3688
+ function setWeekAll(weekYear, week, weekday, dow, doy) {
3689
+ var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
3690
+ date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
3691
+
3692
+ this.year(date.getUTCFullYear());
3693
+ this.month(date.getUTCMonth());
3694
+ this.date(date.getUTCDate());
3695
+ return this;
3696
+ }
3697
+
3698
+ // FORMATTING
3699
+
3700
+ addFormatToken('Q', 0, 'Qo', 'quarter');
3701
+
3702
+ // ALIASES
3703
+
3704
+ addUnitAlias('quarter', 'Q');
3705
+
3706
+ // PRIORITY
3707
+
3708
+ addUnitPriority('quarter', 7);
3709
+
3710
+ // PARSING
3711
+
3712
+ addRegexToken('Q', match1);
3713
+ addParseToken('Q', function (input, array) {
3714
+ array[MONTH] = (toInt(input) - 1) * 3;
3715
+ });
3716
+
3717
+ // MOMENTS
3718
+
3719
+ function getSetQuarter (input) {
3720
+ return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
3721
+ }
3722
+
3723
+ // FORMATTING
3724
+
3725
+ addFormatToken('D', ['DD', 2], 'Do', 'date');
3726
+
3727
+ // ALIASES
3728
+
3729
+ addUnitAlias('date', 'D');
3730
+
3731
+ // PRIORITY
3732
+ addUnitPriority('date', 9);
3733
+
3734
+ // PARSING
3735
+
3736
+ addRegexToken('D', match1to2);
3737
+ addRegexToken('DD', match1to2, match2);
3738
+ addRegexToken('Do', function (isStrict, locale) {
3739
+ // TODO: Remove "ordinalParse" fallback in next major release.
3740
+ return isStrict ?
3741
+ (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
3742
+ locale._dayOfMonthOrdinalParseLenient;
3743
+ });
3744
+
3745
+ addParseToken(['D', 'DD'], DATE);
3746
+ addParseToken('Do', function (input, array) {
3747
+ array[DATE] = toInt(input.match(match1to2)[0]);
3748
+ });
3749
+
3750
+ // MOMENTS
3751
+
3752
+ var getSetDayOfMonth = makeGetSet('Date', true);
3753
+
3754
+ // FORMATTING
3755
+
3756
+ addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
3757
+
3758
+ // ALIASES
3759
+
3760
+ addUnitAlias('dayOfYear', 'DDD');
3761
+
3762
+ // PRIORITY
3763
+ addUnitPriority('dayOfYear', 4);
3764
+
3765
+ // PARSING
3766
+
3767
+ addRegexToken('DDD', match1to3);
3768
+ addRegexToken('DDDD', match3);
3769
+ addParseToken(['DDD', 'DDDD'], function (input, array, config) {
3770
+ config._dayOfYear = toInt(input);
3771
+ });
3772
+
3773
+ // HELPERS
3774
+
3775
+ // MOMENTS
3776
+
3777
+ function getSetDayOfYear (input) {
3778
+ var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
3779
+ return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
3780
+ }
3781
+
3782
+ // FORMATTING
3783
+
3784
+ addFormatToken('m', ['mm', 2], 0, 'minute');
3785
+
3786
+ // ALIASES
3787
+
3788
+ addUnitAlias('minute', 'm');
3789
+
3790
+ // PRIORITY
3791
+
3792
+ addUnitPriority('minute', 14);
3793
+
3794
+ // PARSING
3795
+
3796
+ addRegexToken('m', match1to2);
3797
+ addRegexToken('mm', match1to2, match2);
3798
+ addParseToken(['m', 'mm'], MINUTE);
3799
+
3800
+ // MOMENTS
3801
+
3802
+ var getSetMinute = makeGetSet('Minutes', false);
3803
+
3804
+ // FORMATTING
3805
+
3806
+ addFormatToken('s', ['ss', 2], 0, 'second');
3807
+
3808
+ // ALIASES
3809
+
3810
+ addUnitAlias('second', 's');
3811
+
3812
+ // PRIORITY
3813
+
3814
+ addUnitPriority('second', 15);
3815
+
3816
+ // PARSING
3817
+
3818
+ addRegexToken('s', match1to2);
3819
+ addRegexToken('ss', match1to2, match2);
3820
+ addParseToken(['s', 'ss'], SECOND);
3821
+
3822
+ // MOMENTS
3823
+
3824
+ var getSetSecond = makeGetSet('Seconds', false);
3825
+
3826
+ // FORMATTING
3827
+
3828
+ addFormatToken('S', 0, 0, function () {
3829
+ return ~~(this.millisecond() / 100);
3830
+ });
3831
+
3832
+ addFormatToken(0, ['SS', 2], 0, function () {
3833
+ return ~~(this.millisecond() / 10);
3834
+ });
3835
+
3836
+ addFormatToken(0, ['SSS', 3], 0, 'millisecond');
3837
+ addFormatToken(0, ['SSSS', 4], 0, function () {
3838
+ return this.millisecond() * 10;
3839
+ });
3840
+ addFormatToken(0, ['SSSSS', 5], 0, function () {
3841
+ return this.millisecond() * 100;
3842
+ });
3843
+ addFormatToken(0, ['SSSSSS', 6], 0, function () {
3844
+ return this.millisecond() * 1000;
3845
+ });
3846
+ addFormatToken(0, ['SSSSSSS', 7], 0, function () {
3847
+ return this.millisecond() * 10000;
3848
+ });
3849
+ addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
3850
+ return this.millisecond() * 100000;
3851
+ });
3852
+ addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
3853
+ return this.millisecond() * 1000000;
3854
+ });
3855
+
3856
+
3857
+ // ALIASES
3858
+
3859
+ addUnitAlias('millisecond', 'ms');
3860
+
3861
+ // PRIORITY
3862
+
3863
+ addUnitPriority('millisecond', 16);
3864
+
3865
+ // PARSING
3866
+
3867
+ addRegexToken('S', match1to3, match1);
3868
+ addRegexToken('SS', match1to3, match2);
3869
+ addRegexToken('SSS', match1to3, match3);
3870
+
3871
+ var token;
3872
+ for (token = 'SSSS'; token.length <= 9; token += 'S') {
3873
+ addRegexToken(token, matchUnsigned);
3874
+ }
3875
+
3876
+ function parseMs(input, array) {
3877
+ array[MILLISECOND] = toInt(('0.' + input) * 1000);
3878
+ }
3879
+
3880
+ for (token = 'S'; token.length <= 9; token += 'S') {
3881
+ addParseToken(token, parseMs);
3882
+ }
3883
+ // MOMENTS
3884
+
3885
+ var getSetMillisecond = makeGetSet('Milliseconds', false);
3886
+
3887
+ // FORMATTING
3888
+
3889
+ addFormatToken('z', 0, 0, 'zoneAbbr');
3890
+ addFormatToken('zz', 0, 0, 'zoneName');
3891
+
3892
+ // MOMENTS
3893
+
3894
+ function getZoneAbbr () {
3895
+ return this._isUTC ? 'UTC' : '';
3896
+ }
3897
+
3898
+ function getZoneName () {
3899
+ return this._isUTC ? 'Coordinated Universal Time' : '';
3900
+ }
3901
+
3902
+ var proto = Moment.prototype;
3903
+
3904
+ proto.add = add;
3905
+ proto.calendar = calendar$1;
3906
+ proto.clone = clone;
3907
+ proto.diff = diff;
3908
+ proto.endOf = endOf;
3909
+ proto.format = format;
3910
+ proto.from = from;
3911
+ proto.fromNow = fromNow;
3912
+ proto.to = to;
3913
+ proto.toNow = toNow;
3914
+ proto.get = stringGet;
3915
+ proto.invalidAt = invalidAt;
3916
+ proto.isAfter = isAfter;
3917
+ proto.isBefore = isBefore;
3918
+ proto.isBetween = isBetween;
3919
+ proto.isSame = isSame;
3920
+ proto.isSameOrAfter = isSameOrAfter;
3921
+ proto.isSameOrBefore = isSameOrBefore;
3922
+ proto.isValid = isValid$2;
3923
+ proto.lang = lang;
3924
+ proto.locale = locale;
3925
+ proto.localeData = localeData;
3926
+ proto.max = prototypeMax;
3927
+ proto.min = prototypeMin;
3928
+ proto.parsingFlags = parsingFlags;
3929
+ proto.set = stringSet;
3930
+ proto.startOf = startOf;
3931
+ proto.subtract = subtract;
3932
+ proto.toArray = toArray;
3933
+ proto.toObject = toObject;
3934
+ proto.toDate = toDate;
3935
+ proto.toISOString = toISOString;
3936
+ proto.inspect = inspect;
3937
+ proto.toJSON = toJSON;
3938
+ proto.toString = toString;
3939
+ proto.unix = unix;
3940
+ proto.valueOf = valueOf;
3941
+ proto.creationData = creationData;
3942
+ proto.year = getSetYear;
3943
+ proto.isLeapYear = getIsLeapYear;
3944
+ proto.weekYear = getSetWeekYear;
3945
+ proto.isoWeekYear = getSetISOWeekYear;
3946
+ proto.quarter = proto.quarters = getSetQuarter;
3947
+ proto.month = getSetMonth;
3948
+ proto.daysInMonth = getDaysInMonth;
3949
+ proto.week = proto.weeks = getSetWeek;
3950
+ proto.isoWeek = proto.isoWeeks = getSetISOWeek;
3951
+ proto.weeksInYear = getWeeksInYear;
3952
+ proto.isoWeeksInYear = getISOWeeksInYear;
3953
+ proto.date = getSetDayOfMonth;
3954
+ proto.day = proto.days = getSetDayOfWeek;
3955
+ proto.weekday = getSetLocaleDayOfWeek;
3956
+ proto.isoWeekday = getSetISODayOfWeek;
3957
+ proto.dayOfYear = getSetDayOfYear;
3958
+ proto.hour = proto.hours = getSetHour;
3959
+ proto.minute = proto.minutes = getSetMinute;
3960
+ proto.second = proto.seconds = getSetSecond;
3961
+ proto.millisecond = proto.milliseconds = getSetMillisecond;
3962
+ proto.utcOffset = getSetOffset;
3963
+ proto.utc = setOffsetToUTC;
3964
+ proto.local = setOffsetToLocal;
3965
+ proto.parseZone = setOffsetToParsedOffset;
3966
+ proto.hasAlignedHourOffset = hasAlignedHourOffset;
3967
+ proto.isDST = isDaylightSavingTime;
3968
+ proto.isLocal = isLocal;
3969
+ proto.isUtcOffset = isUtcOffset;
3970
+ proto.isUtc = isUtc;
3971
+ proto.isUTC = isUtc;
3972
+ proto.zoneAbbr = getZoneAbbr;
3973
+ proto.zoneName = getZoneName;
3974
+ proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
3975
+ proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
3976
+ proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
3977
+ proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
3978
+ proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
3979
+
3980
+ function createUnix (input) {
3981
+ return createLocal(input * 1000);
3982
+ }
3983
+
3984
+ function createInZone () {
3985
+ return createLocal.apply(null, arguments).parseZone();
3986
+ }
3987
+
3988
+ function preParsePostFormat (string) {
3989
+ return string;
3990
+ }
3991
+
3992
+ var proto$1 = Locale.prototype;
3993
+
3994
+ proto$1.calendar = calendar;
3995
+ proto$1.longDateFormat = longDateFormat;
3996
+ proto$1.invalidDate = invalidDate;
3997
+ proto$1.ordinal = ordinal;
3998
+ proto$1.preparse = preParsePostFormat;
3999
+ proto$1.postformat = preParsePostFormat;
4000
+ proto$1.relativeTime = relativeTime;
4001
+ proto$1.pastFuture = pastFuture;
4002
+ proto$1.set = set;
4003
+
4004
+ proto$1.months = localeMonths;
4005
+ proto$1.monthsShort = localeMonthsShort;
4006
+ proto$1.monthsParse = localeMonthsParse;
4007
+ proto$1.monthsRegex = monthsRegex;
4008
+ proto$1.monthsShortRegex = monthsShortRegex;
4009
+ proto$1.week = localeWeek;
4010
+ proto$1.firstDayOfYear = localeFirstDayOfYear;
4011
+ proto$1.firstDayOfWeek = localeFirstDayOfWeek;
4012
+
4013
+ proto$1.weekdays = localeWeekdays;
4014
+ proto$1.weekdaysMin = localeWeekdaysMin;
4015
+ proto$1.weekdaysShort = localeWeekdaysShort;
4016
+ proto$1.weekdaysParse = localeWeekdaysParse;
4017
+
4018
+ proto$1.weekdaysRegex = weekdaysRegex;
4019
+ proto$1.weekdaysShortRegex = weekdaysShortRegex;
4020
+ proto$1.weekdaysMinRegex = weekdaysMinRegex;
4021
+
4022
+ proto$1.isPM = localeIsPM;
4023
+ proto$1.meridiem = localeMeridiem;
4024
+
4025
+ function get$1 (format, index, field, setter) {
4026
+ var locale = getLocale();
4027
+ var utc = createUTC().set(setter, index);
4028
+ return locale[field](utc, format);
4029
+ }
4030
+
4031
+ function listMonthsImpl (format, index, field) {
4032
+ if (isNumber(format)) {
4033
+ index = format;
4034
+ format = undefined;
4035
+ }
4036
+
4037
+ format = format || '';
4038
+
4039
+ if (index != null) {
4040
+ return get$1(format, index, field, 'month');
4041
+ }
4042
+
4043
+ var i;
4044
+ var out = [];
4045
+ for (i = 0; i < 12; i++) {
4046
+ out[i] = get$1(format, i, field, 'month');
4047
+ }
4048
+ return out;
4049
+ }
4050
+
4051
+ // ()
4052
+ // (5)
4053
+ // (fmt, 5)
4054
+ // (fmt)
4055
+ // (true)
4056
+ // (true, 5)
4057
+ // (true, fmt, 5)
4058
+ // (true, fmt)
4059
+ function listWeekdaysImpl (localeSorted, format, index, field) {
4060
+ if (typeof localeSorted === 'boolean') {
4061
+ if (isNumber(format)) {
4062
+ index = format;
4063
+ format = undefined;
4064
+ }
4065
+
4066
+ format = format || '';
4067
+ } else {
4068
+ format = localeSorted;
4069
+ index = format;
4070
+ localeSorted = false;
4071
+
4072
+ if (isNumber(format)) {
4073
+ index = format;
4074
+ format = undefined;
4075
+ }
4076
+
4077
+ format = format || '';
4078
+ }
4079
+
4080
+ var locale = getLocale(),
4081
+ shift = localeSorted ? locale._week.dow : 0;
4082
+
4083
+ if (index != null) {
4084
+ return get$1(format, (index + shift) % 7, field, 'day');
4085
+ }
4086
+
4087
+ var i;
4088
+ var out = [];
4089
+ for (i = 0; i < 7; i++) {
4090
+ out[i] = get$1(format, (i + shift) % 7, field, 'day');
4091
+ }
4092
+ return out;
4093
+ }
4094
+
4095
+ function listMonths (format, index) {
4096
+ return listMonthsImpl(format, index, 'months');
4097
+ }
4098
+
4099
+ function listMonthsShort (format, index) {
4100
+ return listMonthsImpl(format, index, 'monthsShort');
4101
+ }
4102
+
4103
+ function listWeekdays (localeSorted, format, index) {
4104
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
4105
+ }
4106
+
4107
+ function listWeekdaysShort (localeSorted, format, index) {
4108
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
4109
+ }
4110
+
4111
+ function listWeekdaysMin (localeSorted, format, index) {
4112
+ return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
4113
+ }
4114
+
4115
+ getSetGlobalLocale('en', {
4116
+ dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
4117
+ ordinal : function (number) {
4118
+ var b = number % 10,
4119
+ output = (toInt(number % 100 / 10) === 1) ? 'th' :
4120
+ (b === 1) ? 'st' :
4121
+ (b === 2) ? 'nd' :
4122
+ (b === 3) ? 'rd' : 'th';
4123
+ return number + output;
4124
+ }
4125
+ });
4126
+
4127
+ // Side effect imports
4128
+
4129
+ hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
4130
+ hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
4131
+
4132
+ var mathAbs = Math.abs;
4133
+
4134
+ function abs () {
4135
+ var data = this._data;
4136
+
4137
+ this._milliseconds = mathAbs(this._milliseconds);
4138
+ this._days = mathAbs(this._days);
4139
+ this._months = mathAbs(this._months);
4140
+
4141
+ data.milliseconds = mathAbs(data.milliseconds);
4142
+ data.seconds = mathAbs(data.seconds);
4143
+ data.minutes = mathAbs(data.minutes);
4144
+ data.hours = mathAbs(data.hours);
4145
+ data.months = mathAbs(data.months);
4146
+ data.years = mathAbs(data.years);
4147
+
4148
+ return this;
4149
+ }
4150
+
4151
+ function addSubtract$1 (duration, input, value, direction) {
4152
+ var other = createDuration(input, value);
4153
+
4154
+ duration._milliseconds += direction * other._milliseconds;
4155
+ duration._days += direction * other._days;
4156
+ duration._months += direction * other._months;
4157
+
4158
+ return duration._bubble();
4159
+ }
4160
+
4161
+ // supports only 2.0-style add(1, 's') or add(duration)
4162
+ function add$1 (input, value) {
4163
+ return addSubtract$1(this, input, value, 1);
4164
+ }
4165
+
4166
+ // supports only 2.0-style subtract(1, 's') or subtract(duration)
4167
+ function subtract$1 (input, value) {
4168
+ return addSubtract$1(this, input, value, -1);
4169
+ }
4170
+
4171
+ function absCeil (number) {
4172
+ if (number < 0) {
4173
+ return Math.floor(number);
4174
+ } else {
4175
+ return Math.ceil(number);
4176
+ }
4177
+ }
4178
+
4179
+ function bubble () {
4180
+ var milliseconds = this._milliseconds;
4181
+ var days = this._days;
4182
+ var months = this._months;
4183
+ var data = this._data;
4184
+ var seconds, minutes, hours, years, monthsFromDays;
4185
+
4186
+ // if we have a mix of positive and negative values, bubble down first
4187
+ // check: https://github.com/moment/moment/issues/2166
4188
+ if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
4189
+ (milliseconds <= 0 && days <= 0 && months <= 0))) {
4190
+ milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
4191
+ days = 0;
4192
+ months = 0;
4193
+ }
4194
+
4195
+ // The following code bubbles up values, see the tests for
4196
+ // examples of what that means.
4197
+ data.milliseconds = milliseconds % 1000;
4198
+
4199
+ seconds = absFloor(milliseconds / 1000);
4200
+ data.seconds = seconds % 60;
4201
+
4202
+ minutes = absFloor(seconds / 60);
4203
+ data.minutes = minutes % 60;
4204
+
4205
+ hours = absFloor(minutes / 60);
4206
+ data.hours = hours % 24;
4207
+
4208
+ days += absFloor(hours / 24);
4209
+
4210
+ // convert days to months
4211
+ monthsFromDays = absFloor(daysToMonths(days));
4212
+ months += monthsFromDays;
4213
+ days -= absCeil(monthsToDays(monthsFromDays));
4214
+
4215
+ // 12 months -> 1 year
4216
+ years = absFloor(months / 12);
4217
+ months %= 12;
4218
+
4219
+ data.days = days;
4220
+ data.months = months;
4221
+ data.years = years;
4222
+
4223
+ return this;
4224
+ }
4225
+
4226
+ function daysToMonths (days) {
4227
+ // 400 years have 146097 days (taking into account leap year rules)
4228
+ // 400 years have 12 months === 4800
4229
+ return days * 4800 / 146097;
4230
+ }
4231
+
4232
+ function monthsToDays (months) {
4233
+ // the reverse of daysToMonths
4234
+ return months * 146097 / 4800;
4235
+ }
4236
+
4237
+ function as (units) {
4238
+ if (!this.isValid()) {
4239
+ return NaN;
4240
+ }
4241
+ var days;
4242
+ var months;
4243
+ var milliseconds = this._milliseconds;
4244
+
4245
+ units = normalizeUnits(units);
4246
+
4247
+ if (units === 'month' || units === 'year') {
4248
+ days = this._days + milliseconds / 864e5;
4249
+ months = this._months + daysToMonths(days);
4250
+ return units === 'month' ? months : months / 12;
4251
+ } else {
4252
+ // handle milliseconds separately because of floating point math errors (issue #1867)
4253
+ days = this._days + Math.round(monthsToDays(this._months));
4254
+ switch (units) {
4255
+ case 'week' : return days / 7 + milliseconds / 6048e5;
4256
+ case 'day' : return days + milliseconds / 864e5;
4257
+ case 'hour' : return days * 24 + milliseconds / 36e5;
4258
+ case 'minute' : return days * 1440 + milliseconds / 6e4;
4259
+ case 'second' : return days * 86400 + milliseconds / 1000;
4260
+ // Math.floor prevents floating point math errors here
4261
+ case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
4262
+ default: throw new Error('Unknown unit ' + units);
4263
+ }
4264
+ }
4265
+ }
4266
+
4267
+ // TODO: Use this.as('ms')?
4268
+ function valueOf$1 () {
4269
+ if (!this.isValid()) {
4270
+ return NaN;
4271
+ }
4272
+ return (
4273
+ this._milliseconds +
4274
+ this._days * 864e5 +
4275
+ (this._months % 12) * 2592e6 +
4276
+ toInt(this._months / 12) * 31536e6
4277
+ );
4278
+ }
4279
+
4280
+ function makeAs (alias) {
4281
+ return function () {
4282
+ return this.as(alias);
4283
+ };
4284
+ }
4285
+
4286
+ var asMilliseconds = makeAs('ms');
4287
+ var asSeconds = makeAs('s');
4288
+ var asMinutes = makeAs('m');
4289
+ var asHours = makeAs('h');
4290
+ var asDays = makeAs('d');
4291
+ var asWeeks = makeAs('w');
4292
+ var asMonths = makeAs('M');
4293
+ var asYears = makeAs('y');
4294
+
4295
+ function clone$1 () {
4296
+ return createDuration(this);
4297
+ }
4298
+
4299
+ function get$2 (units) {
4300
+ units = normalizeUnits(units);
4301
+ return this.isValid() ? this[units + 's']() : NaN;
4302
+ }
4303
+
4304
+ function makeGetter(name) {
4305
+ return function () {
4306
+ return this.isValid() ? this._data[name] : NaN;
4307
+ };
4308
+ }
4309
+
4310
+ var milliseconds = makeGetter('milliseconds');
4311
+ var seconds = makeGetter('seconds');
4312
+ var minutes = makeGetter('minutes');
4313
+ var hours = makeGetter('hours');
4314
+ var days = makeGetter('days');
4315
+ var months = makeGetter('months');
4316
+ var years = makeGetter('years');
4317
+
4318
+ function weeks () {
4319
+ return absFloor(this.days() / 7);
4320
+ }
4321
+
4322
+ var round = Math.round;
4323
+ var thresholds = {
4324
+ ss: 44, // a few seconds to seconds
4325
+ s : 45, // seconds to minute
4326
+ m : 45, // minutes to hour
4327
+ h : 22, // hours to day
4328
+ d : 26, // days to month
4329
+ M : 11 // months to year
4330
+ };
4331
+
4332
+ // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
4333
+ function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
4334
+ return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
4335
+ }
4336
+
4337
+ function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
4338
+ var duration = createDuration(posNegDuration).abs();
4339
+ var seconds = round(duration.as('s'));
4340
+ var minutes = round(duration.as('m'));
4341
+ var hours = round(duration.as('h'));
4342
+ var days = round(duration.as('d'));
4343
+ var months = round(duration.as('M'));
4344
+ var years = round(duration.as('y'));
4345
+
4346
+ var a = seconds <= thresholds.ss && ['s', seconds] ||
4347
+ seconds < thresholds.s && ['ss', seconds] ||
4348
+ minutes <= 1 && ['m'] ||
4349
+ minutes < thresholds.m && ['mm', minutes] ||
4350
+ hours <= 1 && ['h'] ||
4351
+ hours < thresholds.h && ['hh', hours] ||
4352
+ days <= 1 && ['d'] ||
4353
+ days < thresholds.d && ['dd', days] ||
4354
+ months <= 1 && ['M'] ||
4355
+ months < thresholds.M && ['MM', months] ||
4356
+ years <= 1 && ['y'] || ['yy', years];
4357
+
4358
+ a[2] = withoutSuffix;
4359
+ a[3] = +posNegDuration > 0;
4360
+ a[4] = locale;
4361
+ return substituteTimeAgo.apply(null, a);
4362
+ }
4363
+
4364
+ // This function allows you to set the rounding function for relative time strings
4365
+ function getSetRelativeTimeRounding (roundingFunction) {
4366
+ if (roundingFunction === undefined) {
4367
+ return round;
4368
+ }
4369
+ if (typeof(roundingFunction) === 'function') {
4370
+ round = roundingFunction;
4371
+ return true;
4372
+ }
4373
+ return false;
4374
+ }
4375
+
4376
+ // This function allows you to set a threshold for relative time strings
4377
+ function getSetRelativeTimeThreshold (threshold, limit) {
4378
+ if (thresholds[threshold] === undefined) {
4379
+ return false;
4380
+ }
4381
+ if (limit === undefined) {
4382
+ return thresholds[threshold];
4383
+ }
4384
+ thresholds[threshold] = limit;
4385
+ if (threshold === 's') {
4386
+ thresholds.ss = limit - 1;
4387
+ }
4388
+ return true;
4389
+ }
4390
+
4391
+ function humanize (withSuffix) {
4392
+ if (!this.isValid()) {
4393
+ return this.localeData().invalidDate();
4394
+ }
4395
+
4396
+ var locale = this.localeData();
4397
+ var output = relativeTime$1(this, !withSuffix, locale);
4398
+
4399
+ if (withSuffix) {
4400
+ output = locale.pastFuture(+this, output);
4401
+ }
4402
+
4403
+ return locale.postformat(output);
4404
+ }
4405
+
4406
+ var abs$1 = Math.abs;
4407
+
4408
+ function sign(x) {
4409
+ return ((x > 0) - (x < 0)) || +x;
4410
+ }
4411
+
4412
+ function toISOString$1() {
4413
+ // for ISO strings we do not use the normal bubbling rules:
4414
+ // * milliseconds bubble up until they become hours
4415
+ // * days do not bubble at all
4416
+ // * months bubble up until they become years
4417
+ // This is because there is no context-free conversion between hours and days
4418
+ // (think of clock changes)
4419
+ // and also not between days and months (28-31 days per month)
4420
+ if (!this.isValid()) {
4421
+ return this.localeData().invalidDate();
4422
+ }
4423
+
4424
+ var seconds = abs$1(this._milliseconds) / 1000;
4425
+ var days = abs$1(this._days);
4426
+ var months = abs$1(this._months);
4427
+ var minutes, hours, years;
4428
+
4429
+ // 3600 seconds -> 60 minutes -> 1 hour
4430
+ minutes = absFloor(seconds / 60);
4431
+ hours = absFloor(minutes / 60);
4432
+ seconds %= 60;
4433
+ minutes %= 60;
4434
+
4435
+ // 12 months -> 1 year
4436
+ years = absFloor(months / 12);
4437
+ months %= 12;
4438
+
4439
+
4440
+ // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
4441
+ var Y = years;
4442
+ var M = months;
4443
+ var D = days;
4444
+ var h = hours;
4445
+ var m = minutes;
4446
+ var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
4447
+ var total = this.asSeconds();
4448
+
4449
+ if (!total) {
4450
+ // this is the same as C#'s (Noda) and python (isodate)...
4451
+ // but not other JS (goog.date)
4452
+ return 'P0D';
4453
+ }
4454
+
4455
+ var totalSign = total < 0 ? '-' : '';
4456
+ var ymSign = sign(this._months) !== sign(total) ? '-' : '';
4457
+ var daysSign = sign(this._days) !== sign(total) ? '-' : '';
4458
+ var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
4459
+
4460
+ return totalSign + 'P' +
4461
+ (Y ? ymSign + Y + 'Y' : '') +
4462
+ (M ? ymSign + M + 'M' : '') +
4463
+ (D ? daysSign + D + 'D' : '') +
4464
+ ((h || m || s) ? 'T' : '') +
4465
+ (h ? hmsSign + h + 'H' : '') +
4466
+ (m ? hmsSign + m + 'M' : '') +
4467
+ (s ? hmsSign + s + 'S' : '');
4468
+ }
4469
+
4470
+ var proto$2 = Duration.prototype;
4471
+
4472
+ proto$2.isValid = isValid$1;
4473
+ proto$2.abs = abs;
4474
+ proto$2.add = add$1;
4475
+ proto$2.subtract = subtract$1;
4476
+ proto$2.as = as;
4477
+ proto$2.asMilliseconds = asMilliseconds;
4478
+ proto$2.asSeconds = asSeconds;
4479
+ proto$2.asMinutes = asMinutes;
4480
+ proto$2.asHours = asHours;
4481
+ proto$2.asDays = asDays;
4482
+ proto$2.asWeeks = asWeeks;
4483
+ proto$2.asMonths = asMonths;
4484
+ proto$2.asYears = asYears;
4485
+ proto$2.valueOf = valueOf$1;
4486
+ proto$2._bubble = bubble;
4487
+ proto$2.clone = clone$1;
4488
+ proto$2.get = get$2;
4489
+ proto$2.milliseconds = milliseconds;
4490
+ proto$2.seconds = seconds;
4491
+ proto$2.minutes = minutes;
4492
+ proto$2.hours = hours;
4493
+ proto$2.days = days;
4494
+ proto$2.weeks = weeks;
4495
+ proto$2.months = months;
4496
+ proto$2.years = years;
4497
+ proto$2.humanize = humanize;
4498
+ proto$2.toISOString = toISOString$1;
4499
+ proto$2.toString = toISOString$1;
4500
+ proto$2.toJSON = toISOString$1;
4501
+ proto$2.locale = locale;
4502
+ proto$2.localeData = localeData;
4503
+
4504
+ proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
4505
+ proto$2.lang = lang;
4506
+
4507
+ // Side effect imports
4508
+
4509
+ // FORMATTING
4510
+
4511
+ addFormatToken('X', 0, 0, 'unix');
4512
+ addFormatToken('x', 0, 0, 'valueOf');
4513
+
4514
+ // PARSING
4515
+
4516
+ addRegexToken('x', matchSigned);
4517
+ addRegexToken('X', matchTimestamp);
4518
+ addParseToken('X', function (input, array, config) {
4519
+ config._d = new Date(parseFloat(input, 10) * 1000);
4520
+ });
4521
+ addParseToken('x', function (input, array, config) {
4522
+ config._d = new Date(toInt(input));
4523
+ });
4524
+
4525
+ // Side effect imports
4526
+
4527
+
4528
+ hooks.version = '2.22.1';
4529
+
4530
+ setHookCallback(createLocal);
4531
+
4532
+ hooks.fn = proto;
4533
+ hooks.min = min;
4534
+ hooks.max = max;
4535
+ hooks.now = now;
4536
+ hooks.utc = createUTC;
4537
+ hooks.unix = createUnix;
4538
+ hooks.months = listMonths;
4539
+ hooks.isDate = isDate;
4540
+ hooks.locale = getSetGlobalLocale;
4541
+ hooks.invalid = createInvalid;
4542
+ hooks.duration = createDuration;
4543
+ hooks.isMoment = isMoment;
4544
+ hooks.weekdays = listWeekdays;
4545
+ hooks.parseZone = createInZone;
4546
+ hooks.localeData = getLocale;
4547
+ hooks.isDuration = isDuration;
4548
+ hooks.monthsShort = listMonthsShort;
4549
+ hooks.weekdaysMin = listWeekdaysMin;
4550
+ hooks.defineLocale = defineLocale;
4551
+ hooks.updateLocale = updateLocale;
4552
+ hooks.locales = listLocales;
4553
+ hooks.weekdaysShort = listWeekdaysShort;
4554
+ hooks.normalizeUnits = normalizeUnits;
4555
+ hooks.relativeTimeRounding = getSetRelativeTimeRounding;
4556
+ hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
4557
+ hooks.calendarFormat = getCalendarFormat;
4558
+ hooks.prototype = proto;
4559
+
4560
+ // currently HTML5 input type only supports 24-hour formats
4561
+ hooks.HTML5_FMT = {
4562
+ DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
4563
+ DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
4564
+ DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
4565
+ DATE: 'YYYY-MM-DD', // <input type="date" />
4566
+ TIME: 'HH:mm', // <input type="time" />
4567
+ TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
4568
+ TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
4569
+ WEEK: 'YYYY-[W]WW', // <input type="week" />
4570
+ MONTH: 'YYYY-MM' // <input type="month" />
4571
+ };
4572
+
4573
+ return hooks;
4574
+
4575
+ })));
4576
+
4577
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(280)(module)))
4578
+
4579
+ /***/ }),
4580
+ /* 1 */
4581
+ /***/ (function(module, exports) {
4582
+
4583
+ /*
4584
+ MIT License http://www.opensource.org/licenses/mit-license.php
4585
+ Author Tobias Koppers @sokra
4586
+ */
4587
+ // css base code, injected by the css-loader
4588
+ module.exports = function() {
4589
+ var list = [];
4590
+
4591
+ // return the list of modules as css string
4592
+ list.toString = function toString() {
4593
+ var result = [];
4594
+ for(var i = 0; i < this.length; i++) {
4595
+ var item = this[i];
4596
+ if(item[2]) {
4597
+ result.push("@media " + item[2] + "{" + item[1] + "}");
4598
+ } else {
4599
+ result.push(item[1]);
4600
+ }
4601
+ }
4602
+ return result.join("");
4603
+ };
4604
+
4605
+ // import a list of modules into the list
4606
+ list.i = function(modules, mediaQuery) {
4607
+ if(typeof modules === "string")
4608
+ modules = [[null, modules, ""]];
4609
+ var alreadyImportedModules = {};
4610
+ for(var i = 0; i < this.length; i++) {
4611
+ var id = this[i][0];
4612
+ if(typeof id === "number")
4613
+ alreadyImportedModules[id] = true;
4614
+ }
4615
+ for(i = 0; i < modules.length; i++) {
4616
+ var item = modules[i];
4617
+ // skip already imported module
4618
+ // this implementation is not 100% perfect for weird media query combinations
4619
+ // when a module is imported multiple times with different media queries.
4620
+ // I hope this will never occur (Hey this way we have smaller bundles)
4621
+ if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
4622
+ if(mediaQuery && !item[2]) {
4623
+ item[2] = mediaQuery;
4624
+ } else if(mediaQuery) {
4625
+ item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
4626
+ }
4627
+ list.push(item);
4628
+ }
4629
+ }
4630
+ };
4631
+ return list;
4632
+ };
4633
+
4634
+
4635
+ /***/ }),
4636
+ /* 2 */
4637
+ /***/ (function(module, exports) {
4638
+
4639
+ /*
4640
+ MIT License http://www.opensource.org/licenses/mit-license.php
4641
+ Author Tobias Koppers @sokra
4642
+ */
4643
+ var stylesInDom = {},
4644
+ memoize = function(fn) {
4645
+ var memo;
4646
+ return function () {
4647
+ if (typeof memo === "undefined") memo = fn.apply(this, arguments);
4648
+ return memo;
4649
+ };
4650
+ },
4651
+ isOldIE = memoize(function() {
4652
+ return /msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase());
4653
+ }),
4654
+ getHeadElement = memoize(function () {
4655
+ return document.head || document.getElementsByTagName("head")[0];
4656
+ }),
4657
+ singletonElement = null,
4658
+ singletonCounter = 0,
4659
+ styleElementsInsertedAtTop = [];
4660
+
4661
+ module.exports = function(list, options) {
4662
+ if(typeof DEBUG !== "undefined" && DEBUG) {
4663
+ if(typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
4664
+ }
4665
+
4666
+ options = options || {};
4667
+ // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
4668
+ // tags it will allow on a page
4669
+ if (typeof options.singleton === "undefined") options.singleton = isOldIE();
4670
+
4671
+ // By default, add <style> tags to the bottom of <head>.
4672
+ if (typeof options.insertAt === "undefined") options.insertAt = "bottom";
4673
+
4674
+ var styles = listToStyles(list);
4675
+ addStylesToDom(styles, options);
4676
+
4677
+ return function update(newList) {
4678
+ var mayRemove = [];
4679
+ for(var i = 0; i < styles.length; i++) {
4680
+ var item = styles[i];
4681
+ var domStyle = stylesInDom[item.id];
4682
+ domStyle.refs--;
4683
+ mayRemove.push(domStyle);
4684
+ }
4685
+ if(newList) {
4686
+ var newStyles = listToStyles(newList);
4687
+ addStylesToDom(newStyles, options);
4688
+ }
4689
+ for(var i = 0; i < mayRemove.length; i++) {
4690
+ var domStyle = mayRemove[i];
4691
+ if(domStyle.refs === 0) {
4692
+ for(var j = 0; j < domStyle.parts.length; j++)
4693
+ domStyle.parts[j]();
4694
+ delete stylesInDom[domStyle.id];
4695
+ }
4696
+ }
4697
+ };
4698
+ }
4699
+
4700
+ function addStylesToDom(styles, options) {
4701
+ for(var i = 0; i < styles.length; i++) {
4702
+ var item = styles[i];
4703
+ var domStyle = stylesInDom[item.id];
4704
+ if(domStyle) {
4705
+ domStyle.refs++;
4706
+ for(var j = 0; j < domStyle.parts.length; j++) {
4707
+ domStyle.parts[j](item.parts[j]);
4708
+ }
4709
+ for(; j < item.parts.length; j++) {
4710
+ domStyle.parts.push(addStyle(item.parts[j], options));
4711
+ }
4712
+ } else {
4713
+ var parts = [];
4714
+ for(var j = 0; j < item.parts.length; j++) {
4715
+ parts.push(addStyle(item.parts[j], options));
4716
+ }
4717
+ stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
4718
+ }
4719
+ }
4720
+ }
4721
+
4722
+ function listToStyles(list) {
4723
+ var styles = [];
4724
+ var newStyles = {};
4725
+ for(var i = 0; i < list.length; i++) {
4726
+ var item = list[i];
4727
+ var id = item[0];
4728
+ var css = item[1];
4729
+ var media = item[2];
4730
+ var sourceMap = item[3];
4731
+ var part = {css: css, media: media, sourceMap: sourceMap};
4732
+ if(!newStyles[id])
4733
+ styles.push(newStyles[id] = {id: id, parts: [part]});
4734
+ else
4735
+ newStyles[id].parts.push(part);
4736
+ }
4737
+ return styles;
4738
+ }
4739
+
4740
+ function insertStyleElement(options, styleElement) {
4741
+ var head = getHeadElement();
4742
+ var lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];
4743
+ if (options.insertAt === "top") {
4744
+ if(!lastStyleElementInsertedAtTop) {
4745
+ head.insertBefore(styleElement, head.firstChild);
4746
+ } else if(lastStyleElementInsertedAtTop.nextSibling) {
4747
+ head.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);
4748
+ } else {
4749
+ head.appendChild(styleElement);
4750
+ }
4751
+ styleElementsInsertedAtTop.push(styleElement);
4752
+ } else if (options.insertAt === "bottom") {
4753
+ head.appendChild(styleElement);
4754
+ } else {
4755
+ throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
4756
+ }
4757
+ }
4758
+
4759
+ function removeStyleElement(styleElement) {
4760
+ styleElement.parentNode.removeChild(styleElement);
4761
+ var idx = styleElementsInsertedAtTop.indexOf(styleElement);
4762
+ if(idx >= 0) {
4763
+ styleElementsInsertedAtTop.splice(idx, 1);
4764
+ }
4765
+ }
4766
+
4767
+ function createStyleElement(options) {
4768
+ var styleElement = document.createElement("style");
4769
+ styleElement.type = "text/css";
4770
+ insertStyleElement(options, styleElement);
4771
+ return styleElement;
4772
+ }
4773
+
4774
+ function createLinkElement(options) {
4775
+ var linkElement = document.createElement("link");
4776
+ linkElement.rel = "stylesheet";
4777
+ insertStyleElement(options, linkElement);
4778
+ return linkElement;
4779
+ }
4780
+
4781
+ function addStyle(obj, options) {
4782
+ var styleElement, update, remove;
4783
+
4784
+ if (options.singleton) {
4785
+ var styleIndex = singletonCounter++;
4786
+ styleElement = singletonElement || (singletonElement = createStyleElement(options));
4787
+ update = applyToSingletonTag.bind(null, styleElement, styleIndex, false);
4788
+ remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);
4789
+ } else if(obj.sourceMap &&
4790
+ typeof URL === "function" &&
4791
+ typeof URL.createObjectURL === "function" &&
4792
+ typeof URL.revokeObjectURL === "function" &&
4793
+ typeof Blob === "function" &&
4794
+ typeof btoa === "function") {
4795
+ styleElement = createLinkElement(options);
4796
+ update = updateLink.bind(null, styleElement);
4797
+ remove = function() {
4798
+ removeStyleElement(styleElement);
4799
+ if(styleElement.href)
4800
+ URL.revokeObjectURL(styleElement.href);
4801
+ };
4802
+ } else {
4803
+ styleElement = createStyleElement(options);
4804
+ update = applyToTag.bind(null, styleElement);
4805
+ remove = function() {
4806
+ removeStyleElement(styleElement);
4807
+ };
4808
+ }
4809
+
4810
+ update(obj);
4811
+
4812
+ return function updateStyle(newObj) {
4813
+ if(newObj) {
4814
+ if(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)
4815
+ return;
4816
+ update(obj = newObj);
4817
+ } else {
4818
+ remove();
4819
+ }
4820
+ };
4821
+ }
4822
+
4823
+ var replaceText = (function () {
4824
+ var textStore = [];
4825
+
4826
+ return function (index, replacement) {
4827
+ textStore[index] = replacement;
4828
+ return textStore.filter(Boolean).join('\n');
4829
+ };
4830
+ })();
4831
+
4832
+ function applyToSingletonTag(styleElement, index, remove, obj) {
4833
+ var css = remove ? "" : obj.css;
4834
+
4835
+ if (styleElement.styleSheet) {
4836
+ styleElement.styleSheet.cssText = replaceText(index, css);
4837
+ } else {
4838
+ var cssNode = document.createTextNode(css);
4839
+ var childNodes = styleElement.childNodes;
4840
+ if (childNodes[index]) styleElement.removeChild(childNodes[index]);
4841
+ if (childNodes.length) {
4842
+ styleElement.insertBefore(cssNode, childNodes[index]);
4843
+ } else {
4844
+ styleElement.appendChild(cssNode);
4845
+ }
4846
+ }
4847
+ }
4848
+
4849
+ function applyToTag(styleElement, obj) {
4850
+ var css = obj.css;
4851
+ var media = obj.media;
4852
+
4853
+ if(media) {
4854
+ styleElement.setAttribute("media", media)
4855
+ }
4856
+
4857
+ if(styleElement.styleSheet) {
4858
+ styleElement.styleSheet.cssText = css;
4859
+ } else {
4860
+ while(styleElement.firstChild) {
4861
+ styleElement.removeChild(styleElement.firstChild);
4862
+ }
4863
+ styleElement.appendChild(document.createTextNode(css));
4864
+ }
4865
+ }
4866
+
4867
+ function updateLink(linkElement, obj) {
4868
+ var css = obj.css;
4869
+ var sourceMap = obj.sourceMap;
4870
+
4871
+ if(sourceMap) {
4872
+ // http://stackoverflow.com/a/26603875
4873
+ css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
4874
+ }
4875
+
4876
+ var blob = new Blob([css], { type: "text/css" });
4877
+
4878
+ var oldSrc = linkElement.href;
4879
+
4880
+ linkElement.href = URL.createObjectURL(blob);
4881
+
4882
+ if(oldSrc)
4883
+ URL.revokeObjectURL(oldSrc);
4884
+ }
4885
+
4886
+
4887
+ /***/ }),
4888
+ /* 3 */
4889
+ /***/ (function(module, exports) {
4890
+
4891
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
4892
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
4893
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
4894
+ // eslint-disable-next-line no-new-func
4895
+ : Function('return this')();
4896
+ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
4897
+
4898
+
4899
+ /***/ }),
4900
+ /* 4 */
4901
+ /***/ (function(module, exports, __webpack_require__) {
4902
+
4903
+ var store = __webpack_require__(23)('wks');
4904
+ var uid = __webpack_require__(24);
4905
+ var Symbol = __webpack_require__(3).Symbol;
4906
+ var USE_SYMBOL = typeof Symbol == 'function';
4907
+
4908
+ var $exports = module.exports = function (name) {
4909
+ return store[name] || (store[name] =
4910
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
4911
+ };
4912
+
4913
+ $exports.store = store;
4914
+
4915
+
4916
+ /***/ }),
4917
+ /* 5 */
4918
+ /***/ (function(module, exports) {
4919
+
4920
+ var core = module.exports = { version: '2.5.5' };
4921
+ if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
4922
+
4923
+
4924
+ /***/ }),
4925
+ /* 6 */
4926
+ /***/ (function(module, exports, __webpack_require__) {
4927
+
4928
+ var dP = __webpack_require__(19);
4929
+ var createDesc = __webpack_require__(28);
4930
+ module.exports = __webpack_require__(11) ? function (object, key, value) {
4931
+ return dP.f(object, key, createDesc(1, value));
4932
+ } : function (object, key, value) {
4933
+ object[key] = value;
4934
+ return object;
4935
+ };
4936
+
4937
+
4938
+ /***/ }),
4939
+ /* 7 */
4940
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
4941
+
4942
+ "use strict";
4943
+ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
4944
+ /* WEBPACK VAR INJECTION */(function(process, global, setImmediate) {/*!
4945
+ * Vue.js v2.5.16
4946
+ * (c) 2014-2018 Evan You
4947
+ * Released under the MIT License.
4948
+ */
4949
+ /* */
4950
+
4951
+ var emptyObject = Object.freeze({});
4952
+
4953
+ // these helpers produces better vm code in JS engines due to their
4954
+ // explicitness and function inlining
4955
+ function isUndef (v) {
4956
+ return v === undefined || v === null
4957
+ }
4958
+
4959
+ function isDef (v) {
4960
+ return v !== undefined && v !== null
4961
+ }
4962
+
4963
+ function isTrue (v) {
4964
+ return v === true
4965
+ }
4966
+
4967
+ function isFalse (v) {
4968
+ return v === false
4969
+ }
4970
+
4971
+ /**
4972
+ * Check if value is primitive
4973
+ */
4974
+ function isPrimitive (value) {
4975
+ return (
4976
+ typeof value === 'string' ||
4977
+ typeof value === 'number' ||
4978
+ // $flow-disable-line
4979
+ typeof value === 'symbol' ||
4980
+ typeof value === 'boolean'
4981
+ )
4982
+ }
4983
+
4984
+ /**
4985
+ * Quick object check - this is primarily used to tell
4986
+ * Objects from primitive values when we know the value
4987
+ * is a JSON-compliant type.
4988
+ */
4989
+ function isObject (obj) {
4990
+ return obj !== null && typeof obj === 'object'
4991
+ }
4992
+
4993
+ /**
4994
+ * Get the raw type string of a value e.g. [object Object]
4995
+ */
4996
+ var _toString = Object.prototype.toString;
4997
+
4998
+ function toRawType (value) {
4999
+ return _toString.call(value).slice(8, -1)
5000
+ }
5001
+
5002
+ /**
5003
+ * Strict object type check. Only returns true
5004
+ * for plain JavaScript objects.
5005
+ */
5006
+ function isPlainObject (obj) {
5007
+ return _toString.call(obj) === '[object Object]'
5008
+ }
5009
+
5010
+ function isRegExp (v) {
5011
+ return _toString.call(v) === '[object RegExp]'
5012
+ }
5013
+
5014
+ /**
5015
+ * Check if val is a valid array index.
5016
+ */
5017
+ function isValidArrayIndex (val) {
5018
+ var n = parseFloat(String(val));
5019
+ return n >= 0 && Math.floor(n) === n && isFinite(val)
5020
+ }
5021
+
5022
+ /**
5023
+ * Convert a value to a string that is actually rendered.
5024
+ */
5025
+ function toString (val) {
5026
+ return val == null
5027
+ ? ''
5028
+ : typeof val === 'object'
5029
+ ? JSON.stringify(val, null, 2)
5030
+ : String(val)
5031
+ }
5032
+
5033
+ /**
5034
+ * Convert a input value to a number for persistence.
5035
+ * If the conversion fails, return original string.
5036
+ */
5037
+ function toNumber (val) {
5038
+ var n = parseFloat(val);
5039
+ return isNaN(n) ? val : n
5040
+ }
5041
+
5042
+ /**
5043
+ * Make a map and return a function for checking if a key
5044
+ * is in that map.
5045
+ */
5046
+ function makeMap (
5047
+ str,
5048
+ expectsLowerCase
5049
+ ) {
5050
+ var map = Object.create(null);
5051
+ var list = str.split(',');
5052
+ for (var i = 0; i < list.length; i++) {
5053
+ map[list[i]] = true;
5054
+ }
5055
+ return expectsLowerCase
5056
+ ? function (val) { return map[val.toLowerCase()]; }
5057
+ : function (val) { return map[val]; }
5058
+ }
5059
+
5060
+ /**
5061
+ * Check if a tag is a built-in tag.
5062
+ */
5063
+ var isBuiltInTag = makeMap('slot,component', true);
5064
+
5065
+ /**
5066
+ * Check if a attribute is a reserved attribute.
5067
+ */
5068
+ var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
5069
+
5070
+ /**
5071
+ * Remove an item from an array
5072
+ */
5073
+ function remove (arr, item) {
5074
+ if (arr.length) {
5075
+ var index = arr.indexOf(item);
5076
+ if (index > -1) {
5077
+ return arr.splice(index, 1)
5078
+ }
5079
+ }
5080
+ }
5081
+
5082
+ /**
5083
+ * Check whether the object has the property.
5084
+ */
5085
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
5086
+ function hasOwn (obj, key) {
5087
+ return hasOwnProperty.call(obj, key)
5088
+ }
5089
+
5090
+ /**
5091
+ * Create a cached version of a pure function.
5092
+ */
5093
+ function cached (fn) {
5094
+ var cache = Object.create(null);
5095
+ return (function cachedFn (str) {
5096
+ var hit = cache[str];
5097
+ return hit || (cache[str] = fn(str))
5098
+ })
5099
+ }
5100
+
5101
+ /**
5102
+ * Camelize a hyphen-delimited string.
5103
+ */
5104
+ var camelizeRE = /-(\w)/g;
5105
+ var camelize = cached(function (str) {
5106
+ return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
5107
+ });
5108
+
5109
+ /**
5110
+ * Capitalize a string.
5111
+ */
5112
+ var capitalize = cached(function (str) {
5113
+ return str.charAt(0).toUpperCase() + str.slice(1)
5114
+ });
5115
+
5116
+ /**
5117
+ * Hyphenate a camelCase string.
5118
+ */
5119
+ var hyphenateRE = /\B([A-Z])/g;
5120
+ var hyphenate = cached(function (str) {
5121
+ return str.replace(hyphenateRE, '-$1').toLowerCase()
5122
+ });
5123
+
5124
+ /**
5125
+ * Simple bind polyfill for environments that do not support it... e.g.
5126
+ * PhantomJS 1.x. Technically we don't need this anymore since native bind is
5127
+ * now more performant in most browsers, but removing it would be breaking for
5128
+ * code that was able to run in PhantomJS 1.x, so this must be kept for
5129
+ * backwards compatibility.
5130
+ */
5131
+
5132
+ /* istanbul ignore next */
5133
+ function polyfillBind (fn, ctx) {
5134
+ function boundFn (a) {
5135
+ var l = arguments.length;
5136
+ return l
5137
+ ? l > 1
5138
+ ? fn.apply(ctx, arguments)
5139
+ : fn.call(ctx, a)
5140
+ : fn.call(ctx)
5141
+ }
5142
+
5143
+ boundFn._length = fn.length;
5144
+ return boundFn
5145
+ }
5146
+
5147
+ function nativeBind (fn, ctx) {
5148
+ return fn.bind(ctx)
5149
+ }
5150
+
5151
+ var bind = Function.prototype.bind
5152
+ ? nativeBind
5153
+ : polyfillBind;
5154
+
5155
+ /**
5156
+ * Convert an Array-like object to a real Array.
5157
+ */
5158
+ function toArray (list, start) {
5159
+ start = start || 0;
5160
+ var i = list.length - start;
5161
+ var ret = new Array(i);
5162
+ while (i--) {
5163
+ ret[i] = list[i + start];
5164
+ }
5165
+ return ret
5166
+ }
5167
+
5168
+ /**
5169
+ * Mix properties into target object.
5170
+ */
5171
+ function extend (to, _from) {
5172
+ for (var key in _from) {
5173
+ to[key] = _from[key];
5174
+ }
5175
+ return to
5176
+ }
5177
+
5178
+ /**
5179
+ * Merge an Array of Objects into a single Object.
5180
+ */
5181
+ function toObject (arr) {
5182
+ var res = {};
5183
+ for (var i = 0; i < arr.length; i++) {
5184
+ if (arr[i]) {
5185
+ extend(res, arr[i]);
5186
+ }
5187
+ }
5188
+ return res
5189
+ }
5190
+
5191
+ /**
5192
+ * Perform no operation.
5193
+ * Stubbing args to make Flow happy without leaving useless transpiled code
5194
+ * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)
5195
+ */
5196
+ function noop (a, b, c) {}
5197
+
5198
+ /**
5199
+ * Always return false.
5200
+ */
5201
+ var no = function (a, b, c) { return false; };
5202
+
5203
+ /**
5204
+ * Return same value
5205
+ */
5206
+ var identity = function (_) { return _; };
5207
+
5208
+ /**
5209
+ * Generate a static keys string from compiler modules.
5210
+ */
5211
+ function genStaticKeys (modules) {
5212
+ return modules.reduce(function (keys, m) {
5213
+ return keys.concat(m.staticKeys || [])
5214
+ }, []).join(',')
5215
+ }
5216
+
5217
+ /**
5218
+ * Check if two values are loosely equal - that is,
5219
+ * if they are plain objects, do they have the same shape?
5220
+ */
5221
+ function looseEqual (a, b) {
5222
+ if (a === b) { return true }
5223
+ var isObjectA = isObject(a);
5224
+ var isObjectB = isObject(b);
5225
+ if (isObjectA && isObjectB) {
5226
+ try {
5227
+ var isArrayA = Array.isArray(a);
5228
+ var isArrayB = Array.isArray(b);
5229
+ if (isArrayA && isArrayB) {
5230
+ return a.length === b.length && a.every(function (e, i) {
5231
+ return looseEqual(e, b[i])
5232
+ })
5233
+ } else if (!isArrayA && !isArrayB) {
5234
+ var keysA = Object.keys(a);
5235
+ var keysB = Object.keys(b);
5236
+ return keysA.length === keysB.length && keysA.every(function (key) {
5237
+ return looseEqual(a[key], b[key])
5238
+ })
5239
+ } else {
5240
+ /* istanbul ignore next */
5241
+ return false
5242
+ }
5243
+ } catch (e) {
5244
+ /* istanbul ignore next */
5245
+ return false
5246
+ }
5247
+ } else if (!isObjectA && !isObjectB) {
5248
+ return String(a) === String(b)
5249
+ } else {
5250
+ return false
5251
+ }
5252
+ }
5253
+
5254
+ function looseIndexOf (arr, val) {
5255
+ for (var i = 0; i < arr.length; i++) {
5256
+ if (looseEqual(arr[i], val)) { return i }
5257
+ }
5258
+ return -1
5259
+ }
5260
+
5261
+ /**
5262
+ * Ensure a function is called only once.
5263
+ */
5264
+ function once (fn) {
5265
+ var called = false;
5266
+ return function () {
5267
+ if (!called) {
5268
+ called = true;
5269
+ fn.apply(this, arguments);
5270
+ }
5271
+ }
5272
+ }
5273
+
5274
+ var SSR_ATTR = 'data-server-rendered';
5275
+
5276
+ var ASSET_TYPES = [
5277
+ 'component',
5278
+ 'directive',
5279
+ 'filter'
5280
+ ];
5281
+
5282
+ var LIFECYCLE_HOOKS = [
5283
+ 'beforeCreate',
5284
+ 'created',
5285
+ 'beforeMount',
5286
+ 'mounted',
5287
+ 'beforeUpdate',
5288
+ 'updated',
5289
+ 'beforeDestroy',
5290
+ 'destroyed',
5291
+ 'activated',
5292
+ 'deactivated',
5293
+ 'errorCaptured'
5294
+ ];
5295
+
5296
+ /* */
5297
+
5298
+ var config = ({
5299
+ /**
5300
+ * Option merge strategies (used in core/util/options)
5301
+ */
5302
+ // $flow-disable-line
5303
+ optionMergeStrategies: Object.create(null),
5304
+
5305
+ /**
5306
+ * Whether to suppress warnings.
5307
+ */
5308
+ silent: false,
5309
+
5310
+ /**
5311
+ * Show production mode tip message on boot?
5312
+ */
5313
+ productionTip: process.env.NODE_ENV !== 'production',
5314
+
5315
+ /**
5316
+ * Whether to enable devtools
5317
+ */
5318
+ devtools: process.env.NODE_ENV !== 'production',
5319
+
5320
+ /**
5321
+ * Whether to record perf
5322
+ */
5323
+ performance: false,
5324
+
5325
+ /**
5326
+ * Error handler for watcher errors
5327
+ */
5328
+ errorHandler: null,
5329
+
5330
+ /**
5331
+ * Warn handler for watcher warns
5332
+ */
5333
+ warnHandler: null,
5334
+
5335
+ /**
5336
+ * Ignore certain custom elements
5337
+ */
5338
+ ignoredElements: [],
5339
+
5340
+ /**
5341
+ * Custom user key aliases for v-on
5342
+ */
5343
+ // $flow-disable-line
5344
+ keyCodes: Object.create(null),
5345
+
5346
+ /**
5347
+ * Check if a tag is reserved so that it cannot be registered as a
5348
+ * component. This is platform-dependent and may be overwritten.
5349
+ */
5350
+ isReservedTag: no,
5351
+
5352
+ /**
5353
+ * Check if an attribute is reserved so that it cannot be used as a component
5354
+ * prop. This is platform-dependent and may be overwritten.
5355
+ */
5356
+ isReservedAttr: no,
5357
+
5358
+ /**
5359
+ * Check if a tag is an unknown element.
5360
+ * Platform-dependent.
5361
+ */
5362
+ isUnknownElement: no,
5363
+
5364
+ /**
5365
+ * Get the namespace of an element
5366
+ */
5367
+ getTagNamespace: noop,
5368
+
5369
+ /**
5370
+ * Parse the real tag name for the specific platform.
5371
+ */
5372
+ parsePlatformTagName: identity,
5373
+
5374
+ /**
5375
+ * Check if an attribute must be bound using property, e.g. value
5376
+ * Platform-dependent.
5377
+ */
5378
+ mustUseProp: no,
5379
+
5380
+ /**
5381
+ * Exposed for legacy reasons
5382
+ */
5383
+ _lifecycleHooks: LIFECYCLE_HOOKS
5384
+ })
5385
+
5386
+ /* */
5387
+
5388
+ /**
5389
+ * Check if a string starts with $ or _
5390
+ */
5391
+ function isReserved (str) {
5392
+ var c = (str + '').charCodeAt(0);
5393
+ return c === 0x24 || c === 0x5F
5394
+ }
5395
+
5396
+ /**
5397
+ * Define a property.
5398
+ */
5399
+ function def (obj, key, val, enumerable) {
5400
+ Object.defineProperty(obj, key, {
5401
+ value: val,
5402
+ enumerable: !!enumerable,
5403
+ writable: true,
5404
+ configurable: true
5405
+ });
5406
+ }
5407
+
5408
+ /**
5409
+ * Parse simple path.
5410
+ */
5411
+ var bailRE = /[^\w.$]/;
5412
+ function parsePath (path) {
5413
+ if (bailRE.test(path)) {
5414
+ return
5415
+ }
5416
+ var segments = path.split('.');
5417
+ return function (obj) {
5418
+ for (var i = 0; i < segments.length; i++) {
5419
+ if (!obj) { return }
5420
+ obj = obj[segments[i]];
5421
+ }
5422
+ return obj
5423
+ }
5424
+ }
5425
+
5426
+ /* */
5427
+
5428
+ // can we use __proto__?
5429
+ var hasProto = '__proto__' in {};
5430
+
5431
+ // Browser environment sniffing
5432
+ var inBrowser = typeof window !== 'undefined';
5433
+ var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
5434
+ var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
5435
+ var UA = inBrowser && window.navigator.userAgent.toLowerCase();
5436
+ var isIE = UA && /msie|trident/.test(UA);
5437
+ var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
5438
+ var isEdge = UA && UA.indexOf('edge/') > 0;
5439
+ var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
5440
+ var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
5441
+ var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
5442
+
5443
+ // Firefox has a "watch" function on Object.prototype...
5444
+ var nativeWatch = ({}).watch;
5445
+
5446
+ var supportsPassive = false;
5447
+ if (inBrowser) {
5448
+ try {
5449
+ var opts = {};
5450
+ Object.defineProperty(opts, 'passive', ({
5451
+ get: function get () {
5452
+ /* istanbul ignore next */
5453
+ supportsPassive = true;
5454
+ }
5455
+ })); // https://github.com/facebook/flow/issues/285
5456
+ window.addEventListener('test-passive', null, opts);
5457
+ } catch (e) {}
5458
+ }
5459
+
5460
+ // this needs to be lazy-evaled because vue may be required before
5461
+ // vue-server-renderer can set VUE_ENV
5462
+ var _isServer;
5463
+ var isServerRendering = function () {
5464
+ if (_isServer === undefined) {
5465
+ /* istanbul ignore if */
5466
+ if (!inBrowser && !inWeex && typeof global !== 'undefined') {
5467
+ // detect presence of vue-server-renderer and avoid
5468
+ // Webpack shimming the process
5469
+ _isServer = global['process'].env.VUE_ENV === 'server';
5470
+ } else {
5471
+ _isServer = false;
5472
+ }
5473
+ }
5474
+ return _isServer
5475
+ };
5476
+
5477
+ // detect devtools
5478
+ var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
5479
+
5480
+ /* istanbul ignore next */
5481
+ function isNative (Ctor) {
5482
+ return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
5483
+ }
5484
+
5485
+ var hasSymbol =
5486
+ typeof Symbol !== 'undefined' && isNative(Symbol) &&
5487
+ typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
5488
+
5489
+ var _Set;
5490
+ /* istanbul ignore if */ // $flow-disable-line
5491
+ if (typeof Set !== 'undefined' && isNative(Set)) {
5492
+ // use native Set when available.
5493
+ _Set = Set;
5494
+ } else {
5495
+ // a non-standard Set polyfill that only works with primitive keys.
5496
+ _Set = (function () {
5497
+ function Set () {
5498
+ this.set = Object.create(null);
5499
+ }
5500
+ Set.prototype.has = function has (key) {
5501
+ return this.set[key] === true
5502
+ };
5503
+ Set.prototype.add = function add (key) {
5504
+ this.set[key] = true;
5505
+ };
5506
+ Set.prototype.clear = function clear () {
5507
+ this.set = Object.create(null);
5508
+ };
5509
+
5510
+ return Set;
5511
+ }());
5512
+ }
5513
+
5514
+ /* */
5515
+
5516
+ var warn = noop;
5517
+ var tip = noop;
5518
+ var generateComponentTrace = (noop); // work around flow check
5519
+ var formatComponentName = (noop);
5520
+
5521
+ if (process.env.NODE_ENV !== 'production') {
5522
+ var hasConsole = typeof console !== 'undefined';
5523
+ var classifyRE = /(?:^|[-_])(\w)/g;
5524
+ var classify = function (str) { return str
5525
+ .replace(classifyRE, function (c) { return c.toUpperCase(); })
5526
+ .replace(/[-_]/g, ''); };
5527
+
5528
+ warn = function (msg, vm) {
5529
+ var trace = vm ? generateComponentTrace(vm) : '';
5530
+
5531
+ if (config.warnHandler) {
5532
+ config.warnHandler.call(null, msg, vm, trace);
5533
+ } else if (hasConsole && (!config.silent)) {
5534
+ console.error(("[Vue warn]: " + msg + trace));
5535
+ }
5536
+ };
5537
+
5538
+ tip = function (msg, vm) {
5539
+ if (hasConsole && (!config.silent)) {
5540
+ console.warn("[Vue tip]: " + msg + (
5541
+ vm ? generateComponentTrace(vm) : ''
5542
+ ));
5543
+ }
5544
+ };
5545
+
5546
+ formatComponentName = function (vm, includeFile) {
5547
+ if (vm.$root === vm) {
5548
+ return '<Root>'
5549
+ }
5550
+ var options = typeof vm === 'function' && vm.cid != null
5551
+ ? vm.options
5552
+ : vm._isVue
5553
+ ? vm.$options || vm.constructor.options
5554
+ : vm || {};
5555
+ var name = options.name || options._componentTag;
5556
+ var file = options.__file;
5557
+ if (!name && file) {
5558
+ var match = file.match(/([^/\\]+)\.vue$/);
5559
+ name = match && match[1];
5560
+ }
5561
+
5562
+ return (
5563
+ (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
5564
+ (file && includeFile !== false ? (" at " + file) : '')
5565
+ )
5566
+ };
5567
+
5568
+ var repeat = function (str, n) {
5569
+ var res = '';
5570
+ while (n) {
5571
+ if (n % 2 === 1) { res += str; }
5572
+ if (n > 1) { str += str; }
5573
+ n >>= 1;
5574
+ }
5575
+ return res
5576
+ };
5577
+
5578
+ generateComponentTrace = function (vm) {
5579
+ if (vm._isVue && vm.$parent) {
5580
+ var tree = [];
5581
+ var currentRecursiveSequence = 0;
5582
+ while (vm) {
5583
+ if (tree.length > 0) {
5584
+ var last = tree[tree.length - 1];
5585
+ if (last.constructor === vm.constructor) {
5586
+ currentRecursiveSequence++;
5587
+ vm = vm.$parent;
5588
+ continue
5589
+ } else if (currentRecursiveSequence > 0) {
5590
+ tree[tree.length - 1] = [last, currentRecursiveSequence];
5591
+ currentRecursiveSequence = 0;
5592
+ }
5593
+ }
5594
+ tree.push(vm);
5595
+ vm = vm.$parent;
5596
+ }
5597
+ return '\n\nfound in\n\n' + tree
5598
+ .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
5599
+ ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
5600
+ : formatComponentName(vm))); })
5601
+ .join('\n')
5602
+ } else {
5603
+ return ("\n\n(found in " + (formatComponentName(vm)) + ")")
5604
+ }
5605
+ };
5606
+ }
5607
+
5608
+ /* */
5609
+
5610
+
5611
+ var uid = 0;
5612
+
5613
+ /**
5614
+ * A dep is an observable that can have multiple
5615
+ * directives subscribing to it.
5616
+ */
5617
+ var Dep = function Dep () {
5618
+ this.id = uid++;
5619
+ this.subs = [];
5620
+ };
5621
+
5622
+ Dep.prototype.addSub = function addSub (sub) {
5623
+ this.subs.push(sub);
5624
+ };
5625
+
5626
+ Dep.prototype.removeSub = function removeSub (sub) {
5627
+ remove(this.subs, sub);
5628
+ };
5629
+
5630
+ Dep.prototype.depend = function depend () {
5631
+ if (Dep.target) {
5632
+ Dep.target.addDep(this);
5633
+ }
5634
+ };
5635
+
5636
+ Dep.prototype.notify = function notify () {
5637
+ // stabilize the subscriber list first
5638
+ var subs = this.subs.slice();
5639
+ for (var i = 0, l = subs.length; i < l; i++) {
5640
+ subs[i].update();
5641
+ }
5642
+ };
5643
+
5644
+ // the current target watcher being evaluated.
5645
+ // this is globally unique because there could be only one
5646
+ // watcher being evaluated at any time.
5647
+ Dep.target = null;
5648
+ var targetStack = [];
5649
+
5650
+ function pushTarget (_target) {
5651
+ if (Dep.target) { targetStack.push(Dep.target); }
5652
+ Dep.target = _target;
5653
+ }
5654
+
5655
+ function popTarget () {
5656
+ Dep.target = targetStack.pop();
5657
+ }
5658
+
5659
+ /* */
5660
+
5661
+ var VNode = function VNode (
5662
+ tag,
5663
+ data,
5664
+ children,
5665
+ text,
5666
+ elm,
5667
+ context,
5668
+ componentOptions,
5669
+ asyncFactory
5670
+ ) {
5671
+ this.tag = tag;
5672
+ this.data = data;
5673
+ this.children = children;
5674
+ this.text = text;
5675
+ this.elm = elm;
5676
+ this.ns = undefined;
5677
+ this.context = context;
5678
+ this.fnContext = undefined;
5679
+ this.fnOptions = undefined;
5680
+ this.fnScopeId = undefined;
5681
+ this.key = data && data.key;
5682
+ this.componentOptions = componentOptions;
5683
+ this.componentInstance = undefined;
5684
+ this.parent = undefined;
5685
+ this.raw = false;
5686
+ this.isStatic = false;
5687
+ this.isRootInsert = true;
5688
+ this.isComment = false;
5689
+ this.isCloned = false;
5690
+ this.isOnce = false;
5691
+ this.asyncFactory = asyncFactory;
5692
+ this.asyncMeta = undefined;
5693
+ this.isAsyncPlaceholder = false;
5694
+ };
5695
+
5696
+ var prototypeAccessors = { child: { configurable: true } };
5697
+
5698
+ // DEPRECATED: alias for componentInstance for backwards compat.
5699
+ /* istanbul ignore next */
5700
+ prototypeAccessors.child.get = function () {
5701
+ return this.componentInstance
5702
+ };
5703
+
5704
+ Object.defineProperties( VNode.prototype, prototypeAccessors );
5705
+
5706
+ var createEmptyVNode = function (text) {
5707
+ if ( text === void 0 ) text = '';
5708
+
5709
+ var node = new VNode();
5710
+ node.text = text;
5711
+ node.isComment = true;
5712
+ return node
5713
+ };
5714
+
5715
+ function createTextVNode (val) {
5716
+ return new VNode(undefined, undefined, undefined, String(val))
5717
+ }
5718
+
5719
+ // optimized shallow clone
5720
+ // used for static nodes and slot nodes because they may be reused across
5721
+ // multiple renders, cloning them avoids errors when DOM manipulations rely
5722
+ // on their elm reference.
5723
+ function cloneVNode (vnode) {
5724
+ var cloned = new VNode(
5725
+ vnode.tag,
5726
+ vnode.data,
5727
+ vnode.children,
5728
+ vnode.text,
5729
+ vnode.elm,
5730
+ vnode.context,
5731
+ vnode.componentOptions,
5732
+ vnode.asyncFactory
5733
+ );
5734
+ cloned.ns = vnode.ns;
5735
+ cloned.isStatic = vnode.isStatic;
5736
+ cloned.key = vnode.key;
5737
+ cloned.isComment = vnode.isComment;
5738
+ cloned.fnContext = vnode.fnContext;
5739
+ cloned.fnOptions = vnode.fnOptions;
5740
+ cloned.fnScopeId = vnode.fnScopeId;
5741
+ cloned.isCloned = true;
5742
+ return cloned
5743
+ }
5744
+
5745
+ /*
5746
+ * not type checking this file because flow doesn't play well with
5747
+ * dynamically accessing methods on Array prototype
5748
+ */
5749
+
5750
+ var arrayProto = Array.prototype;
5751
+ var arrayMethods = Object.create(arrayProto);
5752
+
5753
+ var methodsToPatch = [
5754
+ 'push',
5755
+ 'pop',
5756
+ 'shift',
5757
+ 'unshift',
5758
+ 'splice',
5759
+ 'sort',
5760
+ 'reverse'
5761
+ ];
5762
+
5763
+ /**
5764
+ * Intercept mutating methods and emit events
5765
+ */
5766
+ methodsToPatch.forEach(function (method) {
5767
+ // cache original method
5768
+ var original = arrayProto[method];
5769
+ def(arrayMethods, method, function mutator () {
5770
+ var args = [], len = arguments.length;
5771
+ while ( len-- ) args[ len ] = arguments[ len ];
5772
+
5773
+ var result = original.apply(this, args);
5774
+ var ob = this.__ob__;
5775
+ var inserted;
5776
+ switch (method) {
5777
+ case 'push':
5778
+ case 'unshift':
5779
+ inserted = args;
5780
+ break
5781
+ case 'splice':
5782
+ inserted = args.slice(2);
5783
+ break
5784
+ }
5785
+ if (inserted) { ob.observeArray(inserted); }
5786
+ // notify change
5787
+ ob.dep.notify();
5788
+ return result
5789
+ });
5790
+ });
5791
+
5792
+ /* */
5793
+
5794
+ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
5795
+
5796
+ /**
5797
+ * In some cases we may want to disable observation inside a component's
5798
+ * update computation.
5799
+ */
5800
+ var shouldObserve = true;
5801
+
5802
+ function toggleObserving (value) {
5803
+ shouldObserve = value;
5804
+ }
5805
+
5806
+ /**
5807
+ * Observer class that is attached to each observed
5808
+ * object. Once attached, the observer converts the target
5809
+ * object's property keys into getter/setters that
5810
+ * collect dependencies and dispatch updates.
5811
+ */
5812
+ var Observer = function Observer (value) {
5813
+ this.value = value;
5814
+ this.dep = new Dep();
5815
+ this.vmCount = 0;
5816
+ def(value, '__ob__', this);
5817
+ if (Array.isArray(value)) {
5818
+ var augment = hasProto
5819
+ ? protoAugment
5820
+ : copyAugment;
5821
+ augment(value, arrayMethods, arrayKeys);
5822
+ this.observeArray(value);
5823
+ } else {
5824
+ this.walk(value);
5825
+ }
5826
+ };
5827
+
5828
+ /**
5829
+ * Walk through each property and convert them into
5830
+ * getter/setters. This method should only be called when
5831
+ * value type is Object.
5832
+ */
5833
+ Observer.prototype.walk = function walk (obj) {
5834
+ var keys = Object.keys(obj);
5835
+ for (var i = 0; i < keys.length; i++) {
5836
+ defineReactive(obj, keys[i]);
5837
+ }
5838
+ };
5839
+
5840
+ /**
5841
+ * Observe a list of Array items.
5842
+ */
5843
+ Observer.prototype.observeArray = function observeArray (items) {
5844
+ for (var i = 0, l = items.length; i < l; i++) {
5845
+ observe(items[i]);
5846
+ }
5847
+ };
5848
+
5849
+ // helpers
5850
+
5851
+ /**
5852
+ * Augment an target Object or Array by intercepting
5853
+ * the prototype chain using __proto__
5854
+ */
5855
+ function protoAugment (target, src, keys) {
5856
+ /* eslint-disable no-proto */
5857
+ target.__proto__ = src;
5858
+ /* eslint-enable no-proto */
5859
+ }
5860
+
5861
+ /**
5862
+ * Augment an target Object or Array by defining
5863
+ * hidden properties.
5864
+ */
5865
+ /* istanbul ignore next */
5866
+ function copyAugment (target, src, keys) {
5867
+ for (var i = 0, l = keys.length; i < l; i++) {
5868
+ var key = keys[i];
5869
+ def(target, key, src[key]);
5870
+ }
5871
+ }
5872
+
5873
+ /**
5874
+ * Attempt to create an observer instance for a value,
5875
+ * returns the new observer if successfully observed,
5876
+ * or the existing observer if the value already has one.
5877
+ */
5878
+ function observe (value, asRootData) {
5879
+ if (!isObject(value) || value instanceof VNode) {
5880
+ return
5881
+ }
5882
+ var ob;
5883
+ if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
5884
+ ob = value.__ob__;
5885
+ } else if (
5886
+ shouldObserve &&
5887
+ !isServerRendering() &&
5888
+ (Array.isArray(value) || isPlainObject(value)) &&
5889
+ Object.isExtensible(value) &&
5890
+ !value._isVue
5891
+ ) {
5892
+ ob = new Observer(value);
5893
+ }
5894
+ if (asRootData && ob) {
5895
+ ob.vmCount++;
5896
+ }
5897
+ return ob
5898
+ }
5899
+
5900
+ /**
5901
+ * Define a reactive property on an Object.
5902
+ */
5903
+ function defineReactive (
5904
+ obj,
5905
+ key,
5906
+ val,
5907
+ customSetter,
5908
+ shallow
5909
+ ) {
5910
+ var dep = new Dep();
5911
+
5912
+ var property = Object.getOwnPropertyDescriptor(obj, key);
5913
+ if (property && property.configurable === false) {
5914
+ return
5915
+ }
5916
+
5917
+ // cater for pre-defined getter/setters
5918
+ var getter = property && property.get;
5919
+ if (!getter && arguments.length === 2) {
5920
+ val = obj[key];
5921
+ }
5922
+ var setter = property && property.set;
5923
+
5924
+ var childOb = !shallow && observe(val);
5925
+ Object.defineProperty(obj, key, {
5926
+ enumerable: true,
5927
+ configurable: true,
5928
+ get: function reactiveGetter () {
5929
+ var value = getter ? getter.call(obj) : val;
5930
+ if (Dep.target) {
5931
+ dep.depend();
5932
+ if (childOb) {
5933
+ childOb.dep.depend();
5934
+ if (Array.isArray(value)) {
5935
+ dependArray(value);
5936
+ }
5937
+ }
5938
+ }
5939
+ return value
5940
+ },
5941
+ set: function reactiveSetter (newVal) {
5942
+ var value = getter ? getter.call(obj) : val;
5943
+ /* eslint-disable no-self-compare */
5944
+ if (newVal === value || (newVal !== newVal && value !== value)) {
5945
+ return
5946
+ }
5947
+ /* eslint-enable no-self-compare */
5948
+ if (process.env.NODE_ENV !== 'production' && customSetter) {
5949
+ customSetter();
5950
+ }
5951
+ if (setter) {
5952
+ setter.call(obj, newVal);
5953
+ } else {
5954
+ val = newVal;
5955
+ }
5956
+ childOb = !shallow && observe(newVal);
5957
+ dep.notify();
5958
+ }
5959
+ });
5960
+ }
5961
+
5962
+ /**
5963
+ * Set a property on an object. Adds the new property and
5964
+ * triggers change notification if the property doesn't
5965
+ * already exist.
5966
+ */
5967
+ function set (target, key, val) {
5968
+ if (process.env.NODE_ENV !== 'production' &&
5969
+ (isUndef(target) || isPrimitive(target))
5970
+ ) {
5971
+ warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
5972
+ }
5973
+ if (Array.isArray(target) && isValidArrayIndex(key)) {
5974
+ target.length = Math.max(target.length, key);
5975
+ target.splice(key, 1, val);
5976
+ return val
5977
+ }
5978
+ if (key in target && !(key in Object.prototype)) {
5979
+ target[key] = val;
5980
+ return val
5981
+ }
5982
+ var ob = (target).__ob__;
5983
+ if (target._isVue || (ob && ob.vmCount)) {
5984
+ process.env.NODE_ENV !== 'production' && warn(
5985
+ 'Avoid adding reactive properties to a Vue instance or its root $data ' +
5986
+ 'at runtime - declare it upfront in the data option.'
5987
+ );
5988
+ return val
5989
+ }
5990
+ if (!ob) {
5991
+ target[key] = val;
5992
+ return val
5993
+ }
5994
+ defineReactive(ob.value, key, val);
5995
+ ob.dep.notify();
5996
+ return val
5997
+ }
5998
+
5999
+ /**
6000
+ * Delete a property and trigger change if necessary.
6001
+ */
6002
+ function del (target, key) {
6003
+ if (process.env.NODE_ENV !== 'production' &&
6004
+ (isUndef(target) || isPrimitive(target))
6005
+ ) {
6006
+ warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
6007
+ }
6008
+ if (Array.isArray(target) && isValidArrayIndex(key)) {
6009
+ target.splice(key, 1);
6010
+ return
6011
+ }
6012
+ var ob = (target).__ob__;
6013
+ if (target._isVue || (ob && ob.vmCount)) {
6014
+ process.env.NODE_ENV !== 'production' && warn(
6015
+ 'Avoid deleting properties on a Vue instance or its root $data ' +
6016
+ '- just set it to null.'
6017
+ );
6018
+ return
6019
+ }
6020
+ if (!hasOwn(target, key)) {
6021
+ return
6022
+ }
6023
+ delete target[key];
6024
+ if (!ob) {
6025
+ return
6026
+ }
6027
+ ob.dep.notify();
6028
+ }
6029
+
6030
+ /**
6031
+ * Collect dependencies on array elements when the array is touched, since
6032
+ * we cannot intercept array element access like property getters.
6033
+ */
6034
+ function dependArray (value) {
6035
+ for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
6036
+ e = value[i];
6037
+ e && e.__ob__ && e.__ob__.dep.depend();
6038
+ if (Array.isArray(e)) {
6039
+ dependArray(e);
6040
+ }
6041
+ }
6042
+ }
6043
+
6044
+ /* */
6045
+
6046
+ /**
6047
+ * Option overwriting strategies are functions that handle
6048
+ * how to merge a parent option value and a child option
6049
+ * value into the final value.
6050
+ */
6051
+ var strats = config.optionMergeStrategies;
6052
+
6053
+ /**
6054
+ * Options with restrictions
6055
+ */
6056
+ if (process.env.NODE_ENV !== 'production') {
6057
+ strats.el = strats.propsData = function (parent, child, vm, key) {
6058
+ if (!vm) {
6059
+ warn(
6060
+ "option \"" + key + "\" can only be used during instance " +
6061
+ 'creation with the `new` keyword.'
6062
+ );
6063
+ }
6064
+ return defaultStrat(parent, child)
6065
+ };
6066
+ }
6067
+
6068
+ /**
6069
+ * Helper that recursively merges two data objects together.
6070
+ */
6071
+ function mergeData (to, from) {
6072
+ if (!from) { return to }
6073
+ var key, toVal, fromVal;
6074
+ var keys = Object.keys(from);
6075
+ for (var i = 0; i < keys.length; i++) {
6076
+ key = keys[i];
6077
+ toVal = to[key];
6078
+ fromVal = from[key];
6079
+ if (!hasOwn(to, key)) {
6080
+ set(to, key, fromVal);
6081
+ } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {
6082
+ mergeData(toVal, fromVal);
6083
+ }
6084
+ }
6085
+ return to
6086
+ }
6087
+
6088
+ /**
6089
+ * Data
6090
+ */
6091
+ function mergeDataOrFn (
6092
+ parentVal,
6093
+ childVal,
6094
+ vm
6095
+ ) {
6096
+ if (!vm) {
6097
+ // in a Vue.extend merge, both should be functions
6098
+ if (!childVal) {
6099
+ return parentVal
6100
+ }
6101
+ if (!parentVal) {
6102
+ return childVal
6103
+ }
6104
+ // when parentVal & childVal are both present,
6105
+ // we need to return a function that returns the
6106
+ // merged result of both functions... no need to
6107
+ // check if parentVal is a function here because
6108
+ // it has to be a function to pass previous merges.
6109
+ return function mergedDataFn () {
6110
+ return mergeData(
6111
+ typeof childVal === 'function' ? childVal.call(this, this) : childVal,
6112
+ typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
6113
+ )
6114
+ }
6115
+ } else {
6116
+ return function mergedInstanceDataFn () {
6117
+ // instance merge
6118
+ var instanceData = typeof childVal === 'function'
6119
+ ? childVal.call(vm, vm)
6120
+ : childVal;
6121
+ var defaultData = typeof parentVal === 'function'
6122
+ ? parentVal.call(vm, vm)
6123
+ : parentVal;
6124
+ if (instanceData) {
6125
+ return mergeData(instanceData, defaultData)
6126
+ } else {
6127
+ return defaultData
6128
+ }
6129
+ }
6130
+ }
6131
+ }
6132
+
6133
+ strats.data = function (
6134
+ parentVal,
6135
+ childVal,
6136
+ vm
6137
+ ) {
6138
+ if (!vm) {
6139
+ if (childVal && typeof childVal !== 'function') {
6140
+ process.env.NODE_ENV !== 'production' && warn(
6141
+ 'The "data" option should be a function ' +
6142
+ 'that returns a per-instance value in component ' +
6143
+ 'definitions.',
6144
+ vm
6145
+ );
6146
+
6147
+ return parentVal
6148
+ }
6149
+ return mergeDataOrFn(parentVal, childVal)
6150
+ }
6151
+
6152
+ return mergeDataOrFn(parentVal, childVal, vm)
6153
+ };
6154
+
6155
+ /**
6156
+ * Hooks and props are merged as arrays.
6157
+ */
6158
+ function mergeHook (
6159
+ parentVal,
6160
+ childVal
6161
+ ) {
6162
+ return childVal
6163
+ ? parentVal
6164
+ ? parentVal.concat(childVal)
6165
+ : Array.isArray(childVal)
6166
+ ? childVal
6167
+ : [childVal]
6168
+ : parentVal
6169
+ }
6170
+
6171
+ LIFECYCLE_HOOKS.forEach(function (hook) {
6172
+ strats[hook] = mergeHook;
6173
+ });
6174
+
6175
+ /**
6176
+ * Assets
6177
+ *
6178
+ * When a vm is present (instance creation), we need to do
6179
+ * a three-way merge between constructor options, instance
6180
+ * options and parent options.
6181
+ */
6182
+ function mergeAssets (
6183
+ parentVal,
6184
+ childVal,
6185
+ vm,
6186
+ key
6187
+ ) {
6188
+ var res = Object.create(parentVal || null);
6189
+ if (childVal) {
6190
+ process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);
6191
+ return extend(res, childVal)
6192
+ } else {
6193
+ return res
6194
+ }
6195
+ }
6196
+
6197
+ ASSET_TYPES.forEach(function (type) {
6198
+ strats[type + 's'] = mergeAssets;
6199
+ });
6200
+
6201
+ /**
6202
+ * Watchers.
6203
+ *
6204
+ * Watchers hashes should not overwrite one
6205
+ * another, so we merge them as arrays.
6206
+ */
6207
+ strats.watch = function (
6208
+ parentVal,
6209
+ childVal,
6210
+ vm,
6211
+ key
6212
+ ) {
6213
+ // work around Firefox's Object.prototype.watch...
6214
+ if (parentVal === nativeWatch) { parentVal = undefined; }
6215
+ if (childVal === nativeWatch) { childVal = undefined; }
6216
+ /* istanbul ignore if */
6217
+ if (!childVal) { return Object.create(parentVal || null) }
6218
+ if (process.env.NODE_ENV !== 'production') {
6219
+ assertObjectType(key, childVal, vm);
6220
+ }
6221
+ if (!parentVal) { return childVal }
6222
+ var ret = {};
6223
+ extend(ret, parentVal);
6224
+ for (var key$1 in childVal) {
6225
+ var parent = ret[key$1];
6226
+ var child = childVal[key$1];
6227
+ if (parent && !Array.isArray(parent)) {
6228
+ parent = [parent];
6229
+ }
6230
+ ret[key$1] = parent
6231
+ ? parent.concat(child)
6232
+ : Array.isArray(child) ? child : [child];
6233
+ }
6234
+ return ret
6235
+ };
6236
+
6237
+ /**
6238
+ * Other object hashes.
6239
+ */
6240
+ strats.props =
6241
+ strats.methods =
6242
+ strats.inject =
6243
+ strats.computed = function (
6244
+ parentVal,
6245
+ childVal,
6246
+ vm,
6247
+ key
6248
+ ) {
6249
+ if (childVal && process.env.NODE_ENV !== 'production') {
6250
+ assertObjectType(key, childVal, vm);
6251
+ }
6252
+ if (!parentVal) { return childVal }
6253
+ var ret = Object.create(null);
6254
+ extend(ret, parentVal);
6255
+ if (childVal) { extend(ret, childVal); }
6256
+ return ret
6257
+ };
6258
+ strats.provide = mergeDataOrFn;
6259
+
6260
+ /**
6261
+ * Default strategy.
6262
+ */
6263
+ var defaultStrat = function (parentVal, childVal) {
6264
+ return childVal === undefined
6265
+ ? parentVal
6266
+ : childVal
6267
+ };
6268
+
6269
+ /**
6270
+ * Validate component names
6271
+ */
6272
+ function checkComponents (options) {
6273
+ for (var key in options.components) {
6274
+ validateComponentName(key);
6275
+ }
6276
+ }
6277
+
6278
+ function validateComponentName (name) {
6279
+ if (!/^[a-zA-Z][\w-]*$/.test(name)) {
6280
+ warn(
6281
+ 'Invalid component name: "' + name + '". Component names ' +
6282
+ 'can only contain alphanumeric characters and the hyphen, ' +
6283
+ 'and must start with a letter.'
6284
+ );
6285
+ }
6286
+ if (isBuiltInTag(name) || config.isReservedTag(name)) {
6287
+ warn(
6288
+ 'Do not use built-in or reserved HTML elements as component ' +
6289
+ 'id: ' + name
6290
+ );
6291
+ }
6292
+ }
6293
+
6294
+ /**
6295
+ * Ensure all props option syntax are normalized into the
6296
+ * Object-based format.
6297
+ */
6298
+ function normalizeProps (options, vm) {
6299
+ var props = options.props;
6300
+ if (!props) { return }
6301
+ var res = {};
6302
+ var i, val, name;
6303
+ if (Array.isArray(props)) {
6304
+ i = props.length;
6305
+ while (i--) {
6306
+ val = props[i];
6307
+ if (typeof val === 'string') {
6308
+ name = camelize(val);
6309
+ res[name] = { type: null };
6310
+ } else if (process.env.NODE_ENV !== 'production') {
6311
+ warn('props must be strings when using array syntax.');
6312
+ }
6313
+ }
6314
+ } else if (isPlainObject(props)) {
6315
+ for (var key in props) {
6316
+ val = props[key];
6317
+ name = camelize(key);
6318
+ res[name] = isPlainObject(val)
6319
+ ? val
6320
+ : { type: val };
6321
+ }
6322
+ } else if (process.env.NODE_ENV !== 'production') {
6323
+ warn(
6324
+ "Invalid value for option \"props\": expected an Array or an Object, " +
6325
+ "but got " + (toRawType(props)) + ".",
6326
+ vm
6327
+ );
6328
+ }
6329
+ options.props = res;
6330
+ }
6331
+
6332
+ /**
6333
+ * Normalize all injections into Object-based format
6334
+ */
6335
+ function normalizeInject (options, vm) {
6336
+ var inject = options.inject;
6337
+ if (!inject) { return }
6338
+ var normalized = options.inject = {};
6339
+ if (Array.isArray(inject)) {
6340
+ for (var i = 0; i < inject.length; i++) {
6341
+ normalized[inject[i]] = { from: inject[i] };
6342
+ }
6343
+ } else if (isPlainObject(inject)) {
6344
+ for (var key in inject) {
6345
+ var val = inject[key];
6346
+ normalized[key] = isPlainObject(val)
6347
+ ? extend({ from: key }, val)
6348
+ : { from: val };
6349
+ }
6350
+ } else if (process.env.NODE_ENV !== 'production') {
6351
+ warn(
6352
+ "Invalid value for option \"inject\": expected an Array or an Object, " +
6353
+ "but got " + (toRawType(inject)) + ".",
6354
+ vm
6355
+ );
6356
+ }
6357
+ }
6358
+
6359
+ /**
6360
+ * Normalize raw function directives into object format.
6361
+ */
6362
+ function normalizeDirectives (options) {
6363
+ var dirs = options.directives;
6364
+ if (dirs) {
6365
+ for (var key in dirs) {
6366
+ var def = dirs[key];
6367
+ if (typeof def === 'function') {
6368
+ dirs[key] = { bind: def, update: def };
6369
+ }
6370
+ }
6371
+ }
6372
+ }
6373
+
6374
+ function assertObjectType (name, value, vm) {
6375
+ if (!isPlainObject(value)) {
6376
+ warn(
6377
+ "Invalid value for option \"" + name + "\": expected an Object, " +
6378
+ "but got " + (toRawType(value)) + ".",
6379
+ vm
6380
+ );
6381
+ }
6382
+ }
6383
+
6384
+ /**
6385
+ * Merge two option objects into a new one.
6386
+ * Core utility used in both instantiation and inheritance.
6387
+ */
6388
+ function mergeOptions (
6389
+ parent,
6390
+ child,
6391
+ vm
6392
+ ) {
6393
+ if (process.env.NODE_ENV !== 'production') {
6394
+ checkComponents(child);
6395
+ }
6396
+
6397
+ if (typeof child === 'function') {
6398
+ child = child.options;
6399
+ }
6400
+
6401
+ normalizeProps(child, vm);
6402
+ normalizeInject(child, vm);
6403
+ normalizeDirectives(child);
6404
+ var extendsFrom = child.extends;
6405
+ if (extendsFrom) {
6406
+ parent = mergeOptions(parent, extendsFrom, vm);
6407
+ }
6408
+ if (child.mixins) {
6409
+ for (var i = 0, l = child.mixins.length; i < l; i++) {
6410
+ parent = mergeOptions(parent, child.mixins[i], vm);
6411
+ }
6412
+ }
6413
+ var options = {};
6414
+ var key;
6415
+ for (key in parent) {
6416
+ mergeField(key);
6417
+ }
6418
+ for (key in child) {
6419
+ if (!hasOwn(parent, key)) {
6420
+ mergeField(key);
6421
+ }
6422
+ }
6423
+ function mergeField (key) {
6424
+ var strat = strats[key] || defaultStrat;
6425
+ options[key] = strat(parent[key], child[key], vm, key);
6426
+ }
6427
+ return options
6428
+ }
6429
+
6430
+ /**
6431
+ * Resolve an asset.
6432
+ * This function is used because child instances need access
6433
+ * to assets defined in its ancestor chain.
6434
+ */
6435
+ function resolveAsset (
6436
+ options,
6437
+ type,
6438
+ id,
6439
+ warnMissing
6440
+ ) {
6441
+ /* istanbul ignore if */
6442
+ if (typeof id !== 'string') {
6443
+ return
6444
+ }
6445
+ var assets = options[type];
6446
+ // check local registration variations first
6447
+ if (hasOwn(assets, id)) { return assets[id] }
6448
+ var camelizedId = camelize(id);
6449
+ if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
6450
+ var PascalCaseId = capitalize(camelizedId);
6451
+ if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
6452
+ // fallback to prototype chain
6453
+ var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
6454
+ if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {
6455
+ warn(
6456
+ 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
6457
+ options
6458
+ );
6459
+ }
6460
+ return res
6461
+ }
6462
+
6463
+ /* */
6464
+
6465
+ function validateProp (
6466
+ key,
6467
+ propOptions,
6468
+ propsData,
6469
+ vm
6470
+ ) {
6471
+ var prop = propOptions[key];
6472
+ var absent = !hasOwn(propsData, key);
6473
+ var value = propsData[key];
6474
+ // boolean casting
6475
+ var booleanIndex = getTypeIndex(Boolean, prop.type);
6476
+ if (booleanIndex > -1) {
6477
+ if (absent && !hasOwn(prop, 'default')) {
6478
+ value = false;
6479
+ } else if (value === '' || value === hyphenate(key)) {
6480
+ // only cast empty string / same name to boolean if
6481
+ // boolean has higher priority
6482
+ var stringIndex = getTypeIndex(String, prop.type);
6483
+ if (stringIndex < 0 || booleanIndex < stringIndex) {
6484
+ value = true;
6485
+ }
6486
+ }
6487
+ }
6488
+ // check default value
6489
+ if (value === undefined) {
6490
+ value = getPropDefaultValue(vm, prop, key);
6491
+ // since the default value is a fresh copy,
6492
+ // make sure to observe it.
6493
+ var prevShouldObserve = shouldObserve;
6494
+ toggleObserving(true);
6495
+ observe(value);
6496
+ toggleObserving(prevShouldObserve);
6497
+ }
6498
+ if (
6499
+ process.env.NODE_ENV !== 'production' &&
6500
+ // skip validation for weex recycle-list child component props
6501
+ !(false && isObject(value) && ('@binding' in value))
6502
+ ) {
6503
+ assertProp(prop, key, value, vm, absent);
6504
+ }
6505
+ return value
6506
+ }
6507
+
6508
+ /**
6509
+ * Get the default value of a prop.
6510
+ */
6511
+ function getPropDefaultValue (vm, prop, key) {
6512
+ // no default, return undefined
6513
+ if (!hasOwn(prop, 'default')) {
6514
+ return undefined
6515
+ }
6516
+ var def = prop.default;
6517
+ // warn against non-factory defaults for Object & Array
6518
+ if (process.env.NODE_ENV !== 'production' && isObject(def)) {
6519
+ warn(
6520
+ 'Invalid default value for prop "' + key + '": ' +
6521
+ 'Props with type Object/Array must use a factory function ' +
6522
+ 'to return the default value.',
6523
+ vm
6524
+ );
6525
+ }
6526
+ // the raw prop value was also undefined from previous render,
6527
+ // return previous default value to avoid unnecessary watcher trigger
6528
+ if (vm && vm.$options.propsData &&
6529
+ vm.$options.propsData[key] === undefined &&
6530
+ vm._props[key] !== undefined
6531
+ ) {
6532
+ return vm._props[key]
6533
+ }
6534
+ // call factory function for non-Function types
6535
+ // a value is Function if its prototype is function even across different execution context
6536
+ return typeof def === 'function' && getType(prop.type) !== 'Function'
6537
+ ? def.call(vm)
6538
+ : def
6539
+ }
6540
+
6541
+ /**
6542
+ * Assert whether a prop is valid.
6543
+ */
6544
+ function assertProp (
6545
+ prop,
6546
+ name,
6547
+ value,
6548
+ vm,
6549
+ absent
6550
+ ) {
6551
+ if (prop.required && absent) {
6552
+ warn(
6553
+ 'Missing required prop: "' + name + '"',
6554
+ vm
6555
+ );
6556
+ return
6557
+ }
6558
+ if (value == null && !prop.required) {
6559
+ return
6560
+ }
6561
+ var type = prop.type;
6562
+ var valid = !type || type === true;
6563
+ var expectedTypes = [];
6564
+ if (type) {
6565
+ if (!Array.isArray(type)) {
6566
+ type = [type];
6567
+ }
6568
+ for (var i = 0; i < type.length && !valid; i++) {
6569
+ var assertedType = assertType(value, type[i]);
6570
+ expectedTypes.push(assertedType.expectedType || '');
6571
+ valid = assertedType.valid;
6572
+ }
6573
+ }
6574
+ if (!valid) {
6575
+ warn(
6576
+ "Invalid prop: type check failed for prop \"" + name + "\"." +
6577
+ " Expected " + (expectedTypes.map(capitalize).join(', ')) +
6578
+ ", got " + (toRawType(value)) + ".",
6579
+ vm
6580
+ );
6581
+ return
6582
+ }
6583
+ var validator = prop.validator;
6584
+ if (validator) {
6585
+ if (!validator(value)) {
6586
+ warn(
6587
+ 'Invalid prop: custom validator check failed for prop "' + name + '".',
6588
+ vm
6589
+ );
6590
+ }
6591
+ }
6592
+ }
6593
+
6594
+ var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
6595
+
6596
+ function assertType (value, type) {
6597
+ var valid;
6598
+ var expectedType = getType(type);
6599
+ if (simpleCheckRE.test(expectedType)) {
6600
+ var t = typeof value;
6601
+ valid = t === expectedType.toLowerCase();
6602
+ // for primitive wrapper objects
6603
+ if (!valid && t === 'object') {
6604
+ valid = value instanceof type;
6605
+ }
6606
+ } else if (expectedType === 'Object') {
6607
+ valid = isPlainObject(value);
6608
+ } else if (expectedType === 'Array') {
6609
+ valid = Array.isArray(value);
6610
+ } else {
6611
+ valid = value instanceof type;
6612
+ }
6613
+ return {
6614
+ valid: valid,
6615
+ expectedType: expectedType
6616
+ }
6617
+ }
6618
+
6619
+ /**
6620
+ * Use function string name to check built-in types,
6621
+ * because a simple equality check will fail when running
6622
+ * across different vms / iframes.
6623
+ */
6624
+ function getType (fn) {
6625
+ var match = fn && fn.toString().match(/^\s*function (\w+)/);
6626
+ return match ? match[1] : ''
6627
+ }
6628
+
6629
+ function isSameType (a, b) {
6630
+ return getType(a) === getType(b)
6631
+ }
6632
+
6633
+ function getTypeIndex (type, expectedTypes) {
6634
+ if (!Array.isArray(expectedTypes)) {
6635
+ return isSameType(expectedTypes, type) ? 0 : -1
6636
+ }
6637
+ for (var i = 0, len = expectedTypes.length; i < len; i++) {
6638
+ if (isSameType(expectedTypes[i], type)) {
6639
+ return i
6640
+ }
6641
+ }
6642
+ return -1
6643
+ }
6644
+
6645
+ /* */
6646
+
6647
+ function handleError (err, vm, info) {
6648
+ if (vm) {
6649
+ var cur = vm;
6650
+ while ((cur = cur.$parent)) {
6651
+ var hooks = cur.$options.errorCaptured;
6652
+ if (hooks) {
6653
+ for (var i = 0; i < hooks.length; i++) {
6654
+ try {
6655
+ var capture = hooks[i].call(cur, err, vm, info) === false;
6656
+ if (capture) { return }
6657
+ } catch (e) {
6658
+ globalHandleError(e, cur, 'errorCaptured hook');
6659
+ }
6660
+ }
6661
+ }
6662
+ }
6663
+ }
6664
+ globalHandleError(err, vm, info);
6665
+ }
6666
+
6667
+ function globalHandleError (err, vm, info) {
6668
+ if (config.errorHandler) {
6669
+ try {
6670
+ return config.errorHandler.call(null, err, vm, info)
6671
+ } catch (e) {
6672
+ logError(e, null, 'config.errorHandler');
6673
+ }
6674
+ }
6675
+ logError(err, vm, info);
6676
+ }
6677
+
6678
+ function logError (err, vm, info) {
6679
+ if (process.env.NODE_ENV !== 'production') {
6680
+ warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
6681
+ }
6682
+ /* istanbul ignore else */
6683
+ if ((inBrowser || inWeex) && typeof console !== 'undefined') {
6684
+ console.error(err);
6685
+ } else {
6686
+ throw err
6687
+ }
6688
+ }
6689
+
6690
+ /* */
6691
+ /* globals MessageChannel */
6692
+
6693
+ var callbacks = [];
6694
+ var pending = false;
6695
+
6696
+ function flushCallbacks () {
6697
+ pending = false;
6698
+ var copies = callbacks.slice(0);
6699
+ callbacks.length = 0;
6700
+ for (var i = 0; i < copies.length; i++) {
6701
+ copies[i]();
6702
+ }
6703
+ }
6704
+
6705
+ // Here we have async deferring wrappers using both microtasks and (macro) tasks.
6706
+ // In < 2.4 we used microtasks everywhere, but there are some scenarios where
6707
+ // microtasks have too high a priority and fire in between supposedly
6708
+ // sequential events (e.g. #4521, #6690) or even between bubbling of the same
6709
+ // event (#6566). However, using (macro) tasks everywhere also has subtle problems
6710
+ // when state is changed right before repaint (e.g. #6813, out-in transitions).
6711
+ // Here we use microtask by default, but expose a way to force (macro) task when
6712
+ // needed (e.g. in event handlers attached by v-on).
6713
+ var microTimerFunc;
6714
+ var macroTimerFunc;
6715
+ var useMacroTask = false;
6716
+
6717
+ // Determine (macro) task defer implementation.
6718
+ // Technically setImmediate should be the ideal choice, but it's only available
6719
+ // in IE. The only polyfill that consistently queues the callback after all DOM
6720
+ // events triggered in the same loop is by using MessageChannel.
6721
+ /* istanbul ignore if */
6722
+ if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
6723
+ macroTimerFunc = function () {
6724
+ setImmediate(flushCallbacks);
6725
+ };
6726
+ } else if (typeof MessageChannel !== 'undefined' && (
6727
+ isNative(MessageChannel) ||
6728
+ // PhantomJS
6729
+ MessageChannel.toString() === '[object MessageChannelConstructor]'
6730
+ )) {
6731
+ var channel = new MessageChannel();
6732
+ var port = channel.port2;
6733
+ channel.port1.onmessage = flushCallbacks;
6734
+ macroTimerFunc = function () {
6735
+ port.postMessage(1);
6736
+ };
6737
+ } else {
6738
+ /* istanbul ignore next */
6739
+ macroTimerFunc = function () {
6740
+ setTimeout(flushCallbacks, 0);
6741
+ };
6742
+ }
6743
+
6744
+ // Determine microtask defer implementation.
6745
+ /* istanbul ignore next, $flow-disable-line */
6746
+ if (typeof Promise !== 'undefined' && isNative(Promise)) {
6747
+ var p = Promise.resolve();
6748
+ microTimerFunc = function () {
6749
+ p.then(flushCallbacks);
6750
+ // in problematic UIWebViews, Promise.then doesn't completely break, but
6751
+ // it can get stuck in a weird state where callbacks are pushed into the
6752
+ // microtask queue but the queue isn't being flushed, until the browser
6753
+ // needs to do some other work, e.g. handle a timer. Therefore we can
6754
+ // "force" the microtask queue to be flushed by adding an empty timer.
6755
+ if (isIOS) { setTimeout(noop); }
6756
+ };
6757
+ } else {
6758
+ // fallback to macro
6759
+ microTimerFunc = macroTimerFunc;
6760
+ }
6761
+
6762
+ /**
6763
+ * Wrap a function so that if any code inside triggers state change,
6764
+ * the changes are queued using a (macro) task instead of a microtask.
6765
+ */
6766
+ function withMacroTask (fn) {
6767
+ return fn._withTask || (fn._withTask = function () {
6768
+ useMacroTask = true;
6769
+ var res = fn.apply(null, arguments);
6770
+ useMacroTask = false;
6771
+ return res
6772
+ })
6773
+ }
6774
+
6775
+ function nextTick (cb, ctx) {
6776
+ var _resolve;
6777
+ callbacks.push(function () {
6778
+ if (cb) {
6779
+ try {
6780
+ cb.call(ctx);
6781
+ } catch (e) {
6782
+ handleError(e, ctx, 'nextTick');
6783
+ }
6784
+ } else if (_resolve) {
6785
+ _resolve(ctx);
6786
+ }
6787
+ });
6788
+ if (!pending) {
6789
+ pending = true;
6790
+ if (useMacroTask) {
6791
+ macroTimerFunc();
6792
+ } else {
6793
+ microTimerFunc();
6794
+ }
6795
+ }
6796
+ // $flow-disable-line
6797
+ if (!cb && typeof Promise !== 'undefined') {
6798
+ return new Promise(function (resolve) {
6799
+ _resolve = resolve;
6800
+ })
6801
+ }
6802
+ }
6803
+
6804
+ /* */
6805
+
6806
+ var mark;
6807
+ var measure;
6808
+
6809
+ if (process.env.NODE_ENV !== 'production') {
6810
+ var perf = inBrowser && window.performance;
6811
+ /* istanbul ignore if */
6812
+ if (
6813
+ perf &&
6814
+ perf.mark &&
6815
+ perf.measure &&
6816
+ perf.clearMarks &&
6817
+ perf.clearMeasures
6818
+ ) {
6819
+ mark = function (tag) { return perf.mark(tag); };
6820
+ measure = function (name, startTag, endTag) {
6821
+ perf.measure(name, startTag, endTag);
6822
+ perf.clearMarks(startTag);
6823
+ perf.clearMarks(endTag);
6824
+ perf.clearMeasures(name);
6825
+ };
6826
+ }
6827
+ }
6828
+
6829
+ /* not type checking this file because flow doesn't play well with Proxy */
6830
+
6831
+ var initProxy;
6832
+
6833
+ if (process.env.NODE_ENV !== 'production') {
6834
+ var allowedGlobals = makeMap(
6835
+ 'Infinity,undefined,NaN,isFinite,isNaN,' +
6836
+ 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
6837
+ 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
6838
+ 'require' // for Webpack/Browserify
6839
+ );
6840
+
6841
+ var warnNonPresent = function (target, key) {
6842
+ warn(
6843
+ "Property or method \"" + key + "\" is not defined on the instance but " +
6844
+ 'referenced during render. Make sure that this property is reactive, ' +
6845
+ 'either in the data option, or for class-based components, by ' +
6846
+ 'initializing the property. ' +
6847
+ 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
6848
+ target
6849
+ );
6850
+ };
6851
+
6852
+ var hasProxy =
6853
+ typeof Proxy !== 'undefined' && isNative(Proxy);
6854
+
6855
+ if (hasProxy) {
6856
+ var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
6857
+ config.keyCodes = new Proxy(config.keyCodes, {
6858
+ set: function set (target, key, value) {
6859
+ if (isBuiltInModifier(key)) {
6860
+ warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
6861
+ return false
6862
+ } else {
6863
+ target[key] = value;
6864
+ return true
6865
+ }
6866
+ }
6867
+ });
6868
+ }
6869
+
6870
+ var hasHandler = {
6871
+ has: function has (target, key) {
6872
+ var has = key in target;
6873
+ var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';
6874
+ if (!has && !isAllowed) {
6875
+ warnNonPresent(target, key);
6876
+ }
6877
+ return has || !isAllowed
6878
+ }
6879
+ };
6880
+
6881
+ var getHandler = {
6882
+ get: function get (target, key) {
6883
+ if (typeof key === 'string' && !(key in target)) {
6884
+ warnNonPresent(target, key);
6885
+ }
6886
+ return target[key]
6887
+ }
6888
+ };
6889
+
6890
+ initProxy = function initProxy (vm) {
6891
+ if (hasProxy) {
6892
+ // determine which proxy handler to use
6893
+ var options = vm.$options;
6894
+ var handlers = options.render && options.render._withStripped
6895
+ ? getHandler
6896
+ : hasHandler;
6897
+ vm._renderProxy = new Proxy(vm, handlers);
6898
+ } else {
6899
+ vm._renderProxy = vm;
6900
+ }
6901
+ };
6902
+ }
6903
+
6904
+ /* */
6905
+
6906
+ var seenObjects = new _Set();
6907
+
6908
+ /**
6909
+ * Recursively traverse an object to evoke all converted
6910
+ * getters, so that every nested property inside the object
6911
+ * is collected as a "deep" dependency.
6912
+ */
6913
+ function traverse (val) {
6914
+ _traverse(val, seenObjects);
6915
+ seenObjects.clear();
6916
+ }
6917
+
6918
+ function _traverse (val, seen) {
6919
+ var i, keys;
6920
+ var isA = Array.isArray(val);
6921
+ if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
6922
+ return
6923
+ }
6924
+ if (val.__ob__) {
6925
+ var depId = val.__ob__.dep.id;
6926
+ if (seen.has(depId)) {
6927
+ return
6928
+ }
6929
+ seen.add(depId);
6930
+ }
6931
+ if (isA) {
6932
+ i = val.length;
6933
+ while (i--) { _traverse(val[i], seen); }
6934
+ } else {
6935
+ keys = Object.keys(val);
6936
+ i = keys.length;
6937
+ while (i--) { _traverse(val[keys[i]], seen); }
6938
+ }
6939
+ }
6940
+
6941
+ /* */
6942
+
6943
+ var normalizeEvent = cached(function (name) {
6944
+ var passive = name.charAt(0) === '&';
6945
+ name = passive ? name.slice(1) : name;
6946
+ var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
6947
+ name = once$$1 ? name.slice(1) : name;
6948
+ var capture = name.charAt(0) === '!';
6949
+ name = capture ? name.slice(1) : name;
6950
+ return {
6951
+ name: name,
6952
+ once: once$$1,
6953
+ capture: capture,
6954
+ passive: passive
6955
+ }
6956
+ });
6957
+
6958
+ function createFnInvoker (fns) {
6959
+ function invoker () {
6960
+ var arguments$1 = arguments;
6961
+
6962
+ var fns = invoker.fns;
6963
+ if (Array.isArray(fns)) {
6964
+ var cloned = fns.slice();
6965
+ for (var i = 0; i < cloned.length; i++) {
6966
+ cloned[i].apply(null, arguments$1);
6967
+ }
6968
+ } else {
6969
+ // return handler return value for single handlers
6970
+ return fns.apply(null, arguments)
6971
+ }
6972
+ }
6973
+ invoker.fns = fns;
6974
+ return invoker
6975
+ }
6976
+
6977
+ function updateListeners (
6978
+ on,
6979
+ oldOn,
6980
+ add,
6981
+ remove$$1,
6982
+ vm
6983
+ ) {
6984
+ var name, def, cur, old, event;
6985
+ for (name in on) {
6986
+ def = cur = on[name];
6987
+ old = oldOn[name];
6988
+ event = normalizeEvent(name);
6989
+ /* istanbul ignore if */
6990
+ if (isUndef(cur)) {
6991
+ process.env.NODE_ENV !== 'production' && warn(
6992
+ "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
6993
+ vm
6994
+ );
6995
+ } else if (isUndef(old)) {
6996
+ if (isUndef(cur.fns)) {
6997
+ cur = on[name] = createFnInvoker(cur);
6998
+ }
6999
+ add(event.name, cur, event.once, event.capture, event.passive, event.params);
7000
+ } else if (cur !== old) {
7001
+ old.fns = cur;
7002
+ on[name] = old;
7003
+ }
7004
+ }
7005
+ for (name in oldOn) {
7006
+ if (isUndef(on[name])) {
7007
+ event = normalizeEvent(name);
7008
+ remove$$1(event.name, oldOn[name], event.capture);
7009
+ }
7010
+ }
7011
+ }
7012
+
7013
+ /* */
7014
+
7015
+ function mergeVNodeHook (def, hookKey, hook) {
7016
+ if (def instanceof VNode) {
7017
+ def = def.data.hook || (def.data.hook = {});
7018
+ }
7019
+ var invoker;
7020
+ var oldHook = def[hookKey];
7021
+
7022
+ function wrappedHook () {
7023
+ hook.apply(this, arguments);
7024
+ // important: remove merged hook to ensure it's called only once
7025
+ // and prevent memory leak
7026
+ remove(invoker.fns, wrappedHook);
7027
+ }
7028
+
7029
+ if (isUndef(oldHook)) {
7030
+ // no existing hook
7031
+ invoker = createFnInvoker([wrappedHook]);
7032
+ } else {
7033
+ /* istanbul ignore if */
7034
+ if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
7035
+ // already a merged invoker
7036
+ invoker = oldHook;
7037
+ invoker.fns.push(wrappedHook);
7038
+ } else {
7039
+ // existing plain hook
7040
+ invoker = createFnInvoker([oldHook, wrappedHook]);
7041
+ }
7042
+ }
7043
+
7044
+ invoker.merged = true;
7045
+ def[hookKey] = invoker;
7046
+ }
7047
+
7048
+ /* */
7049
+
7050
+ function extractPropsFromVNodeData (
7051
+ data,
7052
+ Ctor,
7053
+ tag
7054
+ ) {
7055
+ // we are only extracting raw values here.
7056
+ // validation and default values are handled in the child
7057
+ // component itself.
7058
+ var propOptions = Ctor.options.props;
7059
+ if (isUndef(propOptions)) {
7060
+ return
7061
+ }
7062
+ var res = {};
7063
+ var attrs = data.attrs;
7064
+ var props = data.props;
7065
+ if (isDef(attrs) || isDef(props)) {
7066
+ for (var key in propOptions) {
7067
+ var altKey = hyphenate(key);
7068
+ if (process.env.NODE_ENV !== 'production') {
7069
+ var keyInLowerCase = key.toLowerCase();
7070
+ if (
7071
+ key !== keyInLowerCase &&
7072
+ attrs && hasOwn(attrs, keyInLowerCase)
7073
+ ) {
7074
+ tip(
7075
+ "Prop \"" + keyInLowerCase + "\" is passed to component " +
7076
+ (formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
7077
+ " \"" + key + "\". " +
7078
+ "Note that HTML attributes are case-insensitive and camelCased " +
7079
+ "props need to use their kebab-case equivalents when using in-DOM " +
7080
+ "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
7081
+ );
7082
+ }
7083
+ }
7084
+ checkProp(res, props, key, altKey, true) ||
7085
+ checkProp(res, attrs, key, altKey, false);
7086
+ }
7087
+ }
7088
+ return res
7089
+ }
7090
+
7091
+ function checkProp (
7092
+ res,
7093
+ hash,
7094
+ key,
7095
+ altKey,
7096
+ preserve
7097
+ ) {
7098
+ if (isDef(hash)) {
7099
+ if (hasOwn(hash, key)) {
7100
+ res[key] = hash[key];
7101
+ if (!preserve) {
7102
+ delete hash[key];
7103
+ }
7104
+ return true
7105
+ } else if (hasOwn(hash, altKey)) {
7106
+ res[key] = hash[altKey];
7107
+ if (!preserve) {
7108
+ delete hash[altKey];
7109
+ }
7110
+ return true
7111
+ }
7112
+ }
7113
+ return false
7114
+ }
7115
+
7116
+ /* */
7117
+
7118
+ // The template compiler attempts to minimize the need for normalization by
7119
+ // statically analyzing the template at compile time.
7120
+ //
7121
+ // For plain HTML markup, normalization can be completely skipped because the
7122
+ // generated render function is guaranteed to return Array<VNode>. There are
7123
+ // two cases where extra normalization is needed:
7124
+
7125
+ // 1. When the children contains components - because a functional component
7126
+ // may return an Array instead of a single root. In this case, just a simple
7127
+ // normalization is needed - if any child is an Array, we flatten the whole
7128
+ // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
7129
+ // because functional components already normalize their own children.
7130
+ function simpleNormalizeChildren (children) {
7131
+ for (var i = 0; i < children.length; i++) {
7132
+ if (Array.isArray(children[i])) {
7133
+ return Array.prototype.concat.apply([], children)
7134
+ }
7135
+ }
7136
+ return children
7137
+ }
7138
+
7139
+ // 2. When the children contains constructs that always generated nested Arrays,
7140
+ // e.g. <template>, <slot>, v-for, or when the children is provided by user
7141
+ // with hand-written render functions / JSX. In such cases a full normalization
7142
+ // is needed to cater to all possible types of children values.
7143
+ function normalizeChildren (children) {
7144
+ return isPrimitive(children)
7145
+ ? [createTextVNode(children)]
7146
+ : Array.isArray(children)
7147
+ ? normalizeArrayChildren(children)
7148
+ : undefined
7149
+ }
7150
+
7151
+ function isTextNode (node) {
7152
+ return isDef(node) && isDef(node.text) && isFalse(node.isComment)
7153
+ }
7154
+
7155
+ function normalizeArrayChildren (children, nestedIndex) {
7156
+ var res = [];
7157
+ var i, c, lastIndex, last;
7158
+ for (i = 0; i < children.length; i++) {
7159
+ c = children[i];
7160
+ if (isUndef(c) || typeof c === 'boolean') { continue }
7161
+ lastIndex = res.length - 1;
7162
+ last = res[lastIndex];
7163
+ // nested
7164
+ if (Array.isArray(c)) {
7165
+ if (c.length > 0) {
7166
+ c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
7167
+ // merge adjacent text nodes
7168
+ if (isTextNode(c[0]) && isTextNode(last)) {
7169
+ res[lastIndex] = createTextVNode(last.text + (c[0]).text);
7170
+ c.shift();
7171
+ }
7172
+ res.push.apply(res, c);
7173
+ }
7174
+ } else if (isPrimitive(c)) {
7175
+ if (isTextNode(last)) {
7176
+ // merge adjacent text nodes
7177
+ // this is necessary for SSR hydration because text nodes are
7178
+ // essentially merged when rendered to HTML strings
7179
+ res[lastIndex] = createTextVNode(last.text + c);
7180
+ } else if (c !== '') {
7181
+ // convert primitive to vnode
7182
+ res.push(createTextVNode(c));
7183
+ }
7184
+ } else {
7185
+ if (isTextNode(c) && isTextNode(last)) {
7186
+ // merge adjacent text nodes
7187
+ res[lastIndex] = createTextVNode(last.text + c.text);
7188
+ } else {
7189
+ // default key for nested array children (likely generated by v-for)
7190
+ if (isTrue(children._isVList) &&
7191
+ isDef(c.tag) &&
7192
+ isUndef(c.key) &&
7193
+ isDef(nestedIndex)) {
7194
+ c.key = "__vlist" + nestedIndex + "_" + i + "__";
7195
+ }
7196
+ res.push(c);
7197
+ }
7198
+ }
7199
+ }
7200
+ return res
7201
+ }
7202
+
7203
+ /* */
7204
+
7205
+ function ensureCtor (comp, base) {
7206
+ if (
7207
+ comp.__esModule ||
7208
+ (hasSymbol && comp[Symbol.toStringTag] === 'Module')
7209
+ ) {
7210
+ comp = comp.default;
7211
+ }
7212
+ return isObject(comp)
7213
+ ? base.extend(comp)
7214
+ : comp
7215
+ }
7216
+
7217
+ function createAsyncPlaceholder (
7218
+ factory,
7219
+ data,
7220
+ context,
7221
+ children,
7222
+ tag
7223
+ ) {
7224
+ var node = createEmptyVNode();
7225
+ node.asyncFactory = factory;
7226
+ node.asyncMeta = { data: data, context: context, children: children, tag: tag };
7227
+ return node
7228
+ }
7229
+
7230
+ function resolveAsyncComponent (
7231
+ factory,
7232
+ baseCtor,
7233
+ context
7234
+ ) {
7235
+ if (isTrue(factory.error) && isDef(factory.errorComp)) {
7236
+ return factory.errorComp
7237
+ }
7238
+
7239
+ if (isDef(factory.resolved)) {
7240
+ return factory.resolved
7241
+ }
7242
+
7243
+ if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
7244
+ return factory.loadingComp
7245
+ }
7246
+
7247
+ if (isDef(factory.contexts)) {
7248
+ // already pending
7249
+ factory.contexts.push(context);
7250
+ } else {
7251
+ var contexts = factory.contexts = [context];
7252
+ var sync = true;
7253
+
7254
+ var forceRender = function () {
7255
+ for (var i = 0, l = contexts.length; i < l; i++) {
7256
+ contexts[i].$forceUpdate();
7257
+ }
7258
+ };
7259
+
7260
+ var resolve = once(function (res) {
7261
+ // cache resolved
7262
+ factory.resolved = ensureCtor(res, baseCtor);
7263
+ // invoke callbacks only if this is not a synchronous resolve
7264
+ // (async resolves are shimmed as synchronous during SSR)
7265
+ if (!sync) {
7266
+ forceRender();
7267
+ }
7268
+ });
7269
+
7270
+ var reject = once(function (reason) {
7271
+ process.env.NODE_ENV !== 'production' && warn(
7272
+ "Failed to resolve async component: " + (String(factory)) +
7273
+ (reason ? ("\nReason: " + reason) : '')
7274
+ );
7275
+ if (isDef(factory.errorComp)) {
7276
+ factory.error = true;
7277
+ forceRender();
7278
+ }
7279
+ });
7280
+
7281
+ var res = factory(resolve, reject);
7282
+
7283
+ if (isObject(res)) {
7284
+ if (typeof res.then === 'function') {
7285
+ // () => Promise
7286
+ if (isUndef(factory.resolved)) {
7287
+ res.then(resolve, reject);
7288
+ }
7289
+ } else if (isDef(res.component) && typeof res.component.then === 'function') {
7290
+ res.component.then(resolve, reject);
7291
+
7292
+ if (isDef(res.error)) {
7293
+ factory.errorComp = ensureCtor(res.error, baseCtor);
7294
+ }
7295
+
7296
+ if (isDef(res.loading)) {
7297
+ factory.loadingComp = ensureCtor(res.loading, baseCtor);
7298
+ if (res.delay === 0) {
7299
+ factory.loading = true;
7300
+ } else {
7301
+ setTimeout(function () {
7302
+ if (isUndef(factory.resolved) && isUndef(factory.error)) {
7303
+ factory.loading = true;
7304
+ forceRender();
7305
+ }
7306
+ }, res.delay || 200);
7307
+ }
7308
+ }
7309
+
7310
+ if (isDef(res.timeout)) {
7311
+ setTimeout(function () {
7312
+ if (isUndef(factory.resolved)) {
7313
+ reject(
7314
+ process.env.NODE_ENV !== 'production'
7315
+ ? ("timeout (" + (res.timeout) + "ms)")
7316
+ : null
7317
+ );
7318
+ }
7319
+ }, res.timeout);
7320
+ }
7321
+ }
7322
+ }
7323
+
7324
+ sync = false;
7325
+ // return in case resolved synchronously
7326
+ return factory.loading
7327
+ ? factory.loadingComp
7328
+ : factory.resolved
7329
+ }
7330
+ }
7331
+
7332
+ /* */
7333
+
7334
+ function isAsyncPlaceholder (node) {
7335
+ return node.isComment && node.asyncFactory
7336
+ }
7337
+
7338
+ /* */
7339
+
7340
+ function getFirstComponentChild (children) {
7341
+ if (Array.isArray(children)) {
7342
+ for (var i = 0; i < children.length; i++) {
7343
+ var c = children[i];
7344
+ if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
7345
+ return c
7346
+ }
7347
+ }
7348
+ }
7349
+ }
7350
+
7351
+ /* */
7352
+
7353
+ /* */
7354
+
7355
+ function initEvents (vm) {
7356
+ vm._events = Object.create(null);
7357
+ vm._hasHookEvent = false;
7358
+ // init parent attached events
7359
+ var listeners = vm.$options._parentListeners;
7360
+ if (listeners) {
7361
+ updateComponentListeners(vm, listeners);
7362
+ }
7363
+ }
7364
+
7365
+ var target;
7366
+
7367
+ function add (event, fn, once) {
7368
+ if (once) {
7369
+ target.$once(event, fn);
7370
+ } else {
7371
+ target.$on(event, fn);
7372
+ }
7373
+ }
7374
+
7375
+ function remove$1 (event, fn) {
7376
+ target.$off(event, fn);
7377
+ }
7378
+
7379
+ function updateComponentListeners (
7380
+ vm,
7381
+ listeners,
7382
+ oldListeners
7383
+ ) {
7384
+ target = vm;
7385
+ updateListeners(listeners, oldListeners || {}, add, remove$1, vm);
7386
+ target = undefined;
7387
+ }
7388
+
7389
+ function eventsMixin (Vue) {
7390
+ var hookRE = /^hook:/;
7391
+ Vue.prototype.$on = function (event, fn) {
7392
+ var this$1 = this;
7393
+
7394
+ var vm = this;
7395
+ if (Array.isArray(event)) {
7396
+ for (var i = 0, l = event.length; i < l; i++) {
7397
+ this$1.$on(event[i], fn);
7398
+ }
7399
+ } else {
7400
+ (vm._events[event] || (vm._events[event] = [])).push(fn);
7401
+ // optimize hook:event cost by using a boolean flag marked at registration
7402
+ // instead of a hash lookup
7403
+ if (hookRE.test(event)) {
7404
+ vm._hasHookEvent = true;
7405
+ }
7406
+ }
7407
+ return vm
7408
+ };
7409
+
7410
+ Vue.prototype.$once = function (event, fn) {
7411
+ var vm = this;
7412
+ function on () {
7413
+ vm.$off(event, on);
7414
+ fn.apply(vm, arguments);
7415
+ }
7416
+ on.fn = fn;
7417
+ vm.$on(event, on);
7418
+ return vm
7419
+ };
7420
+
7421
+ Vue.prototype.$off = function (event, fn) {
7422
+ var this$1 = this;
7423
+
7424
+ var vm = this;
7425
+ // all
7426
+ if (!arguments.length) {
7427
+ vm._events = Object.create(null);
7428
+ return vm
7429
+ }
7430
+ // array of events
7431
+ if (Array.isArray(event)) {
7432
+ for (var i = 0, l = event.length; i < l; i++) {
7433
+ this$1.$off(event[i], fn);
7434
+ }
7435
+ return vm
7436
+ }
7437
+ // specific event
7438
+ var cbs = vm._events[event];
7439
+ if (!cbs) {
7440
+ return vm
7441
+ }
7442
+ if (!fn) {
7443
+ vm._events[event] = null;
7444
+ return vm
7445
+ }
7446
+ if (fn) {
7447
+ // specific handler
7448
+ var cb;
7449
+ var i$1 = cbs.length;
7450
+ while (i$1--) {
7451
+ cb = cbs[i$1];
7452
+ if (cb === fn || cb.fn === fn) {
7453
+ cbs.splice(i$1, 1);
7454
+ break
7455
+ }
7456
+ }
7457
+ }
7458
+ return vm
7459
+ };
7460
+
7461
+ Vue.prototype.$emit = function (event) {
7462
+ var vm = this;
7463
+ if (process.env.NODE_ENV !== 'production') {
7464
+ var lowerCaseEvent = event.toLowerCase();
7465
+ if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
7466
+ tip(
7467
+ "Event \"" + lowerCaseEvent + "\" is emitted in component " +
7468
+ (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
7469
+ "Note that HTML attributes are case-insensitive and you cannot use " +
7470
+ "v-on to listen to camelCase events when using in-DOM templates. " +
7471
+ "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
7472
+ );
7473
+ }
7474
+ }
7475
+ var cbs = vm._events[event];
7476
+ if (cbs) {
7477
+ cbs = cbs.length > 1 ? toArray(cbs) : cbs;
7478
+ var args = toArray(arguments, 1);
7479
+ for (var i = 0, l = cbs.length; i < l; i++) {
7480
+ try {
7481
+ cbs[i].apply(vm, args);
7482
+ } catch (e) {
7483
+ handleError(e, vm, ("event handler for \"" + event + "\""));
7484
+ }
7485
+ }
7486
+ }
7487
+ return vm
7488
+ };
7489
+ }
7490
+
7491
+ /* */
7492
+
7493
+
7494
+
7495
+ /**
7496
+ * Runtime helper for resolving raw children VNodes into a slot object.
7497
+ */
7498
+ function resolveSlots (
7499
+ children,
7500
+ context
7501
+ ) {
7502
+ var slots = {};
7503
+ if (!children) {
7504
+ return slots
7505
+ }
7506
+ for (var i = 0, l = children.length; i < l; i++) {
7507
+ var child = children[i];
7508
+ var data = child.data;
7509
+ // remove slot attribute if the node is resolved as a Vue slot node
7510
+ if (data && data.attrs && data.attrs.slot) {
7511
+ delete data.attrs.slot;
7512
+ }
7513
+ // named slots should only be respected if the vnode was rendered in the
7514
+ // same context.
7515
+ if ((child.context === context || child.fnContext === context) &&
7516
+ data && data.slot != null
7517
+ ) {
7518
+ var name = data.slot;
7519
+ var slot = (slots[name] || (slots[name] = []));
7520
+ if (child.tag === 'template') {
7521
+ slot.push.apply(slot, child.children || []);
7522
+ } else {
7523
+ slot.push(child);
7524
+ }
7525
+ } else {
7526
+ (slots.default || (slots.default = [])).push(child);
7527
+ }
7528
+ }
7529
+ // ignore slots that contains only whitespace
7530
+ for (var name$1 in slots) {
7531
+ if (slots[name$1].every(isWhitespace)) {
7532
+ delete slots[name$1];
7533
+ }
7534
+ }
7535
+ return slots
7536
+ }
7537
+
7538
+ function isWhitespace (node) {
7539
+ return (node.isComment && !node.asyncFactory) || node.text === ' '
7540
+ }
7541
+
7542
+ function resolveScopedSlots (
7543
+ fns, // see flow/vnode
7544
+ res
7545
+ ) {
7546
+ res = res || {};
7547
+ for (var i = 0; i < fns.length; i++) {
7548
+ if (Array.isArray(fns[i])) {
7549
+ resolveScopedSlots(fns[i], res);
7550
+ } else {
7551
+ res[fns[i].key] = fns[i].fn;
7552
+ }
7553
+ }
7554
+ return res
7555
+ }
7556
+
7557
+ /* */
7558
+
7559
+ var activeInstance = null;
7560
+ var isUpdatingChildComponent = false;
7561
+
7562
+ function initLifecycle (vm) {
7563
+ var options = vm.$options;
7564
+
7565
+ // locate first non-abstract parent
7566
+ var parent = options.parent;
7567
+ if (parent && !options.abstract) {
7568
+ while (parent.$options.abstract && parent.$parent) {
7569
+ parent = parent.$parent;
7570
+ }
7571
+ parent.$children.push(vm);
7572
+ }
7573
+
7574
+ vm.$parent = parent;
7575
+ vm.$root = parent ? parent.$root : vm;
7576
+
7577
+ vm.$children = [];
7578
+ vm.$refs = {};
7579
+
7580
+ vm._watcher = null;
7581
+ vm._inactive = null;
7582
+ vm._directInactive = false;
7583
+ vm._isMounted = false;
7584
+ vm._isDestroyed = false;
7585
+ vm._isBeingDestroyed = false;
7586
+ }
7587
+
7588
+ function lifecycleMixin (Vue) {
7589
+ Vue.prototype._update = function (vnode, hydrating) {
7590
+ var vm = this;
7591
+ if (vm._isMounted) {
7592
+ callHook(vm, 'beforeUpdate');
7593
+ }
7594
+ var prevEl = vm.$el;
7595
+ var prevVnode = vm._vnode;
7596
+ var prevActiveInstance = activeInstance;
7597
+ activeInstance = vm;
7598
+ vm._vnode = vnode;
7599
+ // Vue.prototype.__patch__ is injected in entry points
7600
+ // based on the rendering backend used.
7601
+ if (!prevVnode) {
7602
+ // initial render
7603
+ vm.$el = vm.__patch__(
7604
+ vm.$el, vnode, hydrating, false /* removeOnly */,
7605
+ vm.$options._parentElm,
7606
+ vm.$options._refElm
7607
+ );
7608
+ // no need for the ref nodes after initial patch
7609
+ // this prevents keeping a detached DOM tree in memory (#5851)
7610
+ vm.$options._parentElm = vm.$options._refElm = null;
7611
+ } else {
7612
+ // updates
7613
+ vm.$el = vm.__patch__(prevVnode, vnode);
7614
+ }
7615
+ activeInstance = prevActiveInstance;
7616
+ // update __vue__ reference
7617
+ if (prevEl) {
7618
+ prevEl.__vue__ = null;
7619
+ }
7620
+ if (vm.$el) {
7621
+ vm.$el.__vue__ = vm;
7622
+ }
7623
+ // if parent is an HOC, update its $el as well
7624
+ if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
7625
+ vm.$parent.$el = vm.$el;
7626
+ }
7627
+ // updated hook is called by the scheduler to ensure that children are
7628
+ // updated in a parent's updated hook.
7629
+ };
7630
+
7631
+ Vue.prototype.$forceUpdate = function () {
7632
+ var vm = this;
7633
+ if (vm._watcher) {
7634
+ vm._watcher.update();
7635
+ }
7636
+ };
7637
+
7638
+ Vue.prototype.$destroy = function () {
7639
+ var vm = this;
7640
+ if (vm._isBeingDestroyed) {
7641
+ return
7642
+ }
7643
+ callHook(vm, 'beforeDestroy');
7644
+ vm._isBeingDestroyed = true;
7645
+ // remove self from parent
7646
+ var parent = vm.$parent;
7647
+ if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
7648
+ remove(parent.$children, vm);
7649
+ }
7650
+ // teardown watchers
7651
+ if (vm._watcher) {
7652
+ vm._watcher.teardown();
7653
+ }
7654
+ var i = vm._watchers.length;
7655
+ while (i--) {
7656
+ vm._watchers[i].teardown();
7657
+ }
7658
+ // remove reference from data ob
7659
+ // frozen object may not have observer.
7660
+ if (vm._data.__ob__) {
7661
+ vm._data.__ob__.vmCount--;
7662
+ }
7663
+ // call the last hook...
7664
+ vm._isDestroyed = true;
7665
+ // invoke destroy hooks on current rendered tree
7666
+ vm.__patch__(vm._vnode, null);
7667
+ // fire destroyed hook
7668
+ callHook(vm, 'destroyed');
7669
+ // turn off all instance listeners.
7670
+ vm.$off();
7671
+ // remove __vue__ reference
7672
+ if (vm.$el) {
7673
+ vm.$el.__vue__ = null;
7674
+ }
7675
+ // release circular reference (#6759)
7676
+ if (vm.$vnode) {
7677
+ vm.$vnode.parent = null;
7678
+ }
7679
+ };
7680
+ }
7681
+
7682
+ function mountComponent (
7683
+ vm,
7684
+ el,
7685
+ hydrating
7686
+ ) {
7687
+ vm.$el = el;
7688
+ if (!vm.$options.render) {
7689
+ vm.$options.render = createEmptyVNode;
7690
+ if (process.env.NODE_ENV !== 'production') {
7691
+ /* istanbul ignore if */
7692
+ if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
7693
+ vm.$options.el || el) {
7694
+ warn(
7695
+ 'You are using the runtime-only build of Vue where the template ' +
7696
+ 'compiler is not available. Either pre-compile the templates into ' +
7697
+ 'render functions, or use the compiler-included build.',
7698
+ vm
7699
+ );
7700
+ } else {
7701
+ warn(
7702
+ 'Failed to mount component: template or render function not defined.',
7703
+ vm
7704
+ );
7705
+ }
7706
+ }
7707
+ }
7708
+ callHook(vm, 'beforeMount');
7709
+
7710
+ var updateComponent;
7711
+ /* istanbul ignore if */
7712
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
7713
+ updateComponent = function () {
7714
+ var name = vm._name;
7715
+ var id = vm._uid;
7716
+ var startTag = "vue-perf-start:" + id;
7717
+ var endTag = "vue-perf-end:" + id;
7718
+
7719
+ mark(startTag);
7720
+ var vnode = vm._render();
7721
+ mark(endTag);
7722
+ measure(("vue " + name + " render"), startTag, endTag);
7723
+
7724
+ mark(startTag);
7725
+ vm._update(vnode, hydrating);
7726
+ mark(endTag);
7727
+ measure(("vue " + name + " patch"), startTag, endTag);
7728
+ };
7729
+ } else {
7730
+ updateComponent = function () {
7731
+ vm._update(vm._render(), hydrating);
7732
+ };
7733
+ }
7734
+
7735
+ // we set this to vm._watcher inside the watcher's constructor
7736
+ // since the watcher's initial patch may call $forceUpdate (e.g. inside child
7737
+ // component's mounted hook), which relies on vm._watcher being already defined
7738
+ new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);
7739
+ hydrating = false;
7740
+
7741
+ // manually mounted instance, call mounted on self
7742
+ // mounted is called for render-created child components in its inserted hook
7743
+ if (vm.$vnode == null) {
7744
+ vm._isMounted = true;
7745
+ callHook(vm, 'mounted');
7746
+ }
7747
+ return vm
7748
+ }
7749
+
7750
+ function updateChildComponent (
7751
+ vm,
7752
+ propsData,
7753
+ listeners,
7754
+ parentVnode,
7755
+ renderChildren
7756
+ ) {
7757
+ if (process.env.NODE_ENV !== 'production') {
7758
+ isUpdatingChildComponent = true;
7759
+ }
7760
+
7761
+ // determine whether component has slot children
7762
+ // we need to do this before overwriting $options._renderChildren
7763
+ var hasChildren = !!(
7764
+ renderChildren || // has new static slots
7765
+ vm.$options._renderChildren || // has old static slots
7766
+ parentVnode.data.scopedSlots || // has new scoped slots
7767
+ vm.$scopedSlots !== emptyObject // has old scoped slots
7768
+ );
7769
+
7770
+ vm.$options._parentVnode = parentVnode;
7771
+ vm.$vnode = parentVnode; // update vm's placeholder node without re-render
7772
+
7773
+ if (vm._vnode) { // update child tree's parent
7774
+ vm._vnode.parent = parentVnode;
7775
+ }
7776
+ vm.$options._renderChildren = renderChildren;
7777
+
7778
+ // update $attrs and $listeners hash
7779
+ // these are also reactive so they may trigger child update if the child
7780
+ // used them during render
7781
+ vm.$attrs = parentVnode.data.attrs || emptyObject;
7782
+ vm.$listeners = listeners || emptyObject;
7783
+
7784
+ // update props
7785
+ if (propsData && vm.$options.props) {
7786
+ toggleObserving(false);
7787
+ var props = vm._props;
7788
+ var propKeys = vm.$options._propKeys || [];
7789
+ for (var i = 0; i < propKeys.length; i++) {
7790
+ var key = propKeys[i];
7791
+ var propOptions = vm.$options.props; // wtf flow?
7792
+ props[key] = validateProp(key, propOptions, propsData, vm);
7793
+ }
7794
+ toggleObserving(true);
7795
+ // keep a copy of raw propsData
7796
+ vm.$options.propsData = propsData;
7797
+ }
7798
+
7799
+ // update listeners
7800
+ listeners = listeners || emptyObject;
7801
+ var oldListeners = vm.$options._parentListeners;
7802
+ vm.$options._parentListeners = listeners;
7803
+ updateComponentListeners(vm, listeners, oldListeners);
7804
+
7805
+ // resolve slots + force update if has children
7806
+ if (hasChildren) {
7807
+ vm.$slots = resolveSlots(renderChildren, parentVnode.context);
7808
+ vm.$forceUpdate();
7809
+ }
7810
+
7811
+ if (process.env.NODE_ENV !== 'production') {
7812
+ isUpdatingChildComponent = false;
7813
+ }
7814
+ }
7815
+
7816
+ function isInInactiveTree (vm) {
7817
+ while (vm && (vm = vm.$parent)) {
7818
+ if (vm._inactive) { return true }
7819
+ }
7820
+ return false
7821
+ }
7822
+
7823
+ function activateChildComponent (vm, direct) {
7824
+ if (direct) {
7825
+ vm._directInactive = false;
7826
+ if (isInInactiveTree(vm)) {
7827
+ return
7828
+ }
7829
+ } else if (vm._directInactive) {
7830
+ return
7831
+ }
7832
+ if (vm._inactive || vm._inactive === null) {
7833
+ vm._inactive = false;
7834
+ for (var i = 0; i < vm.$children.length; i++) {
7835
+ activateChildComponent(vm.$children[i]);
7836
+ }
7837
+ callHook(vm, 'activated');
7838
+ }
7839
+ }
7840
+
7841
+ function deactivateChildComponent (vm, direct) {
7842
+ if (direct) {
7843
+ vm._directInactive = true;
7844
+ if (isInInactiveTree(vm)) {
7845
+ return
7846
+ }
7847
+ }
7848
+ if (!vm._inactive) {
7849
+ vm._inactive = true;
7850
+ for (var i = 0; i < vm.$children.length; i++) {
7851
+ deactivateChildComponent(vm.$children[i]);
7852
+ }
7853
+ callHook(vm, 'deactivated');
7854
+ }
7855
+ }
7856
+
7857
+ function callHook (vm, hook) {
7858
+ // #7573 disable dep collection when invoking lifecycle hooks
7859
+ pushTarget();
7860
+ var handlers = vm.$options[hook];
7861
+ if (handlers) {
7862
+ for (var i = 0, j = handlers.length; i < j; i++) {
7863
+ try {
7864
+ handlers[i].call(vm);
7865
+ } catch (e) {
7866
+ handleError(e, vm, (hook + " hook"));
7867
+ }
7868
+ }
7869
+ }
7870
+ if (vm._hasHookEvent) {
7871
+ vm.$emit('hook:' + hook);
7872
+ }
7873
+ popTarget();
7874
+ }
7875
+
7876
+ /* */
7877
+
7878
+
7879
+ var MAX_UPDATE_COUNT = 100;
7880
+
7881
+ var queue = [];
7882
+ var activatedChildren = [];
7883
+ var has = {};
7884
+ var circular = {};
7885
+ var waiting = false;
7886
+ var flushing = false;
7887
+ var index = 0;
7888
+
7889
+ /**
7890
+ * Reset the scheduler's state.
7891
+ */
7892
+ function resetSchedulerState () {
7893
+ index = queue.length = activatedChildren.length = 0;
7894
+ has = {};
7895
+ if (process.env.NODE_ENV !== 'production') {
7896
+ circular = {};
7897
+ }
7898
+ waiting = flushing = false;
7899
+ }
7900
+
7901
+ /**
7902
+ * Flush both queues and run the watchers.
7903
+ */
7904
+ function flushSchedulerQueue () {
7905
+ flushing = true;
7906
+ var watcher, id;
7907
+
7908
+ // Sort queue before flush.
7909
+ // This ensures that:
7910
+ // 1. Components are updated from parent to child. (because parent is always
7911
+ // created before the child)
7912
+ // 2. A component's user watchers are run before its render watcher (because
7913
+ // user watchers are created before the render watcher)
7914
+ // 3. If a component is destroyed during a parent component's watcher run,
7915
+ // its watchers can be skipped.
7916
+ queue.sort(function (a, b) { return a.id - b.id; });
7917
+
7918
+ // do not cache length because more watchers might be pushed
7919
+ // as we run existing watchers
7920
+ for (index = 0; index < queue.length; index++) {
7921
+ watcher = queue[index];
7922
+ id = watcher.id;
7923
+ has[id] = null;
7924
+ watcher.run();
7925
+ // in dev build, check and stop circular updates.
7926
+ if (process.env.NODE_ENV !== 'production' && has[id] != null) {
7927
+ circular[id] = (circular[id] || 0) + 1;
7928
+ if (circular[id] > MAX_UPDATE_COUNT) {
7929
+ warn(
7930
+ 'You may have an infinite update loop ' + (
7931
+ watcher.user
7932
+ ? ("in watcher with expression \"" + (watcher.expression) + "\"")
7933
+ : "in a component render function."
7934
+ ),
7935
+ watcher.vm
7936
+ );
7937
+ break
7938
+ }
7939
+ }
7940
+ }
7941
+
7942
+ // keep copies of post queues before resetting state
7943
+ var activatedQueue = activatedChildren.slice();
7944
+ var updatedQueue = queue.slice();
7945
+
7946
+ resetSchedulerState();
7947
+
7948
+ // call component updated and activated hooks
7949
+ callActivatedHooks(activatedQueue);
7950
+ callUpdatedHooks(updatedQueue);
7951
+
7952
+ // devtool hook
7953
+ /* istanbul ignore if */
7954
+ if (devtools && config.devtools) {
7955
+ devtools.emit('flush');
7956
+ }
7957
+ }
7958
+
7959
+ function callUpdatedHooks (queue) {
7960
+ var i = queue.length;
7961
+ while (i--) {
7962
+ var watcher = queue[i];
7963
+ var vm = watcher.vm;
7964
+ if (vm._watcher === watcher && vm._isMounted) {
7965
+ callHook(vm, 'updated');
7966
+ }
7967
+ }
7968
+ }
7969
+
7970
+ /**
7971
+ * Queue a kept-alive component that was activated during patch.
7972
+ * The queue will be processed after the entire tree has been patched.
7973
+ */
7974
+ function queueActivatedComponent (vm) {
7975
+ // setting _inactive to false here so that a render function can
7976
+ // rely on checking whether it's in an inactive tree (e.g. router-view)
7977
+ vm._inactive = false;
7978
+ activatedChildren.push(vm);
7979
+ }
7980
+
7981
+ function callActivatedHooks (queue) {
7982
+ for (var i = 0; i < queue.length; i++) {
7983
+ queue[i]._inactive = true;
7984
+ activateChildComponent(queue[i], true /* true */);
7985
+ }
7986
+ }
7987
+
7988
+ /**
7989
+ * Push a watcher into the watcher queue.
7990
+ * Jobs with duplicate IDs will be skipped unless it's
7991
+ * pushed when the queue is being flushed.
7992
+ */
7993
+ function queueWatcher (watcher) {
7994
+ var id = watcher.id;
7995
+ if (has[id] == null) {
7996
+ has[id] = true;
7997
+ if (!flushing) {
7998
+ queue.push(watcher);
7999
+ } else {
8000
+ // if already flushing, splice the watcher based on its id
8001
+ // if already past its id, it will be run next immediately.
8002
+ var i = queue.length - 1;
8003
+ while (i > index && queue[i].id > watcher.id) {
8004
+ i--;
8005
+ }
8006
+ queue.splice(i + 1, 0, watcher);
8007
+ }
8008
+ // queue the flush
8009
+ if (!waiting) {
8010
+ waiting = true;
8011
+ nextTick(flushSchedulerQueue);
8012
+ }
8013
+ }
8014
+ }
8015
+
8016
+ /* */
8017
+
8018
+ var uid$1 = 0;
8019
+
8020
+ /**
8021
+ * A watcher parses an expression, collects dependencies,
8022
+ * and fires callback when the expression value changes.
8023
+ * This is used for both the $watch() api and directives.
8024
+ */
8025
+ var Watcher = function Watcher (
8026
+ vm,
8027
+ expOrFn,
8028
+ cb,
8029
+ options,
8030
+ isRenderWatcher
8031
+ ) {
8032
+ this.vm = vm;
8033
+ if (isRenderWatcher) {
8034
+ vm._watcher = this;
8035
+ }
8036
+ vm._watchers.push(this);
8037
+ // options
8038
+ if (options) {
8039
+ this.deep = !!options.deep;
8040
+ this.user = !!options.user;
8041
+ this.lazy = !!options.lazy;
8042
+ this.sync = !!options.sync;
8043
+ } else {
8044
+ this.deep = this.user = this.lazy = this.sync = false;
8045
+ }
8046
+ this.cb = cb;
8047
+ this.id = ++uid$1; // uid for batching
8048
+ this.active = true;
8049
+ this.dirty = this.lazy; // for lazy watchers
8050
+ this.deps = [];
8051
+ this.newDeps = [];
8052
+ this.depIds = new _Set();
8053
+ this.newDepIds = new _Set();
8054
+ this.expression = process.env.NODE_ENV !== 'production'
8055
+ ? expOrFn.toString()
8056
+ : '';
8057
+ // parse expression for getter
8058
+ if (typeof expOrFn === 'function') {
8059
+ this.getter = expOrFn;
8060
+ } else {
8061
+ this.getter = parsePath(expOrFn);
8062
+ if (!this.getter) {
8063
+ this.getter = function () {};
8064
+ process.env.NODE_ENV !== 'production' && warn(
8065
+ "Failed watching path: \"" + expOrFn + "\" " +
8066
+ 'Watcher only accepts simple dot-delimited paths. ' +
8067
+ 'For full control, use a function instead.',
8068
+ vm
8069
+ );
8070
+ }
8071
+ }
8072
+ this.value = this.lazy
8073
+ ? undefined
8074
+ : this.get();
8075
+ };
8076
+
8077
+ /**
8078
+ * Evaluate the getter, and re-collect dependencies.
8079
+ */
8080
+ Watcher.prototype.get = function get () {
8081
+ pushTarget(this);
8082
+ var value;
8083
+ var vm = this.vm;
8084
+ try {
8085
+ value = this.getter.call(vm, vm);
8086
+ } catch (e) {
8087
+ if (this.user) {
8088
+ handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
8089
+ } else {
8090
+ throw e
8091
+ }
8092
+ } finally {
8093
+ // "touch" every property so they are all tracked as
8094
+ // dependencies for deep watching
8095
+ if (this.deep) {
8096
+ traverse(value);
8097
+ }
8098
+ popTarget();
8099
+ this.cleanupDeps();
8100
+ }
8101
+ return value
8102
+ };
8103
+
8104
+ /**
8105
+ * Add a dependency to this directive.
8106
+ */
8107
+ Watcher.prototype.addDep = function addDep (dep) {
8108
+ var id = dep.id;
8109
+ if (!this.newDepIds.has(id)) {
8110
+ this.newDepIds.add(id);
8111
+ this.newDeps.push(dep);
8112
+ if (!this.depIds.has(id)) {
8113
+ dep.addSub(this);
8114
+ }
8115
+ }
8116
+ };
8117
+
8118
+ /**
8119
+ * Clean up for dependency collection.
8120
+ */
8121
+ Watcher.prototype.cleanupDeps = function cleanupDeps () {
8122
+ var this$1 = this;
8123
+
8124
+ var i = this.deps.length;
8125
+ while (i--) {
8126
+ var dep = this$1.deps[i];
8127
+ if (!this$1.newDepIds.has(dep.id)) {
8128
+ dep.removeSub(this$1);
8129
+ }
8130
+ }
8131
+ var tmp = this.depIds;
8132
+ this.depIds = this.newDepIds;
8133
+ this.newDepIds = tmp;
8134
+ this.newDepIds.clear();
8135
+ tmp = this.deps;
8136
+ this.deps = this.newDeps;
8137
+ this.newDeps = tmp;
8138
+ this.newDeps.length = 0;
8139
+ };
8140
+
8141
+ /**
8142
+ * Subscriber interface.
8143
+ * Will be called when a dependency changes.
8144
+ */
8145
+ Watcher.prototype.update = function update () {
8146
+ /* istanbul ignore else */
8147
+ if (this.lazy) {
8148
+ this.dirty = true;
8149
+ } else if (this.sync) {
8150
+ this.run();
8151
+ } else {
8152
+ queueWatcher(this);
8153
+ }
8154
+ };
8155
+
8156
+ /**
8157
+ * Scheduler job interface.
8158
+ * Will be called by the scheduler.
8159
+ */
8160
+ Watcher.prototype.run = function run () {
8161
+ if (this.active) {
8162
+ var value = this.get();
8163
+ if (
8164
+ value !== this.value ||
8165
+ // Deep watchers and watchers on Object/Arrays should fire even
8166
+ // when the value is the same, because the value may
8167
+ // have mutated.
8168
+ isObject(value) ||
8169
+ this.deep
8170
+ ) {
8171
+ // set new value
8172
+ var oldValue = this.value;
8173
+ this.value = value;
8174
+ if (this.user) {
8175
+ try {
8176
+ this.cb.call(this.vm, value, oldValue);
8177
+ } catch (e) {
8178
+ handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
8179
+ }
8180
+ } else {
8181
+ this.cb.call(this.vm, value, oldValue);
8182
+ }
8183
+ }
8184
+ }
8185
+ };
8186
+
8187
+ /**
8188
+ * Evaluate the value of the watcher.
8189
+ * This only gets called for lazy watchers.
8190
+ */
8191
+ Watcher.prototype.evaluate = function evaluate () {
8192
+ this.value = this.get();
8193
+ this.dirty = false;
8194
+ };
8195
+
8196
+ /**
8197
+ * Depend on all deps collected by this watcher.
8198
+ */
8199
+ Watcher.prototype.depend = function depend () {
8200
+ var this$1 = this;
8201
+
8202
+ var i = this.deps.length;
8203
+ while (i--) {
8204
+ this$1.deps[i].depend();
8205
+ }
8206
+ };
8207
+
8208
+ /**
8209
+ * Remove self from all dependencies' subscriber list.
8210
+ */
8211
+ Watcher.prototype.teardown = function teardown () {
8212
+ var this$1 = this;
8213
+
8214
+ if (this.active) {
8215
+ // remove self from vm's watcher list
8216
+ // this is a somewhat expensive operation so we skip it
8217
+ // if the vm is being destroyed.
8218
+ if (!this.vm._isBeingDestroyed) {
8219
+ remove(this.vm._watchers, this);
8220
+ }
8221
+ var i = this.deps.length;
8222
+ while (i--) {
8223
+ this$1.deps[i].removeSub(this$1);
8224
+ }
8225
+ this.active = false;
8226
+ }
8227
+ };
8228
+
8229
+ /* */
8230
+
8231
+ var sharedPropertyDefinition = {
8232
+ enumerable: true,
8233
+ configurable: true,
8234
+ get: noop,
8235
+ set: noop
8236
+ };
8237
+
8238
+ function proxy (target, sourceKey, key) {
8239
+ sharedPropertyDefinition.get = function proxyGetter () {
8240
+ return this[sourceKey][key]
8241
+ };
8242
+ sharedPropertyDefinition.set = function proxySetter (val) {
8243
+ this[sourceKey][key] = val;
8244
+ };
8245
+ Object.defineProperty(target, key, sharedPropertyDefinition);
8246
+ }
8247
+
8248
+ function initState (vm) {
8249
+ vm._watchers = [];
8250
+ var opts = vm.$options;
8251
+ if (opts.props) { initProps(vm, opts.props); }
8252
+ if (opts.methods) { initMethods(vm, opts.methods); }
8253
+ if (opts.data) {
8254
+ initData(vm);
8255
+ } else {
8256
+ observe(vm._data = {}, true /* asRootData */);
8257
+ }
8258
+ if (opts.computed) { initComputed(vm, opts.computed); }
8259
+ if (opts.watch && opts.watch !== nativeWatch) {
8260
+ initWatch(vm, opts.watch);
8261
+ }
8262
+ }
8263
+
8264
+ function initProps (vm, propsOptions) {
8265
+ var propsData = vm.$options.propsData || {};
8266
+ var props = vm._props = {};
8267
+ // cache prop keys so that future props updates can iterate using Array
8268
+ // instead of dynamic object key enumeration.
8269
+ var keys = vm.$options._propKeys = [];
8270
+ var isRoot = !vm.$parent;
8271
+ // root instance props should be converted
8272
+ if (!isRoot) {
8273
+ toggleObserving(false);
8274
+ }
8275
+ var loop = function ( key ) {
8276
+ keys.push(key);
8277
+ var value = validateProp(key, propsOptions, propsData, vm);
8278
+ /* istanbul ignore else */
8279
+ if (process.env.NODE_ENV !== 'production') {
8280
+ var hyphenatedKey = hyphenate(key);
8281
+ if (isReservedAttribute(hyphenatedKey) ||
8282
+ config.isReservedAttr(hyphenatedKey)) {
8283
+ warn(
8284
+ ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
8285
+ vm
8286
+ );
8287
+ }
8288
+ defineReactive(props, key, value, function () {
8289
+ if (vm.$parent && !isUpdatingChildComponent) {
8290
+ warn(
8291
+ "Avoid mutating a prop directly since the value will be " +
8292
+ "overwritten whenever the parent component re-renders. " +
8293
+ "Instead, use a data or computed property based on the prop's " +
8294
+ "value. Prop being mutated: \"" + key + "\"",
8295
+ vm
8296
+ );
8297
+ }
8298
+ });
8299
+ } else {
8300
+ defineReactive(props, key, value);
8301
+ }
8302
+ // static props are already proxied on the component's prototype
8303
+ // during Vue.extend(). We only need to proxy props defined at
8304
+ // instantiation here.
8305
+ if (!(key in vm)) {
8306
+ proxy(vm, "_props", key);
8307
+ }
8308
+ };
8309
+
8310
+ for (var key in propsOptions) loop( key );
8311
+ toggleObserving(true);
8312
+ }
8313
+
8314
+ function initData (vm) {
8315
+ var data = vm.$options.data;
8316
+ data = vm._data = typeof data === 'function'
8317
+ ? getData(data, vm)
8318
+ : data || {};
8319
+ if (!isPlainObject(data)) {
8320
+ data = {};
8321
+ process.env.NODE_ENV !== 'production' && warn(
8322
+ 'data functions should return an object:\n' +
8323
+ 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
8324
+ vm
8325
+ );
8326
+ }
8327
+ // proxy data on instance
8328
+ var keys = Object.keys(data);
8329
+ var props = vm.$options.props;
8330
+ var methods = vm.$options.methods;
8331
+ var i = keys.length;
8332
+ while (i--) {
8333
+ var key = keys[i];
8334
+ if (process.env.NODE_ENV !== 'production') {
8335
+ if (methods && hasOwn(methods, key)) {
8336
+ warn(
8337
+ ("Method \"" + key + "\" has already been defined as a data property."),
8338
+ vm
8339
+ );
8340
+ }
8341
+ }
8342
+ if (props && hasOwn(props, key)) {
8343
+ process.env.NODE_ENV !== 'production' && warn(
8344
+ "The data property \"" + key + "\" is already declared as a prop. " +
8345
+ "Use prop default value instead.",
8346
+ vm
8347
+ );
8348
+ } else if (!isReserved(key)) {
8349
+ proxy(vm, "_data", key);
8350
+ }
8351
+ }
8352
+ // observe data
8353
+ observe(data, true /* asRootData */);
8354
+ }
8355
+
8356
+ function getData (data, vm) {
8357
+ // #7573 disable dep collection when invoking data getters
8358
+ pushTarget();
8359
+ try {
8360
+ return data.call(vm, vm)
8361
+ } catch (e) {
8362
+ handleError(e, vm, "data()");
8363
+ return {}
8364
+ } finally {
8365
+ popTarget();
8366
+ }
8367
+ }
8368
+
8369
+ var computedWatcherOptions = { lazy: true };
8370
+
8371
+ function initComputed (vm, computed) {
8372
+ // $flow-disable-line
8373
+ var watchers = vm._computedWatchers = Object.create(null);
8374
+ // computed properties are just getters during SSR
8375
+ var isSSR = isServerRendering();
8376
+
8377
+ for (var key in computed) {
8378
+ var userDef = computed[key];
8379
+ var getter = typeof userDef === 'function' ? userDef : userDef.get;
8380
+ if (process.env.NODE_ENV !== 'production' && getter == null) {
8381
+ warn(
8382
+ ("Getter is missing for computed property \"" + key + "\"."),
8383
+ vm
8384
+ );
8385
+ }
8386
+
8387
+ if (!isSSR) {
8388
+ // create internal watcher for the computed property.
8389
+ watchers[key] = new Watcher(
8390
+ vm,
8391
+ getter || noop,
8392
+ noop,
8393
+ computedWatcherOptions
8394
+ );
8395
+ }
8396
+
8397
+ // component-defined computed properties are already defined on the
8398
+ // component prototype. We only need to define computed properties defined
8399
+ // at instantiation here.
8400
+ if (!(key in vm)) {
8401
+ defineComputed(vm, key, userDef);
8402
+ } else if (process.env.NODE_ENV !== 'production') {
8403
+ if (key in vm.$data) {
8404
+ warn(("The computed property \"" + key + "\" is already defined in data."), vm);
8405
+ } else if (vm.$options.props && key in vm.$options.props) {
8406
+ warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
8407
+ }
8408
+ }
8409
+ }
8410
+ }
8411
+
8412
+ function defineComputed (
8413
+ target,
8414
+ key,
8415
+ userDef
8416
+ ) {
8417
+ var shouldCache = !isServerRendering();
8418
+ if (typeof userDef === 'function') {
8419
+ sharedPropertyDefinition.get = shouldCache
8420
+ ? createComputedGetter(key)
8421
+ : userDef;
8422
+ sharedPropertyDefinition.set = noop;
8423
+ } else {
8424
+ sharedPropertyDefinition.get = userDef.get
8425
+ ? shouldCache && userDef.cache !== false
8426
+ ? createComputedGetter(key)
8427
+ : userDef.get
8428
+ : noop;
8429
+ sharedPropertyDefinition.set = userDef.set
8430
+ ? userDef.set
8431
+ : noop;
8432
+ }
8433
+ if (process.env.NODE_ENV !== 'production' &&
8434
+ sharedPropertyDefinition.set === noop) {
8435
+ sharedPropertyDefinition.set = function () {
8436
+ warn(
8437
+ ("Computed property \"" + key + "\" was assigned to but it has no setter."),
8438
+ this
8439
+ );
8440
+ };
8441
+ }
8442
+ Object.defineProperty(target, key, sharedPropertyDefinition);
8443
+ }
8444
+
8445
+ function createComputedGetter (key) {
8446
+ return function computedGetter () {
8447
+ var watcher = this._computedWatchers && this._computedWatchers[key];
8448
+ if (watcher) {
8449
+ if (watcher.dirty) {
8450
+ watcher.evaluate();
8451
+ }
8452
+ if (Dep.target) {
8453
+ watcher.depend();
8454
+ }
8455
+ return watcher.value
8456
+ }
8457
+ }
8458
+ }
8459
+
8460
+ function initMethods (vm, methods) {
8461
+ var props = vm.$options.props;
8462
+ for (var key in methods) {
8463
+ if (process.env.NODE_ENV !== 'production') {
8464
+ if (methods[key] == null) {
8465
+ warn(
8466
+ "Method \"" + key + "\" has an undefined value in the component definition. " +
8467
+ "Did you reference the function correctly?",
8468
+ vm
8469
+ );
8470
+ }
8471
+ if (props && hasOwn(props, key)) {
8472
+ warn(
8473
+ ("Method \"" + key + "\" has already been defined as a prop."),
8474
+ vm
8475
+ );
8476
+ }
8477
+ if ((key in vm) && isReserved(key)) {
8478
+ warn(
8479
+ "Method \"" + key + "\" conflicts with an existing Vue instance method. " +
8480
+ "Avoid defining component methods that start with _ or $."
8481
+ );
8482
+ }
8483
+ }
8484
+ vm[key] = methods[key] == null ? noop : bind(methods[key], vm);
8485
+ }
8486
+ }
8487
+
8488
+ function initWatch (vm, watch) {
8489
+ for (var key in watch) {
8490
+ var handler = watch[key];
8491
+ if (Array.isArray(handler)) {
8492
+ for (var i = 0; i < handler.length; i++) {
8493
+ createWatcher(vm, key, handler[i]);
8494
+ }
8495
+ } else {
8496
+ createWatcher(vm, key, handler);
8497
+ }
8498
+ }
8499
+ }
8500
+
8501
+ function createWatcher (
8502
+ vm,
8503
+ expOrFn,
8504
+ handler,
8505
+ options
8506
+ ) {
8507
+ if (isPlainObject(handler)) {
8508
+ options = handler;
8509
+ handler = handler.handler;
8510
+ }
8511
+ if (typeof handler === 'string') {
8512
+ handler = vm[handler];
8513
+ }
8514
+ return vm.$watch(expOrFn, handler, options)
8515
+ }
8516
+
8517
+ function stateMixin (Vue) {
8518
+ // flow somehow has problems with directly declared definition object
8519
+ // when using Object.defineProperty, so we have to procedurally build up
8520
+ // the object here.
8521
+ var dataDef = {};
8522
+ dataDef.get = function () { return this._data };
8523
+ var propsDef = {};
8524
+ propsDef.get = function () { return this._props };
8525
+ if (process.env.NODE_ENV !== 'production') {
8526
+ dataDef.set = function (newData) {
8527
+ warn(
8528
+ 'Avoid replacing instance root $data. ' +
8529
+ 'Use nested data properties instead.',
8530
+ this
8531
+ );
8532
+ };
8533
+ propsDef.set = function () {
8534
+ warn("$props is readonly.", this);
8535
+ };
8536
+ }
8537
+ Object.defineProperty(Vue.prototype, '$data', dataDef);
8538
+ Object.defineProperty(Vue.prototype, '$props', propsDef);
8539
+
8540
+ Vue.prototype.$set = set;
8541
+ Vue.prototype.$delete = del;
8542
+
8543
+ Vue.prototype.$watch = function (
8544
+ expOrFn,
8545
+ cb,
8546
+ options
8547
+ ) {
8548
+ var vm = this;
8549
+ if (isPlainObject(cb)) {
8550
+ return createWatcher(vm, expOrFn, cb, options)
8551
+ }
8552
+ options = options || {};
8553
+ options.user = true;
8554
+ var watcher = new Watcher(vm, expOrFn, cb, options);
8555
+ if (options.immediate) {
8556
+ cb.call(vm, watcher.value);
8557
+ }
8558
+ return function unwatchFn () {
8559
+ watcher.teardown();
8560
+ }
8561
+ };
8562
+ }
8563
+
8564
+ /* */
8565
+
8566
+ function initProvide (vm) {
8567
+ var provide = vm.$options.provide;
8568
+ if (provide) {
8569
+ vm._provided = typeof provide === 'function'
8570
+ ? provide.call(vm)
8571
+ : provide;
8572
+ }
8573
+ }
8574
+
8575
+ function initInjections (vm) {
8576
+ var result = resolveInject(vm.$options.inject, vm);
8577
+ if (result) {
8578
+ toggleObserving(false);
8579
+ Object.keys(result).forEach(function (key) {
8580
+ /* istanbul ignore else */
8581
+ if (process.env.NODE_ENV !== 'production') {
8582
+ defineReactive(vm, key, result[key], function () {
8583
+ warn(
8584
+ "Avoid mutating an injected value directly since the changes will be " +
8585
+ "overwritten whenever the provided component re-renders. " +
8586
+ "injection being mutated: \"" + key + "\"",
8587
+ vm
8588
+ );
8589
+ });
8590
+ } else {
8591
+ defineReactive(vm, key, result[key]);
8592
+ }
8593
+ });
8594
+ toggleObserving(true);
8595
+ }
8596
+ }
8597
+
8598
+ function resolveInject (inject, vm) {
8599
+ if (inject) {
8600
+ // inject is :any because flow is not smart enough to figure out cached
8601
+ var result = Object.create(null);
8602
+ var keys = hasSymbol
8603
+ ? Reflect.ownKeys(inject).filter(function (key) {
8604
+ /* istanbul ignore next */
8605
+ return Object.getOwnPropertyDescriptor(inject, key).enumerable
8606
+ })
8607
+ : Object.keys(inject);
8608
+
8609
+ for (var i = 0; i < keys.length; i++) {
8610
+ var key = keys[i];
8611
+ var provideKey = inject[key].from;
8612
+ var source = vm;
8613
+ while (source) {
8614
+ if (source._provided && hasOwn(source._provided, provideKey)) {
8615
+ result[key] = source._provided[provideKey];
8616
+ break
8617
+ }
8618
+ source = source.$parent;
8619
+ }
8620
+ if (!source) {
8621
+ if ('default' in inject[key]) {
8622
+ var provideDefault = inject[key].default;
8623
+ result[key] = typeof provideDefault === 'function'
8624
+ ? provideDefault.call(vm)
8625
+ : provideDefault;
8626
+ } else if (process.env.NODE_ENV !== 'production') {
8627
+ warn(("Injection \"" + key + "\" not found"), vm);
8628
+ }
8629
+ }
8630
+ }
8631
+ return result
8632
+ }
8633
+ }
8634
+
8635
+ /* */
8636
+
8637
+ /**
8638
+ * Runtime helper for rendering v-for lists.
8639
+ */
8640
+ function renderList (
8641
+ val,
8642
+ render
8643
+ ) {
8644
+ var ret, i, l, keys, key;
8645
+ if (Array.isArray(val) || typeof val === 'string') {
8646
+ ret = new Array(val.length);
8647
+ for (i = 0, l = val.length; i < l; i++) {
8648
+ ret[i] = render(val[i], i);
8649
+ }
8650
+ } else if (typeof val === 'number') {
8651
+ ret = new Array(val);
8652
+ for (i = 0; i < val; i++) {
8653
+ ret[i] = render(i + 1, i);
8654
+ }
8655
+ } else if (isObject(val)) {
8656
+ keys = Object.keys(val);
8657
+ ret = new Array(keys.length);
8658
+ for (i = 0, l = keys.length; i < l; i++) {
8659
+ key = keys[i];
8660
+ ret[i] = render(val[key], key, i);
8661
+ }
8662
+ }
8663
+ if (isDef(ret)) {
8664
+ (ret)._isVList = true;
8665
+ }
8666
+ return ret
8667
+ }
8668
+
8669
+ /* */
8670
+
8671
+ /**
8672
+ * Runtime helper for rendering <slot>
8673
+ */
8674
+ function renderSlot (
8675
+ name,
8676
+ fallback,
8677
+ props,
8678
+ bindObject
8679
+ ) {
8680
+ var scopedSlotFn = this.$scopedSlots[name];
8681
+ var nodes;
8682
+ if (scopedSlotFn) { // scoped slot
8683
+ props = props || {};
8684
+ if (bindObject) {
8685
+ if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {
8686
+ warn(
8687
+ 'slot v-bind without argument expects an Object',
8688
+ this
8689
+ );
8690
+ }
8691
+ props = extend(extend({}, bindObject), props);
8692
+ }
8693
+ nodes = scopedSlotFn(props) || fallback;
8694
+ } else {
8695
+ var slotNodes = this.$slots[name];
8696
+ // warn duplicate slot usage
8697
+ if (slotNodes) {
8698
+ if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) {
8699
+ warn(
8700
+ "Duplicate presence of slot \"" + name + "\" found in the same render tree " +
8701
+ "- this will likely cause render errors.",
8702
+ this
8703
+ );
8704
+ }
8705
+ slotNodes._rendered = true;
8706
+ }
8707
+ nodes = slotNodes || fallback;
8708
+ }
8709
+
8710
+ var target = props && props.slot;
8711
+ if (target) {
8712
+ return this.$createElement('template', { slot: target }, nodes)
8713
+ } else {
8714
+ return nodes
8715
+ }
8716
+ }
8717
+
8718
+ /* */
8719
+
8720
+ /**
8721
+ * Runtime helper for resolving filters
8722
+ */
8723
+ function resolveFilter (id) {
8724
+ return resolveAsset(this.$options, 'filters', id, true) || identity
8725
+ }
8726
+
8727
+ /* */
8728
+
8729
+ function isKeyNotMatch (expect, actual) {
8730
+ if (Array.isArray(expect)) {
8731
+ return expect.indexOf(actual) === -1
8732
+ } else {
8733
+ return expect !== actual
8734
+ }
8735
+ }
8736
+
8737
+ /**
8738
+ * Runtime helper for checking keyCodes from config.
8739
+ * exposed as Vue.prototype._k
8740
+ * passing in eventKeyName as last argument separately for backwards compat
8741
+ */
8742
+ function checkKeyCodes (
8743
+ eventKeyCode,
8744
+ key,
8745
+ builtInKeyCode,
8746
+ eventKeyName,
8747
+ builtInKeyName
8748
+ ) {
8749
+ var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
8750
+ if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
8751
+ return isKeyNotMatch(builtInKeyName, eventKeyName)
8752
+ } else if (mappedKeyCode) {
8753
+ return isKeyNotMatch(mappedKeyCode, eventKeyCode)
8754
+ } else if (eventKeyName) {
8755
+ return hyphenate(eventKeyName) !== key
8756
+ }
8757
+ }
8758
+
8759
+ /* */
8760
+
8761
+ /**
8762
+ * Runtime helper for merging v-bind="object" into a VNode's data.
8763
+ */
8764
+ function bindObjectProps (
8765
+ data,
8766
+ tag,
8767
+ value,
8768
+ asProp,
8769
+ isSync
8770
+ ) {
8771
+ if (value) {
8772
+ if (!isObject(value)) {
8773
+ process.env.NODE_ENV !== 'production' && warn(
8774
+ 'v-bind without argument expects an Object or Array value',
8775
+ this
8776
+ );
8777
+ } else {
8778
+ if (Array.isArray(value)) {
8779
+ value = toObject(value);
8780
+ }
8781
+ var hash;
8782
+ var loop = function ( key ) {
8783
+ if (
8784
+ key === 'class' ||
8785
+ key === 'style' ||
8786
+ isReservedAttribute(key)
8787
+ ) {
8788
+ hash = data;
8789
+ } else {
8790
+ var type = data.attrs && data.attrs.type;
8791
+ hash = asProp || config.mustUseProp(tag, type, key)
8792
+ ? data.domProps || (data.domProps = {})
8793
+ : data.attrs || (data.attrs = {});
8794
+ }
8795
+ if (!(key in hash)) {
8796
+ hash[key] = value[key];
8797
+
8798
+ if (isSync) {
8799
+ var on = data.on || (data.on = {});
8800
+ on[("update:" + key)] = function ($event) {
8801
+ value[key] = $event;
8802
+ };
8803
+ }
8804
+ }
8805
+ };
8806
+
8807
+ for (var key in value) loop( key );
8808
+ }
8809
+ }
8810
+ return data
8811
+ }
8812
+
8813
+ /* */
8814
+
8815
+ /**
8816
+ * Runtime helper for rendering static trees.
8817
+ */
8818
+ function renderStatic (
8819
+ index,
8820
+ isInFor
8821
+ ) {
8822
+ var cached = this._staticTrees || (this._staticTrees = []);
8823
+ var tree = cached[index];
8824
+ // if has already-rendered static tree and not inside v-for,
8825
+ // we can reuse the same tree.
8826
+ if (tree && !isInFor) {
8827
+ return tree
8828
+ }
8829
+ // otherwise, render a fresh tree.
8830
+ tree = cached[index] = this.$options.staticRenderFns[index].call(
8831
+ this._renderProxy,
8832
+ null,
8833
+ this // for render fns generated for functional component templates
8834
+ );
8835
+ markStatic(tree, ("__static__" + index), false);
8836
+ return tree
8837
+ }
8838
+
8839
+ /**
8840
+ * Runtime helper for v-once.
8841
+ * Effectively it means marking the node as static with a unique key.
8842
+ */
8843
+ function markOnce (
8844
+ tree,
8845
+ index,
8846
+ key
8847
+ ) {
8848
+ markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
8849
+ return tree
8850
+ }
8851
+
8852
+ function markStatic (
8853
+ tree,
8854
+ key,
8855
+ isOnce
8856
+ ) {
8857
+ if (Array.isArray(tree)) {
8858
+ for (var i = 0; i < tree.length; i++) {
8859
+ if (tree[i] && typeof tree[i] !== 'string') {
8860
+ markStaticNode(tree[i], (key + "_" + i), isOnce);
8861
+ }
8862
+ }
8863
+ } else {
8864
+ markStaticNode(tree, key, isOnce);
8865
+ }
8866
+ }
8867
+
8868
+ function markStaticNode (node, key, isOnce) {
8869
+ node.isStatic = true;
8870
+ node.key = key;
8871
+ node.isOnce = isOnce;
8872
+ }
8873
+
8874
+ /* */
8875
+
8876
+ function bindObjectListeners (data, value) {
8877
+ if (value) {
8878
+ if (!isPlainObject(value)) {
8879
+ process.env.NODE_ENV !== 'production' && warn(
8880
+ 'v-on without argument expects an Object value',
8881
+ this
8882
+ );
8883
+ } else {
8884
+ var on = data.on = data.on ? extend({}, data.on) : {};
8885
+ for (var key in value) {
8886
+ var existing = on[key];
8887
+ var ours = value[key];
8888
+ on[key] = existing ? [].concat(existing, ours) : ours;
8889
+ }
8890
+ }
8891
+ }
8892
+ return data
8893
+ }
8894
+
8895
+ /* */
8896
+
8897
+ function installRenderHelpers (target) {
8898
+ target._o = markOnce;
8899
+ target._n = toNumber;
8900
+ target._s = toString;
8901
+ target._l = renderList;
8902
+ target._t = renderSlot;
8903
+ target._q = looseEqual;
8904
+ target._i = looseIndexOf;
8905
+ target._m = renderStatic;
8906
+ target._f = resolveFilter;
8907
+ target._k = checkKeyCodes;
8908
+ target._b = bindObjectProps;
8909
+ target._v = createTextVNode;
8910
+ target._e = createEmptyVNode;
8911
+ target._u = resolveScopedSlots;
8912
+ target._g = bindObjectListeners;
8913
+ }
8914
+
8915
+ /* */
8916
+
8917
+ function FunctionalRenderContext (
8918
+ data,
8919
+ props,
8920
+ children,
8921
+ parent,
8922
+ Ctor
8923
+ ) {
8924
+ var options = Ctor.options;
8925
+ // ensure the createElement function in functional components
8926
+ // gets a unique context - this is necessary for correct named slot check
8927
+ var contextVm;
8928
+ if (hasOwn(parent, '_uid')) {
8929
+ contextVm = Object.create(parent);
8930
+ // $flow-disable-line
8931
+ contextVm._original = parent;
8932
+ } else {
8933
+ // the context vm passed in is a functional context as well.
8934
+ // in this case we want to make sure we are able to get a hold to the
8935
+ // real context instance.
8936
+ contextVm = parent;
8937
+ // $flow-disable-line
8938
+ parent = parent._original;
8939
+ }
8940
+ var isCompiled = isTrue(options._compiled);
8941
+ var needNormalization = !isCompiled;
8942
+
8943
+ this.data = data;
8944
+ this.props = props;
8945
+ this.children = children;
8946
+ this.parent = parent;
8947
+ this.listeners = data.on || emptyObject;
8948
+ this.injections = resolveInject(options.inject, parent);
8949
+ this.slots = function () { return resolveSlots(children, parent); };
8950
+
8951
+ // support for compiled functional template
8952
+ if (isCompiled) {
8953
+ // exposing $options for renderStatic()
8954
+ this.$options = options;
8955
+ // pre-resolve slots for renderSlot()
8956
+ this.$slots = this.slots();
8957
+ this.$scopedSlots = data.scopedSlots || emptyObject;
8958
+ }
8959
+
8960
+ if (options._scopeId) {
8961
+ this._c = function (a, b, c, d) {
8962
+ var vnode = createElement(contextVm, a, b, c, d, needNormalization);
8963
+ if (vnode && !Array.isArray(vnode)) {
8964
+ vnode.fnScopeId = options._scopeId;
8965
+ vnode.fnContext = parent;
8966
+ }
8967
+ return vnode
8968
+ };
8969
+ } else {
8970
+ this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
8971
+ }
8972
+ }
8973
+
8974
+ installRenderHelpers(FunctionalRenderContext.prototype);
8975
+
8976
+ function createFunctionalComponent (
8977
+ Ctor,
8978
+ propsData,
8979
+ data,
8980
+ contextVm,
8981
+ children
8982
+ ) {
8983
+ var options = Ctor.options;
8984
+ var props = {};
8985
+ var propOptions = options.props;
8986
+ if (isDef(propOptions)) {
8987
+ for (var key in propOptions) {
8988
+ props[key] = validateProp(key, propOptions, propsData || emptyObject);
8989
+ }
8990
+ } else {
8991
+ if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
8992
+ if (isDef(data.props)) { mergeProps(props, data.props); }
8993
+ }
8994
+
8995
+ var renderContext = new FunctionalRenderContext(
8996
+ data,
8997
+ props,
8998
+ children,
8999
+ contextVm,
9000
+ Ctor
9001
+ );
9002
+
9003
+ var vnode = options.render.call(null, renderContext._c, renderContext);
9004
+
9005
+ if (vnode instanceof VNode) {
9006
+ return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)
9007
+ } else if (Array.isArray(vnode)) {
9008
+ var vnodes = normalizeChildren(vnode) || [];
9009
+ var res = new Array(vnodes.length);
9010
+ for (var i = 0; i < vnodes.length; i++) {
9011
+ res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);
9012
+ }
9013
+ return res
9014
+ }
9015
+ }
9016
+
9017
+ function cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {
9018
+ // #7817 clone node before setting fnContext, otherwise if the node is reused
9019
+ // (e.g. it was from a cached normal slot) the fnContext causes named slots
9020
+ // that should not be matched to match.
9021
+ var clone = cloneVNode(vnode);
9022
+ clone.fnContext = contextVm;
9023
+ clone.fnOptions = options;
9024
+ if (data.slot) {
9025
+ (clone.data || (clone.data = {})).slot = data.slot;
9026
+ }
9027
+ return clone
9028
+ }
9029
+
9030
+ function mergeProps (to, from) {
9031
+ for (var key in from) {
9032
+ to[camelize(key)] = from[key];
9033
+ }
9034
+ }
9035
+
9036
+ /* */
9037
+
9038
+
9039
+
9040
+
9041
+ // Register the component hook to weex native render engine.
9042
+ // The hook will be triggered by native, not javascript.
9043
+
9044
+
9045
+ // Updates the state of the component to weex native render engine.
9046
+
9047
+ /* */
9048
+
9049
+ // https://github.com/Hanks10100/weex-native-directive/tree/master/component
9050
+
9051
+ // listening on native callback
9052
+
9053
+ /* */
9054
+
9055
+ /* */
9056
+
9057
+ // inline hooks to be invoked on component VNodes during patch
9058
+ var componentVNodeHooks = {
9059
+ init: function init (
9060
+ vnode,
9061
+ hydrating,
9062
+ parentElm,
9063
+ refElm
9064
+ ) {
9065
+ if (
9066
+ vnode.componentInstance &&
9067
+ !vnode.componentInstance._isDestroyed &&
9068
+ vnode.data.keepAlive
9069
+ ) {
9070
+ // kept-alive components, treat as a patch
9071
+ var mountedNode = vnode; // work around flow
9072
+ componentVNodeHooks.prepatch(mountedNode, mountedNode);
9073
+ } else {
9074
+ var child = vnode.componentInstance = createComponentInstanceForVnode(
9075
+ vnode,
9076
+ activeInstance,
9077
+ parentElm,
9078
+ refElm
9079
+ );
9080
+ child.$mount(hydrating ? vnode.elm : undefined, hydrating);
9081
+ }
9082
+ },
9083
+
9084
+ prepatch: function prepatch (oldVnode, vnode) {
9085
+ var options = vnode.componentOptions;
9086
+ var child = vnode.componentInstance = oldVnode.componentInstance;
9087
+ updateChildComponent(
9088
+ child,
9089
+ options.propsData, // updated props
9090
+ options.listeners, // updated listeners
9091
+ vnode, // new parent vnode
9092
+ options.children // new children
9093
+ );
9094
+ },
9095
+
9096
+ insert: function insert (vnode) {
9097
+ var context = vnode.context;
9098
+ var componentInstance = vnode.componentInstance;
9099
+ if (!componentInstance._isMounted) {
9100
+ componentInstance._isMounted = true;
9101
+ callHook(componentInstance, 'mounted');
9102
+ }
9103
+ if (vnode.data.keepAlive) {
9104
+ if (context._isMounted) {
9105
+ // vue-router#1212
9106
+ // During updates, a kept-alive component's child components may
9107
+ // change, so directly walking the tree here may call activated hooks
9108
+ // on incorrect children. Instead we push them into a queue which will
9109
+ // be processed after the whole patch process ended.
9110
+ queueActivatedComponent(componentInstance);
9111
+ } else {
9112
+ activateChildComponent(componentInstance, true /* direct */);
9113
+ }
9114
+ }
9115
+ },
9116
+
9117
+ destroy: function destroy (vnode) {
9118
+ var componentInstance = vnode.componentInstance;
9119
+ if (!componentInstance._isDestroyed) {
9120
+ if (!vnode.data.keepAlive) {
9121
+ componentInstance.$destroy();
9122
+ } else {
9123
+ deactivateChildComponent(componentInstance, true /* direct */);
9124
+ }
9125
+ }
9126
+ }
9127
+ };
9128
+
9129
+ var hooksToMerge = Object.keys(componentVNodeHooks);
9130
+
9131
+ function createComponent (
9132
+ Ctor,
9133
+ data,
9134
+ context,
9135
+ children,
9136
+ tag
9137
+ ) {
9138
+ if (isUndef(Ctor)) {
9139
+ return
9140
+ }
9141
+
9142
+ var baseCtor = context.$options._base;
9143
+
9144
+ // plain options object: turn it into a constructor
9145
+ if (isObject(Ctor)) {
9146
+ Ctor = baseCtor.extend(Ctor);
9147
+ }
9148
+
9149
+ // if at this stage it's not a constructor or an async component factory,
9150
+ // reject.
9151
+ if (typeof Ctor !== 'function') {
9152
+ if (process.env.NODE_ENV !== 'production') {
9153
+ warn(("Invalid Component definition: " + (String(Ctor))), context);
9154
+ }
9155
+ return
9156
+ }
9157
+
9158
+ // async component
9159
+ var asyncFactory;
9160
+ if (isUndef(Ctor.cid)) {
9161
+ asyncFactory = Ctor;
9162
+ Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);
9163
+ if (Ctor === undefined) {
9164
+ // return a placeholder node for async component, which is rendered
9165
+ // as a comment node but preserves all the raw information for the node.
9166
+ // the information will be used for async server-rendering and hydration.
9167
+ return createAsyncPlaceholder(
9168
+ asyncFactory,
9169
+ data,
9170
+ context,
9171
+ children,
9172
+ tag
9173
+ )
9174
+ }
9175
+ }
9176
+
9177
+ data = data || {};
9178
+
9179
+ // resolve constructor options in case global mixins are applied after
9180
+ // component constructor creation
9181
+ resolveConstructorOptions(Ctor);
9182
+
9183
+ // transform component v-model data into props & events
9184
+ if (isDef(data.model)) {
9185
+ transformModel(Ctor.options, data);
9186
+ }
9187
+
9188
+ // extract props
9189
+ var propsData = extractPropsFromVNodeData(data, Ctor, tag);
9190
+
9191
+ // functional component
9192
+ if (isTrue(Ctor.options.functional)) {
9193
+ return createFunctionalComponent(Ctor, propsData, data, context, children)
9194
+ }
9195
+
9196
+ // extract listeners, since these needs to be treated as
9197
+ // child component listeners instead of DOM listeners
9198
+ var listeners = data.on;
9199
+ // replace with listeners with .native modifier
9200
+ // so it gets processed during parent component patch.
9201
+ data.on = data.nativeOn;
9202
+
9203
+ if (isTrue(Ctor.options.abstract)) {
9204
+ // abstract components do not keep anything
9205
+ // other than props & listeners & slot
9206
+
9207
+ // work around flow
9208
+ var slot = data.slot;
9209
+ data = {};
9210
+ if (slot) {
9211
+ data.slot = slot;
9212
+ }
9213
+ }
9214
+
9215
+ // install component management hooks onto the placeholder node
9216
+ installComponentHooks(data);
9217
+
9218
+ // return a placeholder vnode
9219
+ var name = Ctor.options.name || tag;
9220
+ var vnode = new VNode(
9221
+ ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
9222
+ data, undefined, undefined, undefined, context,
9223
+ { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
9224
+ asyncFactory
9225
+ );
9226
+
9227
+ // Weex specific: invoke recycle-list optimized @render function for
9228
+ // extracting cell-slot template.
9229
+ // https://github.com/Hanks10100/weex-native-directive/tree/master/component
9230
+ /* istanbul ignore if */
9231
+ return vnode
9232
+ }
9233
+
9234
+ function createComponentInstanceForVnode (
9235
+ vnode, // we know it's MountedComponentVNode but flow doesn't
9236
+ parent, // activeInstance in lifecycle state
9237
+ parentElm,
9238
+ refElm
9239
+ ) {
9240
+ var options = {
9241
+ _isComponent: true,
9242
+ parent: parent,
9243
+ _parentVnode: vnode,
9244
+ _parentElm: parentElm || null,
9245
+ _refElm: refElm || null
9246
+ };
9247
+ // check inline-template render functions
9248
+ var inlineTemplate = vnode.data.inlineTemplate;
9249
+ if (isDef(inlineTemplate)) {
9250
+ options.render = inlineTemplate.render;
9251
+ options.staticRenderFns = inlineTemplate.staticRenderFns;
9252
+ }
9253
+ return new vnode.componentOptions.Ctor(options)
9254
+ }
9255
+
9256
+ function installComponentHooks (data) {
9257
+ var hooks = data.hook || (data.hook = {});
9258
+ for (var i = 0; i < hooksToMerge.length; i++) {
9259
+ var key = hooksToMerge[i];
9260
+ hooks[key] = componentVNodeHooks[key];
9261
+ }
9262
+ }
9263
+
9264
+ // transform component v-model info (value and callback) into
9265
+ // prop and event handler respectively.
9266
+ function transformModel (options, data) {
9267
+ var prop = (options.model && options.model.prop) || 'value';
9268
+ var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;
9269
+ var on = data.on || (data.on = {});
9270
+ if (isDef(on[event])) {
9271
+ on[event] = [data.model.callback].concat(on[event]);
9272
+ } else {
9273
+ on[event] = data.model.callback;
9274
+ }
9275
+ }
9276
+
9277
+ /* */
9278
+
9279
+ var SIMPLE_NORMALIZE = 1;
9280
+ var ALWAYS_NORMALIZE = 2;
9281
+
9282
+ // wrapper function for providing a more flexible interface
9283
+ // without getting yelled at by flow
9284
+ function createElement (
9285
+ context,
9286
+ tag,
9287
+ data,
9288
+ children,
9289
+ normalizationType,
9290
+ alwaysNormalize
9291
+ ) {
9292
+ if (Array.isArray(data) || isPrimitive(data)) {
9293
+ normalizationType = children;
9294
+ children = data;
9295
+ data = undefined;
9296
+ }
9297
+ if (isTrue(alwaysNormalize)) {
9298
+ normalizationType = ALWAYS_NORMALIZE;
9299
+ }
9300
+ return _createElement(context, tag, data, children, normalizationType)
9301
+ }
9302
+
9303
+ function _createElement (
9304
+ context,
9305
+ tag,
9306
+ data,
9307
+ children,
9308
+ normalizationType
9309
+ ) {
9310
+ if (isDef(data) && isDef((data).__ob__)) {
9311
+ process.env.NODE_ENV !== 'production' && warn(
9312
+ "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
9313
+ 'Always create fresh vnode data objects in each render!',
9314
+ context
9315
+ );
9316
+ return createEmptyVNode()
9317
+ }
9318
+ // object syntax in v-bind
9319
+ if (isDef(data) && isDef(data.is)) {
9320
+ tag = data.is;
9321
+ }
9322
+ if (!tag) {
9323
+ // in case of component :is set to falsy value
9324
+ return createEmptyVNode()
9325
+ }
9326
+ // warn against non-primitive key
9327
+ if (process.env.NODE_ENV !== 'production' &&
9328
+ isDef(data) && isDef(data.key) && !isPrimitive(data.key)
9329
+ ) {
9330
+ {
9331
+ warn(
9332
+ 'Avoid using non-primitive value as key, ' +
9333
+ 'use string/number value instead.',
9334
+ context
9335
+ );
9336
+ }
9337
+ }
9338
+ // support single function children as default scoped slot
9339
+ if (Array.isArray(children) &&
9340
+ typeof children[0] === 'function'
9341
+ ) {
9342
+ data = data || {};
9343
+ data.scopedSlots = { default: children[0] };
9344
+ children.length = 0;
9345
+ }
9346
+ if (normalizationType === ALWAYS_NORMALIZE) {
9347
+ children = normalizeChildren(children);
9348
+ } else if (normalizationType === SIMPLE_NORMALIZE) {
9349
+ children = simpleNormalizeChildren(children);
9350
+ }
9351
+ var vnode, ns;
9352
+ if (typeof tag === 'string') {
9353
+ var Ctor;
9354
+ ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
9355
+ if (config.isReservedTag(tag)) {
9356
+ // platform built-in elements
9357
+ vnode = new VNode(
9358
+ config.parsePlatformTagName(tag), data, children,
9359
+ undefined, undefined, context
9360
+ );
9361
+ } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
9362
+ // component
9363
+ vnode = createComponent(Ctor, data, context, children, tag);
9364
+ } else {
9365
+ // unknown or unlisted namespaced elements
9366
+ // check at runtime because it may get assigned a namespace when its
9367
+ // parent normalizes children
9368
+ vnode = new VNode(
9369
+ tag, data, children,
9370
+ undefined, undefined, context
9371
+ );
9372
+ }
9373
+ } else {
9374
+ // direct component options / constructor
9375
+ vnode = createComponent(tag, data, context, children);
9376
+ }
9377
+ if (Array.isArray(vnode)) {
9378
+ return vnode
9379
+ } else if (isDef(vnode)) {
9380
+ if (isDef(ns)) { applyNS(vnode, ns); }
9381
+ if (isDef(data)) { registerDeepBindings(data); }
9382
+ return vnode
9383
+ } else {
9384
+ return createEmptyVNode()
9385
+ }
9386
+ }
9387
+
9388
+ function applyNS (vnode, ns, force) {
9389
+ vnode.ns = ns;
9390
+ if (vnode.tag === 'foreignObject') {
9391
+ // use default namespace inside foreignObject
9392
+ ns = undefined;
9393
+ force = true;
9394
+ }
9395
+ if (isDef(vnode.children)) {
9396
+ for (var i = 0, l = vnode.children.length; i < l; i++) {
9397
+ var child = vnode.children[i];
9398
+ if (isDef(child.tag) && (
9399
+ isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
9400
+ applyNS(child, ns, force);
9401
+ }
9402
+ }
9403
+ }
9404
+ }
9405
+
9406
+ // ref #5318
9407
+ // necessary to ensure parent re-render when deep bindings like :style and
9408
+ // :class are used on slot nodes
9409
+ function registerDeepBindings (data) {
9410
+ if (isObject(data.style)) {
9411
+ traverse(data.style);
9412
+ }
9413
+ if (isObject(data.class)) {
9414
+ traverse(data.class);
9415
+ }
9416
+ }
9417
+
9418
+ /* */
9419
+
9420
+ function initRender (vm) {
9421
+ vm._vnode = null; // the root of the child tree
9422
+ vm._staticTrees = null; // v-once cached trees
9423
+ var options = vm.$options;
9424
+ var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
9425
+ var renderContext = parentVnode && parentVnode.context;
9426
+ vm.$slots = resolveSlots(options._renderChildren, renderContext);
9427
+ vm.$scopedSlots = emptyObject;
9428
+ // bind the createElement fn to this instance
9429
+ // so that we get proper render context inside it.
9430
+ // args order: tag, data, children, normalizationType, alwaysNormalize
9431
+ // internal version is used by render functions compiled from templates
9432
+ vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
9433
+ // normalization is always applied for the public version, used in
9434
+ // user-written render functions.
9435
+ vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
9436
+
9437
+ // $attrs & $listeners are exposed for easier HOC creation.
9438
+ // they need to be reactive so that HOCs using them are always updated
9439
+ var parentData = parentVnode && parentVnode.data;
9440
+
9441
+ /* istanbul ignore else */
9442
+ if (process.env.NODE_ENV !== 'production') {
9443
+ defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
9444
+ !isUpdatingChildComponent && warn("$attrs is readonly.", vm);
9445
+ }, true);
9446
+ defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {
9447
+ !isUpdatingChildComponent && warn("$listeners is readonly.", vm);
9448
+ }, true);
9449
+ } else {
9450
+ defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);
9451
+ defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);
9452
+ }
9453
+ }
9454
+
9455
+ function renderMixin (Vue) {
9456
+ // install runtime convenience helpers
9457
+ installRenderHelpers(Vue.prototype);
9458
+
9459
+ Vue.prototype.$nextTick = function (fn) {
9460
+ return nextTick(fn, this)
9461
+ };
9462
+
9463
+ Vue.prototype._render = function () {
9464
+ var vm = this;
9465
+ var ref = vm.$options;
9466
+ var render = ref.render;
9467
+ var _parentVnode = ref._parentVnode;
9468
+
9469
+ // reset _rendered flag on slots for duplicate slot check
9470
+ if (process.env.NODE_ENV !== 'production') {
9471
+ for (var key in vm.$slots) {
9472
+ // $flow-disable-line
9473
+ vm.$slots[key]._rendered = false;
9474
+ }
9475
+ }
9476
+
9477
+ if (_parentVnode) {
9478
+ vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;
9479
+ }
9480
+
9481
+ // set parent vnode. this allows render functions to have access
9482
+ // to the data on the placeholder node.
9483
+ vm.$vnode = _parentVnode;
9484
+ // render self
9485
+ var vnode;
9486
+ try {
9487
+ vnode = render.call(vm._renderProxy, vm.$createElement);
9488
+ } catch (e) {
9489
+ handleError(e, vm, "render");
9490
+ // return error render result,
9491
+ // or previous vnode to prevent render error causing blank component
9492
+ /* istanbul ignore else */
9493
+ if (process.env.NODE_ENV !== 'production') {
9494
+ if (vm.$options.renderError) {
9495
+ try {
9496
+ vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
9497
+ } catch (e) {
9498
+ handleError(e, vm, "renderError");
9499
+ vnode = vm._vnode;
9500
+ }
9501
+ } else {
9502
+ vnode = vm._vnode;
9503
+ }
9504
+ } else {
9505
+ vnode = vm._vnode;
9506
+ }
9507
+ }
9508
+ // return empty vnode in case the render function errored out
9509
+ if (!(vnode instanceof VNode)) {
9510
+ if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {
9511
+ warn(
9512
+ 'Multiple root nodes returned from render function. Render function ' +
9513
+ 'should return a single root node.',
9514
+ vm
9515
+ );
9516
+ }
9517
+ vnode = createEmptyVNode();
9518
+ }
9519
+ // set parent
9520
+ vnode.parent = _parentVnode;
9521
+ return vnode
9522
+ };
9523
+ }
9524
+
9525
+ /* */
9526
+
9527
+ var uid$3 = 0;
9528
+
9529
+ function initMixin (Vue) {
9530
+ Vue.prototype._init = function (options) {
9531
+ var vm = this;
9532
+ // a uid
9533
+ vm._uid = uid$3++;
9534
+
9535
+ var startTag, endTag;
9536
+ /* istanbul ignore if */
9537
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
9538
+ startTag = "vue-perf-start:" + (vm._uid);
9539
+ endTag = "vue-perf-end:" + (vm._uid);
9540
+ mark(startTag);
9541
+ }
9542
+
9543
+ // a flag to avoid this being observed
9544
+ vm._isVue = true;
9545
+ // merge options
9546
+ if (options && options._isComponent) {
9547
+ // optimize internal component instantiation
9548
+ // since dynamic options merging is pretty slow, and none of the
9549
+ // internal component options needs special treatment.
9550
+ initInternalComponent(vm, options);
9551
+ } else {
9552
+ vm.$options = mergeOptions(
9553
+ resolveConstructorOptions(vm.constructor),
9554
+ options || {},
9555
+ vm
9556
+ );
9557
+ }
9558
+ /* istanbul ignore else */
9559
+ if (process.env.NODE_ENV !== 'production') {
9560
+ initProxy(vm);
9561
+ } else {
9562
+ vm._renderProxy = vm;
9563
+ }
9564
+ // expose real self
9565
+ vm._self = vm;
9566
+ initLifecycle(vm);
9567
+ initEvents(vm);
9568
+ initRender(vm);
9569
+ callHook(vm, 'beforeCreate');
9570
+ initInjections(vm); // resolve injections before data/props
9571
+ initState(vm);
9572
+ initProvide(vm); // resolve provide after data/props
9573
+ callHook(vm, 'created');
9574
+
9575
+ /* istanbul ignore if */
9576
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
9577
+ vm._name = formatComponentName(vm, false);
9578
+ mark(endTag);
9579
+ measure(("vue " + (vm._name) + " init"), startTag, endTag);
9580
+ }
9581
+
9582
+ if (vm.$options.el) {
9583
+ vm.$mount(vm.$options.el);
9584
+ }
9585
+ };
9586
+ }
9587
+
9588
+ function initInternalComponent (vm, options) {
9589
+ var opts = vm.$options = Object.create(vm.constructor.options);
9590
+ // doing this because it's faster than dynamic enumeration.
9591
+ var parentVnode = options._parentVnode;
9592
+ opts.parent = options.parent;
9593
+ opts._parentVnode = parentVnode;
9594
+ opts._parentElm = options._parentElm;
9595
+ opts._refElm = options._refElm;
9596
+
9597
+ var vnodeComponentOptions = parentVnode.componentOptions;
9598
+ opts.propsData = vnodeComponentOptions.propsData;
9599
+ opts._parentListeners = vnodeComponentOptions.listeners;
9600
+ opts._renderChildren = vnodeComponentOptions.children;
9601
+ opts._componentTag = vnodeComponentOptions.tag;
9602
+
9603
+ if (options.render) {
9604
+ opts.render = options.render;
9605
+ opts.staticRenderFns = options.staticRenderFns;
9606
+ }
9607
+ }
9608
+
9609
+ function resolveConstructorOptions (Ctor) {
9610
+ var options = Ctor.options;
9611
+ if (Ctor.super) {
9612
+ var superOptions = resolveConstructorOptions(Ctor.super);
9613
+ var cachedSuperOptions = Ctor.superOptions;
9614
+ if (superOptions !== cachedSuperOptions) {
9615
+ // super option changed,
9616
+ // need to resolve new options.
9617
+ Ctor.superOptions = superOptions;
9618
+ // check if there are any late-modified/attached options (#4976)
9619
+ var modifiedOptions = resolveModifiedOptions(Ctor);
9620
+ // update base extend options
9621
+ if (modifiedOptions) {
9622
+ extend(Ctor.extendOptions, modifiedOptions);
9623
+ }
9624
+ options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
9625
+ if (options.name) {
9626
+ options.components[options.name] = Ctor;
9627
+ }
9628
+ }
9629
+ }
9630
+ return options
9631
+ }
9632
+
9633
+ function resolveModifiedOptions (Ctor) {
9634
+ var modified;
9635
+ var latest = Ctor.options;
9636
+ var extended = Ctor.extendOptions;
9637
+ var sealed = Ctor.sealedOptions;
9638
+ for (var key in latest) {
9639
+ if (latest[key] !== sealed[key]) {
9640
+ if (!modified) { modified = {}; }
9641
+ modified[key] = dedupe(latest[key], extended[key], sealed[key]);
9642
+ }
9643
+ }
9644
+ return modified
9645
+ }
9646
+
9647
+ function dedupe (latest, extended, sealed) {
9648
+ // compare latest and sealed to ensure lifecycle hooks won't be duplicated
9649
+ // between merges
9650
+ if (Array.isArray(latest)) {
9651
+ var res = [];
9652
+ sealed = Array.isArray(sealed) ? sealed : [sealed];
9653
+ extended = Array.isArray(extended) ? extended : [extended];
9654
+ for (var i = 0; i < latest.length; i++) {
9655
+ // push original options and not sealed options to exclude duplicated options
9656
+ if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {
9657
+ res.push(latest[i]);
9658
+ }
9659
+ }
9660
+ return res
9661
+ } else {
9662
+ return latest
9663
+ }
9664
+ }
9665
+
9666
+ function Vue (options) {
9667
+ if (process.env.NODE_ENV !== 'production' &&
9668
+ !(this instanceof Vue)
9669
+ ) {
9670
+ warn('Vue is a constructor and should be called with the `new` keyword');
9671
+ }
9672
+ this._init(options);
9673
+ }
9674
+
9675
+ initMixin(Vue);
9676
+ stateMixin(Vue);
9677
+ eventsMixin(Vue);
9678
+ lifecycleMixin(Vue);
9679
+ renderMixin(Vue);
9680
+
9681
+ /* */
9682
+
9683
+ function initUse (Vue) {
9684
+ Vue.use = function (plugin) {
9685
+ var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
9686
+ if (installedPlugins.indexOf(plugin) > -1) {
9687
+ return this
9688
+ }
9689
+
9690
+ // additional parameters
9691
+ var args = toArray(arguments, 1);
9692
+ args.unshift(this);
9693
+ if (typeof plugin.install === 'function') {
9694
+ plugin.install.apply(plugin, args);
9695
+ } else if (typeof plugin === 'function') {
9696
+ plugin.apply(null, args);
9697
+ }
9698
+ installedPlugins.push(plugin);
9699
+ return this
9700
+ };
9701
+ }
9702
+
9703
+ /* */
9704
+
9705
+ function initMixin$1 (Vue) {
9706
+ Vue.mixin = function (mixin) {
9707
+ this.options = mergeOptions(this.options, mixin);
9708
+ return this
9709
+ };
9710
+ }
9711
+
9712
+ /* */
9713
+
9714
+ function initExtend (Vue) {
9715
+ /**
9716
+ * Each instance constructor, including Vue, has a unique
9717
+ * cid. This enables us to create wrapped "child
9718
+ * constructors" for prototypal inheritance and cache them.
9719
+ */
9720
+ Vue.cid = 0;
9721
+ var cid = 1;
9722
+
9723
+ /**
9724
+ * Class inheritance
9725
+ */
9726
+ Vue.extend = function (extendOptions) {
9727
+ extendOptions = extendOptions || {};
9728
+ var Super = this;
9729
+ var SuperId = Super.cid;
9730
+ var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
9731
+ if (cachedCtors[SuperId]) {
9732
+ return cachedCtors[SuperId]
9733
+ }
9734
+
9735
+ var name = extendOptions.name || Super.options.name;
9736
+ if (process.env.NODE_ENV !== 'production' && name) {
9737
+ validateComponentName(name);
9738
+ }
9739
+
9740
+ var Sub = function VueComponent (options) {
9741
+ this._init(options);
9742
+ };
9743
+ Sub.prototype = Object.create(Super.prototype);
9744
+ Sub.prototype.constructor = Sub;
9745
+ Sub.cid = cid++;
9746
+ Sub.options = mergeOptions(
9747
+ Super.options,
9748
+ extendOptions
9749
+ );
9750
+ Sub['super'] = Super;
9751
+
9752
+ // For props and computed properties, we define the proxy getters on
9753
+ // the Vue instances at extension time, on the extended prototype. This
9754
+ // avoids Object.defineProperty calls for each instance created.
9755
+ if (Sub.options.props) {
9756
+ initProps$1(Sub);
9757
+ }
9758
+ if (Sub.options.computed) {
9759
+ initComputed$1(Sub);
9760
+ }
9761
+
9762
+ // allow further extension/mixin/plugin usage
9763
+ Sub.extend = Super.extend;
9764
+ Sub.mixin = Super.mixin;
9765
+ Sub.use = Super.use;
9766
+
9767
+ // create asset registers, so extended classes
9768
+ // can have their private assets too.
9769
+ ASSET_TYPES.forEach(function (type) {
9770
+ Sub[type] = Super[type];
9771
+ });
9772
+ // enable recursive self-lookup
9773
+ if (name) {
9774
+ Sub.options.components[name] = Sub;
9775
+ }
9776
+
9777
+ // keep a reference to the super options at extension time.
9778
+ // later at instantiation we can check if Super's options have
9779
+ // been updated.
9780
+ Sub.superOptions = Super.options;
9781
+ Sub.extendOptions = extendOptions;
9782
+ Sub.sealedOptions = extend({}, Sub.options);
9783
+
9784
+ // cache constructor
9785
+ cachedCtors[SuperId] = Sub;
9786
+ return Sub
9787
+ };
9788
+ }
9789
+
9790
+ function initProps$1 (Comp) {
9791
+ var props = Comp.options.props;
9792
+ for (var key in props) {
9793
+ proxy(Comp.prototype, "_props", key);
9794
+ }
9795
+ }
9796
+
9797
+ function initComputed$1 (Comp) {
9798
+ var computed = Comp.options.computed;
9799
+ for (var key in computed) {
9800
+ defineComputed(Comp.prototype, key, computed[key]);
9801
+ }
9802
+ }
9803
+
9804
+ /* */
9805
+
9806
+ function initAssetRegisters (Vue) {
9807
+ /**
9808
+ * Create asset registration methods.
9809
+ */
9810
+ ASSET_TYPES.forEach(function (type) {
9811
+ Vue[type] = function (
9812
+ id,
9813
+ definition
9814
+ ) {
9815
+ if (!definition) {
9816
+ return this.options[type + 's'][id]
9817
+ } else {
9818
+ /* istanbul ignore if */
9819
+ if (process.env.NODE_ENV !== 'production' && type === 'component') {
9820
+ validateComponentName(id);
9821
+ }
9822
+ if (type === 'component' && isPlainObject(definition)) {
9823
+ definition.name = definition.name || id;
9824
+ definition = this.options._base.extend(definition);
9825
+ }
9826
+ if (type === 'directive' && typeof definition === 'function') {
9827
+ definition = { bind: definition, update: definition };
9828
+ }
9829
+ this.options[type + 's'][id] = definition;
9830
+ return definition
9831
+ }
9832
+ };
9833
+ });
9834
+ }
9835
+
9836
+ /* */
9837
+
9838
+ function getComponentName (opts) {
9839
+ return opts && (opts.Ctor.options.name || opts.tag)
9840
+ }
9841
+
9842
+ function matches (pattern, name) {
9843
+ if (Array.isArray(pattern)) {
9844
+ return pattern.indexOf(name) > -1
9845
+ } else if (typeof pattern === 'string') {
9846
+ return pattern.split(',').indexOf(name) > -1
9847
+ } else if (isRegExp(pattern)) {
9848
+ return pattern.test(name)
9849
+ }
9850
+ /* istanbul ignore next */
9851
+ return false
9852
+ }
9853
+
9854
+ function pruneCache (keepAliveInstance, filter) {
9855
+ var cache = keepAliveInstance.cache;
9856
+ var keys = keepAliveInstance.keys;
9857
+ var _vnode = keepAliveInstance._vnode;
9858
+ for (var key in cache) {
9859
+ var cachedNode = cache[key];
9860
+ if (cachedNode) {
9861
+ var name = getComponentName(cachedNode.componentOptions);
9862
+ if (name && !filter(name)) {
9863
+ pruneCacheEntry(cache, key, keys, _vnode);
9864
+ }
9865
+ }
9866
+ }
9867
+ }
9868
+
9869
+ function pruneCacheEntry (
9870
+ cache,
9871
+ key,
9872
+ keys,
9873
+ current
9874
+ ) {
9875
+ var cached$$1 = cache[key];
9876
+ if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
9877
+ cached$$1.componentInstance.$destroy();
9878
+ }
9879
+ cache[key] = null;
9880
+ remove(keys, key);
9881
+ }
9882
+
9883
+ var patternTypes = [String, RegExp, Array];
9884
+
9885
+ var KeepAlive = {
9886
+ name: 'keep-alive',
9887
+ abstract: true,
9888
+
9889
+ props: {
9890
+ include: patternTypes,
9891
+ exclude: patternTypes,
9892
+ max: [String, Number]
9893
+ },
9894
+
9895
+ created: function created () {
9896
+ this.cache = Object.create(null);
9897
+ this.keys = [];
9898
+ },
9899
+
9900
+ destroyed: function destroyed () {
9901
+ var this$1 = this;
9902
+
9903
+ for (var key in this$1.cache) {
9904
+ pruneCacheEntry(this$1.cache, key, this$1.keys);
9905
+ }
9906
+ },
9907
+
9908
+ mounted: function mounted () {
9909
+ var this$1 = this;
9910
+
9911
+ this.$watch('include', function (val) {
9912
+ pruneCache(this$1, function (name) { return matches(val, name); });
9913
+ });
9914
+ this.$watch('exclude', function (val) {
9915
+ pruneCache(this$1, function (name) { return !matches(val, name); });
9916
+ });
9917
+ },
9918
+
9919
+ render: function render () {
9920
+ var slot = this.$slots.default;
9921
+ var vnode = getFirstComponentChild(slot);
9922
+ var componentOptions = vnode && vnode.componentOptions;
9923
+ if (componentOptions) {
9924
+ // check pattern
9925
+ var name = getComponentName(componentOptions);
9926
+ var ref = this;
9927
+ var include = ref.include;
9928
+ var exclude = ref.exclude;
9929
+ if (
9930
+ // not included
9931
+ (include && (!name || !matches(include, name))) ||
9932
+ // excluded
9933
+ (exclude && name && matches(exclude, name))
9934
+ ) {
9935
+ return vnode
9936
+ }
9937
+
9938
+ var ref$1 = this;
9939
+ var cache = ref$1.cache;
9940
+ var keys = ref$1.keys;
9941
+ var key = vnode.key == null
9942
+ // same constructor may get registered as different local components
9943
+ // so cid alone is not enough (#3269)
9944
+ ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
9945
+ : vnode.key;
9946
+ if (cache[key]) {
9947
+ vnode.componentInstance = cache[key].componentInstance;
9948
+ // make current key freshest
9949
+ remove(keys, key);
9950
+ keys.push(key);
9951
+ } else {
9952
+ cache[key] = vnode;
9953
+ keys.push(key);
9954
+ // prune oldest entry
9955
+ if (this.max && keys.length > parseInt(this.max)) {
9956
+ pruneCacheEntry(cache, keys[0], keys, this._vnode);
9957
+ }
9958
+ }
9959
+
9960
+ vnode.data.keepAlive = true;
9961
+ }
9962
+ return vnode || (slot && slot[0])
9963
+ }
9964
+ }
9965
+
9966
+ var builtInComponents = {
9967
+ KeepAlive: KeepAlive
9968
+ }
9969
+
9970
+ /* */
9971
+
9972
+ function initGlobalAPI (Vue) {
9973
+ // config
9974
+ var configDef = {};
9975
+ configDef.get = function () { return config; };
9976
+ if (process.env.NODE_ENV !== 'production') {
9977
+ configDef.set = function () {
9978
+ warn(
9979
+ 'Do not replace the Vue.config object, set individual fields instead.'
9980
+ );
9981
+ };
9982
+ }
9983
+ Object.defineProperty(Vue, 'config', configDef);
9984
+
9985
+ // exposed util methods.
9986
+ // NOTE: these are not considered part of the public API - avoid relying on
9987
+ // them unless you are aware of the risk.
9988
+ Vue.util = {
9989
+ warn: warn,
9990
+ extend: extend,
9991
+ mergeOptions: mergeOptions,
9992
+ defineReactive: defineReactive
9993
+ };
9994
+
9995
+ Vue.set = set;
9996
+ Vue.delete = del;
9997
+ Vue.nextTick = nextTick;
9998
+
9999
+ Vue.options = Object.create(null);
10000
+ ASSET_TYPES.forEach(function (type) {
10001
+ Vue.options[type + 's'] = Object.create(null);
10002
+ });
10003
+
10004
+ // this is used to identify the "base" constructor to extend all plain-object
10005
+ // components with in Weex's multi-instance scenarios.
10006
+ Vue.options._base = Vue;
10007
+
10008
+ extend(Vue.options.components, builtInComponents);
10009
+
10010
+ initUse(Vue);
10011
+ initMixin$1(Vue);
10012
+ initExtend(Vue);
10013
+ initAssetRegisters(Vue);
10014
+ }
10015
+
10016
+ initGlobalAPI(Vue);
10017
+
10018
+ Object.defineProperty(Vue.prototype, '$isServer', {
10019
+ get: isServerRendering
10020
+ });
10021
+
10022
+ Object.defineProperty(Vue.prototype, '$ssrContext', {
10023
+ get: function get () {
10024
+ /* istanbul ignore next */
10025
+ return this.$vnode && this.$vnode.ssrContext
10026
+ }
10027
+ });
10028
+
10029
+ // expose FunctionalRenderContext for ssr runtime helper installation
10030
+ Object.defineProperty(Vue, 'FunctionalRenderContext', {
10031
+ value: FunctionalRenderContext
10032
+ });
10033
+
10034
+ Vue.version = '2.5.16';
10035
+
10036
+ /* */
10037
+
10038
+ // these are reserved for web because they are directly compiled away
10039
+ // during template compilation
10040
+ var isReservedAttr = makeMap('style,class');
10041
+
10042
+ // attributes that should be using props for binding
10043
+ var acceptValue = makeMap('input,textarea,option,select,progress');
10044
+ var mustUseProp = function (tag, type, attr) {
10045
+ return (
10046
+ (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
10047
+ (attr === 'selected' && tag === 'option') ||
10048
+ (attr === 'checked' && tag === 'input') ||
10049
+ (attr === 'muted' && tag === 'video')
10050
+ )
10051
+ };
10052
+
10053
+ var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
10054
+
10055
+ var isBooleanAttr = makeMap(
10056
+ 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
10057
+ 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
10058
+ 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
10059
+ 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
10060
+ 'required,reversed,scoped,seamless,selected,sortable,translate,' +
10061
+ 'truespeed,typemustmatch,visible'
10062
+ );
10063
+
10064
+ var xlinkNS = 'http://www.w3.org/1999/xlink';
10065
+
10066
+ var isXlink = function (name) {
10067
+ return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
10068
+ };
10069
+
10070
+ var getXlinkProp = function (name) {
10071
+ return isXlink(name) ? name.slice(6, name.length) : ''
10072
+ };
10073
+
10074
+ var isFalsyAttrValue = function (val) {
10075
+ return val == null || val === false
10076
+ };
10077
+
10078
+ /* */
10079
+
10080
+ function genClassForVnode (vnode) {
10081
+ var data = vnode.data;
10082
+ var parentNode = vnode;
10083
+ var childNode = vnode;
10084
+ while (isDef(childNode.componentInstance)) {
10085
+ childNode = childNode.componentInstance._vnode;
10086
+ if (childNode && childNode.data) {
10087
+ data = mergeClassData(childNode.data, data);
10088
+ }
10089
+ }
10090
+ while (isDef(parentNode = parentNode.parent)) {
10091
+ if (parentNode && parentNode.data) {
10092
+ data = mergeClassData(data, parentNode.data);
10093
+ }
10094
+ }
10095
+ return renderClass(data.staticClass, data.class)
10096
+ }
10097
+
10098
+ function mergeClassData (child, parent) {
10099
+ return {
10100
+ staticClass: concat(child.staticClass, parent.staticClass),
10101
+ class: isDef(child.class)
10102
+ ? [child.class, parent.class]
10103
+ : parent.class
10104
+ }
10105
+ }
10106
+
10107
+ function renderClass (
10108
+ staticClass,
10109
+ dynamicClass
10110
+ ) {
10111
+ if (isDef(staticClass) || isDef(dynamicClass)) {
10112
+ return concat(staticClass, stringifyClass(dynamicClass))
10113
+ }
10114
+ /* istanbul ignore next */
10115
+ return ''
10116
+ }
10117
+
10118
+ function concat (a, b) {
10119
+ return a ? b ? (a + ' ' + b) : a : (b || '')
10120
+ }
10121
+
10122
+ function stringifyClass (value) {
10123
+ if (Array.isArray(value)) {
10124
+ return stringifyArray(value)
10125
+ }
10126
+ if (isObject(value)) {
10127
+ return stringifyObject(value)
10128
+ }
10129
+ if (typeof value === 'string') {
10130
+ return value
10131
+ }
10132
+ /* istanbul ignore next */
10133
+ return ''
10134
+ }
10135
+
10136
+ function stringifyArray (value) {
10137
+ var res = '';
10138
+ var stringified;
10139
+ for (var i = 0, l = value.length; i < l; i++) {
10140
+ if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
10141
+ if (res) { res += ' '; }
10142
+ res += stringified;
10143
+ }
10144
+ }
10145
+ return res
10146
+ }
10147
+
10148
+ function stringifyObject (value) {
10149
+ var res = '';
10150
+ for (var key in value) {
10151
+ if (value[key]) {
10152
+ if (res) { res += ' '; }
10153
+ res += key;
10154
+ }
10155
+ }
10156
+ return res
10157
+ }
10158
+
10159
+ /* */
10160
+
10161
+ var namespaceMap = {
10162
+ svg: 'http://www.w3.org/2000/svg',
10163
+ math: 'http://www.w3.org/1998/Math/MathML'
10164
+ };
10165
+
10166
+ var isHTMLTag = makeMap(
10167
+ 'html,body,base,head,link,meta,style,title,' +
10168
+ 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
10169
+ 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
10170
+ 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
10171
+ 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
10172
+ 'embed,object,param,source,canvas,script,noscript,del,ins,' +
10173
+ 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
10174
+ 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
10175
+ 'output,progress,select,textarea,' +
10176
+ 'details,dialog,menu,menuitem,summary,' +
10177
+ 'content,element,shadow,template,blockquote,iframe,tfoot'
10178
+ );
10179
+
10180
+ // this map is intentionally selective, only covering SVG elements that may
10181
+ // contain child elements.
10182
+ var isSVG = makeMap(
10183
+ 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
10184
+ 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
10185
+ 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
10186
+ true
10187
+ );
10188
+
10189
+ var isPreTag = function (tag) { return tag === 'pre'; };
10190
+
10191
+ var isReservedTag = function (tag) {
10192
+ return isHTMLTag(tag) || isSVG(tag)
10193
+ };
10194
+
10195
+ function getTagNamespace (tag) {
10196
+ if (isSVG(tag)) {
10197
+ return 'svg'
10198
+ }
10199
+ // basic support for MathML
10200
+ // note it doesn't support other MathML elements being component roots
10201
+ if (tag === 'math') {
10202
+ return 'math'
10203
+ }
10204
+ }
10205
+
10206
+ var unknownElementCache = Object.create(null);
10207
+ function isUnknownElement (tag) {
10208
+ /* istanbul ignore if */
10209
+ if (!inBrowser) {
10210
+ return true
10211
+ }
10212
+ if (isReservedTag(tag)) {
10213
+ return false
10214
+ }
10215
+ tag = tag.toLowerCase();
10216
+ /* istanbul ignore if */
10217
+ if (unknownElementCache[tag] != null) {
10218
+ return unknownElementCache[tag]
10219
+ }
10220
+ var el = document.createElement(tag);
10221
+ if (tag.indexOf('-') > -1) {
10222
+ // http://stackoverflow.com/a/28210364/1070244
10223
+ return (unknownElementCache[tag] = (
10224
+ el.constructor === window.HTMLUnknownElement ||
10225
+ el.constructor === window.HTMLElement
10226
+ ))
10227
+ } else {
10228
+ return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
10229
+ }
10230
+ }
10231
+
10232
+ var isTextInputType = makeMap('text,number,password,search,email,tel,url');
10233
+
10234
+ /* */
10235
+
10236
+ /**
10237
+ * Query an element selector if it's not an element already.
10238
+ */
10239
+ function query (el) {
10240
+ if (typeof el === 'string') {
10241
+ var selected = document.querySelector(el);
10242
+ if (!selected) {
10243
+ process.env.NODE_ENV !== 'production' && warn(
10244
+ 'Cannot find element: ' + el
10245
+ );
10246
+ return document.createElement('div')
10247
+ }
10248
+ return selected
10249
+ } else {
10250
+ return el
10251
+ }
10252
+ }
10253
+
10254
+ /* */
10255
+
10256
+ function createElement$1 (tagName, vnode) {
10257
+ var elm = document.createElement(tagName);
10258
+ if (tagName !== 'select') {
10259
+ return elm
10260
+ }
10261
+ // false or null will remove the attribute but undefined will not
10262
+ if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
10263
+ elm.setAttribute('multiple', 'multiple');
10264
+ }
10265
+ return elm
10266
+ }
10267
+
10268
+ function createElementNS (namespace, tagName) {
10269
+ return document.createElementNS(namespaceMap[namespace], tagName)
10270
+ }
10271
+
10272
+ function createTextNode (text) {
10273
+ return document.createTextNode(text)
10274
+ }
10275
+
10276
+ function createComment (text) {
10277
+ return document.createComment(text)
10278
+ }
10279
+
10280
+ function insertBefore (parentNode, newNode, referenceNode) {
10281
+ parentNode.insertBefore(newNode, referenceNode);
10282
+ }
10283
+
10284
+ function removeChild (node, child) {
10285
+ node.removeChild(child);
10286
+ }
10287
+
10288
+ function appendChild (node, child) {
10289
+ node.appendChild(child);
10290
+ }
10291
+
10292
+ function parentNode (node) {
10293
+ return node.parentNode
10294
+ }
10295
+
10296
+ function nextSibling (node) {
10297
+ return node.nextSibling
10298
+ }
10299
+
10300
+ function tagName (node) {
10301
+ return node.tagName
10302
+ }
10303
+
10304
+ function setTextContent (node, text) {
10305
+ node.textContent = text;
10306
+ }
10307
+
10308
+ function setStyleScope (node, scopeId) {
10309
+ node.setAttribute(scopeId, '');
10310
+ }
10311
+
10312
+
10313
+ var nodeOps = Object.freeze({
10314
+ createElement: createElement$1,
10315
+ createElementNS: createElementNS,
10316
+ createTextNode: createTextNode,
10317
+ createComment: createComment,
10318
+ insertBefore: insertBefore,
10319
+ removeChild: removeChild,
10320
+ appendChild: appendChild,
10321
+ parentNode: parentNode,
10322
+ nextSibling: nextSibling,
10323
+ tagName: tagName,
10324
+ setTextContent: setTextContent,
10325
+ setStyleScope: setStyleScope
10326
+ });
10327
+
10328
+ /* */
10329
+
10330
+ var ref = {
10331
+ create: function create (_, vnode) {
10332
+ registerRef(vnode);
10333
+ },
10334
+ update: function update (oldVnode, vnode) {
10335
+ if (oldVnode.data.ref !== vnode.data.ref) {
10336
+ registerRef(oldVnode, true);
10337
+ registerRef(vnode);
10338
+ }
10339
+ },
10340
+ destroy: function destroy (vnode) {
10341
+ registerRef(vnode, true);
10342
+ }
10343
+ }
10344
+
10345
+ function registerRef (vnode, isRemoval) {
10346
+ var key = vnode.data.ref;
10347
+ if (!isDef(key)) { return }
10348
+
10349
+ var vm = vnode.context;
10350
+ var ref = vnode.componentInstance || vnode.elm;
10351
+ var refs = vm.$refs;
10352
+ if (isRemoval) {
10353
+ if (Array.isArray(refs[key])) {
10354
+ remove(refs[key], ref);
10355
+ } else if (refs[key] === ref) {
10356
+ refs[key] = undefined;
10357
+ }
10358
+ } else {
10359
+ if (vnode.data.refInFor) {
10360
+ if (!Array.isArray(refs[key])) {
10361
+ refs[key] = [ref];
10362
+ } else if (refs[key].indexOf(ref) < 0) {
10363
+ // $flow-disable-line
10364
+ refs[key].push(ref);
10365
+ }
10366
+ } else {
10367
+ refs[key] = ref;
10368
+ }
10369
+ }
10370
+ }
10371
+
10372
+ /**
10373
+ * Virtual DOM patching algorithm based on Snabbdom by
10374
+ * Simon Friis Vindum (@paldepind)
10375
+ * Licensed under the MIT License
10376
+ * https://github.com/paldepind/snabbdom/blob/master/LICENSE
10377
+ *
10378
+ * modified by Evan You (@yyx990803)
10379
+ *
10380
+ * Not type-checking this because this file is perf-critical and the cost
10381
+ * of making flow understand it is not worth it.
10382
+ */
10383
+
10384
+ var emptyNode = new VNode('', {}, []);
10385
+
10386
+ var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
10387
+
10388
+ function sameVnode (a, b) {
10389
+ return (
10390
+ a.key === b.key && (
10391
+ (
10392
+ a.tag === b.tag &&
10393
+ a.isComment === b.isComment &&
10394
+ isDef(a.data) === isDef(b.data) &&
10395
+ sameInputType(a, b)
10396
+ ) || (
10397
+ isTrue(a.isAsyncPlaceholder) &&
10398
+ a.asyncFactory === b.asyncFactory &&
10399
+ isUndef(b.asyncFactory.error)
10400
+ )
10401
+ )
10402
+ )
10403
+ }
10404
+
10405
+ function sameInputType (a, b) {
10406
+ if (a.tag !== 'input') { return true }
10407
+ var i;
10408
+ var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
10409
+ var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
10410
+ return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
10411
+ }
10412
+
10413
+ function createKeyToOldIdx (children, beginIdx, endIdx) {
10414
+ var i, key;
10415
+ var map = {};
10416
+ for (i = beginIdx; i <= endIdx; ++i) {
10417
+ key = children[i].key;
10418
+ if (isDef(key)) { map[key] = i; }
10419
+ }
10420
+ return map
10421
+ }
10422
+
10423
+ function createPatchFunction (backend) {
10424
+ var i, j;
10425
+ var cbs = {};
10426
+
10427
+ var modules = backend.modules;
10428
+ var nodeOps = backend.nodeOps;
10429
+
10430
+ for (i = 0; i < hooks.length; ++i) {
10431
+ cbs[hooks[i]] = [];
10432
+ for (j = 0; j < modules.length; ++j) {
10433
+ if (isDef(modules[j][hooks[i]])) {
10434
+ cbs[hooks[i]].push(modules[j][hooks[i]]);
10435
+ }
10436
+ }
10437
+ }
10438
+
10439
+ function emptyNodeAt (elm) {
10440
+ return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
10441
+ }
10442
+
10443
+ function createRmCb (childElm, listeners) {
10444
+ function remove () {
10445
+ if (--remove.listeners === 0) {
10446
+ removeNode(childElm);
10447
+ }
10448
+ }
10449
+ remove.listeners = listeners;
10450
+ return remove
10451
+ }
10452
+
10453
+ function removeNode (el) {
10454
+ var parent = nodeOps.parentNode(el);
10455
+ // element may have already been removed due to v-html / v-text
10456
+ if (isDef(parent)) {
10457
+ nodeOps.removeChild(parent, el);
10458
+ }
10459
+ }
10460
+
10461
+ function isUnknownElement$$1 (vnode, inVPre) {
10462
+ return (
10463
+ !inVPre &&
10464
+ !vnode.ns &&
10465
+ !(
10466
+ config.ignoredElements.length &&
10467
+ config.ignoredElements.some(function (ignore) {
10468
+ return isRegExp(ignore)
10469
+ ? ignore.test(vnode.tag)
10470
+ : ignore === vnode.tag
10471
+ })
10472
+ ) &&
10473
+ config.isUnknownElement(vnode.tag)
10474
+ )
10475
+ }
10476
+
10477
+ var creatingElmInVPre = 0;
10478
+
10479
+ function createElm (
10480
+ vnode,
10481
+ insertedVnodeQueue,
10482
+ parentElm,
10483
+ refElm,
10484
+ nested,
10485
+ ownerArray,
10486
+ index
10487
+ ) {
10488
+ if (isDef(vnode.elm) && isDef(ownerArray)) {
10489
+ // This vnode was used in a previous render!
10490
+ // now it's used as a new node, overwriting its elm would cause
10491
+ // potential patch errors down the road when it's used as an insertion
10492
+ // reference node. Instead, we clone the node on-demand before creating
10493
+ // associated DOM element for it.
10494
+ vnode = ownerArray[index] = cloneVNode(vnode);
10495
+ }
10496
+
10497
+ vnode.isRootInsert = !nested; // for transition enter check
10498
+ if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
10499
+ return
10500
+ }
10501
+
10502
+ var data = vnode.data;
10503
+ var children = vnode.children;
10504
+ var tag = vnode.tag;
10505
+ if (isDef(tag)) {
10506
+ if (process.env.NODE_ENV !== 'production') {
10507
+ if (data && data.pre) {
10508
+ creatingElmInVPre++;
10509
+ }
10510
+ if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
10511
+ warn(
10512
+ 'Unknown custom element: <' + tag + '> - did you ' +
10513
+ 'register the component correctly? For recursive components, ' +
10514
+ 'make sure to provide the "name" option.',
10515
+ vnode.context
10516
+ );
10517
+ }
10518
+ }
10519
+
10520
+ vnode.elm = vnode.ns
10521
+ ? nodeOps.createElementNS(vnode.ns, tag)
10522
+ : nodeOps.createElement(tag, vnode);
10523
+ setScope(vnode);
10524
+
10525
+ /* istanbul ignore if */
10526
+ {
10527
+ createChildren(vnode, children, insertedVnodeQueue);
10528
+ if (isDef(data)) {
10529
+ invokeCreateHooks(vnode, insertedVnodeQueue);
10530
+ }
10531
+ insert(parentElm, vnode.elm, refElm);
10532
+ }
10533
+
10534
+ if (process.env.NODE_ENV !== 'production' && data && data.pre) {
10535
+ creatingElmInVPre--;
10536
+ }
10537
+ } else if (isTrue(vnode.isComment)) {
10538
+ vnode.elm = nodeOps.createComment(vnode.text);
10539
+ insert(parentElm, vnode.elm, refElm);
10540
+ } else {
10541
+ vnode.elm = nodeOps.createTextNode(vnode.text);
10542
+ insert(parentElm, vnode.elm, refElm);
10543
+ }
10544
+ }
10545
+
10546
+ function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
10547
+ var i = vnode.data;
10548
+ if (isDef(i)) {
10549
+ var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
10550
+ if (isDef(i = i.hook) && isDef(i = i.init)) {
10551
+ i(vnode, false /* hydrating */, parentElm, refElm);
10552
+ }
10553
+ // after calling the init hook, if the vnode is a child component
10554
+ // it should've created a child instance and mounted it. the child
10555
+ // component also has set the placeholder vnode's elm.
10556
+ // in that case we can just return the element and be done.
10557
+ if (isDef(vnode.componentInstance)) {
10558
+ initComponent(vnode, insertedVnodeQueue);
10559
+ if (isTrue(isReactivated)) {
10560
+ reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
10561
+ }
10562
+ return true
10563
+ }
10564
+ }
10565
+ }
10566
+
10567
+ function initComponent (vnode, insertedVnodeQueue) {
10568
+ if (isDef(vnode.data.pendingInsert)) {
10569
+ insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
10570
+ vnode.data.pendingInsert = null;
10571
+ }
10572
+ vnode.elm = vnode.componentInstance.$el;
10573
+ if (isPatchable(vnode)) {
10574
+ invokeCreateHooks(vnode, insertedVnodeQueue);
10575
+ setScope(vnode);
10576
+ } else {
10577
+ // empty component root.
10578
+ // skip all element-related modules except for ref (#3455)
10579
+ registerRef(vnode);
10580
+ // make sure to invoke the insert hook
10581
+ insertedVnodeQueue.push(vnode);
10582
+ }
10583
+ }
10584
+
10585
+ function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
10586
+ var i;
10587
+ // hack for #4339: a reactivated component with inner transition
10588
+ // does not trigger because the inner node's created hooks are not called
10589
+ // again. It's not ideal to involve module-specific logic in here but
10590
+ // there doesn't seem to be a better way to do it.
10591
+ var innerNode = vnode;
10592
+ while (innerNode.componentInstance) {
10593
+ innerNode = innerNode.componentInstance._vnode;
10594
+ if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
10595
+ for (i = 0; i < cbs.activate.length; ++i) {
10596
+ cbs.activate[i](emptyNode, innerNode);
10597
+ }
10598
+ insertedVnodeQueue.push(innerNode);
10599
+ break
10600
+ }
10601
+ }
10602
+ // unlike a newly created component,
10603
+ // a reactivated keep-alive component doesn't insert itself
10604
+ insert(parentElm, vnode.elm, refElm);
10605
+ }
10606
+
10607
+ function insert (parent, elm, ref$$1) {
10608
+ if (isDef(parent)) {
10609
+ if (isDef(ref$$1)) {
10610
+ if (ref$$1.parentNode === parent) {
10611
+ nodeOps.insertBefore(parent, elm, ref$$1);
10612
+ }
10613
+ } else {
10614
+ nodeOps.appendChild(parent, elm);
10615
+ }
10616
+ }
10617
+ }
10618
+
10619
+ function createChildren (vnode, children, insertedVnodeQueue) {
10620
+ if (Array.isArray(children)) {
10621
+ if (process.env.NODE_ENV !== 'production') {
10622
+ checkDuplicateKeys(children);
10623
+ }
10624
+ for (var i = 0; i < children.length; ++i) {
10625
+ createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
10626
+ }
10627
+ } else if (isPrimitive(vnode.text)) {
10628
+ nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
10629
+ }
10630
+ }
10631
+
10632
+ function isPatchable (vnode) {
10633
+ while (vnode.componentInstance) {
10634
+ vnode = vnode.componentInstance._vnode;
10635
+ }
10636
+ return isDef(vnode.tag)
10637
+ }
10638
+
10639
+ function invokeCreateHooks (vnode, insertedVnodeQueue) {
10640
+ for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
10641
+ cbs.create[i$1](emptyNode, vnode);
10642
+ }
10643
+ i = vnode.data.hook; // Reuse variable
10644
+ if (isDef(i)) {
10645
+ if (isDef(i.create)) { i.create(emptyNode, vnode); }
10646
+ if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
10647
+ }
10648
+ }
10649
+
10650
+ // set scope id attribute for scoped CSS.
10651
+ // this is implemented as a special case to avoid the overhead
10652
+ // of going through the normal attribute patching process.
10653
+ function setScope (vnode) {
10654
+ var i;
10655
+ if (isDef(i = vnode.fnScopeId)) {
10656
+ nodeOps.setStyleScope(vnode.elm, i);
10657
+ } else {
10658
+ var ancestor = vnode;
10659
+ while (ancestor) {
10660
+ if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
10661
+ nodeOps.setStyleScope(vnode.elm, i);
10662
+ }
10663
+ ancestor = ancestor.parent;
10664
+ }
10665
+ }
10666
+ // for slot content they should also get the scopeId from the host instance.
10667
+ if (isDef(i = activeInstance) &&
10668
+ i !== vnode.context &&
10669
+ i !== vnode.fnContext &&
10670
+ isDef(i = i.$options._scopeId)
10671
+ ) {
10672
+ nodeOps.setStyleScope(vnode.elm, i);
10673
+ }
10674
+ }
10675
+
10676
+ function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
10677
+ for (; startIdx <= endIdx; ++startIdx) {
10678
+ createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
10679
+ }
10680
+ }
10681
+
10682
+ function invokeDestroyHook (vnode) {
10683
+ var i, j;
10684
+ var data = vnode.data;
10685
+ if (isDef(data)) {
10686
+ if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
10687
+ for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
10688
+ }
10689
+ if (isDef(i = vnode.children)) {
10690
+ for (j = 0; j < vnode.children.length; ++j) {
10691
+ invokeDestroyHook(vnode.children[j]);
10692
+ }
10693
+ }
10694
+ }
10695
+
10696
+ function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
10697
+ for (; startIdx <= endIdx; ++startIdx) {
10698
+ var ch = vnodes[startIdx];
10699
+ if (isDef(ch)) {
10700
+ if (isDef(ch.tag)) {
10701
+ removeAndInvokeRemoveHook(ch);
10702
+ invokeDestroyHook(ch);
10703
+ } else { // Text node
10704
+ removeNode(ch.elm);
10705
+ }
10706
+ }
10707
+ }
10708
+ }
10709
+
10710
+ function removeAndInvokeRemoveHook (vnode, rm) {
10711
+ if (isDef(rm) || isDef(vnode.data)) {
10712
+ var i;
10713
+ var listeners = cbs.remove.length + 1;
10714
+ if (isDef(rm)) {
10715
+ // we have a recursively passed down rm callback
10716
+ // increase the listeners count
10717
+ rm.listeners += listeners;
10718
+ } else {
10719
+ // directly removing
10720
+ rm = createRmCb(vnode.elm, listeners);
10721
+ }
10722
+ // recursively invoke hooks on child component root node
10723
+ if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
10724
+ removeAndInvokeRemoveHook(i, rm);
10725
+ }
10726
+ for (i = 0; i < cbs.remove.length; ++i) {
10727
+ cbs.remove[i](vnode, rm);
10728
+ }
10729
+ if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
10730
+ i(vnode, rm);
10731
+ } else {
10732
+ rm();
10733
+ }
10734
+ } else {
10735
+ removeNode(vnode.elm);
10736
+ }
10737
+ }
10738
+
10739
+ function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
10740
+ var oldStartIdx = 0;
10741
+ var newStartIdx = 0;
10742
+ var oldEndIdx = oldCh.length - 1;
10743
+ var oldStartVnode = oldCh[0];
10744
+ var oldEndVnode = oldCh[oldEndIdx];
10745
+ var newEndIdx = newCh.length - 1;
10746
+ var newStartVnode = newCh[0];
10747
+ var newEndVnode = newCh[newEndIdx];
10748
+ var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
10749
+
10750
+ // removeOnly is a special flag used only by <transition-group>
10751
+ // to ensure removed elements stay in correct relative positions
10752
+ // during leaving transitions
10753
+ var canMove = !removeOnly;
10754
+
10755
+ if (process.env.NODE_ENV !== 'production') {
10756
+ checkDuplicateKeys(newCh);
10757
+ }
10758
+
10759
+ while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
10760
+ if (isUndef(oldStartVnode)) {
10761
+ oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
10762
+ } else if (isUndef(oldEndVnode)) {
10763
+ oldEndVnode = oldCh[--oldEndIdx];
10764
+ } else if (sameVnode(oldStartVnode, newStartVnode)) {
10765
+ patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);
10766
+ oldStartVnode = oldCh[++oldStartIdx];
10767
+ newStartVnode = newCh[++newStartIdx];
10768
+ } else if (sameVnode(oldEndVnode, newEndVnode)) {
10769
+ patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);
10770
+ oldEndVnode = oldCh[--oldEndIdx];
10771
+ newEndVnode = newCh[--newEndIdx];
10772
+ } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
10773
+ patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);
10774
+ canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
10775
+ oldStartVnode = oldCh[++oldStartIdx];
10776
+ newEndVnode = newCh[--newEndIdx];
10777
+ } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
10778
+ patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);
10779
+ canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
10780
+ oldEndVnode = oldCh[--oldEndIdx];
10781
+ newStartVnode = newCh[++newStartIdx];
10782
+ } else {
10783
+ if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
10784
+ idxInOld = isDef(newStartVnode.key)
10785
+ ? oldKeyToIdx[newStartVnode.key]
10786
+ : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
10787
+ if (isUndef(idxInOld)) { // New element
10788
+ createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
10789
+ } else {
10790
+ vnodeToMove = oldCh[idxInOld];
10791
+ if (sameVnode(vnodeToMove, newStartVnode)) {
10792
+ patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);
10793
+ oldCh[idxInOld] = undefined;
10794
+ canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
10795
+ } else {
10796
+ // same key but different element. treat as new element
10797
+ createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
10798
+ }
10799
+ }
10800
+ newStartVnode = newCh[++newStartIdx];
10801
+ }
10802
+ }
10803
+ if (oldStartIdx > oldEndIdx) {
10804
+ refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
10805
+ addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
10806
+ } else if (newStartIdx > newEndIdx) {
10807
+ removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
10808
+ }
10809
+ }
10810
+
10811
+ function checkDuplicateKeys (children) {
10812
+ var seenKeys = {};
10813
+ for (var i = 0; i < children.length; i++) {
10814
+ var vnode = children[i];
10815
+ var key = vnode.key;
10816
+ if (isDef(key)) {
10817
+ if (seenKeys[key]) {
10818
+ warn(
10819
+ ("Duplicate keys detected: '" + key + "'. This may cause an update error."),
10820
+ vnode.context
10821
+ );
10822
+ } else {
10823
+ seenKeys[key] = true;
10824
+ }
10825
+ }
10826
+ }
10827
+ }
10828
+
10829
+ function findIdxInOld (node, oldCh, start, end) {
10830
+ for (var i = start; i < end; i++) {
10831
+ var c = oldCh[i];
10832
+ if (isDef(c) && sameVnode(node, c)) { return i }
10833
+ }
10834
+ }
10835
+
10836
+ function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {
10837
+ if (oldVnode === vnode) {
10838
+ return
10839
+ }
10840
+
10841
+ var elm = vnode.elm = oldVnode.elm;
10842
+
10843
+ if (isTrue(oldVnode.isAsyncPlaceholder)) {
10844
+ if (isDef(vnode.asyncFactory.resolved)) {
10845
+ hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
10846
+ } else {
10847
+ vnode.isAsyncPlaceholder = true;
10848
+ }
10849
+ return
10850
+ }
10851
+
10852
+ // reuse element for static trees.
10853
+ // note we only do this if the vnode is cloned -
10854
+ // if the new node is not cloned it means the render functions have been
10855
+ // reset by the hot-reload-api and we need to do a proper re-render.
10856
+ if (isTrue(vnode.isStatic) &&
10857
+ isTrue(oldVnode.isStatic) &&
10858
+ vnode.key === oldVnode.key &&
10859
+ (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
10860
+ ) {
10861
+ vnode.componentInstance = oldVnode.componentInstance;
10862
+ return
10863
+ }
10864
+
10865
+ var i;
10866
+ var data = vnode.data;
10867
+ if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
10868
+ i(oldVnode, vnode);
10869
+ }
10870
+
10871
+ var oldCh = oldVnode.children;
10872
+ var ch = vnode.children;
10873
+ if (isDef(data) && isPatchable(vnode)) {
10874
+ for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
10875
+ if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
10876
+ }
10877
+ if (isUndef(vnode.text)) {
10878
+ if (isDef(oldCh) && isDef(ch)) {
10879
+ if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
10880
+ } else if (isDef(ch)) {
10881
+ if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
10882
+ addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
10883
+ } else if (isDef(oldCh)) {
10884
+ removeVnodes(elm, oldCh, 0, oldCh.length - 1);
10885
+ } else if (isDef(oldVnode.text)) {
10886
+ nodeOps.setTextContent(elm, '');
10887
+ }
10888
+ } else if (oldVnode.text !== vnode.text) {
10889
+ nodeOps.setTextContent(elm, vnode.text);
10890
+ }
10891
+ if (isDef(data)) {
10892
+ if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
10893
+ }
10894
+ }
10895
+
10896
+ function invokeInsertHook (vnode, queue, initial) {
10897
+ // delay insert hooks for component root nodes, invoke them after the
10898
+ // element is really inserted
10899
+ if (isTrue(initial) && isDef(vnode.parent)) {
10900
+ vnode.parent.data.pendingInsert = queue;
10901
+ } else {
10902
+ for (var i = 0; i < queue.length; ++i) {
10903
+ queue[i].data.hook.insert(queue[i]);
10904
+ }
10905
+ }
10906
+ }
10907
+
10908
+ var hydrationBailed = false;
10909
+ // list of modules that can skip create hook during hydration because they
10910
+ // are already rendered on the client or has no need for initialization
10911
+ // Note: style is excluded because it relies on initial clone for future
10912
+ // deep updates (#7063).
10913
+ var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
10914
+
10915
+ // Note: this is a browser-only function so we can assume elms are DOM nodes.
10916
+ function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
10917
+ var i;
10918
+ var tag = vnode.tag;
10919
+ var data = vnode.data;
10920
+ var children = vnode.children;
10921
+ inVPre = inVPre || (data && data.pre);
10922
+ vnode.elm = elm;
10923
+
10924
+ if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
10925
+ vnode.isAsyncPlaceholder = true;
10926
+ return true
10927
+ }
10928
+ // assert node match
10929
+ if (process.env.NODE_ENV !== 'production') {
10930
+ if (!assertNodeMatch(elm, vnode, inVPre)) {
10931
+ return false
10932
+ }
10933
+ }
10934
+ if (isDef(data)) {
10935
+ if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
10936
+ if (isDef(i = vnode.componentInstance)) {
10937
+ // child component. it should have hydrated its own tree.
10938
+ initComponent(vnode, insertedVnodeQueue);
10939
+ return true
10940
+ }
10941
+ }
10942
+ if (isDef(tag)) {
10943
+ if (isDef(children)) {
10944
+ // empty element, allow client to pick up and populate children
10945
+ if (!elm.hasChildNodes()) {
10946
+ createChildren(vnode, children, insertedVnodeQueue);
10947
+ } else {
10948
+ // v-html and domProps: innerHTML
10949
+ if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
10950
+ if (i !== elm.innerHTML) {
10951
+ /* istanbul ignore if */
10952
+ if (process.env.NODE_ENV !== 'production' &&
10953
+ typeof console !== 'undefined' &&
10954
+ !hydrationBailed
10955
+ ) {
10956
+ hydrationBailed = true;
10957
+ console.warn('Parent: ', elm);
10958
+ console.warn('server innerHTML: ', i);
10959
+ console.warn('client innerHTML: ', elm.innerHTML);
10960
+ }
10961
+ return false
10962
+ }
10963
+ } else {
10964
+ // iterate and compare children lists
10965
+ var childrenMatch = true;
10966
+ var childNode = elm.firstChild;
10967
+ for (var i$1 = 0; i$1 < children.length; i$1++) {
10968
+ if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
10969
+ childrenMatch = false;
10970
+ break
10971
+ }
10972
+ childNode = childNode.nextSibling;
10973
+ }
10974
+ // if childNode is not null, it means the actual childNodes list is
10975
+ // longer than the virtual children list.
10976
+ if (!childrenMatch || childNode) {
10977
+ /* istanbul ignore if */
10978
+ if (process.env.NODE_ENV !== 'production' &&
10979
+ typeof console !== 'undefined' &&
10980
+ !hydrationBailed
10981
+ ) {
10982
+ hydrationBailed = true;
10983
+ console.warn('Parent: ', elm);
10984
+ console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
10985
+ }
10986
+ return false
10987
+ }
10988
+ }
10989
+ }
10990
+ }
10991
+ if (isDef(data)) {
10992
+ var fullInvoke = false;
10993
+ for (var key in data) {
10994
+ if (!isRenderedModule(key)) {
10995
+ fullInvoke = true;
10996
+ invokeCreateHooks(vnode, insertedVnodeQueue);
10997
+ break
10998
+ }
10999
+ }
11000
+ if (!fullInvoke && data['class']) {
11001
+ // ensure collecting deps for deep class bindings for future updates
11002
+ traverse(data['class']);
11003
+ }
11004
+ }
11005
+ } else if (elm.data !== vnode.text) {
11006
+ elm.data = vnode.text;
11007
+ }
11008
+ return true
11009
+ }
11010
+
11011
+ function assertNodeMatch (node, vnode, inVPre) {
11012
+ if (isDef(vnode.tag)) {
11013
+ return vnode.tag.indexOf('vue-component') === 0 || (
11014
+ !isUnknownElement$$1(vnode, inVPre) &&
11015
+ vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
11016
+ )
11017
+ } else {
11018
+ return node.nodeType === (vnode.isComment ? 8 : 3)
11019
+ }
11020
+ }
11021
+
11022
+ return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {
11023
+ if (isUndef(vnode)) {
11024
+ if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
11025
+ return
11026
+ }
11027
+
11028
+ var isInitialPatch = false;
11029
+ var insertedVnodeQueue = [];
11030
+
11031
+ if (isUndef(oldVnode)) {
11032
+ // empty mount (likely as component), create new root element
11033
+ isInitialPatch = true;
11034
+ createElm(vnode, insertedVnodeQueue, parentElm, refElm);
11035
+ } else {
11036
+ var isRealElement = isDef(oldVnode.nodeType);
11037
+ if (!isRealElement && sameVnode(oldVnode, vnode)) {
11038
+ // patch existing root node
11039
+ patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);
11040
+ } else {
11041
+ if (isRealElement) {
11042
+ // mounting to a real element
11043
+ // check if this is server-rendered content and if we can perform
11044
+ // a successful hydration.
11045
+ if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
11046
+ oldVnode.removeAttribute(SSR_ATTR);
11047
+ hydrating = true;
11048
+ }
11049
+ if (isTrue(hydrating)) {
11050
+ if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
11051
+ invokeInsertHook(vnode, insertedVnodeQueue, true);
11052
+ return oldVnode
11053
+ } else if (process.env.NODE_ENV !== 'production') {
11054
+ warn(
11055
+ 'The client-side rendered virtual DOM tree is not matching ' +
11056
+ 'server-rendered content. This is likely caused by incorrect ' +
11057
+ 'HTML markup, for example nesting block-level elements inside ' +
11058
+ '<p>, or missing <tbody>. Bailing hydration and performing ' +
11059
+ 'full client-side render.'
11060
+ );
11061
+ }
11062
+ }
11063
+ // either not server-rendered, or hydration failed.
11064
+ // create an empty node and replace it
11065
+ oldVnode = emptyNodeAt(oldVnode);
11066
+ }
11067
+
11068
+ // replacing existing element
11069
+ var oldElm = oldVnode.elm;
11070
+ var parentElm$1 = nodeOps.parentNode(oldElm);
11071
+
11072
+ // create new node
11073
+ createElm(
11074
+ vnode,
11075
+ insertedVnodeQueue,
11076
+ // extremely rare edge case: do not insert if old element is in a
11077
+ // leaving transition. Only happens when combining transition +
11078
+ // keep-alive + HOCs. (#4590)
11079
+ oldElm._leaveCb ? null : parentElm$1,
11080
+ nodeOps.nextSibling(oldElm)
11081
+ );
11082
+
11083
+ // update parent placeholder node element, recursively
11084
+ if (isDef(vnode.parent)) {
11085
+ var ancestor = vnode.parent;
11086
+ var patchable = isPatchable(vnode);
11087
+ while (ancestor) {
11088
+ for (var i = 0; i < cbs.destroy.length; ++i) {
11089
+ cbs.destroy[i](ancestor);
11090
+ }
11091
+ ancestor.elm = vnode.elm;
11092
+ if (patchable) {
11093
+ for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
11094
+ cbs.create[i$1](emptyNode, ancestor);
11095
+ }
11096
+ // #6513
11097
+ // invoke insert hooks that may have been merged by create hooks.
11098
+ // e.g. for directives that uses the "inserted" hook.
11099
+ var insert = ancestor.data.hook.insert;
11100
+ if (insert.merged) {
11101
+ // start at index 1 to avoid re-invoking component mounted hook
11102
+ for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
11103
+ insert.fns[i$2]();
11104
+ }
11105
+ }
11106
+ } else {
11107
+ registerRef(ancestor);
11108
+ }
11109
+ ancestor = ancestor.parent;
11110
+ }
11111
+ }
11112
+
11113
+ // destroy old node
11114
+ if (isDef(parentElm$1)) {
11115
+ removeVnodes(parentElm$1, [oldVnode], 0, 0);
11116
+ } else if (isDef(oldVnode.tag)) {
11117
+ invokeDestroyHook(oldVnode);
11118
+ }
11119
+ }
11120
+ }
11121
+
11122
+ invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
11123
+ return vnode.elm
11124
+ }
11125
+ }
11126
+
11127
+ /* */
11128
+
11129
+ var directives = {
11130
+ create: updateDirectives,
11131
+ update: updateDirectives,
11132
+ destroy: function unbindDirectives (vnode) {
11133
+ updateDirectives(vnode, emptyNode);
11134
+ }
11135
+ }
11136
+
11137
+ function updateDirectives (oldVnode, vnode) {
11138
+ if (oldVnode.data.directives || vnode.data.directives) {
11139
+ _update(oldVnode, vnode);
11140
+ }
11141
+ }
11142
+
11143
+ function _update (oldVnode, vnode) {
11144
+ var isCreate = oldVnode === emptyNode;
11145
+ var isDestroy = vnode === emptyNode;
11146
+ var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
11147
+ var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
11148
+
11149
+ var dirsWithInsert = [];
11150
+ var dirsWithPostpatch = [];
11151
+
11152
+ var key, oldDir, dir;
11153
+ for (key in newDirs) {
11154
+ oldDir = oldDirs[key];
11155
+ dir = newDirs[key];
11156
+ if (!oldDir) {
11157
+ // new directive, bind
11158
+ callHook$1(dir, 'bind', vnode, oldVnode);
11159
+ if (dir.def && dir.def.inserted) {
11160
+ dirsWithInsert.push(dir);
11161
+ }
11162
+ } else {
11163
+ // existing directive, update
11164
+ dir.oldValue = oldDir.value;
11165
+ callHook$1(dir, 'update', vnode, oldVnode);
11166
+ if (dir.def && dir.def.componentUpdated) {
11167
+ dirsWithPostpatch.push(dir);
11168
+ }
11169
+ }
11170
+ }
11171
+
11172
+ if (dirsWithInsert.length) {
11173
+ var callInsert = function () {
11174
+ for (var i = 0; i < dirsWithInsert.length; i++) {
11175
+ callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
11176
+ }
11177
+ };
11178
+ if (isCreate) {
11179
+ mergeVNodeHook(vnode, 'insert', callInsert);
11180
+ } else {
11181
+ callInsert();
11182
+ }
11183
+ }
11184
+
11185
+ if (dirsWithPostpatch.length) {
11186
+ mergeVNodeHook(vnode, 'postpatch', function () {
11187
+ for (var i = 0; i < dirsWithPostpatch.length; i++) {
11188
+ callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
11189
+ }
11190
+ });
11191
+ }
11192
+
11193
+ if (!isCreate) {
11194
+ for (key in oldDirs) {
11195
+ if (!newDirs[key]) {
11196
+ // no longer present, unbind
11197
+ callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
11198
+ }
11199
+ }
11200
+ }
11201
+ }
11202
+
11203
+ var emptyModifiers = Object.create(null);
11204
+
11205
+ function normalizeDirectives$1 (
11206
+ dirs,
11207
+ vm
11208
+ ) {
11209
+ var res = Object.create(null);
11210
+ if (!dirs) {
11211
+ // $flow-disable-line
11212
+ return res
11213
+ }
11214
+ var i, dir;
11215
+ for (i = 0; i < dirs.length; i++) {
11216
+ dir = dirs[i];
11217
+ if (!dir.modifiers) {
11218
+ // $flow-disable-line
11219
+ dir.modifiers = emptyModifiers;
11220
+ }
11221
+ res[getRawDirName(dir)] = dir;
11222
+ dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
11223
+ }
11224
+ // $flow-disable-line
11225
+ return res
11226
+ }
11227
+
11228
+ function getRawDirName (dir) {
11229
+ return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
11230
+ }
11231
+
11232
+ function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
11233
+ var fn = dir.def && dir.def[hook];
11234
+ if (fn) {
11235
+ try {
11236
+ fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
11237
+ } catch (e) {
11238
+ handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
11239
+ }
11240
+ }
11241
+ }
11242
+
11243
+ var baseModules = [
11244
+ ref,
11245
+ directives
11246
+ ]
11247
+
11248
+ /* */
11249
+
11250
+ function updateAttrs (oldVnode, vnode) {
11251
+ var opts = vnode.componentOptions;
11252
+ if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
11253
+ return
11254
+ }
11255
+ if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
11256
+ return
11257
+ }
11258
+ var key, cur, old;
11259
+ var elm = vnode.elm;
11260
+ var oldAttrs = oldVnode.data.attrs || {};
11261
+ var attrs = vnode.data.attrs || {};
11262
+ // clone observed objects, as the user probably wants to mutate it
11263
+ if (isDef(attrs.__ob__)) {
11264
+ attrs = vnode.data.attrs = extend({}, attrs);
11265
+ }
11266
+
11267
+ for (key in attrs) {
11268
+ cur = attrs[key];
11269
+ old = oldAttrs[key];
11270
+ if (old !== cur) {
11271
+ setAttr(elm, key, cur);
11272
+ }
11273
+ }
11274
+ // #4391: in IE9, setting type can reset value for input[type=radio]
11275
+ // #6666: IE/Edge forces progress value down to 1 before setting a max
11276
+ /* istanbul ignore if */
11277
+ if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
11278
+ setAttr(elm, 'value', attrs.value);
11279
+ }
11280
+ for (key in oldAttrs) {
11281
+ if (isUndef(attrs[key])) {
11282
+ if (isXlink(key)) {
11283
+ elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
11284
+ } else if (!isEnumeratedAttr(key)) {
11285
+ elm.removeAttribute(key);
11286
+ }
11287
+ }
11288
+ }
11289
+ }
11290
+
11291
+ function setAttr (el, key, value) {
11292
+ if (el.tagName.indexOf('-') > -1) {
11293
+ baseSetAttr(el, key, value);
11294
+ } else if (isBooleanAttr(key)) {
11295
+ // set attribute for blank value
11296
+ // e.g. <option disabled>Select one</option>
11297
+ if (isFalsyAttrValue(value)) {
11298
+ el.removeAttribute(key);
11299
+ } else {
11300
+ // technically allowfullscreen is a boolean attribute for <iframe>,
11301
+ // but Flash expects a value of "true" when used on <embed> tag
11302
+ value = key === 'allowfullscreen' && el.tagName === 'EMBED'
11303
+ ? 'true'
11304
+ : key;
11305
+ el.setAttribute(key, value);
11306
+ }
11307
+ } else if (isEnumeratedAttr(key)) {
11308
+ el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');
11309
+ } else if (isXlink(key)) {
11310
+ if (isFalsyAttrValue(value)) {
11311
+ el.removeAttributeNS(xlinkNS, getXlinkProp(key));
11312
+ } else {
11313
+ el.setAttributeNS(xlinkNS, key, value);
11314
+ }
11315
+ } else {
11316
+ baseSetAttr(el, key, value);
11317
+ }
11318
+ }
11319
+
11320
+ function baseSetAttr (el, key, value) {
11321
+ if (isFalsyAttrValue(value)) {
11322
+ el.removeAttribute(key);
11323
+ } else {
11324
+ // #7138: IE10 & 11 fires input event when setting placeholder on
11325
+ // <textarea>... block the first input event and remove the blocker
11326
+ // immediately.
11327
+ /* istanbul ignore if */
11328
+ if (
11329
+ isIE && !isIE9 &&
11330
+ el.tagName === 'TEXTAREA' &&
11331
+ key === 'placeholder' && !el.__ieph
11332
+ ) {
11333
+ var blocker = function (e) {
11334
+ e.stopImmediatePropagation();
11335
+ el.removeEventListener('input', blocker);
11336
+ };
11337
+ el.addEventListener('input', blocker);
11338
+ // $flow-disable-line
11339
+ el.__ieph = true; /* IE placeholder patched */
11340
+ }
11341
+ el.setAttribute(key, value);
11342
+ }
11343
+ }
11344
+
11345
+ var attrs = {
11346
+ create: updateAttrs,
11347
+ update: updateAttrs
11348
+ }
11349
+
11350
+ /* */
11351
+
11352
+ function updateClass (oldVnode, vnode) {
11353
+ var el = vnode.elm;
11354
+ var data = vnode.data;
11355
+ var oldData = oldVnode.data;
11356
+ if (
11357
+ isUndef(data.staticClass) &&
11358
+ isUndef(data.class) && (
11359
+ isUndef(oldData) || (
11360
+ isUndef(oldData.staticClass) &&
11361
+ isUndef(oldData.class)
11362
+ )
11363
+ )
11364
+ ) {
11365
+ return
11366
+ }
11367
+
11368
+ var cls = genClassForVnode(vnode);
11369
+
11370
+ // handle transition classes
11371
+ var transitionClass = el._transitionClasses;
11372
+ if (isDef(transitionClass)) {
11373
+ cls = concat(cls, stringifyClass(transitionClass));
11374
+ }
11375
+
11376
+ // set the class
11377
+ if (cls !== el._prevClass) {
11378
+ el.setAttribute('class', cls);
11379
+ el._prevClass = cls;
11380
+ }
11381
+ }
11382
+
11383
+ var klass = {
11384
+ create: updateClass,
11385
+ update: updateClass
11386
+ }
11387
+
11388
+ /* */
11389
+
11390
+ var validDivisionCharRE = /[\w).+\-_$\]]/;
11391
+
11392
+ function parseFilters (exp) {
11393
+ var inSingle = false;
11394
+ var inDouble = false;
11395
+ var inTemplateString = false;
11396
+ var inRegex = false;
11397
+ var curly = 0;
11398
+ var square = 0;
11399
+ var paren = 0;
11400
+ var lastFilterIndex = 0;
11401
+ var c, prev, i, expression, filters;
11402
+
11403
+ for (i = 0; i < exp.length; i++) {
11404
+ prev = c;
11405
+ c = exp.charCodeAt(i);
11406
+ if (inSingle) {
11407
+ if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
11408
+ } else if (inDouble) {
11409
+ if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
11410
+ } else if (inTemplateString) {
11411
+ if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
11412
+ } else if (inRegex) {
11413
+ if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
11414
+ } else if (
11415
+ c === 0x7C && // pipe
11416
+ exp.charCodeAt(i + 1) !== 0x7C &&
11417
+ exp.charCodeAt(i - 1) !== 0x7C &&
11418
+ !curly && !square && !paren
11419
+ ) {
11420
+ if (expression === undefined) {
11421
+ // first filter, end of expression
11422
+ lastFilterIndex = i + 1;
11423
+ expression = exp.slice(0, i).trim();
11424
+ } else {
11425
+ pushFilter();
11426
+ }
11427
+ } else {
11428
+ switch (c) {
11429
+ case 0x22: inDouble = true; break // "
11430
+ case 0x27: inSingle = true; break // '
11431
+ case 0x60: inTemplateString = true; break // `
11432
+ case 0x28: paren++; break // (
11433
+ case 0x29: paren--; break // )
11434
+ case 0x5B: square++; break // [
11435
+ case 0x5D: square--; break // ]
11436
+ case 0x7B: curly++; break // {
11437
+ case 0x7D: curly--; break // }
11438
+ }
11439
+ if (c === 0x2f) { // /
11440
+ var j = i - 1;
11441
+ var p = (void 0);
11442
+ // find first non-whitespace prev char
11443
+ for (; j >= 0; j--) {
11444
+ p = exp.charAt(j);
11445
+ if (p !== ' ') { break }
11446
+ }
11447
+ if (!p || !validDivisionCharRE.test(p)) {
11448
+ inRegex = true;
11449
+ }
11450
+ }
11451
+ }
11452
+ }
11453
+
11454
+ if (expression === undefined) {
11455
+ expression = exp.slice(0, i).trim();
11456
+ } else if (lastFilterIndex !== 0) {
11457
+ pushFilter();
11458
+ }
11459
+
11460
+ function pushFilter () {
11461
+ (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
11462
+ lastFilterIndex = i + 1;
11463
+ }
11464
+
11465
+ if (filters) {
11466
+ for (i = 0; i < filters.length; i++) {
11467
+ expression = wrapFilter(expression, filters[i]);
11468
+ }
11469
+ }
11470
+
11471
+ return expression
11472
+ }
11473
+
11474
+ function wrapFilter (exp, filter) {
11475
+ var i = filter.indexOf('(');
11476
+ if (i < 0) {
11477
+ // _f: resolveFilter
11478
+ return ("_f(\"" + filter + "\")(" + exp + ")")
11479
+ } else {
11480
+ var name = filter.slice(0, i);
11481
+ var args = filter.slice(i + 1);
11482
+ return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))
11483
+ }
11484
+ }
11485
+
11486
+ /* */
11487
+
11488
+ function baseWarn (msg) {
11489
+ console.error(("[Vue compiler]: " + msg));
11490
+ }
11491
+
11492
+ function pluckModuleFunction (
11493
+ modules,
11494
+ key
11495
+ ) {
11496
+ return modules
11497
+ ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
11498
+ : []
11499
+ }
11500
+
11501
+ function addProp (el, name, value) {
11502
+ (el.props || (el.props = [])).push({ name: name, value: value });
11503
+ el.plain = false;
11504
+ }
11505
+
11506
+ function addAttr (el, name, value) {
11507
+ (el.attrs || (el.attrs = [])).push({ name: name, value: value });
11508
+ el.plain = false;
11509
+ }
11510
+
11511
+ // add a raw attr (use this in preTransforms)
11512
+ function addRawAttr (el, name, value) {
11513
+ el.attrsMap[name] = value;
11514
+ el.attrsList.push({ name: name, value: value });
11515
+ }
11516
+
11517
+ function addDirective (
11518
+ el,
11519
+ name,
11520
+ rawName,
11521
+ value,
11522
+ arg,
11523
+ modifiers
11524
+ ) {
11525
+ (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });
11526
+ el.plain = false;
11527
+ }
11528
+
11529
+ function addHandler (
11530
+ el,
11531
+ name,
11532
+ value,
11533
+ modifiers,
11534
+ important,
11535
+ warn
11536
+ ) {
11537
+ modifiers = modifiers || emptyObject;
11538
+ // warn prevent and passive modifier
11539
+ /* istanbul ignore if */
11540
+ if (
11541
+ process.env.NODE_ENV !== 'production' && warn &&
11542
+ modifiers.prevent && modifiers.passive
11543
+ ) {
11544
+ warn(
11545
+ 'passive and prevent can\'t be used together. ' +
11546
+ 'Passive handler can\'t prevent default event.'
11547
+ );
11548
+ }
11549
+
11550
+ // check capture modifier
11551
+ if (modifiers.capture) {
11552
+ delete modifiers.capture;
11553
+ name = '!' + name; // mark the event as captured
11554
+ }
11555
+ if (modifiers.once) {
11556
+ delete modifiers.once;
11557
+ name = '~' + name; // mark the event as once
11558
+ }
11559
+ /* istanbul ignore if */
11560
+ if (modifiers.passive) {
11561
+ delete modifiers.passive;
11562
+ name = '&' + name; // mark the event as passive
11563
+ }
11564
+
11565
+ // normalize click.right and click.middle since they don't actually fire
11566
+ // this is technically browser-specific, but at least for now browsers are
11567
+ // the only target envs that have right/middle clicks.
11568
+ if (name === 'click') {
11569
+ if (modifiers.right) {
11570
+ name = 'contextmenu';
11571
+ delete modifiers.right;
11572
+ } else if (modifiers.middle) {
11573
+ name = 'mouseup';
11574
+ }
11575
+ }
11576
+
11577
+ var events;
11578
+ if (modifiers.native) {
11579
+ delete modifiers.native;
11580
+ events = el.nativeEvents || (el.nativeEvents = {});
11581
+ } else {
11582
+ events = el.events || (el.events = {});
11583
+ }
11584
+
11585
+ var newHandler = {
11586
+ value: value.trim()
11587
+ };
11588
+ if (modifiers !== emptyObject) {
11589
+ newHandler.modifiers = modifiers;
11590
+ }
11591
+
11592
+ var handlers = events[name];
11593
+ /* istanbul ignore if */
11594
+ if (Array.isArray(handlers)) {
11595
+ important ? handlers.unshift(newHandler) : handlers.push(newHandler);
11596
+ } else if (handlers) {
11597
+ events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
11598
+ } else {
11599
+ events[name] = newHandler;
11600
+ }
11601
+
11602
+ el.plain = false;
11603
+ }
11604
+
11605
+ function getBindingAttr (
11606
+ el,
11607
+ name,
11608
+ getStatic
11609
+ ) {
11610
+ var dynamicValue =
11611
+ getAndRemoveAttr(el, ':' + name) ||
11612
+ getAndRemoveAttr(el, 'v-bind:' + name);
11613
+ if (dynamicValue != null) {
11614
+ return parseFilters(dynamicValue)
11615
+ } else if (getStatic !== false) {
11616
+ var staticValue = getAndRemoveAttr(el, name);
11617
+ if (staticValue != null) {
11618
+ return JSON.stringify(staticValue)
11619
+ }
11620
+ }
11621
+ }
11622
+
11623
+ // note: this only removes the attr from the Array (attrsList) so that it
11624
+ // doesn't get processed by processAttrs.
11625
+ // By default it does NOT remove it from the map (attrsMap) because the map is
11626
+ // needed during codegen.
11627
+ function getAndRemoveAttr (
11628
+ el,
11629
+ name,
11630
+ removeFromMap
11631
+ ) {
11632
+ var val;
11633
+ if ((val = el.attrsMap[name]) != null) {
11634
+ var list = el.attrsList;
11635
+ for (var i = 0, l = list.length; i < l; i++) {
11636
+ if (list[i].name === name) {
11637
+ list.splice(i, 1);
11638
+ break
11639
+ }
11640
+ }
11641
+ }
11642
+ if (removeFromMap) {
11643
+ delete el.attrsMap[name];
11644
+ }
11645
+ return val
11646
+ }
11647
+
11648
+ /* */
11649
+
11650
+ /**
11651
+ * Cross-platform code generation for component v-model
11652
+ */
11653
+ function genComponentModel (
11654
+ el,
11655
+ value,
11656
+ modifiers
11657
+ ) {
11658
+ var ref = modifiers || {};
11659
+ var number = ref.number;
11660
+ var trim = ref.trim;
11661
+
11662
+ var baseValueExpression = '$$v';
11663
+ var valueExpression = baseValueExpression;
11664
+ if (trim) {
11665
+ valueExpression =
11666
+ "(typeof " + baseValueExpression + " === 'string'" +
11667
+ "? " + baseValueExpression + ".trim()" +
11668
+ ": " + baseValueExpression + ")";
11669
+ }
11670
+ if (number) {
11671
+ valueExpression = "_n(" + valueExpression + ")";
11672
+ }
11673
+ var assignment = genAssignmentCode(value, valueExpression);
11674
+
11675
+ el.model = {
11676
+ value: ("(" + value + ")"),
11677
+ expression: ("\"" + value + "\""),
11678
+ callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
11679
+ };
11680
+ }
11681
+
11682
+ /**
11683
+ * Cross-platform codegen helper for generating v-model value assignment code.
11684
+ */
11685
+ function genAssignmentCode (
11686
+ value,
11687
+ assignment
11688
+ ) {
11689
+ var res = parseModel(value);
11690
+ if (res.key === null) {
11691
+ return (value + "=" + assignment)
11692
+ } else {
11693
+ return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")
11694
+ }
11695
+ }
11696
+
11697
+ /**
11698
+ * Parse a v-model expression into a base path and a final key segment.
11699
+ * Handles both dot-path and possible square brackets.
11700
+ *
11701
+ * Possible cases:
11702
+ *
11703
+ * - test
11704
+ * - test[key]
11705
+ * - test[test1[key]]
11706
+ * - test["a"][key]
11707
+ * - xxx.test[a[a].test1[key]]
11708
+ * - test.xxx.a["asa"][test1[key]]
11709
+ *
11710
+ */
11711
+
11712
+ var len;
11713
+ var str;
11714
+ var chr;
11715
+ var index$1;
11716
+ var expressionPos;
11717
+ var expressionEndPos;
11718
+
11719
+
11720
+
11721
+ function parseModel (val) {
11722
+ // Fix https://github.com/vuejs/vue/pull/7730
11723
+ // allow v-model="obj.val " (trailing whitespace)
11724
+ val = val.trim();
11725
+ len = val.length;
11726
+
11727
+ if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
11728
+ index$1 = val.lastIndexOf('.');
11729
+ if (index$1 > -1) {
11730
+ return {
11731
+ exp: val.slice(0, index$1),
11732
+ key: '"' + val.slice(index$1 + 1) + '"'
11733
+ }
11734
+ } else {
11735
+ return {
11736
+ exp: val,
11737
+ key: null
11738
+ }
11739
+ }
11740
+ }
11741
+
11742
+ str = val;
11743
+ index$1 = expressionPos = expressionEndPos = 0;
11744
+
11745
+ while (!eof()) {
11746
+ chr = next();
11747
+ /* istanbul ignore if */
11748
+ if (isStringStart(chr)) {
11749
+ parseString(chr);
11750
+ } else if (chr === 0x5B) {
11751
+ parseBracket(chr);
11752
+ }
11753
+ }
11754
+
11755
+ return {
11756
+ exp: val.slice(0, expressionPos),
11757
+ key: val.slice(expressionPos + 1, expressionEndPos)
11758
+ }
11759
+ }
11760
+
11761
+ function next () {
11762
+ return str.charCodeAt(++index$1)
11763
+ }
11764
+
11765
+ function eof () {
11766
+ return index$1 >= len
11767
+ }
11768
+
11769
+ function isStringStart (chr) {
11770
+ return chr === 0x22 || chr === 0x27
11771
+ }
11772
+
11773
+ function parseBracket (chr) {
11774
+ var inBracket = 1;
11775
+ expressionPos = index$1;
11776
+ while (!eof()) {
11777
+ chr = next();
11778
+ if (isStringStart(chr)) {
11779
+ parseString(chr);
11780
+ continue
11781
+ }
11782
+ if (chr === 0x5B) { inBracket++; }
11783
+ if (chr === 0x5D) { inBracket--; }
11784
+ if (inBracket === 0) {
11785
+ expressionEndPos = index$1;
11786
+ break
11787
+ }
11788
+ }
11789
+ }
11790
+
11791
+ function parseString (chr) {
11792
+ var stringQuote = chr;
11793
+ while (!eof()) {
11794
+ chr = next();
11795
+ if (chr === stringQuote) {
11796
+ break
11797
+ }
11798
+ }
11799
+ }
11800
+
11801
+ /* */
11802
+
11803
+ var warn$1;
11804
+
11805
+ // in some cases, the event used has to be determined at runtime
11806
+ // so we used some reserved tokens during compile.
11807
+ var RANGE_TOKEN = '__r';
11808
+ var CHECKBOX_RADIO_TOKEN = '__c';
11809
+
11810
+ function model (
11811
+ el,
11812
+ dir,
11813
+ _warn
11814
+ ) {
11815
+ warn$1 = _warn;
11816
+ var value = dir.value;
11817
+ var modifiers = dir.modifiers;
11818
+ var tag = el.tag;
11819
+ var type = el.attrsMap.type;
11820
+
11821
+ if (process.env.NODE_ENV !== 'production') {
11822
+ // inputs with type="file" are read only and setting the input's
11823
+ // value will throw an error.
11824
+ if (tag === 'input' && type === 'file') {
11825
+ warn$1(
11826
+ "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
11827
+ "File inputs are read only. Use a v-on:change listener instead."
11828
+ );
11829
+ }
11830
+ }
11831
+
11832
+ if (el.component) {
11833
+ genComponentModel(el, value, modifiers);
11834
+ // component v-model doesn't need extra runtime
11835
+ return false
11836
+ } else if (tag === 'select') {
11837
+ genSelect(el, value, modifiers);
11838
+ } else if (tag === 'input' && type === 'checkbox') {
11839
+ genCheckboxModel(el, value, modifiers);
11840
+ } else if (tag === 'input' && type === 'radio') {
11841
+ genRadioModel(el, value, modifiers);
11842
+ } else if (tag === 'input' || tag === 'textarea') {
11843
+ genDefaultModel(el, value, modifiers);
11844
+ } else if (!config.isReservedTag(tag)) {
11845
+ genComponentModel(el, value, modifiers);
11846
+ // component v-model doesn't need extra runtime
11847
+ return false
11848
+ } else if (process.env.NODE_ENV !== 'production') {
11849
+ warn$1(
11850
+ "<" + (el.tag) + " v-model=\"" + value + "\">: " +
11851
+ "v-model is not supported on this element type. " +
11852
+ 'If you are working with contenteditable, it\'s recommended to ' +
11853
+ 'wrap a library dedicated for that purpose inside a custom component.'
11854
+ );
11855
+ }
11856
+
11857
+ // ensure runtime directive metadata
11858
+ return true
11859
+ }
11860
+
11861
+ function genCheckboxModel (
11862
+ el,
11863
+ value,
11864
+ modifiers
11865
+ ) {
11866
+ var number = modifiers && modifiers.number;
11867
+ var valueBinding = getBindingAttr(el, 'value') || 'null';
11868
+ var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
11869
+ var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
11870
+ addProp(el, 'checked',
11871
+ "Array.isArray(" + value + ")" +
11872
+ "?_i(" + value + "," + valueBinding + ")>-1" + (
11873
+ trueValueBinding === 'true'
11874
+ ? (":(" + value + ")")
11875
+ : (":_q(" + value + "," + trueValueBinding + ")")
11876
+ )
11877
+ );
11878
+ addHandler(el, 'change',
11879
+ "var $$a=" + value + "," +
11880
+ '$$el=$event.target,' +
11881
+ "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
11882
+ 'if(Array.isArray($$a)){' +
11883
+ "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
11884
+ '$$i=_i($$a,$$v);' +
11885
+ "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" +
11886
+ "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" +
11887
+ "}else{" + (genAssignmentCode(value, '$$c')) + "}",
11888
+ null, true
11889
+ );
11890
+ }
11891
+
11892
+ function genRadioModel (
11893
+ el,
11894
+ value,
11895
+ modifiers
11896
+ ) {
11897
+ var number = modifiers && modifiers.number;
11898
+ var valueBinding = getBindingAttr(el, 'value') || 'null';
11899
+ valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
11900
+ addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
11901
+ addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
11902
+ }
11903
+
11904
+ function genSelect (
11905
+ el,
11906
+ value,
11907
+ modifiers
11908
+ ) {
11909
+ var number = modifiers && modifiers.number;
11910
+ var selectedVal = "Array.prototype.filter" +
11911
+ ".call($event.target.options,function(o){return o.selected})" +
11912
+ ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
11913
+ "return " + (number ? '_n(val)' : 'val') + "})";
11914
+
11915
+ var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
11916
+ var code = "var $$selectedVal = " + selectedVal + ";";
11917
+ code = code + " " + (genAssignmentCode(value, assignment));
11918
+ addHandler(el, 'change', code, null, true);
11919
+ }
11920
+
11921
+ function genDefaultModel (
11922
+ el,
11923
+ value,
11924
+ modifiers
11925
+ ) {
11926
+ var type = el.attrsMap.type;
11927
+
11928
+ // warn if v-bind:value conflicts with v-model
11929
+ // except for inputs with v-bind:type
11930
+ if (process.env.NODE_ENV !== 'production') {
11931
+ var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
11932
+ var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
11933
+ if (value$1 && !typeBinding) {
11934
+ var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
11935
+ warn$1(
11936
+ binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " +
11937
+ 'because the latter already expands to a value binding internally'
11938
+ );
11939
+ }
11940
+ }
11941
+
11942
+ var ref = modifiers || {};
11943
+ var lazy = ref.lazy;
11944
+ var number = ref.number;
11945
+ var trim = ref.trim;
11946
+ var needCompositionGuard = !lazy && type !== 'range';
11947
+ var event = lazy
11948
+ ? 'change'
11949
+ : type === 'range'
11950
+ ? RANGE_TOKEN
11951
+ : 'input';
11952
+
11953
+ var valueExpression = '$event.target.value';
11954
+ if (trim) {
11955
+ valueExpression = "$event.target.value.trim()";
11956
+ }
11957
+ if (number) {
11958
+ valueExpression = "_n(" + valueExpression + ")";
11959
+ }
11960
+
11961
+ var code = genAssignmentCode(value, valueExpression);
11962
+ if (needCompositionGuard) {
11963
+ code = "if($event.target.composing)return;" + code;
11964
+ }
11965
+
11966
+ addProp(el, 'value', ("(" + value + ")"));
11967
+ addHandler(el, event, code, null, true);
11968
+ if (trim || number) {
11969
+ addHandler(el, 'blur', '$forceUpdate()');
11970
+ }
11971
+ }
11972
+
11973
+ /* */
11974
+
11975
+ // normalize v-model event tokens that can only be determined at runtime.
11976
+ // it's important to place the event as the first in the array because
11977
+ // the whole point is ensuring the v-model callback gets called before
11978
+ // user-attached handlers.
11979
+ function normalizeEvents (on) {
11980
+ /* istanbul ignore if */
11981
+ if (isDef(on[RANGE_TOKEN])) {
11982
+ // IE input[type=range] only supports `change` event
11983
+ var event = isIE ? 'change' : 'input';
11984
+ on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
11985
+ delete on[RANGE_TOKEN];
11986
+ }
11987
+ // This was originally intended to fix #4521 but no longer necessary
11988
+ // after 2.5. Keeping it for backwards compat with generated code from < 2.4
11989
+ /* istanbul ignore if */
11990
+ if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
11991
+ on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
11992
+ delete on[CHECKBOX_RADIO_TOKEN];
11993
+ }
11994
+ }
11995
+
11996
+ var target$1;
11997
+
11998
+ function createOnceHandler (handler, event, capture) {
11999
+ var _target = target$1; // save current target element in closure
12000
+ return function onceHandler () {
12001
+ var res = handler.apply(null, arguments);
12002
+ if (res !== null) {
12003
+ remove$2(event, onceHandler, capture, _target);
12004
+ }
12005
+ }
12006
+ }
12007
+
12008
+ function add$1 (
12009
+ event,
12010
+ handler,
12011
+ once$$1,
12012
+ capture,
12013
+ passive
12014
+ ) {
12015
+ handler = withMacroTask(handler);
12016
+ if (once$$1) { handler = createOnceHandler(handler, event, capture); }
12017
+ target$1.addEventListener(
12018
+ event,
12019
+ handler,
12020
+ supportsPassive
12021
+ ? { capture: capture, passive: passive }
12022
+ : capture
12023
+ );
12024
+ }
12025
+
12026
+ function remove$2 (
12027
+ event,
12028
+ handler,
12029
+ capture,
12030
+ _target
12031
+ ) {
12032
+ (_target || target$1).removeEventListener(
12033
+ event,
12034
+ handler._withTask || handler,
12035
+ capture
12036
+ );
12037
+ }
12038
+
12039
+ function updateDOMListeners (oldVnode, vnode) {
12040
+ if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
12041
+ return
12042
+ }
12043
+ var on = vnode.data.on || {};
12044
+ var oldOn = oldVnode.data.on || {};
12045
+ target$1 = vnode.elm;
12046
+ normalizeEvents(on);
12047
+ updateListeners(on, oldOn, add$1, remove$2, vnode.context);
12048
+ target$1 = undefined;
12049
+ }
12050
+
12051
+ var events = {
12052
+ create: updateDOMListeners,
12053
+ update: updateDOMListeners
12054
+ }
12055
+
12056
+ /* */
12057
+
12058
+ function updateDOMProps (oldVnode, vnode) {
12059
+ if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
12060
+ return
12061
+ }
12062
+ var key, cur;
12063
+ var elm = vnode.elm;
12064
+ var oldProps = oldVnode.data.domProps || {};
12065
+ var props = vnode.data.domProps || {};
12066
+ // clone observed objects, as the user probably wants to mutate it
12067
+ if (isDef(props.__ob__)) {
12068
+ props = vnode.data.domProps = extend({}, props);
12069
+ }
12070
+
12071
+ for (key in oldProps) {
12072
+ if (isUndef(props[key])) {
12073
+ elm[key] = '';
12074
+ }
12075
+ }
12076
+ for (key in props) {
12077
+ cur = props[key];
12078
+ // ignore children if the node has textContent or innerHTML,
12079
+ // as these will throw away existing DOM nodes and cause removal errors
12080
+ // on subsequent patches (#3360)
12081
+ if (key === 'textContent' || key === 'innerHTML') {
12082
+ if (vnode.children) { vnode.children.length = 0; }
12083
+ if (cur === oldProps[key]) { continue }
12084
+ // #6601 work around Chrome version <= 55 bug where single textNode
12085
+ // replaced by innerHTML/textContent retains its parentNode property
12086
+ if (elm.childNodes.length === 1) {
12087
+ elm.removeChild(elm.childNodes[0]);
12088
+ }
12089
+ }
12090
+
12091
+ if (key === 'value') {
12092
+ // store value as _value as well since
12093
+ // non-string values will be stringified
12094
+ elm._value = cur;
12095
+ // avoid resetting cursor position when value is the same
12096
+ var strCur = isUndef(cur) ? '' : String(cur);
12097
+ if (shouldUpdateValue(elm, strCur)) {
12098
+ elm.value = strCur;
12099
+ }
12100
+ } else {
12101
+ elm[key] = cur;
12102
+ }
12103
+ }
12104
+ }
12105
+
12106
+ // check platforms/web/util/attrs.js acceptValue
12107
+
12108
+
12109
+ function shouldUpdateValue (elm, checkVal) {
12110
+ return (!elm.composing && (
12111
+ elm.tagName === 'OPTION' ||
12112
+ isNotInFocusAndDirty(elm, checkVal) ||
12113
+ isDirtyWithModifiers(elm, checkVal)
12114
+ ))
12115
+ }
12116
+
12117
+ function isNotInFocusAndDirty (elm, checkVal) {
12118
+ // return true when textbox (.number and .trim) loses focus and its value is
12119
+ // not equal to the updated value
12120
+ var notInFocus = true;
12121
+ // #6157
12122
+ // work around IE bug when accessing document.activeElement in an iframe
12123
+ try { notInFocus = document.activeElement !== elm; } catch (e) {}
12124
+ return notInFocus && elm.value !== checkVal
12125
+ }
12126
+
12127
+ function isDirtyWithModifiers (elm, newVal) {
12128
+ var value = elm.value;
12129
+ var modifiers = elm._vModifiers; // injected by v-model runtime
12130
+ if (isDef(modifiers)) {
12131
+ if (modifiers.lazy) {
12132
+ // inputs with lazy should only be updated when not in focus
12133
+ return false
12134
+ }
12135
+ if (modifiers.number) {
12136
+ return toNumber(value) !== toNumber(newVal)
12137
+ }
12138
+ if (modifiers.trim) {
12139
+ return value.trim() !== newVal.trim()
12140
+ }
12141
+ }
12142
+ return value !== newVal
12143
+ }
12144
+
12145
+ var domProps = {
12146
+ create: updateDOMProps,
12147
+ update: updateDOMProps
12148
+ }
12149
+
12150
+ /* */
12151
+
12152
+ var parseStyleText = cached(function (cssText) {
12153
+ var res = {};
12154
+ var listDelimiter = /;(?![^(]*\))/g;
12155
+ var propertyDelimiter = /:(.+)/;
12156
+ cssText.split(listDelimiter).forEach(function (item) {
12157
+ if (item) {
12158
+ var tmp = item.split(propertyDelimiter);
12159
+ tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
12160
+ }
12161
+ });
12162
+ return res
12163
+ });
12164
+
12165
+ // merge static and dynamic style data on the same vnode
12166
+ function normalizeStyleData (data) {
12167
+ var style = normalizeStyleBinding(data.style);
12168
+ // static style is pre-processed into an object during compilation
12169
+ // and is always a fresh object, so it's safe to merge into it
12170
+ return data.staticStyle
12171
+ ? extend(data.staticStyle, style)
12172
+ : style
12173
+ }
12174
+
12175
+ // normalize possible array / string values into Object
12176
+ function normalizeStyleBinding (bindingStyle) {
12177
+ if (Array.isArray(bindingStyle)) {
12178
+ return toObject(bindingStyle)
12179
+ }
12180
+ if (typeof bindingStyle === 'string') {
12181
+ return parseStyleText(bindingStyle)
12182
+ }
12183
+ return bindingStyle
12184
+ }
12185
+
12186
+ /**
12187
+ * parent component style should be after child's
12188
+ * so that parent component's style could override it
12189
+ */
12190
+ function getStyle (vnode, checkChild) {
12191
+ var res = {};
12192
+ var styleData;
12193
+
12194
+ if (checkChild) {
12195
+ var childNode = vnode;
12196
+ while (childNode.componentInstance) {
12197
+ childNode = childNode.componentInstance._vnode;
12198
+ if (
12199
+ childNode && childNode.data &&
12200
+ (styleData = normalizeStyleData(childNode.data))
12201
+ ) {
12202
+ extend(res, styleData);
12203
+ }
12204
+ }
12205
+ }
12206
+
12207
+ if ((styleData = normalizeStyleData(vnode.data))) {
12208
+ extend(res, styleData);
12209
+ }
12210
+
12211
+ var parentNode = vnode;
12212
+ while ((parentNode = parentNode.parent)) {
12213
+ if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
12214
+ extend(res, styleData);
12215
+ }
12216
+ }
12217
+ return res
12218
+ }
12219
+
12220
+ /* */
12221
+
12222
+ var cssVarRE = /^--/;
12223
+ var importantRE = /\s*!important$/;
12224
+ var setProp = function (el, name, val) {
12225
+ /* istanbul ignore if */
12226
+ if (cssVarRE.test(name)) {
12227
+ el.style.setProperty(name, val);
12228
+ } else if (importantRE.test(val)) {
12229
+ el.style.setProperty(name, val.replace(importantRE, ''), 'important');
12230
+ } else {
12231
+ var normalizedName = normalize(name);
12232
+ if (Array.isArray(val)) {
12233
+ // Support values array created by autoprefixer, e.g.
12234
+ // {display: ["-webkit-box", "-ms-flexbox", "flex"]}
12235
+ // Set them one by one, and the browser will only set those it can recognize
12236
+ for (var i = 0, len = val.length; i < len; i++) {
12237
+ el.style[normalizedName] = val[i];
12238
+ }
12239
+ } else {
12240
+ el.style[normalizedName] = val;
12241
+ }
12242
+ }
12243
+ };
12244
+
12245
+ var vendorNames = ['Webkit', 'Moz', 'ms'];
12246
+
12247
+ var emptyStyle;
12248
+ var normalize = cached(function (prop) {
12249
+ emptyStyle = emptyStyle || document.createElement('div').style;
12250
+ prop = camelize(prop);
12251
+ if (prop !== 'filter' && (prop in emptyStyle)) {
12252
+ return prop
12253
+ }
12254
+ var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
12255
+ for (var i = 0; i < vendorNames.length; i++) {
12256
+ var name = vendorNames[i] + capName;
12257
+ if (name in emptyStyle) {
12258
+ return name
12259
+ }
12260
+ }
12261
+ });
12262
+
12263
+ function updateStyle (oldVnode, vnode) {
12264
+ var data = vnode.data;
12265
+ var oldData = oldVnode.data;
12266
+
12267
+ if (isUndef(data.staticStyle) && isUndef(data.style) &&
12268
+ isUndef(oldData.staticStyle) && isUndef(oldData.style)
12269
+ ) {
12270
+ return
12271
+ }
12272
+
12273
+ var cur, name;
12274
+ var el = vnode.elm;
12275
+ var oldStaticStyle = oldData.staticStyle;
12276
+ var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
12277
+
12278
+ // if static style exists, stylebinding already merged into it when doing normalizeStyleData
12279
+ var oldStyle = oldStaticStyle || oldStyleBinding;
12280
+
12281
+ var style = normalizeStyleBinding(vnode.data.style) || {};
12282
+
12283
+ // store normalized style under a different key for next diff
12284
+ // make sure to clone it if it's reactive, since the user likely wants
12285
+ // to mutate it.
12286
+ vnode.data.normalizedStyle = isDef(style.__ob__)
12287
+ ? extend({}, style)
12288
+ : style;
12289
+
12290
+ var newStyle = getStyle(vnode, true);
12291
+
12292
+ for (name in oldStyle) {
12293
+ if (isUndef(newStyle[name])) {
12294
+ setProp(el, name, '');
12295
+ }
12296
+ }
12297
+ for (name in newStyle) {
12298
+ cur = newStyle[name];
12299
+ if (cur !== oldStyle[name]) {
12300
+ // ie9 setting to null has no effect, must use empty string
12301
+ setProp(el, name, cur == null ? '' : cur);
12302
+ }
12303
+ }
12304
+ }
12305
+
12306
+ var style = {
12307
+ create: updateStyle,
12308
+ update: updateStyle
12309
+ }
12310
+
12311
+ /* */
12312
+
12313
+ /**
12314
+ * Add class with compatibility for SVG since classList is not supported on
12315
+ * SVG elements in IE
12316
+ */
12317
+ function addClass (el, cls) {
12318
+ /* istanbul ignore if */
12319
+ if (!cls || !(cls = cls.trim())) {
12320
+ return
12321
+ }
12322
+
12323
+ /* istanbul ignore else */
12324
+ if (el.classList) {
12325
+ if (cls.indexOf(' ') > -1) {
12326
+ cls.split(/\s+/).forEach(function (c) { return el.classList.add(c); });
12327
+ } else {
12328
+ el.classList.add(cls);
12329
+ }
12330
+ } else {
12331
+ var cur = " " + (el.getAttribute('class') || '') + " ";
12332
+ if (cur.indexOf(' ' + cls + ' ') < 0) {
12333
+ el.setAttribute('class', (cur + cls).trim());
12334
+ }
12335
+ }
12336
+ }
12337
+
12338
+ /**
12339
+ * Remove class with compatibility for SVG since classList is not supported on
12340
+ * SVG elements in IE
12341
+ */
12342
+ function removeClass (el, cls) {
12343
+ /* istanbul ignore if */
12344
+ if (!cls || !(cls = cls.trim())) {
12345
+ return
12346
+ }
12347
+
12348
+ /* istanbul ignore else */
12349
+ if (el.classList) {
12350
+ if (cls.indexOf(' ') > -1) {
12351
+ cls.split(/\s+/).forEach(function (c) { return el.classList.remove(c); });
12352
+ } else {
12353
+ el.classList.remove(cls);
12354
+ }
12355
+ if (!el.classList.length) {
12356
+ el.removeAttribute('class');
12357
+ }
12358
+ } else {
12359
+ var cur = " " + (el.getAttribute('class') || '') + " ";
12360
+ var tar = ' ' + cls + ' ';
12361
+ while (cur.indexOf(tar) >= 0) {
12362
+ cur = cur.replace(tar, ' ');
12363
+ }
12364
+ cur = cur.trim();
12365
+ if (cur) {
12366
+ el.setAttribute('class', cur);
12367
+ } else {
12368
+ el.removeAttribute('class');
12369
+ }
12370
+ }
12371
+ }
12372
+
12373
+ /* */
12374
+
12375
+ function resolveTransition (def) {
12376
+ if (!def) {
12377
+ return
12378
+ }
12379
+ /* istanbul ignore else */
12380
+ if (typeof def === 'object') {
12381
+ var res = {};
12382
+ if (def.css !== false) {
12383
+ extend(res, autoCssTransition(def.name || 'v'));
12384
+ }
12385
+ extend(res, def);
12386
+ return res
12387
+ } else if (typeof def === 'string') {
12388
+ return autoCssTransition(def)
12389
+ }
12390
+ }
12391
+
12392
+ var autoCssTransition = cached(function (name) {
12393
+ return {
12394
+ enterClass: (name + "-enter"),
12395
+ enterToClass: (name + "-enter-to"),
12396
+ enterActiveClass: (name + "-enter-active"),
12397
+ leaveClass: (name + "-leave"),
12398
+ leaveToClass: (name + "-leave-to"),
12399
+ leaveActiveClass: (name + "-leave-active")
12400
+ }
12401
+ });
12402
+
12403
+ var hasTransition = inBrowser && !isIE9;
12404
+ var TRANSITION = 'transition';
12405
+ var ANIMATION = 'animation';
12406
+
12407
+ // Transition property/event sniffing
12408
+ var transitionProp = 'transition';
12409
+ var transitionEndEvent = 'transitionend';
12410
+ var animationProp = 'animation';
12411
+ var animationEndEvent = 'animationend';
12412
+ if (hasTransition) {
12413
+ /* istanbul ignore if */
12414
+ if (window.ontransitionend === undefined &&
12415
+ window.onwebkittransitionend !== undefined
12416
+ ) {
12417
+ transitionProp = 'WebkitTransition';
12418
+ transitionEndEvent = 'webkitTransitionEnd';
12419
+ }
12420
+ if (window.onanimationend === undefined &&
12421
+ window.onwebkitanimationend !== undefined
12422
+ ) {
12423
+ animationProp = 'WebkitAnimation';
12424
+ animationEndEvent = 'webkitAnimationEnd';
12425
+ }
12426
+ }
12427
+
12428
+ // binding to window is necessary to make hot reload work in IE in strict mode
12429
+ var raf = inBrowser
12430
+ ? window.requestAnimationFrame
12431
+ ? window.requestAnimationFrame.bind(window)
12432
+ : setTimeout
12433
+ : /* istanbul ignore next */ function (fn) { return fn(); };
12434
+
12435
+ function nextFrame (fn) {
12436
+ raf(function () {
12437
+ raf(fn);
12438
+ });
12439
+ }
12440
+
12441
+ function addTransitionClass (el, cls) {
12442
+ var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
12443
+ if (transitionClasses.indexOf(cls) < 0) {
12444
+ transitionClasses.push(cls);
12445
+ addClass(el, cls);
12446
+ }
12447
+ }
12448
+
12449
+ function removeTransitionClass (el, cls) {
12450
+ if (el._transitionClasses) {
12451
+ remove(el._transitionClasses, cls);
12452
+ }
12453
+ removeClass(el, cls);
12454
+ }
12455
+
12456
+ function whenTransitionEnds (
12457
+ el,
12458
+ expectedType,
12459
+ cb
12460
+ ) {
12461
+ var ref = getTransitionInfo(el, expectedType);
12462
+ var type = ref.type;
12463
+ var timeout = ref.timeout;
12464
+ var propCount = ref.propCount;
12465
+ if (!type) { return cb() }
12466
+ var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
12467
+ var ended = 0;
12468
+ var end = function () {
12469
+ el.removeEventListener(event, onEnd);
12470
+ cb();
12471
+ };
12472
+ var onEnd = function (e) {
12473
+ if (e.target === el) {
12474
+ if (++ended >= propCount) {
12475
+ end();
12476
+ }
12477
+ }
12478
+ };
12479
+ setTimeout(function () {
12480
+ if (ended < propCount) {
12481
+ end();
12482
+ }
12483
+ }, timeout + 1);
12484
+ el.addEventListener(event, onEnd);
12485
+ }
12486
+
12487
+ var transformRE = /\b(transform|all)(,|$)/;
12488
+
12489
+ function getTransitionInfo (el, expectedType) {
12490
+ var styles = window.getComputedStyle(el);
12491
+ var transitionDelays = styles[transitionProp + 'Delay'].split(', ');
12492
+ var transitionDurations = styles[transitionProp + 'Duration'].split(', ');
12493
+ var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
12494
+ var animationDelays = styles[animationProp + 'Delay'].split(', ');
12495
+ var animationDurations = styles[animationProp + 'Duration'].split(', ');
12496
+ var animationTimeout = getTimeout(animationDelays, animationDurations);
12497
+
12498
+ var type;
12499
+ var timeout = 0;
12500
+ var propCount = 0;
12501
+ /* istanbul ignore if */
12502
+ if (expectedType === TRANSITION) {
12503
+ if (transitionTimeout > 0) {
12504
+ type = TRANSITION;
12505
+ timeout = transitionTimeout;
12506
+ propCount = transitionDurations.length;
12507
+ }
12508
+ } else if (expectedType === ANIMATION) {
12509
+ if (animationTimeout > 0) {
12510
+ type = ANIMATION;
12511
+ timeout = animationTimeout;
12512
+ propCount = animationDurations.length;
12513
+ }
12514
+ } else {
12515
+ timeout = Math.max(transitionTimeout, animationTimeout);
12516
+ type = timeout > 0
12517
+ ? transitionTimeout > animationTimeout
12518
+ ? TRANSITION
12519
+ : ANIMATION
12520
+ : null;
12521
+ propCount = type
12522
+ ? type === TRANSITION
12523
+ ? transitionDurations.length
12524
+ : animationDurations.length
12525
+ : 0;
12526
+ }
12527
+ var hasTransform =
12528
+ type === TRANSITION &&
12529
+ transformRE.test(styles[transitionProp + 'Property']);
12530
+ return {
12531
+ type: type,
12532
+ timeout: timeout,
12533
+ propCount: propCount,
12534
+ hasTransform: hasTransform
12535
+ }
12536
+ }
12537
+
12538
+ function getTimeout (delays, durations) {
12539
+ /* istanbul ignore next */
12540
+ while (delays.length < durations.length) {
12541
+ delays = delays.concat(delays);
12542
+ }
12543
+
12544
+ return Math.max.apply(null, durations.map(function (d, i) {
12545
+ return toMs(d) + toMs(delays[i])
12546
+ }))
12547
+ }
12548
+
12549
+ function toMs (s) {
12550
+ return Number(s.slice(0, -1)) * 1000
12551
+ }
12552
+
12553
+ /* */
12554
+
12555
+ function enter (vnode, toggleDisplay) {
12556
+ var el = vnode.elm;
12557
+
12558
+ // call leave callback now
12559
+ if (isDef(el._leaveCb)) {
12560
+ el._leaveCb.cancelled = true;
12561
+ el._leaveCb();
12562
+ }
12563
+
12564
+ var data = resolveTransition(vnode.data.transition);
12565
+ if (isUndef(data)) {
12566
+ return
12567
+ }
12568
+
12569
+ /* istanbul ignore if */
12570
+ if (isDef(el._enterCb) || el.nodeType !== 1) {
12571
+ return
12572
+ }
12573
+
12574
+ var css = data.css;
12575
+ var type = data.type;
12576
+ var enterClass = data.enterClass;
12577
+ var enterToClass = data.enterToClass;
12578
+ var enterActiveClass = data.enterActiveClass;
12579
+ var appearClass = data.appearClass;
12580
+ var appearToClass = data.appearToClass;
12581
+ var appearActiveClass = data.appearActiveClass;
12582
+ var beforeEnter = data.beforeEnter;
12583
+ var enter = data.enter;
12584
+ var afterEnter = data.afterEnter;
12585
+ var enterCancelled = data.enterCancelled;
12586
+ var beforeAppear = data.beforeAppear;
12587
+ var appear = data.appear;
12588
+ var afterAppear = data.afterAppear;
12589
+ var appearCancelled = data.appearCancelled;
12590
+ var duration = data.duration;
12591
+
12592
+ // activeInstance will always be the <transition> component managing this
12593
+ // transition. One edge case to check is when the <transition> is placed
12594
+ // as the root node of a child component. In that case we need to check
12595
+ // <transition>'s parent for appear check.
12596
+ var context = activeInstance;
12597
+ var transitionNode = activeInstance.$vnode;
12598
+ while (transitionNode && transitionNode.parent) {
12599
+ transitionNode = transitionNode.parent;
12600
+ context = transitionNode.context;
12601
+ }
12602
+
12603
+ var isAppear = !context._isMounted || !vnode.isRootInsert;
12604
+
12605
+ if (isAppear && !appear && appear !== '') {
12606
+ return
12607
+ }
12608
+
12609
+ var startClass = isAppear && appearClass
12610
+ ? appearClass
12611
+ : enterClass;
12612
+ var activeClass = isAppear && appearActiveClass
12613
+ ? appearActiveClass
12614
+ : enterActiveClass;
12615
+ var toClass = isAppear && appearToClass
12616
+ ? appearToClass
12617
+ : enterToClass;
12618
+
12619
+ var beforeEnterHook = isAppear
12620
+ ? (beforeAppear || beforeEnter)
12621
+ : beforeEnter;
12622
+ var enterHook = isAppear
12623
+ ? (typeof appear === 'function' ? appear : enter)
12624
+ : enter;
12625
+ var afterEnterHook = isAppear
12626
+ ? (afterAppear || afterEnter)
12627
+ : afterEnter;
12628
+ var enterCancelledHook = isAppear
12629
+ ? (appearCancelled || enterCancelled)
12630
+ : enterCancelled;
12631
+
12632
+ var explicitEnterDuration = toNumber(
12633
+ isObject(duration)
12634
+ ? duration.enter
12635
+ : duration
12636
+ );
12637
+
12638
+ if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {
12639
+ checkDuration(explicitEnterDuration, 'enter', vnode);
12640
+ }
12641
+
12642
+ var expectsCSS = css !== false && !isIE9;
12643
+ var userWantsControl = getHookArgumentsLength(enterHook);
12644
+
12645
+ var cb = el._enterCb = once(function () {
12646
+ if (expectsCSS) {
12647
+ removeTransitionClass(el, toClass);
12648
+ removeTransitionClass(el, activeClass);
12649
+ }
12650
+ if (cb.cancelled) {
12651
+ if (expectsCSS) {
12652
+ removeTransitionClass(el, startClass);
12653
+ }
12654
+ enterCancelledHook && enterCancelledHook(el);
12655
+ } else {
12656
+ afterEnterHook && afterEnterHook(el);
12657
+ }
12658
+ el._enterCb = null;
12659
+ });
12660
+
12661
+ if (!vnode.data.show) {
12662
+ // remove pending leave element on enter by injecting an insert hook
12663
+ mergeVNodeHook(vnode, 'insert', function () {
12664
+ var parent = el.parentNode;
12665
+ var pendingNode = parent && parent._pending && parent._pending[vnode.key];
12666
+ if (pendingNode &&
12667
+ pendingNode.tag === vnode.tag &&
12668
+ pendingNode.elm._leaveCb
12669
+ ) {
12670
+ pendingNode.elm._leaveCb();
12671
+ }
12672
+ enterHook && enterHook(el, cb);
12673
+ });
12674
+ }
12675
+
12676
+ // start enter transition
12677
+ beforeEnterHook && beforeEnterHook(el);
12678
+ if (expectsCSS) {
12679
+ addTransitionClass(el, startClass);
12680
+ addTransitionClass(el, activeClass);
12681
+ nextFrame(function () {
12682
+ removeTransitionClass(el, startClass);
12683
+ if (!cb.cancelled) {
12684
+ addTransitionClass(el, toClass);
12685
+ if (!userWantsControl) {
12686
+ if (isValidDuration(explicitEnterDuration)) {
12687
+ setTimeout(cb, explicitEnterDuration);
12688
+ } else {
12689
+ whenTransitionEnds(el, type, cb);
12690
+ }
12691
+ }
12692
+ }
12693
+ });
12694
+ }
12695
+
12696
+ if (vnode.data.show) {
12697
+ toggleDisplay && toggleDisplay();
12698
+ enterHook && enterHook(el, cb);
12699
+ }
12700
+
12701
+ if (!expectsCSS && !userWantsControl) {
12702
+ cb();
12703
+ }
12704
+ }
12705
+
12706
+ function leave (vnode, rm) {
12707
+ var el = vnode.elm;
12708
+
12709
+ // call enter callback now
12710
+ if (isDef(el._enterCb)) {
12711
+ el._enterCb.cancelled = true;
12712
+ el._enterCb();
12713
+ }
12714
+
12715
+ var data = resolveTransition(vnode.data.transition);
12716
+ if (isUndef(data) || el.nodeType !== 1) {
12717
+ return rm()
12718
+ }
12719
+
12720
+ /* istanbul ignore if */
12721
+ if (isDef(el._leaveCb)) {
12722
+ return
12723
+ }
12724
+
12725
+ var css = data.css;
12726
+ var type = data.type;
12727
+ var leaveClass = data.leaveClass;
12728
+ var leaveToClass = data.leaveToClass;
12729
+ var leaveActiveClass = data.leaveActiveClass;
12730
+ var beforeLeave = data.beforeLeave;
12731
+ var leave = data.leave;
12732
+ var afterLeave = data.afterLeave;
12733
+ var leaveCancelled = data.leaveCancelled;
12734
+ var delayLeave = data.delayLeave;
12735
+ var duration = data.duration;
12736
+
12737
+ var expectsCSS = css !== false && !isIE9;
12738
+ var userWantsControl = getHookArgumentsLength(leave);
12739
+
12740
+ var explicitLeaveDuration = toNumber(
12741
+ isObject(duration)
12742
+ ? duration.leave
12743
+ : duration
12744
+ );
12745
+
12746
+ if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {
12747
+ checkDuration(explicitLeaveDuration, 'leave', vnode);
12748
+ }
12749
+
12750
+ var cb = el._leaveCb = once(function () {
12751
+ if (el.parentNode && el.parentNode._pending) {
12752
+ el.parentNode._pending[vnode.key] = null;
12753
+ }
12754
+ if (expectsCSS) {
12755
+ removeTransitionClass(el, leaveToClass);
12756
+ removeTransitionClass(el, leaveActiveClass);
12757
+ }
12758
+ if (cb.cancelled) {
12759
+ if (expectsCSS) {
12760
+ removeTransitionClass(el, leaveClass);
12761
+ }
12762
+ leaveCancelled && leaveCancelled(el);
12763
+ } else {
12764
+ rm();
12765
+ afterLeave && afterLeave(el);
12766
+ }
12767
+ el._leaveCb = null;
12768
+ });
12769
+
12770
+ if (delayLeave) {
12771
+ delayLeave(performLeave);
12772
+ } else {
12773
+ performLeave();
12774
+ }
12775
+
12776
+ function performLeave () {
12777
+ // the delayed leave may have already been cancelled
12778
+ if (cb.cancelled) {
12779
+ return
12780
+ }
12781
+ // record leaving element
12782
+ if (!vnode.data.show) {
12783
+ (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
12784
+ }
12785
+ beforeLeave && beforeLeave(el);
12786
+ if (expectsCSS) {
12787
+ addTransitionClass(el, leaveClass);
12788
+ addTransitionClass(el, leaveActiveClass);
12789
+ nextFrame(function () {
12790
+ removeTransitionClass(el, leaveClass);
12791
+ if (!cb.cancelled) {
12792
+ addTransitionClass(el, leaveToClass);
12793
+ if (!userWantsControl) {
12794
+ if (isValidDuration(explicitLeaveDuration)) {
12795
+ setTimeout(cb, explicitLeaveDuration);
12796
+ } else {
12797
+ whenTransitionEnds(el, type, cb);
12798
+ }
12799
+ }
12800
+ }
12801
+ });
12802
+ }
12803
+ leave && leave(el, cb);
12804
+ if (!expectsCSS && !userWantsControl) {
12805
+ cb();
12806
+ }
12807
+ }
12808
+ }
12809
+
12810
+ // only used in dev mode
12811
+ function checkDuration (val, name, vnode) {
12812
+ if (typeof val !== 'number') {
12813
+ warn(
12814
+ "<transition> explicit " + name + " duration is not a valid number - " +
12815
+ "got " + (JSON.stringify(val)) + ".",
12816
+ vnode.context
12817
+ );
12818
+ } else if (isNaN(val)) {
12819
+ warn(
12820
+ "<transition> explicit " + name + " duration is NaN - " +
12821
+ 'the duration expression might be incorrect.',
12822
+ vnode.context
12823
+ );
12824
+ }
12825
+ }
12826
+
12827
+ function isValidDuration (val) {
12828
+ return typeof val === 'number' && !isNaN(val)
12829
+ }
12830
+
12831
+ /**
12832
+ * Normalize a transition hook's argument length. The hook may be:
12833
+ * - a merged hook (invoker) with the original in .fns
12834
+ * - a wrapped component method (check ._length)
12835
+ * - a plain function (.length)
12836
+ */
12837
+ function getHookArgumentsLength (fn) {
12838
+ if (isUndef(fn)) {
12839
+ return false
12840
+ }
12841
+ var invokerFns = fn.fns;
12842
+ if (isDef(invokerFns)) {
12843
+ // invoker
12844
+ return getHookArgumentsLength(
12845
+ Array.isArray(invokerFns)
12846
+ ? invokerFns[0]
12847
+ : invokerFns
12848
+ )
12849
+ } else {
12850
+ return (fn._length || fn.length) > 1
12851
+ }
12852
+ }
12853
+
12854
+ function _enter (_, vnode) {
12855
+ if (vnode.data.show !== true) {
12856
+ enter(vnode);
12857
+ }
12858
+ }
12859
+
12860
+ var transition = inBrowser ? {
12861
+ create: _enter,
12862
+ activate: _enter,
12863
+ remove: function remove$$1 (vnode, rm) {
12864
+ /* istanbul ignore else */
12865
+ if (vnode.data.show !== true) {
12866
+ leave(vnode, rm);
12867
+ } else {
12868
+ rm();
12869
+ }
12870
+ }
12871
+ } : {}
12872
+
12873
+ var platformModules = [
12874
+ attrs,
12875
+ klass,
12876
+ events,
12877
+ domProps,
12878
+ style,
12879
+ transition
12880
+ ]
12881
+
12882
+ /* */
12883
+
12884
+ // the directive module should be applied last, after all
12885
+ // built-in modules have been applied.
12886
+ var modules = platformModules.concat(baseModules);
12887
+
12888
+ var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
12889
+
12890
+ /**
12891
+ * Not type checking this file because flow doesn't like attaching
12892
+ * properties to Elements.
12893
+ */
12894
+
12895
+ /* istanbul ignore if */
12896
+ if (isIE9) {
12897
+ // http://www.matts411.com/post/internet-explorer-9-oninput/
12898
+ document.addEventListener('selectionchange', function () {
12899
+ var el = document.activeElement;
12900
+ if (el && el.vmodel) {
12901
+ trigger(el, 'input');
12902
+ }
12903
+ });
12904
+ }
12905
+
12906
+ var directive = {
12907
+ inserted: function inserted (el, binding, vnode, oldVnode) {
12908
+ if (vnode.tag === 'select') {
12909
+ // #6903
12910
+ if (oldVnode.elm && !oldVnode.elm._vOptions) {
12911
+ mergeVNodeHook(vnode, 'postpatch', function () {
12912
+ directive.componentUpdated(el, binding, vnode);
12913
+ });
12914
+ } else {
12915
+ setSelected(el, binding, vnode.context);
12916
+ }
12917
+ el._vOptions = [].map.call(el.options, getValue);
12918
+ } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
12919
+ el._vModifiers = binding.modifiers;
12920
+ if (!binding.modifiers.lazy) {
12921
+ el.addEventListener('compositionstart', onCompositionStart);
12922
+ el.addEventListener('compositionend', onCompositionEnd);
12923
+ // Safari < 10.2 & UIWebView doesn't fire compositionend when
12924
+ // switching focus before confirming composition choice
12925
+ // this also fixes the issue where some browsers e.g. iOS Chrome
12926
+ // fires "change" instead of "input" on autocomplete.
12927
+ el.addEventListener('change', onCompositionEnd);
12928
+ /* istanbul ignore if */
12929
+ if (isIE9) {
12930
+ el.vmodel = true;
12931
+ }
12932
+ }
12933
+ }
12934
+ },
12935
+
12936
+ componentUpdated: function componentUpdated (el, binding, vnode) {
12937
+ if (vnode.tag === 'select') {
12938
+ setSelected(el, binding, vnode.context);
12939
+ // in case the options rendered by v-for have changed,
12940
+ // it's possible that the value is out-of-sync with the rendered options.
12941
+ // detect such cases and filter out values that no longer has a matching
12942
+ // option in the DOM.
12943
+ var prevOptions = el._vOptions;
12944
+ var curOptions = el._vOptions = [].map.call(el.options, getValue);
12945
+ if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
12946
+ // trigger change event if
12947
+ // no matching option found for at least one value
12948
+ var needReset = el.multiple
12949
+ ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
12950
+ : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
12951
+ if (needReset) {
12952
+ trigger(el, 'change');
12953
+ }
12954
+ }
12955
+ }
12956
+ }
12957
+ };
12958
+
12959
+ function setSelected (el, binding, vm) {
12960
+ actuallySetSelected(el, binding, vm);
12961
+ /* istanbul ignore if */
12962
+ if (isIE || isEdge) {
12963
+ setTimeout(function () {
12964
+ actuallySetSelected(el, binding, vm);
12965
+ }, 0);
12966
+ }
12967
+ }
12968
+
12969
+ function actuallySetSelected (el, binding, vm) {
12970
+ var value = binding.value;
12971
+ var isMultiple = el.multiple;
12972
+ if (isMultiple && !Array.isArray(value)) {
12973
+ process.env.NODE_ENV !== 'production' && warn(
12974
+ "<select multiple v-model=\"" + (binding.expression) + "\"> " +
12975
+ "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
12976
+ vm
12977
+ );
12978
+ return
12979
+ }
12980
+ var selected, option;
12981
+ for (var i = 0, l = el.options.length; i < l; i++) {
12982
+ option = el.options[i];
12983
+ if (isMultiple) {
12984
+ selected = looseIndexOf(value, getValue(option)) > -1;
12985
+ if (option.selected !== selected) {
12986
+ option.selected = selected;
12987
+ }
12988
+ } else {
12989
+ if (looseEqual(getValue(option), value)) {
12990
+ if (el.selectedIndex !== i) {
12991
+ el.selectedIndex = i;
12992
+ }
12993
+ return
12994
+ }
12995
+ }
12996
+ }
12997
+ if (!isMultiple) {
12998
+ el.selectedIndex = -1;
12999
+ }
13000
+ }
13001
+
13002
+ function hasNoMatchingOption (value, options) {
13003
+ return options.every(function (o) { return !looseEqual(o, value); })
13004
+ }
13005
+
13006
+ function getValue (option) {
13007
+ return '_value' in option
13008
+ ? option._value
13009
+ : option.value
13010
+ }
13011
+
13012
+ function onCompositionStart (e) {
13013
+ e.target.composing = true;
13014
+ }
13015
+
13016
+ function onCompositionEnd (e) {
13017
+ // prevent triggering an input event for no reason
13018
+ if (!e.target.composing) { return }
13019
+ e.target.composing = false;
13020
+ trigger(e.target, 'input');
13021
+ }
13022
+
13023
+ function trigger (el, type) {
13024
+ var e = document.createEvent('HTMLEvents');
13025
+ e.initEvent(type, true, true);
13026
+ el.dispatchEvent(e);
13027
+ }
13028
+
13029
+ /* */
13030
+
13031
+ // recursively search for possible transition defined inside the component root
13032
+ function locateNode (vnode) {
13033
+ return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
13034
+ ? locateNode(vnode.componentInstance._vnode)
13035
+ : vnode
13036
+ }
13037
+
13038
+ var show = {
13039
+ bind: function bind (el, ref, vnode) {
13040
+ var value = ref.value;
13041
+
13042
+ vnode = locateNode(vnode);
13043
+ var transition$$1 = vnode.data && vnode.data.transition;
13044
+ var originalDisplay = el.__vOriginalDisplay =
13045
+ el.style.display === 'none' ? '' : el.style.display;
13046
+ if (value && transition$$1) {
13047
+ vnode.data.show = true;
13048
+ enter(vnode, function () {
13049
+ el.style.display = originalDisplay;
13050
+ });
13051
+ } else {
13052
+ el.style.display = value ? originalDisplay : 'none';
13053
+ }
13054
+ },
13055
+
13056
+ update: function update (el, ref, vnode) {
13057
+ var value = ref.value;
13058
+ var oldValue = ref.oldValue;
13059
+
13060
+ /* istanbul ignore if */
13061
+ if (!value === !oldValue) { return }
13062
+ vnode = locateNode(vnode);
13063
+ var transition$$1 = vnode.data && vnode.data.transition;
13064
+ if (transition$$1) {
13065
+ vnode.data.show = true;
13066
+ if (value) {
13067
+ enter(vnode, function () {
13068
+ el.style.display = el.__vOriginalDisplay;
13069
+ });
13070
+ } else {
13071
+ leave(vnode, function () {
13072
+ el.style.display = 'none';
13073
+ });
13074
+ }
13075
+ } else {
13076
+ el.style.display = value ? el.__vOriginalDisplay : 'none';
13077
+ }
13078
+ },
13079
+
13080
+ unbind: function unbind (
13081
+ el,
13082
+ binding,
13083
+ vnode,
13084
+ oldVnode,
13085
+ isDestroy
13086
+ ) {
13087
+ if (!isDestroy) {
13088
+ el.style.display = el.__vOriginalDisplay;
13089
+ }
13090
+ }
13091
+ }
13092
+
13093
+ var platformDirectives = {
13094
+ model: directive,
13095
+ show: show
13096
+ }
13097
+
13098
+ /* */
13099
+
13100
+ // Provides transition support for a single element/component.
13101
+ // supports transition mode (out-in / in-out)
13102
+
13103
+ var transitionProps = {
13104
+ name: String,
13105
+ appear: Boolean,
13106
+ css: Boolean,
13107
+ mode: String,
13108
+ type: String,
13109
+ enterClass: String,
13110
+ leaveClass: String,
13111
+ enterToClass: String,
13112
+ leaveToClass: String,
13113
+ enterActiveClass: String,
13114
+ leaveActiveClass: String,
13115
+ appearClass: String,
13116
+ appearActiveClass: String,
13117
+ appearToClass: String,
13118
+ duration: [Number, String, Object]
13119
+ };
13120
+
13121
+ // in case the child is also an abstract component, e.g. <keep-alive>
13122
+ // we want to recursively retrieve the real component to be rendered
13123
+ function getRealChild (vnode) {
13124
+ var compOptions = vnode && vnode.componentOptions;
13125
+ if (compOptions && compOptions.Ctor.options.abstract) {
13126
+ return getRealChild(getFirstComponentChild(compOptions.children))
13127
+ } else {
13128
+ return vnode
13129
+ }
13130
+ }
13131
+
13132
+ function extractTransitionData (comp) {
13133
+ var data = {};
13134
+ var options = comp.$options;
13135
+ // props
13136
+ for (var key in options.propsData) {
13137
+ data[key] = comp[key];
13138
+ }
13139
+ // events.
13140
+ // extract listeners and pass them directly to the transition methods
13141
+ var listeners = options._parentListeners;
13142
+ for (var key$1 in listeners) {
13143
+ data[camelize(key$1)] = listeners[key$1];
13144
+ }
13145
+ return data
13146
+ }
13147
+
13148
+ function placeholder (h, rawChild) {
13149
+ if (/\d-keep-alive$/.test(rawChild.tag)) {
13150
+ return h('keep-alive', {
13151
+ props: rawChild.componentOptions.propsData
13152
+ })
13153
+ }
13154
+ }
13155
+
13156
+ function hasParentTransition (vnode) {
13157
+ while ((vnode = vnode.parent)) {
13158
+ if (vnode.data.transition) {
13159
+ return true
13160
+ }
13161
+ }
13162
+ }
13163
+
13164
+ function isSameChild (child, oldChild) {
13165
+ return oldChild.key === child.key && oldChild.tag === child.tag
13166
+ }
13167
+
13168
+ var Transition = {
13169
+ name: 'transition',
13170
+ props: transitionProps,
13171
+ abstract: true,
13172
+
13173
+ render: function render (h) {
13174
+ var this$1 = this;
13175
+
13176
+ var children = this.$slots.default;
13177
+ if (!children) {
13178
+ return
13179
+ }
13180
+
13181
+ // filter out text nodes (possible whitespaces)
13182
+ children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });
13183
+ /* istanbul ignore if */
13184
+ if (!children.length) {
13185
+ return
13186
+ }
13187
+
13188
+ // warn multiple elements
13189
+ if (process.env.NODE_ENV !== 'production' && children.length > 1) {
13190
+ warn(
13191
+ '<transition> can only be used on a single element. Use ' +
13192
+ '<transition-group> for lists.',
13193
+ this.$parent
13194
+ );
13195
+ }
13196
+
13197
+ var mode = this.mode;
13198
+
13199
+ // warn invalid mode
13200
+ if (process.env.NODE_ENV !== 'production' &&
13201
+ mode && mode !== 'in-out' && mode !== 'out-in'
13202
+ ) {
13203
+ warn(
13204
+ 'invalid <transition> mode: ' + mode,
13205
+ this.$parent
13206
+ );
13207
+ }
13208
+
13209
+ var rawChild = children[0];
13210
+
13211
+ // if this is a component root node and the component's
13212
+ // parent container node also has transition, skip.
13213
+ if (hasParentTransition(this.$vnode)) {
13214
+ return rawChild
13215
+ }
13216
+
13217
+ // apply transition data to child
13218
+ // use getRealChild() to ignore abstract components e.g. keep-alive
13219
+ var child = getRealChild(rawChild);
13220
+ /* istanbul ignore if */
13221
+ if (!child) {
13222
+ return rawChild
13223
+ }
13224
+
13225
+ if (this._leaving) {
13226
+ return placeholder(h, rawChild)
13227
+ }
13228
+
13229
+ // ensure a key that is unique to the vnode type and to this transition
13230
+ // component instance. This key will be used to remove pending leaving nodes
13231
+ // during entering.
13232
+ var id = "__transition-" + (this._uid) + "-";
13233
+ child.key = child.key == null
13234
+ ? child.isComment
13235
+ ? id + 'comment'
13236
+ : id + child.tag
13237
+ : isPrimitive(child.key)
13238
+ ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
13239
+ : child.key;
13240
+
13241
+ var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
13242
+ var oldRawChild = this._vnode;
13243
+ var oldChild = getRealChild(oldRawChild);
13244
+
13245
+ // mark v-show
13246
+ // so that the transition module can hand over the control to the directive
13247
+ if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {
13248
+ child.data.show = true;
13249
+ }
13250
+
13251
+ if (
13252
+ oldChild &&
13253
+ oldChild.data &&
13254
+ !isSameChild(child, oldChild) &&
13255
+ !isAsyncPlaceholder(oldChild) &&
13256
+ // #6687 component root is a comment node
13257
+ !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
13258
+ ) {
13259
+ // replace old child transition data with fresh one
13260
+ // important for dynamic transitions!
13261
+ var oldData = oldChild.data.transition = extend({}, data);
13262
+ // handle transition mode
13263
+ if (mode === 'out-in') {
13264
+ // return placeholder node and queue update when leave finishes
13265
+ this._leaving = true;
13266
+ mergeVNodeHook(oldData, 'afterLeave', function () {
13267
+ this$1._leaving = false;
13268
+ this$1.$forceUpdate();
13269
+ });
13270
+ return placeholder(h, rawChild)
13271
+ } else if (mode === 'in-out') {
13272
+ if (isAsyncPlaceholder(child)) {
13273
+ return oldRawChild
13274
+ }
13275
+ var delayedLeave;
13276
+ var performLeave = function () { delayedLeave(); };
13277
+ mergeVNodeHook(data, 'afterEnter', performLeave);
13278
+ mergeVNodeHook(data, 'enterCancelled', performLeave);
13279
+ mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
13280
+ }
13281
+ }
13282
+
13283
+ return rawChild
13284
+ }
13285
+ }
13286
+
13287
+ /* */
13288
+
13289
+ // Provides transition support for list items.
13290
+ // supports move transitions using the FLIP technique.
13291
+
13292
+ // Because the vdom's children update algorithm is "unstable" - i.e.
13293
+ // it doesn't guarantee the relative positioning of removed elements,
13294
+ // we force transition-group to update its children into two passes:
13295
+ // in the first pass, we remove all nodes that need to be removed,
13296
+ // triggering their leaving transition; in the second pass, we insert/move
13297
+ // into the final desired state. This way in the second pass removed
13298
+ // nodes will remain where they should be.
13299
+
13300
+ var props = extend({
13301
+ tag: String,
13302
+ moveClass: String
13303
+ }, transitionProps);
13304
+
13305
+ delete props.mode;
13306
+
13307
+ var TransitionGroup = {
13308
+ props: props,
13309
+
13310
+ render: function render (h) {
13311
+ var tag = this.tag || this.$vnode.data.tag || 'span';
13312
+ var map = Object.create(null);
13313
+ var prevChildren = this.prevChildren = this.children;
13314
+ var rawChildren = this.$slots.default || [];
13315
+ var children = this.children = [];
13316
+ var transitionData = extractTransitionData(this);
13317
+
13318
+ for (var i = 0; i < rawChildren.length; i++) {
13319
+ var c = rawChildren[i];
13320
+ if (c.tag) {
13321
+ if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
13322
+ children.push(c);
13323
+ map[c.key] = c
13324
+ ;(c.data || (c.data = {})).transition = transitionData;
13325
+ } else if (process.env.NODE_ENV !== 'production') {
13326
+ var opts = c.componentOptions;
13327
+ var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
13328
+ warn(("<transition-group> children must be keyed: <" + name + ">"));
13329
+ }
13330
+ }
13331
+ }
13332
+
13333
+ if (prevChildren) {
13334
+ var kept = [];
13335
+ var removed = [];
13336
+ for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
13337
+ var c$1 = prevChildren[i$1];
13338
+ c$1.data.transition = transitionData;
13339
+ c$1.data.pos = c$1.elm.getBoundingClientRect();
13340
+ if (map[c$1.key]) {
13341
+ kept.push(c$1);
13342
+ } else {
13343
+ removed.push(c$1);
13344
+ }
13345
+ }
13346
+ this.kept = h(tag, null, kept);
13347
+ this.removed = removed;
13348
+ }
13349
+
13350
+ return h(tag, null, children)
13351
+ },
13352
+
13353
+ beforeUpdate: function beforeUpdate () {
13354
+ // force removing pass
13355
+ this.__patch__(
13356
+ this._vnode,
13357
+ this.kept,
13358
+ false, // hydrating
13359
+ true // removeOnly (!important, avoids unnecessary moves)
13360
+ );
13361
+ this._vnode = this.kept;
13362
+ },
13363
+
13364
+ updated: function updated () {
13365
+ var children = this.prevChildren;
13366
+ var moveClass = this.moveClass || ((this.name || 'v') + '-move');
13367
+ if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
13368
+ return
13369
+ }
13370
+
13371
+ // we divide the work into three loops to avoid mixing DOM reads and writes
13372
+ // in each iteration - which helps prevent layout thrashing.
13373
+ children.forEach(callPendingCbs);
13374
+ children.forEach(recordPosition);
13375
+ children.forEach(applyTranslation);
13376
+
13377
+ // force reflow to put everything in position
13378
+ // assign to this to avoid being removed in tree-shaking
13379
+ // $flow-disable-line
13380
+ this._reflow = document.body.offsetHeight;
13381
+
13382
+ children.forEach(function (c) {
13383
+ if (c.data.moved) {
13384
+ var el = c.elm;
13385
+ var s = el.style;
13386
+ addTransitionClass(el, moveClass);
13387
+ s.transform = s.WebkitTransform = s.transitionDuration = '';
13388
+ el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
13389
+ if (!e || /transform$/.test(e.propertyName)) {
13390
+ el.removeEventListener(transitionEndEvent, cb);
13391
+ el._moveCb = null;
13392
+ removeTransitionClass(el, moveClass);
13393
+ }
13394
+ });
13395
+ }
13396
+ });
13397
+ },
13398
+
13399
+ methods: {
13400
+ hasMove: function hasMove (el, moveClass) {
13401
+ /* istanbul ignore if */
13402
+ if (!hasTransition) {
13403
+ return false
13404
+ }
13405
+ /* istanbul ignore if */
13406
+ if (this._hasMove) {
13407
+ return this._hasMove
13408
+ }
13409
+ // Detect whether an element with the move class applied has
13410
+ // CSS transitions. Since the element may be inside an entering
13411
+ // transition at this very moment, we make a clone of it and remove
13412
+ // all other transition classes applied to ensure only the move class
13413
+ // is applied.
13414
+ var clone = el.cloneNode();
13415
+ if (el._transitionClasses) {
13416
+ el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
13417
+ }
13418
+ addClass(clone, moveClass);
13419
+ clone.style.display = 'none';
13420
+ this.$el.appendChild(clone);
13421
+ var info = getTransitionInfo(clone);
13422
+ this.$el.removeChild(clone);
13423
+ return (this._hasMove = info.hasTransform)
13424
+ }
13425
+ }
13426
+ }
13427
+
13428
+ function callPendingCbs (c) {
13429
+ /* istanbul ignore if */
13430
+ if (c.elm._moveCb) {
13431
+ c.elm._moveCb();
13432
+ }
13433
+ /* istanbul ignore if */
13434
+ if (c.elm._enterCb) {
13435
+ c.elm._enterCb();
13436
+ }
13437
+ }
13438
+
13439
+ function recordPosition (c) {
13440
+ c.data.newPos = c.elm.getBoundingClientRect();
13441
+ }
13442
+
13443
+ function applyTranslation (c) {
13444
+ var oldPos = c.data.pos;
13445
+ var newPos = c.data.newPos;
13446
+ var dx = oldPos.left - newPos.left;
13447
+ var dy = oldPos.top - newPos.top;
13448
+ if (dx || dy) {
13449
+ c.data.moved = true;
13450
+ var s = c.elm.style;
13451
+ s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
13452
+ s.transitionDuration = '0s';
13453
+ }
13454
+ }
13455
+
13456
+ var platformComponents = {
13457
+ Transition: Transition,
13458
+ TransitionGroup: TransitionGroup
13459
+ }
13460
+
13461
+ /* */
13462
+
13463
+ // install platform specific utils
13464
+ Vue.config.mustUseProp = mustUseProp;
13465
+ Vue.config.isReservedTag = isReservedTag;
13466
+ Vue.config.isReservedAttr = isReservedAttr;
13467
+ Vue.config.getTagNamespace = getTagNamespace;
13468
+ Vue.config.isUnknownElement = isUnknownElement;
13469
+
13470
+ // install platform runtime directives & components
13471
+ extend(Vue.options.directives, platformDirectives);
13472
+ extend(Vue.options.components, platformComponents);
13473
+
13474
+ // install platform patch function
13475
+ Vue.prototype.__patch__ = inBrowser ? patch : noop;
13476
+
13477
+ // public mount method
13478
+ Vue.prototype.$mount = function (
13479
+ el,
13480
+ hydrating
13481
+ ) {
13482
+ el = el && inBrowser ? query(el) : undefined;
13483
+ return mountComponent(this, el, hydrating)
13484
+ };
13485
+
13486
+ // devtools global hook
13487
+ /* istanbul ignore next */
13488
+ if (inBrowser) {
13489
+ setTimeout(function () {
13490
+ if (config.devtools) {
13491
+ if (devtools) {
13492
+ devtools.emit('init', Vue);
13493
+ } else if (
13494
+ process.env.NODE_ENV !== 'production' &&
13495
+ process.env.NODE_ENV !== 'test' &&
13496
+ isChrome
13497
+ ) {
13498
+ console[console.info ? 'info' : 'log'](
13499
+ 'Download the Vue Devtools extension for a better development experience:\n' +
13500
+ 'https://github.com/vuejs/vue-devtools'
13501
+ );
13502
+ }
13503
+ }
13504
+ if (process.env.NODE_ENV !== 'production' &&
13505
+ process.env.NODE_ENV !== 'test' &&
13506
+ config.productionTip !== false &&
13507
+ typeof console !== 'undefined'
13508
+ ) {
13509
+ console[console.info ? 'info' : 'log'](
13510
+ "You are running Vue in development mode.\n" +
13511
+ "Make sure to turn on production mode when deploying for production.\n" +
13512
+ "See more tips at https://vuejs.org/guide/deployment.html"
13513
+ );
13514
+ }
13515
+ }, 0);
13516
+ }
13517
+
13518
+ /* */
13519
+
13520
+ var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;
13521
+ var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
13522
+
13523
+ var buildRegex = cached(function (delimiters) {
13524
+ var open = delimiters[0].replace(regexEscapeRE, '\\$&');
13525
+ var close = delimiters[1].replace(regexEscapeRE, '\\$&');
13526
+ return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
13527
+ });
13528
+
13529
+
13530
+
13531
+ function parseText (
13532
+ text,
13533
+ delimiters
13534
+ ) {
13535
+ var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
13536
+ if (!tagRE.test(text)) {
13537
+ return
13538
+ }
13539
+ var tokens = [];
13540
+ var rawTokens = [];
13541
+ var lastIndex = tagRE.lastIndex = 0;
13542
+ var match, index, tokenValue;
13543
+ while ((match = tagRE.exec(text))) {
13544
+ index = match.index;
13545
+ // push text token
13546
+ if (index > lastIndex) {
13547
+ rawTokens.push(tokenValue = text.slice(lastIndex, index));
13548
+ tokens.push(JSON.stringify(tokenValue));
13549
+ }
13550
+ // tag token
13551
+ var exp = parseFilters(match[1].trim());
13552
+ tokens.push(("_s(" + exp + ")"));
13553
+ rawTokens.push({ '@binding': exp });
13554
+ lastIndex = index + match[0].length;
13555
+ }
13556
+ if (lastIndex < text.length) {
13557
+ rawTokens.push(tokenValue = text.slice(lastIndex));
13558
+ tokens.push(JSON.stringify(tokenValue));
13559
+ }
13560
+ return {
13561
+ expression: tokens.join('+'),
13562
+ tokens: rawTokens
13563
+ }
13564
+ }
13565
+
13566
+ /* */
13567
+
13568
+ function transformNode (el, options) {
13569
+ var warn = options.warn || baseWarn;
13570
+ var staticClass = getAndRemoveAttr(el, 'class');
13571
+ if (process.env.NODE_ENV !== 'production' && staticClass) {
13572
+ var res = parseText(staticClass, options.delimiters);
13573
+ if (res) {
13574
+ warn(
13575
+ "class=\"" + staticClass + "\": " +
13576
+ 'Interpolation inside attributes has been removed. ' +
13577
+ 'Use v-bind or the colon shorthand instead. For example, ' +
13578
+ 'instead of <div class="{{ val }}">, use <div :class="val">.'
13579
+ );
13580
+ }
13581
+ }
13582
+ if (staticClass) {
13583
+ el.staticClass = JSON.stringify(staticClass);
13584
+ }
13585
+ var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
13586
+ if (classBinding) {
13587
+ el.classBinding = classBinding;
13588
+ }
13589
+ }
13590
+
13591
+ function genData (el) {
13592
+ var data = '';
13593
+ if (el.staticClass) {
13594
+ data += "staticClass:" + (el.staticClass) + ",";
13595
+ }
13596
+ if (el.classBinding) {
13597
+ data += "class:" + (el.classBinding) + ",";
13598
+ }
13599
+ return data
13600
+ }
13601
+
13602
+ var klass$1 = {
13603
+ staticKeys: ['staticClass'],
13604
+ transformNode: transformNode,
13605
+ genData: genData
13606
+ }
13607
+
13608
+ /* */
13609
+
13610
+ function transformNode$1 (el, options) {
13611
+ var warn = options.warn || baseWarn;
13612
+ var staticStyle = getAndRemoveAttr(el, 'style');
13613
+ if (staticStyle) {
13614
+ /* istanbul ignore if */
13615
+ if (process.env.NODE_ENV !== 'production') {
13616
+ var res = parseText(staticStyle, options.delimiters);
13617
+ if (res) {
13618
+ warn(
13619
+ "style=\"" + staticStyle + "\": " +
13620
+ 'Interpolation inside attributes has been removed. ' +
13621
+ 'Use v-bind or the colon shorthand instead. For example, ' +
13622
+ 'instead of <div style="{{ val }}">, use <div :style="val">.'
13623
+ );
13624
+ }
13625
+ }
13626
+ el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
13627
+ }
13628
+
13629
+ var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
13630
+ if (styleBinding) {
13631
+ el.styleBinding = styleBinding;
13632
+ }
13633
+ }
13634
+
13635
+ function genData$1 (el) {
13636
+ var data = '';
13637
+ if (el.staticStyle) {
13638
+ data += "staticStyle:" + (el.staticStyle) + ",";
13639
+ }
13640
+ if (el.styleBinding) {
13641
+ data += "style:(" + (el.styleBinding) + "),";
13642
+ }
13643
+ return data
13644
+ }
13645
+
13646
+ var style$1 = {
13647
+ staticKeys: ['staticStyle'],
13648
+ transformNode: transformNode$1,
13649
+ genData: genData$1
13650
+ }
13651
+
13652
+ /* */
13653
+
13654
+ var decoder;
13655
+
13656
+ var he = {
13657
+ decode: function decode (html) {
13658
+ decoder = decoder || document.createElement('div');
13659
+ decoder.innerHTML = html;
13660
+ return decoder.textContent
13661
+ }
13662
+ }
13663
+
13664
+ /* */
13665
+
13666
+ var isUnaryTag = makeMap(
13667
+ 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
13668
+ 'link,meta,param,source,track,wbr'
13669
+ );
13670
+
13671
+ // Elements that you can, intentionally, leave open
13672
+ // (and which close themselves)
13673
+ var canBeLeftOpenTag = makeMap(
13674
+ 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'
13675
+ );
13676
+
13677
+ // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
13678
+ // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
13679
+ var isNonPhrasingTag = makeMap(
13680
+ 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
13681
+ 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
13682
+ 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
13683
+ 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
13684
+ 'title,tr,track'
13685
+ );
13686
+
13687
+ /**
13688
+ * Not type-checking this file because it's mostly vendor code.
13689
+ */
13690
+
13691
+ /*!
13692
+ * HTML Parser By John Resig (ejohn.org)
13693
+ * Modified by Juriy "kangax" Zaytsev
13694
+ * Original code by Erik Arvidsson, Mozilla Public License
13695
+ * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
13696
+ */
13697
+
13698
+ // Regular Expressions for parsing tags and attributes
13699
+ var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
13700
+ // could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName
13701
+ // but for Vue templates we can enforce a simple charset
13702
+ var ncname = '[a-zA-Z_][\\w\\-\\.]*';
13703
+ var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
13704
+ var startTagOpen = new RegExp(("^<" + qnameCapture));
13705
+ var startTagClose = /^\s*(\/?)>/;
13706
+ var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
13707
+ var doctype = /^<!DOCTYPE [^>]+>/i;
13708
+ // #7298: escape - to avoid being pased as HTML comment when inlined in page
13709
+ var comment = /^<!\--/;
13710
+ var conditionalComment = /^<!\[/;
13711
+
13712
+ var IS_REGEX_CAPTURING_BROKEN = false;
13713
+ 'x'.replace(/x(.)?/g, function (m, g) {
13714
+ IS_REGEX_CAPTURING_BROKEN = g === '';
13715
+ });
13716
+
13717
+ // Special Elements (can contain anything)
13718
+ var isPlainTextElement = makeMap('script,style,textarea', true);
13719
+ var reCache = {};
13720
+
13721
+ var decodingMap = {
13722
+ '&lt;': '<',
13723
+ '&gt;': '>',
13724
+ '&quot;': '"',
13725
+ '&amp;': '&',
13726
+ '&#10;': '\n',
13727
+ '&#9;': '\t'
13728
+ };
13729
+ var encodedAttr = /&(?:lt|gt|quot|amp);/g;
13730
+ var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;
13731
+
13732
+ // #5992
13733
+ var isIgnoreNewlineTag = makeMap('pre,textarea', true);
13734
+ var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };
13735
+
13736
+ function decodeAttr (value, shouldDecodeNewlines) {
13737
+ var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
13738
+ return value.replace(re, function (match) { return decodingMap[match]; })
13739
+ }
13740
+
13741
+ function parseHTML (html, options) {
13742
+ var stack = [];
13743
+ var expectHTML = options.expectHTML;
13744
+ var isUnaryTag$$1 = options.isUnaryTag || no;
13745
+ var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
13746
+ var index = 0;
13747
+ var last, lastTag;
13748
+ while (html) {
13749
+ last = html;
13750
+ // Make sure we're not in a plaintext content element like script/style
13751
+ if (!lastTag || !isPlainTextElement(lastTag)) {
13752
+ var textEnd = html.indexOf('<');
13753
+ if (textEnd === 0) {
13754
+ // Comment:
13755
+ if (comment.test(html)) {
13756
+ var commentEnd = html.indexOf('-->');
13757
+
13758
+ if (commentEnd >= 0) {
13759
+ if (options.shouldKeepComment) {
13760
+ options.comment(html.substring(4, commentEnd));
13761
+ }
13762
+ advance(commentEnd + 3);
13763
+ continue
13764
+ }
13765
+ }
13766
+
13767
+ // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
13768
+ if (conditionalComment.test(html)) {
13769
+ var conditionalEnd = html.indexOf(']>');
13770
+
13771
+ if (conditionalEnd >= 0) {
13772
+ advance(conditionalEnd + 2);
13773
+ continue
13774
+ }
13775
+ }
13776
+
13777
+ // Doctype:
13778
+ var doctypeMatch = html.match(doctype);
13779
+ if (doctypeMatch) {
13780
+ advance(doctypeMatch[0].length);
13781
+ continue
13782
+ }
13783
+
13784
+ // End tag:
13785
+ var endTagMatch = html.match(endTag);
13786
+ if (endTagMatch) {
13787
+ var curIndex = index;
13788
+ advance(endTagMatch[0].length);
13789
+ parseEndTag(endTagMatch[1], curIndex, index);
13790
+ continue
13791
+ }
13792
+
13793
+ // Start tag:
13794
+ var startTagMatch = parseStartTag();
13795
+ if (startTagMatch) {
13796
+ handleStartTag(startTagMatch);
13797
+ if (shouldIgnoreFirstNewline(lastTag, html)) {
13798
+ advance(1);
13799
+ }
13800
+ continue
13801
+ }
13802
+ }
13803
+
13804
+ var text = (void 0), rest = (void 0), next = (void 0);
13805
+ if (textEnd >= 0) {
13806
+ rest = html.slice(textEnd);
13807
+ while (
13808
+ !endTag.test(rest) &&
13809
+ !startTagOpen.test(rest) &&
13810
+ !comment.test(rest) &&
13811
+ !conditionalComment.test(rest)
13812
+ ) {
13813
+ // < in plain text, be forgiving and treat it as text
13814
+ next = rest.indexOf('<', 1);
13815
+ if (next < 0) { break }
13816
+ textEnd += next;
13817
+ rest = html.slice(textEnd);
13818
+ }
13819
+ text = html.substring(0, textEnd);
13820
+ advance(textEnd);
13821
+ }
13822
+
13823
+ if (textEnd < 0) {
13824
+ text = html;
13825
+ html = '';
13826
+ }
13827
+
13828
+ if (options.chars && text) {
13829
+ options.chars(text);
13830
+ }
13831
+ } else {
13832
+ var endTagLength = 0;
13833
+ var stackedTag = lastTag.toLowerCase();
13834
+ var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
13835
+ var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
13836
+ endTagLength = endTag.length;
13837
+ if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
13838
+ text = text
13839
+ .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
13840
+ .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
13841
+ }
13842
+ if (shouldIgnoreFirstNewline(stackedTag, text)) {
13843
+ text = text.slice(1);
13844
+ }
13845
+ if (options.chars) {
13846
+ options.chars(text);
13847
+ }
13848
+ return ''
13849
+ });
13850
+ index += html.length - rest$1.length;
13851
+ html = rest$1;
13852
+ parseEndTag(stackedTag, index - endTagLength, index);
13853
+ }
13854
+
13855
+ if (html === last) {
13856
+ options.chars && options.chars(html);
13857
+ if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {
13858
+ options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));
13859
+ }
13860
+ break
13861
+ }
13862
+ }
13863
+
13864
+ // Clean up any remaining tags
13865
+ parseEndTag();
13866
+
13867
+ function advance (n) {
13868
+ index += n;
13869
+ html = html.substring(n);
13870
+ }
13871
+
13872
+ function parseStartTag () {
13873
+ var start = html.match(startTagOpen);
13874
+ if (start) {
13875
+ var match = {
13876
+ tagName: start[1],
13877
+ attrs: [],
13878
+ start: index
13879
+ };
13880
+ advance(start[0].length);
13881
+ var end, attr;
13882
+ while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {
13883
+ advance(attr[0].length);
13884
+ match.attrs.push(attr);
13885
+ }
13886
+ if (end) {
13887
+ match.unarySlash = end[1];
13888
+ advance(end[0].length);
13889
+ match.end = index;
13890
+ return match
13891
+ }
13892
+ }
13893
+ }
13894
+
13895
+ function handleStartTag (match) {
13896
+ var tagName = match.tagName;
13897
+ var unarySlash = match.unarySlash;
13898
+
13899
+ if (expectHTML) {
13900
+ if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
13901
+ parseEndTag(lastTag);
13902
+ }
13903
+ if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
13904
+ parseEndTag(tagName);
13905
+ }
13906
+ }
13907
+
13908
+ var unary = isUnaryTag$$1(tagName) || !!unarySlash;
13909
+
13910
+ var l = match.attrs.length;
13911
+ var attrs = new Array(l);
13912
+ for (var i = 0; i < l; i++) {
13913
+ var args = match.attrs[i];
13914
+ // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778
13915
+ if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('""') === -1) {
13916
+ if (args[3] === '') { delete args[3]; }
13917
+ if (args[4] === '') { delete args[4]; }
13918
+ if (args[5] === '') { delete args[5]; }
13919
+ }
13920
+ var value = args[3] || args[4] || args[5] || '';
13921
+ var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
13922
+ ? options.shouldDecodeNewlinesForHref
13923
+ : options.shouldDecodeNewlines;
13924
+ attrs[i] = {
13925
+ name: args[1],
13926
+ value: decodeAttr(value, shouldDecodeNewlines)
13927
+ };
13928
+ }
13929
+
13930
+ if (!unary) {
13931
+ stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });
13932
+ lastTag = tagName;
13933
+ }
13934
+
13935
+ if (options.start) {
13936
+ options.start(tagName, attrs, unary, match.start, match.end);
13937
+ }
13938
+ }
13939
+
13940
+ function parseEndTag (tagName, start, end) {
13941
+ var pos, lowerCasedTagName;
13942
+ if (start == null) { start = index; }
13943
+ if (end == null) { end = index; }
13944
+
13945
+ if (tagName) {
13946
+ lowerCasedTagName = tagName.toLowerCase();
13947
+ }
13948
+
13949
+ // Find the closest opened tag of the same type
13950
+ if (tagName) {
13951
+ for (pos = stack.length - 1; pos >= 0; pos--) {
13952
+ if (stack[pos].lowerCasedTag === lowerCasedTagName) {
13953
+ break
13954
+ }
13955
+ }
13956
+ } else {
13957
+ // If no tag name is provided, clean shop
13958
+ pos = 0;
13959
+ }
13960
+
13961
+ if (pos >= 0) {
13962
+ // Close all the open elements, up the stack
13963
+ for (var i = stack.length - 1; i >= pos; i--) {
13964
+ if (process.env.NODE_ENV !== 'production' &&
13965
+ (i > pos || !tagName) &&
13966
+ options.warn
13967
+ ) {
13968
+ options.warn(
13969
+ ("tag <" + (stack[i].tag) + "> has no matching end tag.")
13970
+ );
13971
+ }
13972
+ if (options.end) {
13973
+ options.end(stack[i].tag, start, end);
13974
+ }
13975
+ }
13976
+
13977
+ // Remove the open elements from the stack
13978
+ stack.length = pos;
13979
+ lastTag = pos && stack[pos - 1].tag;
13980
+ } else if (lowerCasedTagName === 'br') {
13981
+ if (options.start) {
13982
+ options.start(tagName, [], true, start, end);
13983
+ }
13984
+ } else if (lowerCasedTagName === 'p') {
13985
+ if (options.start) {
13986
+ options.start(tagName, [], false, start, end);
13987
+ }
13988
+ if (options.end) {
13989
+ options.end(tagName, start, end);
13990
+ }
13991
+ }
13992
+ }
13993
+ }
13994
+
13995
+ /* */
13996
+
13997
+ var onRE = /^@|^v-on:/;
13998
+ var dirRE = /^v-|^@|^:/;
13999
+ var forAliasRE = /([^]*?)\s+(?:in|of)\s+([^]*)/;
14000
+ var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
14001
+ var stripParensRE = /^\(|\)$/g;
14002
+
14003
+ var argRE = /:(.*)$/;
14004
+ var bindRE = /^:|^v-bind:/;
14005
+ var modifierRE = /\.[^.]+/g;
14006
+
14007
+ var decodeHTMLCached = cached(he.decode);
14008
+
14009
+ // configurable state
14010
+ var warn$2;
14011
+ var delimiters;
14012
+ var transforms;
14013
+ var preTransforms;
14014
+ var postTransforms;
14015
+ var platformIsPreTag;
14016
+ var platformMustUseProp;
14017
+ var platformGetTagNamespace;
14018
+
14019
+
14020
+
14021
+ function createASTElement (
14022
+ tag,
14023
+ attrs,
14024
+ parent
14025
+ ) {
14026
+ return {
14027
+ type: 1,
14028
+ tag: tag,
14029
+ attrsList: attrs,
14030
+ attrsMap: makeAttrsMap(attrs),
14031
+ parent: parent,
14032
+ children: []
14033
+ }
14034
+ }
14035
+
14036
+ /**
14037
+ * Convert HTML string to AST.
14038
+ */
14039
+ function parse (
14040
+ template,
14041
+ options
14042
+ ) {
14043
+ warn$2 = options.warn || baseWarn;
14044
+
14045
+ platformIsPreTag = options.isPreTag || no;
14046
+ platformMustUseProp = options.mustUseProp || no;
14047
+ platformGetTagNamespace = options.getTagNamespace || no;
14048
+
14049
+ transforms = pluckModuleFunction(options.modules, 'transformNode');
14050
+ preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
14051
+ postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
14052
+
14053
+ delimiters = options.delimiters;
14054
+
14055
+ var stack = [];
14056
+ var preserveWhitespace = options.preserveWhitespace !== false;
14057
+ var root;
14058
+ var currentParent;
14059
+ var inVPre = false;
14060
+ var inPre = false;
14061
+ var warned = false;
14062
+
14063
+ function warnOnce (msg) {
14064
+ if (!warned) {
14065
+ warned = true;
14066
+ warn$2(msg);
14067
+ }
14068
+ }
14069
+
14070
+ function closeElement (element) {
14071
+ // check pre state
14072
+ if (element.pre) {
14073
+ inVPre = false;
14074
+ }
14075
+ if (platformIsPreTag(element.tag)) {
14076
+ inPre = false;
14077
+ }
14078
+ // apply post-transforms
14079
+ for (var i = 0; i < postTransforms.length; i++) {
14080
+ postTransforms[i](element, options);
14081
+ }
14082
+ }
14083
+
14084
+ parseHTML(template, {
14085
+ warn: warn$2,
14086
+ expectHTML: options.expectHTML,
14087
+ isUnaryTag: options.isUnaryTag,
14088
+ canBeLeftOpenTag: options.canBeLeftOpenTag,
14089
+ shouldDecodeNewlines: options.shouldDecodeNewlines,
14090
+ shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
14091
+ shouldKeepComment: options.comments,
14092
+ start: function start (tag, attrs, unary) {
14093
+ // check namespace.
14094
+ // inherit parent ns if there is one
14095
+ var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
14096
+
14097
+ // handle IE svg bug
14098
+ /* istanbul ignore if */
14099
+ if (isIE && ns === 'svg') {
14100
+ attrs = guardIESVGBug(attrs);
14101
+ }
14102
+
14103
+ var element = createASTElement(tag, attrs, currentParent);
14104
+ if (ns) {
14105
+ element.ns = ns;
14106
+ }
14107
+
14108
+ if (isForbiddenTag(element) && !isServerRendering()) {
14109
+ element.forbidden = true;
14110
+ process.env.NODE_ENV !== 'production' && warn$2(
14111
+ 'Templates should only be responsible for mapping the state to the ' +
14112
+ 'UI. Avoid placing tags with side-effects in your templates, such as ' +
14113
+ "<" + tag + ">" + ', as they will not be parsed.'
14114
+ );
14115
+ }
14116
+
14117
+ // apply pre-transforms
14118
+ for (var i = 0; i < preTransforms.length; i++) {
14119
+ element = preTransforms[i](element, options) || element;
14120
+ }
14121
+
14122
+ if (!inVPre) {
14123
+ processPre(element);
14124
+ if (element.pre) {
14125
+ inVPre = true;
14126
+ }
14127
+ }
14128
+ if (platformIsPreTag(element.tag)) {
14129
+ inPre = true;
14130
+ }
14131
+ if (inVPre) {
14132
+ processRawAttrs(element);
14133
+ } else if (!element.processed) {
14134
+ // structural directives
14135
+ processFor(element);
14136
+ processIf(element);
14137
+ processOnce(element);
14138
+ // element-scope stuff
14139
+ processElement(element, options);
14140
+ }
14141
+
14142
+ function checkRootConstraints (el) {
14143
+ if (process.env.NODE_ENV !== 'production') {
14144
+ if (el.tag === 'slot' || el.tag === 'template') {
14145
+ warnOnce(
14146
+ "Cannot use <" + (el.tag) + "> as component root element because it may " +
14147
+ 'contain multiple nodes.'
14148
+ );
14149
+ }
14150
+ if (el.attrsMap.hasOwnProperty('v-for')) {
14151
+ warnOnce(
14152
+ 'Cannot use v-for on stateful component root element because ' +
14153
+ 'it renders multiple elements.'
14154
+ );
14155
+ }
14156
+ }
14157
+ }
14158
+
14159
+ // tree management
14160
+ if (!root) {
14161
+ root = element;
14162
+ checkRootConstraints(root);
14163
+ } else if (!stack.length) {
14164
+ // allow root elements with v-if, v-else-if and v-else
14165
+ if (root.if && (element.elseif || element.else)) {
14166
+ checkRootConstraints(element);
14167
+ addIfCondition(root, {
14168
+ exp: element.elseif,
14169
+ block: element
14170
+ });
14171
+ } else if (process.env.NODE_ENV !== 'production') {
14172
+ warnOnce(
14173
+ "Component template should contain exactly one root element. " +
14174
+ "If you are using v-if on multiple elements, " +
14175
+ "use v-else-if to chain them instead."
14176
+ );
14177
+ }
14178
+ }
14179
+ if (currentParent && !element.forbidden) {
14180
+ if (element.elseif || element.else) {
14181
+ processIfConditions(element, currentParent);
14182
+ } else if (element.slotScope) { // scoped slot
14183
+ currentParent.plain = false;
14184
+ var name = element.slotTarget || '"default"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
14185
+ } else {
14186
+ currentParent.children.push(element);
14187
+ element.parent = currentParent;
14188
+ }
14189
+ }
14190
+ if (!unary) {
14191
+ currentParent = element;
14192
+ stack.push(element);
14193
+ } else {
14194
+ closeElement(element);
14195
+ }
14196
+ },
14197
+
14198
+ end: function end () {
14199
+ // remove trailing whitespace
14200
+ var element = stack[stack.length - 1];
14201
+ var lastNode = element.children[element.children.length - 1];
14202
+ if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {
14203
+ element.children.pop();
14204
+ }
14205
+ // pop stack
14206
+ stack.length -= 1;
14207
+ currentParent = stack[stack.length - 1];
14208
+ closeElement(element);
14209
+ },
14210
+
14211
+ chars: function chars (text) {
14212
+ if (!currentParent) {
14213
+ if (process.env.NODE_ENV !== 'production') {
14214
+ if (text === template) {
14215
+ warnOnce(
14216
+ 'Component template requires a root element, rather than just text.'
14217
+ );
14218
+ } else if ((text = text.trim())) {
14219
+ warnOnce(
14220
+ ("text \"" + text + "\" outside root element will be ignored.")
14221
+ );
14222
+ }
14223
+ }
14224
+ return
14225
+ }
14226
+ // IE textarea placeholder bug
14227
+ /* istanbul ignore if */
14228
+ if (isIE &&
14229
+ currentParent.tag === 'textarea' &&
14230
+ currentParent.attrsMap.placeholder === text
14231
+ ) {
14232
+ return
14233
+ }
14234
+ var children = currentParent.children;
14235
+ text = inPre || text.trim()
14236
+ ? isTextTag(currentParent) ? text : decodeHTMLCached(text)
14237
+ // only preserve whitespace if its not right after a starting tag
14238
+ : preserveWhitespace && children.length ? ' ' : '';
14239
+ if (text) {
14240
+ var res;
14241
+ if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
14242
+ children.push({
14243
+ type: 2,
14244
+ expression: res.expression,
14245
+ tokens: res.tokens,
14246
+ text: text
14247
+ });
14248
+ } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
14249
+ children.push({
14250
+ type: 3,
14251
+ text: text
14252
+ });
14253
+ }
14254
+ }
14255
+ },
14256
+ comment: function comment (text) {
14257
+ currentParent.children.push({
14258
+ type: 3,
14259
+ text: text,
14260
+ isComment: true
14261
+ });
14262
+ }
14263
+ });
14264
+ return root
14265
+ }
14266
+
14267
+ function processPre (el) {
14268
+ if (getAndRemoveAttr(el, 'v-pre') != null) {
14269
+ el.pre = true;
14270
+ }
14271
+ }
14272
+
14273
+ function processRawAttrs (el) {
14274
+ var l = el.attrsList.length;
14275
+ if (l) {
14276
+ var attrs = el.attrs = new Array(l);
14277
+ for (var i = 0; i < l; i++) {
14278
+ attrs[i] = {
14279
+ name: el.attrsList[i].name,
14280
+ value: JSON.stringify(el.attrsList[i].value)
14281
+ };
14282
+ }
14283
+ } else if (!el.pre) {
14284
+ // non root node in pre blocks with no attributes
14285
+ el.plain = true;
14286
+ }
14287
+ }
14288
+
14289
+ function processElement (element, options) {
14290
+ processKey(element);
14291
+
14292
+ // determine whether this is a plain element after
14293
+ // removing structural attributes
14294
+ element.plain = !element.key && !element.attrsList.length;
14295
+
14296
+ processRef(element);
14297
+ processSlot(element);
14298
+ processComponent(element);
14299
+ for (var i = 0; i < transforms.length; i++) {
14300
+ element = transforms[i](element, options) || element;
14301
+ }
14302
+ processAttrs(element);
14303
+ }
14304
+
14305
+ function processKey (el) {
14306
+ var exp = getBindingAttr(el, 'key');
14307
+ if (exp) {
14308
+ if (process.env.NODE_ENV !== 'production' && el.tag === 'template') {
14309
+ warn$2("<template> cannot be keyed. Place the key on real elements instead.");
14310
+ }
14311
+ el.key = exp;
14312
+ }
14313
+ }
14314
+
14315
+ function processRef (el) {
14316
+ var ref = getBindingAttr(el, 'ref');
14317
+ if (ref) {
14318
+ el.ref = ref;
14319
+ el.refInFor = checkInFor(el);
14320
+ }
14321
+ }
14322
+
14323
+ function processFor (el) {
14324
+ var exp;
14325
+ if ((exp = getAndRemoveAttr(el, 'v-for'))) {
14326
+ var res = parseFor(exp);
14327
+ if (res) {
14328
+ extend(el, res);
14329
+ } else if (process.env.NODE_ENV !== 'production') {
14330
+ warn$2(
14331
+ ("Invalid v-for expression: " + exp)
14332
+ );
14333
+ }
14334
+ }
14335
+ }
14336
+
14337
+
14338
+
14339
+ function parseFor (exp) {
14340
+ var inMatch = exp.match(forAliasRE);
14341
+ if (!inMatch) { return }
14342
+ var res = {};
14343
+ res.for = inMatch[2].trim();
14344
+ var alias = inMatch[1].trim().replace(stripParensRE, '');
14345
+ var iteratorMatch = alias.match(forIteratorRE);
14346
+ if (iteratorMatch) {
14347
+ res.alias = alias.replace(forIteratorRE, '');
14348
+ res.iterator1 = iteratorMatch[1].trim();
14349
+ if (iteratorMatch[2]) {
14350
+ res.iterator2 = iteratorMatch[2].trim();
14351
+ }
14352
+ } else {
14353
+ res.alias = alias;
14354
+ }
14355
+ return res
14356
+ }
14357
+
14358
+ function processIf (el) {
14359
+ var exp = getAndRemoveAttr(el, 'v-if');
14360
+ if (exp) {
14361
+ el.if = exp;
14362
+ addIfCondition(el, {
14363
+ exp: exp,
14364
+ block: el
14365
+ });
14366
+ } else {
14367
+ if (getAndRemoveAttr(el, 'v-else') != null) {
14368
+ el.else = true;
14369
+ }
14370
+ var elseif = getAndRemoveAttr(el, 'v-else-if');
14371
+ if (elseif) {
14372
+ el.elseif = elseif;
14373
+ }
14374
+ }
14375
+ }
14376
+
14377
+ function processIfConditions (el, parent) {
14378
+ var prev = findPrevElement(parent.children);
14379
+ if (prev && prev.if) {
14380
+ addIfCondition(prev, {
14381
+ exp: el.elseif,
14382
+ block: el
14383
+ });
14384
+ } else if (process.env.NODE_ENV !== 'production') {
14385
+ warn$2(
14386
+ "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
14387
+ "used on element <" + (el.tag) + "> without corresponding v-if."
14388
+ );
14389
+ }
14390
+ }
14391
+
14392
+ function findPrevElement (children) {
14393
+ var i = children.length;
14394
+ while (i--) {
14395
+ if (children[i].type === 1) {
14396
+ return children[i]
14397
+ } else {
14398
+ if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {
14399
+ warn$2(
14400
+ "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
14401
+ "will be ignored."
14402
+ );
14403
+ }
14404
+ children.pop();
14405
+ }
14406
+ }
14407
+ }
14408
+
14409
+ function addIfCondition (el, condition) {
14410
+ if (!el.ifConditions) {
14411
+ el.ifConditions = [];
14412
+ }
14413
+ el.ifConditions.push(condition);
14414
+ }
14415
+
14416
+ function processOnce (el) {
14417
+ var once$$1 = getAndRemoveAttr(el, 'v-once');
14418
+ if (once$$1 != null) {
14419
+ el.once = true;
14420
+ }
14421
+ }
14422
+
14423
+ function processSlot (el) {
14424
+ if (el.tag === 'slot') {
14425
+ el.slotName = getBindingAttr(el, 'name');
14426
+ if (process.env.NODE_ENV !== 'production' && el.key) {
14427
+ warn$2(
14428
+ "`key` does not work on <slot> because slots are abstract outlets " +
14429
+ "and can possibly expand into multiple elements. " +
14430
+ "Use the key on a wrapping element instead."
14431
+ );
14432
+ }
14433
+ } else {
14434
+ var slotScope;
14435
+ if (el.tag === 'template') {
14436
+ slotScope = getAndRemoveAttr(el, 'scope');
14437
+ /* istanbul ignore if */
14438
+ if (process.env.NODE_ENV !== 'production' && slotScope) {
14439
+ warn$2(
14440
+ "the \"scope\" attribute for scoped slots have been deprecated and " +
14441
+ "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
14442
+ "can also be used on plain elements in addition to <template> to " +
14443
+ "denote scoped slots.",
14444
+ true
14445
+ );
14446
+ }
14447
+ el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
14448
+ } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
14449
+ /* istanbul ignore if */
14450
+ if (process.env.NODE_ENV !== 'production' && el.attrsMap['v-for']) {
14451
+ warn$2(
14452
+ "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " +
14453
+ "(v-for takes higher priority). Use a wrapper <template> for the " +
14454
+ "scoped slot to make it clearer.",
14455
+ true
14456
+ );
14457
+ }
14458
+ el.slotScope = slotScope;
14459
+ }
14460
+ var slotTarget = getBindingAttr(el, 'slot');
14461
+ if (slotTarget) {
14462
+ el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
14463
+ // preserve slot as an attribute for native shadow DOM compat
14464
+ // only for non-scoped slots.
14465
+ if (el.tag !== 'template' && !el.slotScope) {
14466
+ addAttr(el, 'slot', slotTarget);
14467
+ }
14468
+ }
14469
+ }
14470
+ }
14471
+
14472
+ function processComponent (el) {
14473
+ var binding;
14474
+ if ((binding = getBindingAttr(el, 'is'))) {
14475
+ el.component = binding;
14476
+ }
14477
+ if (getAndRemoveAttr(el, 'inline-template') != null) {
14478
+ el.inlineTemplate = true;
14479
+ }
14480
+ }
14481
+
14482
+ function processAttrs (el) {
14483
+ var list = el.attrsList;
14484
+ var i, l, name, rawName, value, modifiers, isProp;
14485
+ for (i = 0, l = list.length; i < l; i++) {
14486
+ name = rawName = list[i].name;
14487
+ value = list[i].value;
14488
+ if (dirRE.test(name)) {
14489
+ // mark element as dynamic
14490
+ el.hasBindings = true;
14491
+ // modifiers
14492
+ modifiers = parseModifiers(name);
14493
+ if (modifiers) {
14494
+ name = name.replace(modifierRE, '');
14495
+ }
14496
+ if (bindRE.test(name)) { // v-bind
14497
+ name = name.replace(bindRE, '');
14498
+ value = parseFilters(value);
14499
+ isProp = false;
14500
+ if (modifiers) {
14501
+ if (modifiers.prop) {
14502
+ isProp = true;
14503
+ name = camelize(name);
14504
+ if (name === 'innerHtml') { name = 'innerHTML'; }
14505
+ }
14506
+ if (modifiers.camel) {
14507
+ name = camelize(name);
14508
+ }
14509
+ if (modifiers.sync) {
14510
+ addHandler(
14511
+ el,
14512
+ ("update:" + (camelize(name))),
14513
+ genAssignmentCode(value, "$event")
14514
+ );
14515
+ }
14516
+ }
14517
+ if (isProp || (
14518
+ !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
14519
+ )) {
14520
+ addProp(el, name, value);
14521
+ } else {
14522
+ addAttr(el, name, value);
14523
+ }
14524
+ } else if (onRE.test(name)) { // v-on
14525
+ name = name.replace(onRE, '');
14526
+ addHandler(el, name, value, modifiers, false, warn$2);
14527
+ } else { // normal directives
14528
+ name = name.replace(dirRE, '');
14529
+ // parse arg
14530
+ var argMatch = name.match(argRE);
14531
+ var arg = argMatch && argMatch[1];
14532
+ if (arg) {
14533
+ name = name.slice(0, -(arg.length + 1));
14534
+ }
14535
+ addDirective(el, name, rawName, value, arg, modifiers);
14536
+ if (process.env.NODE_ENV !== 'production' && name === 'model') {
14537
+ checkForAliasModel(el, value);
14538
+ }
14539
+ }
14540
+ } else {
14541
+ // literal attribute
14542
+ if (process.env.NODE_ENV !== 'production') {
14543
+ var res = parseText(value, delimiters);
14544
+ if (res) {
14545
+ warn$2(
14546
+ name + "=\"" + value + "\": " +
14547
+ 'Interpolation inside attributes has been removed. ' +
14548
+ 'Use v-bind or the colon shorthand instead. For example, ' +
14549
+ 'instead of <div id="{{ val }}">, use <div :id="val">.'
14550
+ );
14551
+ }
14552
+ }
14553
+ addAttr(el, name, JSON.stringify(value));
14554
+ // #6887 firefox doesn't update muted state if set via attribute
14555
+ // even immediately after element creation
14556
+ if (!el.component &&
14557
+ name === 'muted' &&
14558
+ platformMustUseProp(el.tag, el.attrsMap.type, name)) {
14559
+ addProp(el, name, 'true');
14560
+ }
14561
+ }
14562
+ }
14563
+ }
14564
+
14565
+ function checkInFor (el) {
14566
+ var parent = el;
14567
+ while (parent) {
14568
+ if (parent.for !== undefined) {
14569
+ return true
14570
+ }
14571
+ parent = parent.parent;
14572
+ }
14573
+ return false
14574
+ }
14575
+
14576
+ function parseModifiers (name) {
14577
+ var match = name.match(modifierRE);
14578
+ if (match) {
14579
+ var ret = {};
14580
+ match.forEach(function (m) { ret[m.slice(1)] = true; });
14581
+ return ret
14582
+ }
14583
+ }
14584
+
14585
+ function makeAttrsMap (attrs) {
14586
+ var map = {};
14587
+ for (var i = 0, l = attrs.length; i < l; i++) {
14588
+ if (
14589
+ process.env.NODE_ENV !== 'production' &&
14590
+ map[attrs[i].name] && !isIE && !isEdge
14591
+ ) {
14592
+ warn$2('duplicate attribute: ' + attrs[i].name);
14593
+ }
14594
+ map[attrs[i].name] = attrs[i].value;
14595
+ }
14596
+ return map
14597
+ }
14598
+
14599
+ // for script (e.g. type="x/template") or style, do not decode content
14600
+ function isTextTag (el) {
14601
+ return el.tag === 'script' || el.tag === 'style'
14602
+ }
14603
+
14604
+ function isForbiddenTag (el) {
14605
+ return (
14606
+ el.tag === 'style' ||
14607
+ (el.tag === 'script' && (
14608
+ !el.attrsMap.type ||
14609
+ el.attrsMap.type === 'text/javascript'
14610
+ ))
14611
+ )
14612
+ }
14613
+
14614
+ var ieNSBug = /^xmlns:NS\d+/;
14615
+ var ieNSPrefix = /^NS\d+:/;
14616
+
14617
+ /* istanbul ignore next */
14618
+ function guardIESVGBug (attrs) {
14619
+ var res = [];
14620
+ for (var i = 0; i < attrs.length; i++) {
14621
+ var attr = attrs[i];
14622
+ if (!ieNSBug.test(attr.name)) {
14623
+ attr.name = attr.name.replace(ieNSPrefix, '');
14624
+ res.push(attr);
14625
+ }
14626
+ }
14627
+ return res
14628
+ }
14629
+
14630
+ function checkForAliasModel (el, value) {
14631
+ var _el = el;
14632
+ while (_el) {
14633
+ if (_el.for && _el.alias === value) {
14634
+ warn$2(
14635
+ "<" + (el.tag) + " v-model=\"" + value + "\">: " +
14636
+ "You are binding v-model directly to a v-for iteration alias. " +
14637
+ "This will not be able to modify the v-for source array because " +
14638
+ "writing to the alias is like modifying a function local variable. " +
14639
+ "Consider using an array of objects and use v-model on an object property instead."
14640
+ );
14641
+ }
14642
+ _el = _el.parent;
14643
+ }
14644
+ }
14645
+
14646
+ /* */
14647
+
14648
+ /**
14649
+ * Expand input[v-model] with dyanmic type bindings into v-if-else chains
14650
+ * Turn this:
14651
+ * <input v-model="data[type]" :type="type">
14652
+ * into this:
14653
+ * <input v-if="type === 'checkbox'" type="checkbox" v-model="data[type]">
14654
+ * <input v-else-if="type === 'radio'" type="radio" v-model="data[type]">
14655
+ * <input v-else :type="type" v-model="data[type]">
14656
+ */
14657
+
14658
+ function preTransformNode (el, options) {
14659
+ if (el.tag === 'input') {
14660
+ var map = el.attrsMap;
14661
+ if (!map['v-model']) {
14662
+ return
14663
+ }
14664
+
14665
+ var typeBinding;
14666
+ if (map[':type'] || map['v-bind:type']) {
14667
+ typeBinding = getBindingAttr(el, 'type');
14668
+ }
14669
+ if (!map.type && !typeBinding && map['v-bind']) {
14670
+ typeBinding = "(" + (map['v-bind']) + ").type";
14671
+ }
14672
+
14673
+ if (typeBinding) {
14674
+ var ifCondition = getAndRemoveAttr(el, 'v-if', true);
14675
+ var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";
14676
+ var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
14677
+ var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
14678
+ // 1. checkbox
14679
+ var branch0 = cloneASTElement(el);
14680
+ // process for on the main node
14681
+ processFor(branch0);
14682
+ addRawAttr(branch0, 'type', 'checkbox');
14683
+ processElement(branch0, options);
14684
+ branch0.processed = true; // prevent it from double-processed
14685
+ branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
14686
+ addIfCondition(branch0, {
14687
+ exp: branch0.if,
14688
+ block: branch0
14689
+ });
14690
+ // 2. add radio else-if condition
14691
+ var branch1 = cloneASTElement(el);
14692
+ getAndRemoveAttr(branch1, 'v-for', true);
14693
+ addRawAttr(branch1, 'type', 'radio');
14694
+ processElement(branch1, options);
14695
+ addIfCondition(branch0, {
14696
+ exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
14697
+ block: branch1
14698
+ });
14699
+ // 3. other
14700
+ var branch2 = cloneASTElement(el);
14701
+ getAndRemoveAttr(branch2, 'v-for', true);
14702
+ addRawAttr(branch2, ':type', typeBinding);
14703
+ processElement(branch2, options);
14704
+ addIfCondition(branch0, {
14705
+ exp: ifCondition,
14706
+ block: branch2
14707
+ });
14708
+
14709
+ if (hasElse) {
14710
+ branch0.else = true;
14711
+ } else if (elseIfCondition) {
14712
+ branch0.elseif = elseIfCondition;
14713
+ }
14714
+
14715
+ return branch0
14716
+ }
14717
+ }
14718
+ }
14719
+
14720
+ function cloneASTElement (el) {
14721
+ return createASTElement(el.tag, el.attrsList.slice(), el.parent)
14722
+ }
14723
+
14724
+ var model$2 = {
14725
+ preTransformNode: preTransformNode
14726
+ }
14727
+
14728
+ var modules$1 = [
14729
+ klass$1,
14730
+ style$1,
14731
+ model$2
14732
+ ]
14733
+
14734
+ /* */
14735
+
14736
+ function text (el, dir) {
14737
+ if (dir.value) {
14738
+ addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
14739
+ }
14740
+ }
14741
+
14742
+ /* */
14743
+
14744
+ function html (el, dir) {
14745
+ if (dir.value) {
14746
+ addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));
14747
+ }
14748
+ }
14749
+
14750
+ var directives$1 = {
14751
+ model: model,
14752
+ text: text,
14753
+ html: html
14754
+ }
14755
+
14756
+ /* */
14757
+
14758
+ var baseOptions = {
14759
+ expectHTML: true,
14760
+ modules: modules$1,
14761
+ directives: directives$1,
14762
+ isPreTag: isPreTag,
14763
+ isUnaryTag: isUnaryTag,
14764
+ mustUseProp: mustUseProp,
14765
+ canBeLeftOpenTag: canBeLeftOpenTag,
14766
+ isReservedTag: isReservedTag,
14767
+ getTagNamespace: getTagNamespace,
14768
+ staticKeys: genStaticKeys(modules$1)
14769
+ };
14770
+
14771
+ /* */
14772
+
14773
+ var isStaticKey;
14774
+ var isPlatformReservedTag;
14775
+
14776
+ var genStaticKeysCached = cached(genStaticKeys$1);
14777
+
14778
+ /**
14779
+ * Goal of the optimizer: walk the generated template AST tree
14780
+ * and detect sub-trees that are purely static, i.e. parts of
14781
+ * the DOM that never needs to change.
14782
+ *
14783
+ * Once we detect these sub-trees, we can:
14784
+ *
14785
+ * 1. Hoist them into constants, so that we no longer need to
14786
+ * create fresh nodes for them on each re-render;
14787
+ * 2. Completely skip them in the patching process.
14788
+ */
14789
+ function optimize (root, options) {
14790
+ if (!root) { return }
14791
+ isStaticKey = genStaticKeysCached(options.staticKeys || '');
14792
+ isPlatformReservedTag = options.isReservedTag || no;
14793
+ // first pass: mark all non-static nodes.
14794
+ markStatic$1(root);
14795
+ // second pass: mark static roots.
14796
+ markStaticRoots(root, false);
14797
+ }
14798
+
14799
+ function genStaticKeys$1 (keys) {
14800
+ return makeMap(
14801
+ 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +
14802
+ (keys ? ',' + keys : '')
14803
+ )
14804
+ }
14805
+
14806
+ function markStatic$1 (node) {
14807
+ node.static = isStatic(node);
14808
+ if (node.type === 1) {
14809
+ // do not make component slot content static. this avoids
14810
+ // 1. components not able to mutate slot nodes
14811
+ // 2. static slot content fails for hot-reloading
14812
+ if (
14813
+ !isPlatformReservedTag(node.tag) &&
14814
+ node.tag !== 'slot' &&
14815
+ node.attrsMap['inline-template'] == null
14816
+ ) {
14817
+ return
14818
+ }
14819
+ for (var i = 0, l = node.children.length; i < l; i++) {
14820
+ var child = node.children[i];
14821
+ markStatic$1(child);
14822
+ if (!child.static) {
14823
+ node.static = false;
14824
+ }
14825
+ }
14826
+ if (node.ifConditions) {
14827
+ for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
14828
+ var block = node.ifConditions[i$1].block;
14829
+ markStatic$1(block);
14830
+ if (!block.static) {
14831
+ node.static = false;
14832
+ }
14833
+ }
14834
+ }
14835
+ }
14836
+ }
14837
+
14838
+ function markStaticRoots (node, isInFor) {
14839
+ if (node.type === 1) {
14840
+ if (node.static || node.once) {
14841
+ node.staticInFor = isInFor;
14842
+ }
14843
+ // For a node to qualify as a static root, it should have children that
14844
+ // are not just static text. Otherwise the cost of hoisting out will
14845
+ // outweigh the benefits and it's better off to just always render it fresh.
14846
+ if (node.static && node.children.length && !(
14847
+ node.children.length === 1 &&
14848
+ node.children[0].type === 3
14849
+ )) {
14850
+ node.staticRoot = true;
14851
+ return
14852
+ } else {
14853
+ node.staticRoot = false;
14854
+ }
14855
+ if (node.children) {
14856
+ for (var i = 0, l = node.children.length; i < l; i++) {
14857
+ markStaticRoots(node.children[i], isInFor || !!node.for);
14858
+ }
14859
+ }
14860
+ if (node.ifConditions) {
14861
+ for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
14862
+ markStaticRoots(node.ifConditions[i$1].block, isInFor);
14863
+ }
14864
+ }
14865
+ }
14866
+ }
14867
+
14868
+ function isStatic (node) {
14869
+ if (node.type === 2) { // expression
14870
+ return false
14871
+ }
14872
+ if (node.type === 3) { // text
14873
+ return true
14874
+ }
14875
+ return !!(node.pre || (
14876
+ !node.hasBindings && // no dynamic bindings
14877
+ !node.if && !node.for && // not v-if or v-for or v-else
14878
+ !isBuiltInTag(node.tag) && // not a built-in
14879
+ isPlatformReservedTag(node.tag) && // not a component
14880
+ !isDirectChildOfTemplateFor(node) &&
14881
+ Object.keys(node).every(isStaticKey)
14882
+ ))
14883
+ }
14884
+
14885
+ function isDirectChildOfTemplateFor (node) {
14886
+ while (node.parent) {
14887
+ node = node.parent;
14888
+ if (node.tag !== 'template') {
14889
+ return false
14890
+ }
14891
+ if (node.for) {
14892
+ return true
14893
+ }
14894
+ }
14895
+ return false
14896
+ }
14897
+
14898
+ /* */
14899
+
14900
+ var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
14901
+ var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
14902
+
14903
+ // KeyboardEvent.keyCode aliases
14904
+ var keyCodes = {
14905
+ esc: 27,
14906
+ tab: 9,
14907
+ enter: 13,
14908
+ space: 32,
14909
+ up: 38,
14910
+ left: 37,
14911
+ right: 39,
14912
+ down: 40,
14913
+ 'delete': [8, 46]
14914
+ };
14915
+
14916
+ // KeyboardEvent.key aliases
14917
+ var keyNames = {
14918
+ esc: 'Escape',
14919
+ tab: 'Tab',
14920
+ enter: 'Enter',
14921
+ space: ' ',
14922
+ // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
14923
+ up: ['Up', 'ArrowUp'],
14924
+ left: ['Left', 'ArrowLeft'],
14925
+ right: ['Right', 'ArrowRight'],
14926
+ down: ['Down', 'ArrowDown'],
14927
+ 'delete': ['Backspace', 'Delete']
14928
+ };
14929
+
14930
+ // #4868: modifiers that prevent the execution of the listener
14931
+ // need to explicitly return null so that we can determine whether to remove
14932
+ // the listener for .once
14933
+ var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };
14934
+
14935
+ var modifierCode = {
14936
+ stop: '$event.stopPropagation();',
14937
+ prevent: '$event.preventDefault();',
14938
+ self: genGuard("$event.target !== $event.currentTarget"),
14939
+ ctrl: genGuard("!$event.ctrlKey"),
14940
+ shift: genGuard("!$event.shiftKey"),
14941
+ alt: genGuard("!$event.altKey"),
14942
+ meta: genGuard("!$event.metaKey"),
14943
+ left: genGuard("'button' in $event && $event.button !== 0"),
14944
+ middle: genGuard("'button' in $event && $event.button !== 1"),
14945
+ right: genGuard("'button' in $event && $event.button !== 2")
14946
+ };
14947
+
14948
+ function genHandlers (
14949
+ events,
14950
+ isNative,
14951
+ warn
14952
+ ) {
14953
+ var res = isNative ? 'nativeOn:{' : 'on:{';
14954
+ for (var name in events) {
14955
+ res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";
14956
+ }
14957
+ return res.slice(0, -1) + '}'
14958
+ }
14959
+
14960
+ function genHandler (
14961
+ name,
14962
+ handler
14963
+ ) {
14964
+ if (!handler) {
14965
+ return 'function(){}'
14966
+ }
14967
+
14968
+ if (Array.isArray(handler)) {
14969
+ return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")
14970
+ }
14971
+
14972
+ var isMethodPath = simplePathRE.test(handler.value);
14973
+ var isFunctionExpression = fnExpRE.test(handler.value);
14974
+
14975
+ if (!handler.modifiers) {
14976
+ if (isMethodPath || isFunctionExpression) {
14977
+ return handler.value
14978
+ }
14979
+ /* istanbul ignore if */
14980
+ return ("function($event){" + (handler.value) + "}") // inline statement
14981
+ } else {
14982
+ var code = '';
14983
+ var genModifierCode = '';
14984
+ var keys = [];
14985
+ for (var key in handler.modifiers) {
14986
+ if (modifierCode[key]) {
14987
+ genModifierCode += modifierCode[key];
14988
+ // left/right
14989
+ if (keyCodes[key]) {
14990
+ keys.push(key);
14991
+ }
14992
+ } else if (key === 'exact') {
14993
+ var modifiers = (handler.modifiers);
14994
+ genModifierCode += genGuard(
14995
+ ['ctrl', 'shift', 'alt', 'meta']
14996
+ .filter(function (keyModifier) { return !modifiers[keyModifier]; })
14997
+ .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })
14998
+ .join('||')
14999
+ );
15000
+ } else {
15001
+ keys.push(key);
15002
+ }
15003
+ }
15004
+ if (keys.length) {
15005
+ code += genKeyFilter(keys);
15006
+ }
15007
+ // Make sure modifiers like prevent and stop get executed after key filtering
15008
+ if (genModifierCode) {
15009
+ code += genModifierCode;
15010
+ }
15011
+ var handlerCode = isMethodPath
15012
+ ? ("return " + (handler.value) + "($event)")
15013
+ : isFunctionExpression
15014
+ ? ("return (" + (handler.value) + ")($event)")
15015
+ : handler.value;
15016
+ /* istanbul ignore if */
15017
+ return ("function($event){" + code + handlerCode + "}")
15018
+ }
15019
+ }
15020
+
15021
+ function genKeyFilter (keys) {
15022
+ return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")
15023
+ }
15024
+
15025
+ function genFilterCode (key) {
15026
+ var keyVal = parseInt(key, 10);
15027
+ if (keyVal) {
15028
+ return ("$event.keyCode!==" + keyVal)
15029
+ }
15030
+ var keyCode = keyCodes[key];
15031
+ var keyName = keyNames[key];
15032
+ return (
15033
+ "_k($event.keyCode," +
15034
+ (JSON.stringify(key)) + "," +
15035
+ (JSON.stringify(keyCode)) + "," +
15036
+ "$event.key," +
15037
+ "" + (JSON.stringify(keyName)) +
15038
+ ")"
15039
+ )
15040
+ }
15041
+
15042
+ /* */
15043
+
15044
+ function on (el, dir) {
15045
+ if (process.env.NODE_ENV !== 'production' && dir.modifiers) {
15046
+ warn("v-on without argument does not support modifiers.");
15047
+ }
15048
+ el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
15049
+ }
15050
+
15051
+ /* */
15052
+
15053
+ function bind$1 (el, dir) {
15054
+ el.wrapData = function (code) {
15055
+ return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
15056
+ };
15057
+ }
15058
+
15059
+ /* */
15060
+
15061
+ var baseDirectives = {
15062
+ on: on,
15063
+ bind: bind$1,
15064
+ cloak: noop
15065
+ }
15066
+
15067
+ /* */
15068
+
15069
+ var CodegenState = function CodegenState (options) {
15070
+ this.options = options;
15071
+ this.warn = options.warn || baseWarn;
15072
+ this.transforms = pluckModuleFunction(options.modules, 'transformCode');
15073
+ this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
15074
+ this.directives = extend(extend({}, baseDirectives), options.directives);
15075
+ var isReservedTag = options.isReservedTag || no;
15076
+ this.maybeComponent = function (el) { return !isReservedTag(el.tag); };
15077
+ this.onceId = 0;
15078
+ this.staticRenderFns = [];
15079
+ };
15080
+
15081
+
15082
+
15083
+ function generate (
15084
+ ast,
15085
+ options
15086
+ ) {
15087
+ var state = new CodegenState(options);
15088
+ var code = ast ? genElement(ast, state) : '_c("div")';
15089
+ return {
15090
+ render: ("with(this){return " + code + "}"),
15091
+ staticRenderFns: state.staticRenderFns
15092
+ }
15093
+ }
15094
+
15095
+ function genElement (el, state) {
15096
+ if (el.staticRoot && !el.staticProcessed) {
15097
+ return genStatic(el, state)
15098
+ } else if (el.once && !el.onceProcessed) {
15099
+ return genOnce(el, state)
15100
+ } else if (el.for && !el.forProcessed) {
15101
+ return genFor(el, state)
15102
+ } else if (el.if && !el.ifProcessed) {
15103
+ return genIf(el, state)
15104
+ } else if (el.tag === 'template' && !el.slotTarget) {
15105
+ return genChildren(el, state) || 'void 0'
15106
+ } else if (el.tag === 'slot') {
15107
+ return genSlot(el, state)
15108
+ } else {
15109
+ // component or element
15110
+ var code;
15111
+ if (el.component) {
15112
+ code = genComponent(el.component, el, state);
15113
+ } else {
15114
+ var data = el.plain ? undefined : genData$2(el, state);
15115
+
15116
+ var children = el.inlineTemplate ? null : genChildren(el, state, true);
15117
+ code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
15118
+ }
15119
+ // module transforms
15120
+ for (var i = 0; i < state.transforms.length; i++) {
15121
+ code = state.transforms[i](el, code);
15122
+ }
15123
+ return code
15124
+ }
15125
+ }
15126
+
15127
+ // hoist static sub-trees out
15128
+ function genStatic (el, state) {
15129
+ el.staticProcessed = true;
15130
+ state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
15131
+ return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
15132
+ }
15133
+
15134
+ // v-once
15135
+ function genOnce (el, state) {
15136
+ el.onceProcessed = true;
15137
+ if (el.if && !el.ifProcessed) {
15138
+ return genIf(el, state)
15139
+ } else if (el.staticInFor) {
15140
+ var key = '';
15141
+ var parent = el.parent;
15142
+ while (parent) {
15143
+ if (parent.for) {
15144
+ key = parent.key;
15145
+ break
15146
+ }
15147
+ parent = parent.parent;
15148
+ }
15149
+ if (!key) {
15150
+ process.env.NODE_ENV !== 'production' && state.warn(
15151
+ "v-once can only be used inside v-for that is keyed. "
15152
+ );
15153
+ return genElement(el, state)
15154
+ }
15155
+ return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")
15156
+ } else {
15157
+ return genStatic(el, state)
15158
+ }
15159
+ }
15160
+
15161
+ function genIf (
15162
+ el,
15163
+ state,
15164
+ altGen,
15165
+ altEmpty
15166
+ ) {
15167
+ el.ifProcessed = true; // avoid recursion
15168
+ return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
15169
+ }
15170
+
15171
+ function genIfConditions (
15172
+ conditions,
15173
+ state,
15174
+ altGen,
15175
+ altEmpty
15176
+ ) {
15177
+ if (!conditions.length) {
15178
+ return altEmpty || '_e()'
15179
+ }
15180
+
15181
+ var condition = conditions.shift();
15182
+ if (condition.exp) {
15183
+ return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
15184
+ } else {
15185
+ return ("" + (genTernaryExp(condition.block)))
15186
+ }
15187
+
15188
+ // v-if with v-once should generate code like (a)?_m(0):_m(1)
15189
+ function genTernaryExp (el) {
15190
+ return altGen
15191
+ ? altGen(el, state)
15192
+ : el.once
15193
+ ? genOnce(el, state)
15194
+ : genElement(el, state)
15195
+ }
15196
+ }
15197
+
15198
+ function genFor (
15199
+ el,
15200
+ state,
15201
+ altGen,
15202
+ altHelper
15203
+ ) {
15204
+ var exp = el.for;
15205
+ var alias = el.alias;
15206
+ var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
15207
+ var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
15208
+
15209
+ if (process.env.NODE_ENV !== 'production' &&
15210
+ state.maybeComponent(el) &&
15211
+ el.tag !== 'slot' &&
15212
+ el.tag !== 'template' &&
15213
+ !el.key
15214
+ ) {
15215
+ state.warn(
15216
+ "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
15217
+ "v-for should have explicit keys. " +
15218
+ "See https://vuejs.org/guide/list.html#key for more info.",
15219
+ true /* tip */
15220
+ );
15221
+ }
15222
+
15223
+ el.forProcessed = true; // avoid recursion
15224
+ return (altHelper || '_l') + "((" + exp + ")," +
15225
+ "function(" + alias + iterator1 + iterator2 + "){" +
15226
+ "return " + ((altGen || genElement)(el, state)) +
15227
+ '})'
15228
+ }
15229
+
15230
+ function genData$2 (el, state) {
15231
+ var data = '{';
15232
+
15233
+ // directives first.
15234
+ // directives may mutate the el's other properties before they are generated.
15235
+ var dirs = genDirectives(el, state);
15236
+ if (dirs) { data += dirs + ','; }
15237
+
15238
+ // key
15239
+ if (el.key) {
15240
+ data += "key:" + (el.key) + ",";
15241
+ }
15242
+ // ref
15243
+ if (el.ref) {
15244
+ data += "ref:" + (el.ref) + ",";
15245
+ }
15246
+ if (el.refInFor) {
15247
+ data += "refInFor:true,";
15248
+ }
15249
+ // pre
15250
+ if (el.pre) {
15251
+ data += "pre:true,";
15252
+ }
15253
+ // record original tag name for components using "is" attribute
15254
+ if (el.component) {
15255
+ data += "tag:\"" + (el.tag) + "\",";
15256
+ }
15257
+ // module data generation functions
15258
+ for (var i = 0; i < state.dataGenFns.length; i++) {
15259
+ data += state.dataGenFns[i](el);
15260
+ }
15261
+ // attributes
15262
+ if (el.attrs) {
15263
+ data += "attrs:{" + (genProps(el.attrs)) + "},";
15264
+ }
15265
+ // DOM props
15266
+ if (el.props) {
15267
+ data += "domProps:{" + (genProps(el.props)) + "},";
15268
+ }
15269
+ // event handlers
15270
+ if (el.events) {
15271
+ data += (genHandlers(el.events, false, state.warn)) + ",";
15272
+ }
15273
+ if (el.nativeEvents) {
15274
+ data += (genHandlers(el.nativeEvents, true, state.warn)) + ",";
15275
+ }
15276
+ // slot target
15277
+ // only for non-scoped slots
15278
+ if (el.slotTarget && !el.slotScope) {
15279
+ data += "slot:" + (el.slotTarget) + ",";
15280
+ }
15281
+ // scoped slots
15282
+ if (el.scopedSlots) {
15283
+ data += (genScopedSlots(el.scopedSlots, state)) + ",";
15284
+ }
15285
+ // component v-model
15286
+ if (el.model) {
15287
+ data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";
15288
+ }
15289
+ // inline-template
15290
+ if (el.inlineTemplate) {
15291
+ var inlineTemplate = genInlineTemplate(el, state);
15292
+ if (inlineTemplate) {
15293
+ data += inlineTemplate + ",";
15294
+ }
15295
+ }
15296
+ data = data.replace(/,$/, '') + '}';
15297
+ // v-bind data wrap
15298
+ if (el.wrapData) {
15299
+ data = el.wrapData(data);
15300
+ }
15301
+ // v-on data wrap
15302
+ if (el.wrapListeners) {
15303
+ data = el.wrapListeners(data);
15304
+ }
15305
+ return data
15306
+ }
15307
+
15308
+ function genDirectives (el, state) {
15309
+ var dirs = el.directives;
15310
+ if (!dirs) { return }
15311
+ var res = 'directives:[';
15312
+ var hasRuntime = false;
15313
+ var i, l, dir, needRuntime;
15314
+ for (i = 0, l = dirs.length; i < l; i++) {
15315
+ dir = dirs[i];
15316
+ needRuntime = true;
15317
+ var gen = state.directives[dir.name];
15318
+ if (gen) {
15319
+ // compile-time directive that manipulates AST.
15320
+ // returns true if it also needs a runtime counterpart.
15321
+ needRuntime = !!gen(el, dir, state.warn);
15322
+ }
15323
+ if (needRuntime) {
15324
+ hasRuntime = true;
15325
+ res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
15326
+ }
15327
+ }
15328
+ if (hasRuntime) {
15329
+ return res.slice(0, -1) + ']'
15330
+ }
15331
+ }
15332
+
15333
+ function genInlineTemplate (el, state) {
15334
+ var ast = el.children[0];
15335
+ if (process.env.NODE_ENV !== 'production' && (
15336
+ el.children.length !== 1 || ast.type !== 1
15337
+ )) {
15338
+ state.warn('Inline-template components must have exactly one child element.');
15339
+ }
15340
+ if (ast.type === 1) {
15341
+ var inlineRenderFns = generate(ast, state.options);
15342
+ return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
15343
+ }
15344
+ }
15345
+
15346
+ function genScopedSlots (
15347
+ slots,
15348
+ state
15349
+ ) {
15350
+ return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {
15351
+ return genScopedSlot(key, slots[key], state)
15352
+ }).join(',')) + "])")
15353
+ }
15354
+
15355
+ function genScopedSlot (
15356
+ key,
15357
+ el,
15358
+ state
15359
+ ) {
15360
+ if (el.for && !el.forProcessed) {
15361
+ return genForScopedSlot(key, el, state)
15362
+ }
15363
+ var fn = "function(" + (String(el.slotScope)) + "){" +
15364
+ "return " + (el.tag === 'template'
15365
+ ? el.if
15366
+ ? ((el.if) + "?" + (genChildren(el, state) || 'undefined') + ":undefined")
15367
+ : genChildren(el, state) || 'undefined'
15368
+ : genElement(el, state)) + "}";
15369
+ return ("{key:" + key + ",fn:" + fn + "}")
15370
+ }
15371
+
15372
+ function genForScopedSlot (
15373
+ key,
15374
+ el,
15375
+ state
15376
+ ) {
15377
+ var exp = el.for;
15378
+ var alias = el.alias;
15379
+ var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
15380
+ var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
15381
+ el.forProcessed = true; // avoid recursion
15382
+ return "_l((" + exp + ")," +
15383
+ "function(" + alias + iterator1 + iterator2 + "){" +
15384
+ "return " + (genScopedSlot(key, el, state)) +
15385
+ '})'
15386
+ }
15387
+
15388
+ function genChildren (
15389
+ el,
15390
+ state,
15391
+ checkSkip,
15392
+ altGenElement,
15393
+ altGenNode
15394
+ ) {
15395
+ var children = el.children;
15396
+ if (children.length) {
15397
+ var el$1 = children[0];
15398
+ // optimize single v-for
15399
+ if (children.length === 1 &&
15400
+ el$1.for &&
15401
+ el$1.tag !== 'template' &&
15402
+ el$1.tag !== 'slot'
15403
+ ) {
15404
+ return (altGenElement || genElement)(el$1, state)
15405
+ }
15406
+ var normalizationType = checkSkip
15407
+ ? getNormalizationType(children, state.maybeComponent)
15408
+ : 0;
15409
+ var gen = altGenNode || genNode;
15410
+ return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType ? ("," + normalizationType) : ''))
15411
+ }
15412
+ }
15413
+
15414
+ // determine the normalization needed for the children array.
15415
+ // 0: no normalization needed
15416
+ // 1: simple normalization needed (possible 1-level deep nested array)
15417
+ // 2: full normalization needed
15418
+ function getNormalizationType (
15419
+ children,
15420
+ maybeComponent
15421
+ ) {
15422
+ var res = 0;
15423
+ for (var i = 0; i < children.length; i++) {
15424
+ var el = children[i];
15425
+ if (el.type !== 1) {
15426
+ continue
15427
+ }
15428
+ if (needsNormalization(el) ||
15429
+ (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
15430
+ res = 2;
15431
+ break
15432
+ }
15433
+ if (maybeComponent(el) ||
15434
+ (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
15435
+ res = 1;
15436
+ }
15437
+ }
15438
+ return res
15439
+ }
15440
+
15441
+ function needsNormalization (el) {
15442
+ return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
15443
+ }
15444
+
15445
+ function genNode (node, state) {
15446
+ if (node.type === 1) {
15447
+ return genElement(node, state)
15448
+ } if (node.type === 3 && node.isComment) {
15449
+ return genComment(node)
15450
+ } else {
15451
+ return genText(node)
15452
+ }
15453
+ }
15454
+
15455
+ function genText (text) {
15456
+ return ("_v(" + (text.type === 2
15457
+ ? text.expression // no need for () because already wrapped in _s()
15458
+ : transformSpecialNewlines(JSON.stringify(text.text))) + ")")
15459
+ }
15460
+
15461
+ function genComment (comment) {
15462
+ return ("_e(" + (JSON.stringify(comment.text)) + ")")
15463
+ }
15464
+
15465
+ function genSlot (el, state) {
15466
+ var slotName = el.slotName || '"default"';
15467
+ var children = genChildren(el, state);
15468
+ var res = "_t(" + slotName + (children ? ("," + children) : '');
15469
+ var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");
15470
+ var bind$$1 = el.attrsMap['v-bind'];
15471
+ if ((attrs || bind$$1) && !children) {
15472
+ res += ",null";
15473
+ }
15474
+ if (attrs) {
15475
+ res += "," + attrs;
15476
+ }
15477
+ if (bind$$1) {
15478
+ res += (attrs ? '' : ',null') + "," + bind$$1;
15479
+ }
15480
+ return res + ')'
15481
+ }
15482
+
15483
+ // componentName is el.component, take it as argument to shun flow's pessimistic refinement
15484
+ function genComponent (
15485
+ componentName,
15486
+ el,
15487
+ state
15488
+ ) {
15489
+ var children = el.inlineTemplate ? null : genChildren(el, state, true);
15490
+ return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
15491
+ }
15492
+
15493
+ function genProps (props) {
15494
+ var res = '';
15495
+ for (var i = 0; i < props.length; i++) {
15496
+ var prop = props[i];
15497
+ /* istanbul ignore if */
15498
+ {
15499
+ res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";
15500
+ }
15501
+ }
15502
+ return res.slice(0, -1)
15503
+ }
15504
+
15505
+ // #3895, #4268
15506
+ function transformSpecialNewlines (text) {
15507
+ return text
15508
+ .replace(/\u2028/g, '\\u2028')
15509
+ .replace(/\u2029/g, '\\u2029')
15510
+ }
15511
+
15512
+ /* */
15513
+
15514
+ // these keywords should not appear inside expressions, but operators like
15515
+ // typeof, instanceof and in are allowed
15516
+ var prohibitedKeywordRE = new RegExp('\\b' + (
15517
+ 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
15518
+ 'super,throw,while,yield,delete,export,import,return,switch,default,' +
15519
+ 'extends,finally,continue,debugger,function,arguments'
15520
+ ).split(',').join('\\b|\\b') + '\\b');
15521
+
15522
+ // these unary operators should not be used as property/method names
15523
+ var unaryOperatorsRE = new RegExp('\\b' + (
15524
+ 'delete,typeof,void'
15525
+ ).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');
15526
+
15527
+ // strip strings in expressions
15528
+ var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
15529
+
15530
+ // detect problematic expressions in a template
15531
+ function detectErrors (ast) {
15532
+ var errors = [];
15533
+ if (ast) {
15534
+ checkNode(ast, errors);
15535
+ }
15536
+ return errors
15537
+ }
15538
+
15539
+ function checkNode (node, errors) {
15540
+ if (node.type === 1) {
15541
+ for (var name in node.attrsMap) {
15542
+ if (dirRE.test(name)) {
15543
+ var value = node.attrsMap[name];
15544
+ if (value) {
15545
+ if (name === 'v-for') {
15546
+ checkFor(node, ("v-for=\"" + value + "\""), errors);
15547
+ } else if (onRE.test(name)) {
15548
+ checkEvent(value, (name + "=\"" + value + "\""), errors);
15549
+ } else {
15550
+ checkExpression(value, (name + "=\"" + value + "\""), errors);
15551
+ }
15552
+ }
15553
+ }
15554
+ }
15555
+ if (node.children) {
15556
+ for (var i = 0; i < node.children.length; i++) {
15557
+ checkNode(node.children[i], errors);
15558
+ }
15559
+ }
15560
+ } else if (node.type === 2) {
15561
+ checkExpression(node.expression, node.text, errors);
15562
+ }
15563
+ }
15564
+
15565
+ function checkEvent (exp, text, errors) {
15566
+ var stipped = exp.replace(stripStringRE, '');
15567
+ var keywordMatch = stipped.match(unaryOperatorsRE);
15568
+ if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {
15569
+ errors.push(
15570
+ "avoid using JavaScript unary operator as property name: " +
15571
+ "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())
15572
+ );
15573
+ }
15574
+ checkExpression(exp, text, errors);
15575
+ }
15576
+
15577
+ function checkFor (node, text, errors) {
15578
+ checkExpression(node.for || '', text, errors);
15579
+ checkIdentifier(node.alias, 'v-for alias', text, errors);
15580
+ checkIdentifier(node.iterator1, 'v-for iterator', text, errors);
15581
+ checkIdentifier(node.iterator2, 'v-for iterator', text, errors);
15582
+ }
15583
+
15584
+ function checkIdentifier (
15585
+ ident,
15586
+ type,
15587
+ text,
15588
+ errors
15589
+ ) {
15590
+ if (typeof ident === 'string') {
15591
+ try {
15592
+ new Function(("var " + ident + "=_"));
15593
+ } catch (e) {
15594
+ errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));
15595
+ }
15596
+ }
15597
+ }
15598
+
15599
+ function checkExpression (exp, text, errors) {
15600
+ try {
15601
+ new Function(("return " + exp));
15602
+ } catch (e) {
15603
+ var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
15604
+ if (keywordMatch) {
15605
+ errors.push(
15606
+ "avoid using JavaScript keyword as property name: " +
15607
+ "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim())
15608
+ );
15609
+ } else {
15610
+ errors.push(
15611
+ "invalid expression: " + (e.message) + " in\n\n" +
15612
+ " " + exp + "\n\n" +
15613
+ " Raw expression: " + (text.trim()) + "\n"
15614
+ );
15615
+ }
15616
+ }
15617
+ }
15618
+
15619
+ /* */
15620
+
15621
+ function createFunction (code, errors) {
15622
+ try {
15623
+ return new Function(code)
15624
+ } catch (err) {
15625
+ errors.push({ err: err, code: code });
15626
+ return noop
15627
+ }
15628
+ }
15629
+
15630
+ function createCompileToFunctionFn (compile) {
15631
+ var cache = Object.create(null);
15632
+
15633
+ return function compileToFunctions (
15634
+ template,
15635
+ options,
15636
+ vm
15637
+ ) {
15638
+ options = extend({}, options);
15639
+ var warn$$1 = options.warn || warn;
15640
+ delete options.warn;
15641
+
15642
+ /* istanbul ignore if */
15643
+ if (process.env.NODE_ENV !== 'production') {
15644
+ // detect possible CSP restriction
15645
+ try {
15646
+ new Function('return 1');
15647
+ } catch (e) {
15648
+ if (e.toString().match(/unsafe-eval|CSP/)) {
15649
+ warn$$1(
15650
+ 'It seems you are using the standalone build of Vue.js in an ' +
15651
+ 'environment with Content Security Policy that prohibits unsafe-eval. ' +
15652
+ 'The template compiler cannot work in this environment. Consider ' +
15653
+ 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
15654
+ 'templates into render functions.'
15655
+ );
15656
+ }
15657
+ }
15658
+ }
15659
+
15660
+ // check cache
15661
+ var key = options.delimiters
15662
+ ? String(options.delimiters) + template
15663
+ : template;
15664
+ if (cache[key]) {
15665
+ return cache[key]
15666
+ }
15667
+
15668
+ // compile
15669
+ var compiled = compile(template, options);
15670
+
15671
+ // check compilation errors/tips
15672
+ if (process.env.NODE_ENV !== 'production') {
15673
+ if (compiled.errors && compiled.errors.length) {
15674
+ warn$$1(
15675
+ "Error compiling template:\n\n" + template + "\n\n" +
15676
+ compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
15677
+ vm
15678
+ );
15679
+ }
15680
+ if (compiled.tips && compiled.tips.length) {
15681
+ compiled.tips.forEach(function (msg) { return tip(msg, vm); });
15682
+ }
15683
+ }
15684
+
15685
+ // turn code into functions
15686
+ var res = {};
15687
+ var fnGenErrors = [];
15688
+ res.render = createFunction(compiled.render, fnGenErrors);
15689
+ res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
15690
+ return createFunction(code, fnGenErrors)
15691
+ });
15692
+
15693
+ // check function generation errors.
15694
+ // this should only happen if there is a bug in the compiler itself.
15695
+ // mostly for codegen development use
15696
+ /* istanbul ignore if */
15697
+ if (process.env.NODE_ENV !== 'production') {
15698
+ if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
15699
+ warn$$1(
15700
+ "Failed to generate render function:\n\n" +
15701
+ fnGenErrors.map(function (ref) {
15702
+ var err = ref.err;
15703
+ var code = ref.code;
15704
+
15705
+ return ((err.toString()) + " in\n\n" + code + "\n");
15706
+ }).join('\n'),
15707
+ vm
15708
+ );
15709
+ }
15710
+ }
15711
+
15712
+ return (cache[key] = res)
15713
+ }
15714
+ }
15715
+
15716
+ /* */
15717
+
15718
+ function createCompilerCreator (baseCompile) {
15719
+ return function createCompiler (baseOptions) {
15720
+ function compile (
15721
+ template,
15722
+ options
15723
+ ) {
15724
+ var finalOptions = Object.create(baseOptions);
15725
+ var errors = [];
15726
+ var tips = [];
15727
+ finalOptions.warn = function (msg, tip) {
15728
+ (tip ? tips : errors).push(msg);
15729
+ };
15730
+
15731
+ if (options) {
15732
+ // merge custom modules
15733
+ if (options.modules) {
15734
+ finalOptions.modules =
15735
+ (baseOptions.modules || []).concat(options.modules);
15736
+ }
15737
+ // merge custom directives
15738
+ if (options.directives) {
15739
+ finalOptions.directives = extend(
15740
+ Object.create(baseOptions.directives || null),
15741
+ options.directives
15742
+ );
15743
+ }
15744
+ // copy other options
15745
+ for (var key in options) {
15746
+ if (key !== 'modules' && key !== 'directives') {
15747
+ finalOptions[key] = options[key];
15748
+ }
15749
+ }
15750
+ }
15751
+
15752
+ var compiled = baseCompile(template, finalOptions);
15753
+ if (process.env.NODE_ENV !== 'production') {
15754
+ errors.push.apply(errors, detectErrors(compiled.ast));
15755
+ }
15756
+ compiled.errors = errors;
15757
+ compiled.tips = tips;
15758
+ return compiled
15759
+ }
15760
+
15761
+ return {
15762
+ compile: compile,
15763
+ compileToFunctions: createCompileToFunctionFn(compile)
15764
+ }
15765
+ }
15766
+ }
15767
+
15768
+ /* */
15769
+
15770
+ // `createCompilerCreator` allows creating compilers that use alternative
15771
+ // parser/optimizer/codegen, e.g the SSR optimizing compiler.
15772
+ // Here we just export a default compiler using the default parts.
15773
+ var createCompiler = createCompilerCreator(function baseCompile (
15774
+ template,
15775
+ options
15776
+ ) {
15777
+ var ast = parse(template.trim(), options);
15778
+ if (options.optimize !== false) {
15779
+ optimize(ast, options);
15780
+ }
15781
+ var code = generate(ast, options);
15782
+ return {
15783
+ ast: ast,
15784
+ render: code.render,
15785
+ staticRenderFns: code.staticRenderFns
15786
+ }
15787
+ });
15788
+
15789
+ /* */
15790
+
15791
+ var ref$1 = createCompiler(baseOptions);
15792
+ var compileToFunctions = ref$1.compileToFunctions;
15793
+
15794
+ /* */
15795
+
15796
+ // check whether current browser encodes a char inside attribute values
15797
+ var div;
15798
+ function getShouldDecode (href) {
15799
+ div = div || document.createElement('div');
15800
+ div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
15801
+ return div.innerHTML.indexOf('&#10;') > 0
15802
+ }
15803
+
15804
+ // #3663: IE encodes newlines inside attribute values while other browsers don't
15805
+ var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
15806
+ // #6828: chrome encodes content in a[href]
15807
+ var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;
15808
+
15809
+ /* */
15810
+
15811
+ var idToTemplate = cached(function (id) {
15812
+ var el = query(id);
15813
+ return el && el.innerHTML
15814
+ });
15815
+
15816
+ var mount = Vue.prototype.$mount;
15817
+ Vue.prototype.$mount = function (
15818
+ el,
15819
+ hydrating
15820
+ ) {
15821
+ el = el && query(el);
15822
+
15823
+ /* istanbul ignore if */
15824
+ if (el === document.body || el === document.documentElement) {
15825
+ process.env.NODE_ENV !== 'production' && warn(
15826
+ "Do not mount Vue to <html> or <body> - mount to normal elements instead."
15827
+ );
15828
+ return this
15829
+ }
15830
+
15831
+ var options = this.$options;
15832
+ // resolve template/el and convert to render function
15833
+ if (!options.render) {
15834
+ var template = options.template;
15835
+ if (template) {
15836
+ if (typeof template === 'string') {
15837
+ if (template.charAt(0) === '#') {
15838
+ template = idToTemplate(template);
15839
+ /* istanbul ignore if */
15840
+ if (process.env.NODE_ENV !== 'production' && !template) {
15841
+ warn(
15842
+ ("Template element not found or is empty: " + (options.template)),
15843
+ this
15844
+ );
15845
+ }
15846
+ }
15847
+ } else if (template.nodeType) {
15848
+ template = template.innerHTML;
15849
+ } else {
15850
+ if (process.env.NODE_ENV !== 'production') {
15851
+ warn('invalid template option:' + template, this);
15852
+ }
15853
+ return this
15854
+ }
15855
+ } else if (el) {
15856
+ template = getOuterHTML(el);
15857
+ }
15858
+ if (template) {
15859
+ /* istanbul ignore if */
15860
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
15861
+ mark('compile');
15862
+ }
15863
+
15864
+ var ref = compileToFunctions(template, {
15865
+ shouldDecodeNewlines: shouldDecodeNewlines,
15866
+ shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
15867
+ delimiters: options.delimiters,
15868
+ comments: options.comments
15869
+ }, this);
15870
+ var render = ref.render;
15871
+ var staticRenderFns = ref.staticRenderFns;
15872
+ options.render = render;
15873
+ options.staticRenderFns = staticRenderFns;
15874
+
15875
+ /* istanbul ignore if */
15876
+ if (process.env.NODE_ENV !== 'production' && config.performance && mark) {
15877
+ mark('compile end');
15878
+ measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');
15879
+ }
15880
+ }
15881
+ }
15882
+ return mount.call(this, el, hydrating)
15883
+ };
15884
+
15885
+ /**
15886
+ * Get outerHTML of elements, taking care
15887
+ * of SVG elements in IE as well.
15888
+ */
15889
+ function getOuterHTML (el) {
15890
+ if (el.outerHTML) {
15891
+ return el.outerHTML
15892
+ } else {
15893
+ var container = document.createElement('div');
15894
+ container.appendChild(el.cloneNode(true));
15895
+ return container.innerHTML
15896
+ }
15897
+ }
15898
+
15899
+ Vue.compile = compileToFunctions;
15900
+
15901
+ /* harmony default export */ __webpack_exports__["default"] = (Vue);
15902
+
15903
+ /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(8), __webpack_require__(13), __webpack_require__(34).setImmediate))
15904
+
15905
+ /***/ }),
15906
+ /* 8 */
15907
+ /***/ (function(module, exports) {
15908
+
15909
+ // shim for using process in browser
15910
+ var process = module.exports = {};
15911
+
15912
+ // cached from whatever global is present so that test runners that stub it
15913
+ // don't break things. But we need to wrap it in a try catch in case it is
15914
+ // wrapped in strict mode code which doesn't define any globals. It's inside a
15915
+ // function because try/catches deoptimize in certain engines.
15916
+
15917
+ var cachedSetTimeout;
15918
+ var cachedClearTimeout;
15919
+
15920
+ function defaultSetTimout() {
15921
+ throw new Error('setTimeout has not been defined');
15922
+ }
15923
+ function defaultClearTimeout () {
15924
+ throw new Error('clearTimeout has not been defined');
15925
+ }
15926
+ (function () {
15927
+ try {
15928
+ if (typeof setTimeout === 'function') {
15929
+ cachedSetTimeout = setTimeout;
15930
+ } else {
15931
+ cachedSetTimeout = defaultSetTimout;
15932
+ }
15933
+ } catch (e) {
15934
+ cachedSetTimeout = defaultSetTimout;
15935
+ }
15936
+ try {
15937
+ if (typeof clearTimeout === 'function') {
15938
+ cachedClearTimeout = clearTimeout;
15939
+ } else {
15940
+ cachedClearTimeout = defaultClearTimeout;
15941
+ }
15942
+ } catch (e) {
15943
+ cachedClearTimeout = defaultClearTimeout;
15944
+ }
15945
+ } ())
15946
+ function runTimeout(fun) {
15947
+ if (cachedSetTimeout === setTimeout) {
15948
+ //normal enviroments in sane situations
15949
+ return setTimeout(fun, 0);
15950
+ }
15951
+ // if setTimeout wasn't available but was latter defined
15952
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
15953
+ cachedSetTimeout = setTimeout;
15954
+ return setTimeout(fun, 0);
15955
+ }
15956
+ try {
15957
+ // when when somebody has screwed with setTimeout but no I.E. maddness
15958
+ return cachedSetTimeout(fun, 0);
15959
+ } catch(e){
15960
+ try {
15961
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
15962
+ return cachedSetTimeout.call(null, fun, 0);
15963
+ } catch(e){
15964
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
15965
+ return cachedSetTimeout.call(this, fun, 0);
15966
+ }
15967
+ }
15968
+
15969
+
15970
+ }
15971
+ function runClearTimeout(marker) {
15972
+ if (cachedClearTimeout === clearTimeout) {
15973
+ //normal enviroments in sane situations
15974
+ return clearTimeout(marker);
15975
+ }
15976
+ // if clearTimeout wasn't available but was latter defined
15977
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
15978
+ cachedClearTimeout = clearTimeout;
15979
+ return clearTimeout(marker);
15980
+ }
15981
+ try {
15982
+ // when when somebody has screwed with setTimeout but no I.E. maddness
15983
+ return cachedClearTimeout(marker);
15984
+ } catch (e){
15985
+ try {
15986
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
15987
+ return cachedClearTimeout.call(null, marker);
15988
+ } catch (e){
15989
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
15990
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
15991
+ return cachedClearTimeout.call(this, marker);
15992
+ }
15993
+ }
15994
+
15995
+
15996
+
15997
+ }
15998
+ var queue = [];
15999
+ var draining = false;
16000
+ var currentQueue;
16001
+ var queueIndex = -1;
16002
+
16003
+ function cleanUpNextTick() {
16004
+ if (!draining || !currentQueue) {
16005
+ return;
16006
+ }
16007
+ draining = false;
16008
+ if (currentQueue.length) {
16009
+ queue = currentQueue.concat(queue);
16010
+ } else {
16011
+ queueIndex = -1;
16012
+ }
16013
+ if (queue.length) {
16014
+ drainQueue();
16015
+ }
16016
+ }
16017
+
16018
+ function drainQueue() {
16019
+ if (draining) {
16020
+ return;
16021
+ }
16022
+ var timeout = runTimeout(cleanUpNextTick);
16023
+ draining = true;
16024
+
16025
+ var len = queue.length;
16026
+ while(len) {
16027
+ currentQueue = queue;
16028
+ queue = [];
16029
+ while (++queueIndex < len) {
16030
+ if (currentQueue) {
16031
+ currentQueue[queueIndex].run();
16032
+ }
16033
+ }
16034
+ queueIndex = -1;
16035
+ len = queue.length;
16036
+ }
16037
+ currentQueue = null;
16038
+ draining = false;
16039
+ runClearTimeout(timeout);
16040
+ }
16041
+
16042
+ process.nextTick = function (fun) {
16043
+ var args = new Array(arguments.length - 1);
16044
+ if (arguments.length > 1) {
16045
+ for (var i = 1; i < arguments.length; i++) {
16046
+ args[i - 1] = arguments[i];
16047
+ }
16048
+ }
16049
+ queue.push(new Item(fun, args));
16050
+ if (queue.length === 1 && !draining) {
16051
+ runTimeout(drainQueue);
16052
+ }
16053
+ };
16054
+
16055
+ // v8 likes predictible objects
16056
+ function Item(fun, array) {
16057
+ this.fun = fun;
16058
+ this.array = array;
16059
+ }
16060
+ Item.prototype.run = function () {
16061
+ this.fun.apply(null, this.array);
16062
+ };
16063
+ process.title = 'browser';
16064
+ process.browser = true;
16065
+ process.env = {};
16066
+ process.argv = [];
16067
+ process.version = ''; // empty string to avoid regexp issues
16068
+ process.versions = {};
16069
+
16070
+ function noop() {}
16071
+
16072
+ process.on = noop;
16073
+ process.addListener = noop;
16074
+ process.once = noop;
16075
+ process.off = noop;
16076
+ process.removeListener = noop;
16077
+ process.removeAllListeners = noop;
16078
+ process.emit = noop;
16079
+ process.prependListener = noop;
16080
+ process.prependOnceListener = noop;
16081
+
16082
+ process.listeners = function (name) { return [] }
16083
+
16084
+ process.binding = function (name) {
16085
+ throw new Error('process.binding is not supported');
16086
+ };
16087
+
16088
+ process.cwd = function () { return '/' };
16089
+ process.chdir = function (dir) {
16090
+ throw new Error('process.chdir is not supported');
16091
+ };
16092
+ process.umask = function() { return 0; };
16093
+
16094
+
16095
+ /***/ }),
16096
+ /* 9 */
16097
+ /***/ (function(module, exports) {
16098
+
16099
+ var hasOwnProperty = {}.hasOwnProperty;
16100
+ module.exports = function (it, key) {
16101
+ return hasOwnProperty.call(it, key);
16102
+ };
16103
+
16104
+
16105
+ /***/ }),
16106
+ /* 10 */
16107
+ /***/ (function(module, exports, __webpack_require__) {
16108
+
16109
+ var isObject = __webpack_require__(20);
16110
+ module.exports = function (it) {
16111
+ if (!isObject(it)) throw TypeError(it + ' is not an object!');
16112
+ return it;
16113
+ };
16114
+
16115
+
16116
+ /***/ }),
16117
+ /* 11 */
16118
+ /***/ (function(module, exports, __webpack_require__) {
16119
+
16120
+ // Thank's IE8 for his funny defineProperty
16121
+ module.exports = !__webpack_require__(21)(function () {
16122
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
16123
+ });
16124
+
16125
+
16126
+ /***/ }),
16127
+ /* 12 */
16128
+ /***/ (function(module, exports) {
16129
+
16130
+ module.exports = {};
16131
+
16132
+
16133
+ /***/ }),
16134
+ /* 13 */
16135
+ /***/ (function(module, exports) {
16136
+
16137
+ var g;
16138
+
16139
+ // This works in non-strict mode
16140
+ g = (function() {
16141
+ return this;
16142
+ })();
16143
+
16144
+ try {
16145
+ // This works if eval is allowed (see CSP)
16146
+ g = g || Function("return this")() || (1,eval)("this");
16147
+ } catch(e) {
16148
+ // This works if the window reference is available
16149
+ if(typeof window === "object")
16150
+ g = window;
16151
+ }
16152
+
16153
+ // g can still be undefined, but nothing to do about it...
16154
+ // We return undefined, instead of nothing here, so it's
16155
+ // easier to handle this case. if(!global) { ...}
16156
+
16157
+ module.exports = g;
16158
+
16159
+
16160
+ /***/ }),
16161
+ /* 14 */
16162
+ /***/ (function(module, exports, __webpack_require__) {
16163
+
16164
+ module.exports = { "default": __webpack_require__(207), __esModule: true };
16165
+
16166
+ /***/ }),
16167
+ /* 15 */
16168
+ /***/ (function(module, exports) {
16169
+
16170
+ // 7.2.1 RequireObjectCoercible(argument)
16171
+ module.exports = function (it) {
16172
+ if (it == undefined) throw TypeError("Can't call method on " + it);
16173
+ return it;
16174
+ };
16175
+
16176
+
16177
+ /***/ }),
16178
+ /* 16 */
16179
+ /***/ (function(module, exports, __webpack_require__) {
16180
+
16181
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
16182
+ var IObject = __webpack_require__(43);
16183
+ var defined = __webpack_require__(15);
16184
+ module.exports = function (it) {
16185
+ return IObject(defined(it));
16186
+ };
16187
+
16188
+
16189
+ /***/ }),
16190
+ /* 17 */
16191
+ /***/ (function(module, exports) {
16192
+
16193
+ // 7.1.4 ToInteger
16194
+ var ceil = Math.ceil;
16195
+ var floor = Math.floor;
16196
+ module.exports = function (it) {
16197
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
16198
+ };
16199
+
16200
+
16201
+ /***/ }),
16202
+ /* 18 */
16203
+ /***/ (function(module, exports, __webpack_require__) {
16204
+
16205
+ var shared = __webpack_require__(23)('keys');
16206
+ var uid = __webpack_require__(24);
16207
+ module.exports = function (key) {
16208
+ return shared[key] || (shared[key] = uid(key));
16209
+ };
16210
+
16211
+
16212
+ /***/ }),
16213
+ /* 19 */
16214
+ /***/ (function(module, exports, __webpack_require__) {
16215
+
16216
+ var anObject = __webpack_require__(10);
16217
+ var IE8_DOM_DEFINE = __webpack_require__(49);
16218
+ var toPrimitive = __webpack_require__(50);
16219
+ var dP = Object.defineProperty;
16220
+
16221
+ exports.f = __webpack_require__(11) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
16222
+ anObject(O);
16223
+ P = toPrimitive(P, true);
16224
+ anObject(Attributes);
16225
+ if (IE8_DOM_DEFINE) try {
16226
+ return dP(O, P, Attributes);
16227
+ } catch (e) { /* empty */ }
16228
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
16229
+ if ('value' in Attributes) O[P] = Attributes.value;
16230
+ return O;
16231
+ };
16232
+
16233
+
16234
+ /***/ }),
16235
+ /* 20 */
16236
+ /***/ (function(module, exports) {
16237
+
16238
+ module.exports = function (it) {
16239
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
16240
+ };
16241
+
16242
+
16243
+ /***/ }),
16244
+ /* 21 */
16245
+ /***/ (function(module, exports) {
16246
+
16247
+ module.exports = function (exec) {
16248
+ try {
16249
+ return !!exec();
16250
+ } catch (e) {
16251
+ return true;
16252
+ }
16253
+ };
16254
+
16255
+
16256
+ /***/ }),
16257
+ /* 22 */
16258
+ /***/ (function(module, exports) {
16259
+
16260
+ var toString = {}.toString;
16261
+
16262
+ module.exports = function (it) {
16263
+ return toString.call(it).slice(8, -1);
16264
+ };
16265
+
16266
+
16267
+ /***/ }),
16268
+ /* 23 */
16269
+ /***/ (function(module, exports, __webpack_require__) {
16270
+
16271
+ var global = __webpack_require__(3);
16272
+ var SHARED = '__core-js_shared__';
16273
+ var store = global[SHARED] || (global[SHARED] = {});
16274
+ module.exports = function (key) {
16275
+ return store[key] || (store[key] = {});
16276
+ };
16277
+
16278
+
16279
+ /***/ }),
16280
+ /* 24 */
16281
+ /***/ (function(module, exports) {
16282
+
16283
+ var id = 0;
16284
+ var px = Math.random();
16285
+ module.exports = function (key) {
16286
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
16287
+ };
16288
+
16289
+
16290
+ /***/ }),
16291
+ /* 25 */
16292
+ /***/ (function(module, exports) {
16293
+
16294
+ // IE 8- don't enum bug keys
16295
+ module.exports = (
16296
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
16297
+ ).split(',');
16298
+
16299
+
16300
+ /***/ }),
16301
+ /* 26 */
16302
+ /***/ (function(module, exports, __webpack_require__) {
16303
+
16304
+ var global = __webpack_require__(3);
16305
+ var core = __webpack_require__(5);
16306
+ var ctx = __webpack_require__(47);
16307
+ var hide = __webpack_require__(6);
16308
+ var has = __webpack_require__(9);
16309
+ var PROTOTYPE = 'prototype';
16310
+
16311
+ var $export = function (type, name, source) {
16312
+ var IS_FORCED = type & $export.F;
16313
+ var IS_GLOBAL = type & $export.G;
16314
+ var IS_STATIC = type & $export.S;
16315
+ var IS_PROTO = type & $export.P;
16316
+ var IS_BIND = type & $export.B;
16317
+ var IS_WRAP = type & $export.W;
16318
+ var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
16319
+ var expProto = exports[PROTOTYPE];
16320
+ var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
16321
+ var key, own, out;
16322
+ if (IS_GLOBAL) source = name;
16323
+ for (key in source) {
16324
+ // contains in native
16325
+ own = !IS_FORCED && target && target[key] !== undefined;
16326
+ if (own && has(exports, key)) continue;
16327
+ // export native or passed
16328
+ out = own ? target[key] : source[key];
16329
+ // prevent global pollution for namespaces
16330
+ exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
16331
+ // bind timers to global for call from export context
16332
+ : IS_BIND && own ? ctx(out, global)
16333
+ // wrap global constructors for prevent change them in library
16334
+ : IS_WRAP && target[key] == out ? (function (C) {
16335
+ var F = function (a, b, c) {
16336
+ if (this instanceof C) {
16337
+ switch (arguments.length) {
16338
+ case 0: return new C();
16339
+ case 1: return new C(a);
16340
+ case 2: return new C(a, b);
16341
+ } return new C(a, b, c);
16342
+ } return C.apply(this, arguments);
16343
+ };
16344
+ F[PROTOTYPE] = C[PROTOTYPE];
16345
+ return F;
16346
+ // make static versions for prototype methods
16347
+ })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
16348
+ // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
16349
+ if (IS_PROTO) {
16350
+ (exports.virtual || (exports.virtual = {}))[key] = out;
16351
+ // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
16352
+ if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
16353
+ }
16354
+ }
16355
+ };
16356
+ // type bitmap
16357
+ $export.F = 1; // forced
16358
+ $export.G = 2; // global
16359
+ $export.S = 4; // static
16360
+ $export.P = 8; // proto
16361
+ $export.B = 16; // bind
16362
+ $export.W = 32; // wrap
16363
+ $export.U = 64; // safe
16364
+ $export.R = 128; // real proto method for `library`
16365
+ module.exports = $export;
16366
+
16367
+
16368
+ /***/ }),
16369
+ /* 27 */
16370
+ /***/ (function(module, exports, __webpack_require__) {
16371
+
16372
+ var isObject = __webpack_require__(20);
16373
+ var document = __webpack_require__(3).document;
16374
+ // typeof document.createElement is 'object' in old IE
16375
+ var is = isObject(document) && isObject(document.createElement);
16376
+ module.exports = function (it) {
16377
+ return is ? document.createElement(it) : {};
16378
+ };
16379
+
16380
+
16381
+ /***/ }),
16382
+ /* 28 */
16383
+ /***/ (function(module, exports) {
16384
+
16385
+ module.exports = function (bitmap, value) {
16386
+ return {
16387
+ enumerable: !(bitmap & 1),
16388
+ configurable: !(bitmap & 2),
16389
+ writable: !(bitmap & 4),
16390
+ value: value
16391
+ };
16392
+ };
16393
+
16394
+
16395
+ /***/ }),
16396
+ /* 29 */
16397
+ /***/ (function(module, exports, __webpack_require__) {
16398
+
16399
+ "use strict";
16400
+
16401
+ var LIBRARY = __webpack_require__(56);
16402
+ var $export = __webpack_require__(26);
16403
+ var redefine = __webpack_require__(57);
16404
+ var hide = __webpack_require__(6);
16405
+ var Iterators = __webpack_require__(12);
16406
+ var $iterCreate = __webpack_require__(58);
16407
+ var setToStringTag = __webpack_require__(30);
16408
+ var getPrototypeOf = __webpack_require__(62);
16409
+ var ITERATOR = __webpack_require__(4)('iterator');
16410
+ var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
16411
+ var FF_ITERATOR = '@@iterator';
16412
+ var KEYS = 'keys';
16413
+ var VALUES = 'values';
16414
+
16415
+ var returnThis = function () { return this; };
16416
+
16417
+ module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
16418
+ $iterCreate(Constructor, NAME, next);
16419
+ var getMethod = function (kind) {
16420
+ if (!BUGGY && kind in proto) return proto[kind];
16421
+ switch (kind) {
16422
+ case KEYS: return function keys() { return new Constructor(this, kind); };
16423
+ case VALUES: return function values() { return new Constructor(this, kind); };
16424
+ } return function entries() { return new Constructor(this, kind); };
16425
+ };
16426
+ var TAG = NAME + ' Iterator';
16427
+ var DEF_VALUES = DEFAULT == VALUES;
16428
+ var VALUES_BUG = false;
16429
+ var proto = Base.prototype;
16430
+ var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
16431
+ var $default = $native || getMethod(DEFAULT);
16432
+ var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
16433
+ var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
16434
+ var methods, key, IteratorPrototype;
16435
+ // Fix native
16436
+ if ($anyNative) {
16437
+ IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
16438
+ if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
16439
+ // Set @@toStringTag to native iterators
16440
+ setToStringTag(IteratorPrototype, TAG, true);
16441
+ // fix for some old engines
16442
+ if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
16443
+ }
16444
+ }
16445
+ // fix Array#{values, @@iterator}.name in V8 / FF
16446
+ if (DEF_VALUES && $native && $native.name !== VALUES) {
16447
+ VALUES_BUG = true;
16448
+ $default = function values() { return $native.call(this); };
16449
+ }
16450
+ // Define iterator
16451
+ if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
16452
+ hide(proto, ITERATOR, $default);
16453
+ }
16454
+ // Plug for library
16455
+ Iterators[NAME] = $default;
16456
+ Iterators[TAG] = returnThis;
16457
+ if (DEFAULT) {
16458
+ methods = {
16459
+ values: DEF_VALUES ? $default : getMethod(VALUES),
16460
+ keys: IS_SET ? $default : getMethod(KEYS),
16461
+ entries: $entries
16462
+ };
16463
+ if (FORCED) for (key in methods) {
16464
+ if (!(key in proto)) redefine(proto, key, methods[key]);
16465
+ } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
16466
+ }
16467
+ return methods;
16468
+ };
16469
+
16470
+
16471
+ /***/ }),
16472
+ /* 30 */
16473
+ /***/ (function(module, exports, __webpack_require__) {
16474
+
16475
+ var def = __webpack_require__(19).f;
16476
+ var has = __webpack_require__(9);
16477
+ var TAG = __webpack_require__(4)('toStringTag');
16478
+
16479
+ module.exports = function (it, tag, stat) {
16480
+ if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
16481
+ };
16482
+
16483
+
16484
+ /***/ }),
16485
+ /* 31 */
16486
+ /***/ (function(module, exports, __webpack_require__) {
16487
+
16488
+ // 7.1.13 ToObject(argument)
16489
+ var defined = __webpack_require__(15);
16490
+ module.exports = function (it) {
16491
+ return Object(defined(it));
16492
+ };
16493
+
16494
+
16495
+ /***/ }),
16496
+ /* 32 */
16497
+ /***/ (function(module, exports, __webpack_require__) {
16498
+
16499
+ // 19.1.2.14 / 15.2.3.14 Object.keys(O)
16500
+ var $keys = __webpack_require__(42);
16501
+ var enumBugKeys = __webpack_require__(25);
16502
+
16503
+ module.exports = Object.keys || function keys(O) {
16504
+ return $keys(O, enumBugKeys);
16505
+ };
16506
+
16507
+
16508
+ /***/ }),
16509
+ /* 33 */
16510
+ /***/ (function(module, exports, __webpack_require__) {
16511
+
16512
+ module.exports = { "default": __webpack_require__(51), __esModule: true };
16513
+
16514
+ /***/ }),
16515
+ /* 34 */
16516
+ /***/ (function(module, exports, __webpack_require__) {
16517
+
16518
+ /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
16519
+ (typeof self !== "undefined" && self) ||
16520
+ window;
16521
+ var apply = Function.prototype.apply;
16522
+
16523
+ // DOM APIs, for completeness
16524
+
16525
+ exports.setTimeout = function() {
16526
+ return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
16527
+ };
16528
+ exports.setInterval = function() {
16529
+ return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
16530
+ };
16531
+ exports.clearTimeout =
16532
+ exports.clearInterval = function(timeout) {
16533
+ if (timeout) {
16534
+ timeout.close();
16535
+ }
16536
+ };
16537
+
16538
+ function Timeout(id, clearFn) {
16539
+ this._id = id;
16540
+ this._clearFn = clearFn;
16541
+ }
16542
+ Timeout.prototype.unref = Timeout.prototype.ref = function() {};
16543
+ Timeout.prototype.close = function() {
16544
+ this._clearFn.call(scope, this._id);
16545
+ };
16546
+
16547
+ // Does not start the time, just sets up the members needed.
16548
+ exports.enroll = function(item, msecs) {
16549
+ clearTimeout(item._idleTimeoutId);
16550
+ item._idleTimeout = msecs;
16551
+ };
16552
+
16553
+ exports.unenroll = function(item) {
16554
+ clearTimeout(item._idleTimeoutId);
16555
+ item._idleTimeout = -1;
16556
+ };
16557
+
16558
+ exports._unrefActive = exports.active = function(item) {
16559
+ clearTimeout(item._idleTimeoutId);
16560
+
16561
+ var msecs = item._idleTimeout;
16562
+ if (msecs >= 0) {
16563
+ item._idleTimeoutId = setTimeout(function onTimeout() {
16564
+ if (item._onTimeout)
16565
+ item._onTimeout();
16566
+ }, msecs);
16567
+ }
16568
+ };
16569
+
16570
+ // setimmediate attaches itself to the global object
16571
+ __webpack_require__(35);
16572
+ // On some exotic environments, it's not clear which object `setimmediate` was
16573
+ // able to install onto. Search each possibility in the same order as the
16574
+ // `setimmediate` library.
16575
+ exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
16576
+ (typeof global !== "undefined" && global.setImmediate) ||
16577
+ (this && this.setImmediate);
16578
+ exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
16579
+ (typeof global !== "undefined" && global.clearImmediate) ||
16580
+ (this && this.clearImmediate);
16581
+
16582
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13)))
16583
+
16584
+ /***/ }),
16585
+ /* 35 */
16586
+ /***/ (function(module, exports, __webpack_require__) {
16587
+
16588
+ /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
16589
+ "use strict";
16590
+
16591
+ if (global.setImmediate) {
16592
+ return;
16593
+ }
16594
+
16595
+ var nextHandle = 1; // Spec says greater than zero
16596
+ var tasksByHandle = {};
16597
+ var currentlyRunningATask = false;
16598
+ var doc = global.document;
16599
+ var registerImmediate;
16600
+
16601
+ function setImmediate(callback) {
16602
+ // Callback can either be a function or a string
16603
+ if (typeof callback !== "function") {
16604
+ callback = new Function("" + callback);
16605
+ }
16606
+ // Copy function arguments
16607
+ var args = new Array(arguments.length - 1);
16608
+ for (var i = 0; i < args.length; i++) {
16609
+ args[i] = arguments[i + 1];
16610
+ }
16611
+ // Store and register the task
16612
+ var task = { callback: callback, args: args };
16613
+ tasksByHandle[nextHandle] = task;
16614
+ registerImmediate(nextHandle);
16615
+ return nextHandle++;
16616
+ }
16617
+
16618
+ function clearImmediate(handle) {
16619
+ delete tasksByHandle[handle];
16620
+ }
16621
+
16622
+ function run(task) {
16623
+ var callback = task.callback;
16624
+ var args = task.args;
16625
+ switch (args.length) {
16626
+ case 0:
16627
+ callback();
16628
+ break;
16629
+ case 1:
16630
+ callback(args[0]);
16631
+ break;
16632
+ case 2:
16633
+ callback(args[0], args[1]);
16634
+ break;
16635
+ case 3:
16636
+ callback(args[0], args[1], args[2]);
16637
+ break;
16638
+ default:
16639
+ callback.apply(undefined, args);
16640
+ break;
16641
+ }
16642
+ }
16643
+
16644
+ function runIfPresent(handle) {
16645
+ // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
16646
+ // So if we're currently running a task, we'll need to delay this invocation.
16647
+ if (currentlyRunningATask) {
16648
+ // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
16649
+ // "too much recursion" error.
16650
+ setTimeout(runIfPresent, 0, handle);
16651
+ } else {
16652
+ var task = tasksByHandle[handle];
16653
+ if (task) {
16654
+ currentlyRunningATask = true;
16655
+ try {
16656
+ run(task);
16657
+ } finally {
16658
+ clearImmediate(handle);
16659
+ currentlyRunningATask = false;
16660
+ }
16661
+ }
16662
+ }
16663
+ }
16664
+
16665
+ function installNextTickImplementation() {
16666
+ registerImmediate = function(handle) {
16667
+ process.nextTick(function () { runIfPresent(handle); });
16668
+ };
16669
+ }
16670
+
16671
+ function canUsePostMessage() {
16672
+ // The test against `importScripts` prevents this implementation from being installed inside a web worker,
16673
+ // where `global.postMessage` means something completely different and can't be used for this purpose.
16674
+ if (global.postMessage && !global.importScripts) {
16675
+ var postMessageIsAsynchronous = true;
16676
+ var oldOnMessage = global.onmessage;
16677
+ global.onmessage = function() {
16678
+ postMessageIsAsynchronous = false;
16679
+ };
16680
+ global.postMessage("", "*");
16681
+ global.onmessage = oldOnMessage;
16682
+ return postMessageIsAsynchronous;
16683
+ }
16684
+ }
16685
+
16686
+ function installPostMessageImplementation() {
16687
+ // Installs an event handler on `global` for the `message` event: see
16688
+ // * https://developer.mozilla.org/en/DOM/window.postMessage
16689
+ // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
16690
+
16691
+ var messagePrefix = "setImmediate$" + Math.random() + "$";
16692
+ var onGlobalMessage = function(event) {
16693
+ if (event.source === global &&
16694
+ typeof event.data === "string" &&
16695
+ event.data.indexOf(messagePrefix) === 0) {
16696
+ runIfPresent(+event.data.slice(messagePrefix.length));
16697
+ }
16698
+ };
16699
+
16700
+ if (global.addEventListener) {
16701
+ global.addEventListener("message", onGlobalMessage, false);
16702
+ } else {
16703
+ global.attachEvent("onmessage", onGlobalMessage);
16704
+ }
16705
+
16706
+ registerImmediate = function(handle) {
16707
+ global.postMessage(messagePrefix + handle, "*");
16708
+ };
16709
+ }
16710
+
16711
+ function installMessageChannelImplementation() {
16712
+ var channel = new MessageChannel();
16713
+ channel.port1.onmessage = function(event) {
16714
+ var handle = event.data;
16715
+ runIfPresent(handle);
16716
+ };
16717
+
16718
+ registerImmediate = function(handle) {
16719
+ channel.port2.postMessage(handle);
16720
+ };
16721
+ }
16722
+
16723
+ function installReadyStateChangeImplementation() {
16724
+ var html = doc.documentElement;
16725
+ registerImmediate = function(handle) {
16726
+ // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
16727
+ // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
16728
+ var script = doc.createElement("script");
16729
+ script.onreadystatechange = function () {
16730
+ runIfPresent(handle);
16731
+ script.onreadystatechange = null;
16732
+ html.removeChild(script);
16733
+ script = null;
16734
+ };
16735
+ html.appendChild(script);
16736
+ };
16737
+ }
16738
+
16739
+ function installSetTimeoutImplementation() {
16740
+ registerImmediate = function(handle) {
16741
+ setTimeout(runIfPresent, 0, handle);
16742
+ };
16743
+ }
16744
+
16745
+ // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
16746
+ var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
16747
+ attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
16748
+
16749
+ // Don't get fooled by e.g. browserify environments.
16750
+ if ({}.toString.call(global.process) === "[object process]") {
16751
+ // For Node.js before 0.9
16752
+ installNextTickImplementation();
16753
+
16754
+ } else if (canUsePostMessage()) {
16755
+ // For non-IE10 modern browsers
16756
+ installPostMessageImplementation();
16757
+
16758
+ } else if (global.MessageChannel) {
16759
+ // For web workers, where supported
16760
+ installMessageChannelImplementation();
16761
+
16762
+ } else if (doc && "onreadystatechange" in doc.createElement("script")) {
16763
+ // For IE 6–8
16764
+ installReadyStateChangeImplementation();
16765
+
16766
+ } else {
16767
+ // For older browsers
16768
+ installSetTimeoutImplementation();
16769
+ }
16770
+
16771
+ attachTo.setImmediate = setImmediate;
16772
+ attachTo.clearImmediate = clearImmediate;
16773
+ }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
16774
+
16775
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13), __webpack_require__(8)))
16776
+
16777
+ /***/ }),
16778
+ /* 36 */
16779
+ /***/ (function(module, exports, __webpack_require__) {
16780
+
16781
+ "use strict";
16782
+
16783
+
16784
+ Object.defineProperty(exports, "__esModule", {
16785
+ value: true
16786
+ });
16787
+
16788
+ var _vue = __webpack_require__(7);
16789
+
16790
+ var _vue2 = _interopRequireDefault(_vue);
16791
+
16792
+ var _vuex = __webpack_require__(37);
16793
+
16794
+ var _vuex2 = _interopRequireDefault(_vuex);
16795
+
16796
+ var _vueResource = __webpack_require__(38);
16797
+
16798
+ var _vueResource2 = _interopRequireDefault(_vueResource);
16799
+
16800
+ var _vuejsLogger = __webpack_require__(40);
16801
+
16802
+ var _vuejsLogger2 = _interopRequireDefault(_vuejsLogger);
16803
+
16804
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16805
+
16806
+ // jshint ignore: start
16807
+
16808
+ /* global ropApiSettings */
16809
+ /* exported ropApiSettings */
16810
+
16811
+ var logOptions = {
16812
+ // required ['debug', 'info', 'warn', 'error', 'fatal']
16813
+ logLevel: ropApiSettings.debug === 'yes' ? 'debug' : 'error',
16814
+ // optional : defaults to false if not specified
16815
+ stringifyArguments: false,
16816
+ // optional : defaults to false if not specified
16817
+ showLogLevel: false,
16818
+ // optional : defaults to false if not specified
16819
+ showMethodName: false,
16820
+ // optional : defaults to '|' if not specified
16821
+ separator: '|',
16822
+ // optional : defaults to false if not specified
16823
+ showConsoleColors: true
16824
+ };
16825
+ _vue2.default.use(_vuex2.default);
16826
+ _vue2.default.use(_vueResource2.default);
16827
+ _vue2.default.use(_vuejsLogger2.default, logOptions);
16828
+
16829
+ exports.default = new _vuex2.default.Store({
16830
+ state: {
16831
+ page: {
16832
+ debug: false,
16833
+ logs: [],
16834
+ view: 'accounts',
16835
+ template: 'accounts'
16836
+ },
16837
+ cron_status: {},
16838
+ toast: {
16839
+ type: 'success',
16840
+ show: false,
16841
+ title: '',
16842
+ message: ''
16843
+ },
16844
+ ajaxLoader: false,
16845
+ auth_in_progress: false,
16846
+ displayTabs: [{
16847
+ name: ropApiSettings.labels.accounts.menu_item,
16848
+ slug: 'accounts',
16849
+ view: 'accounts',
16850
+ isActive: true
16851
+ }, {
16852
+ name: ropApiSettings.labels.settings.menu_item,
16853
+ slug: 'settings',
16854
+ view: 'settings',
16855
+ isActive: false
16856
+ }, {
16857
+ name: ropApiSettings.labels.post_format.menu_item,
16858
+ slug: 'post-format',
16859
+ view: 'accounts-selector',
16860
+ isActive: false
16861
+ }, {
16862
+ name: ropApiSettings.labels.schedule.menu_item,
16863
+ slug: 'schedule',
16864
+ view: 'accounts-selector',
16865
+ isActive: false
16866
+ }, {
16867
+ name: ropApiSettings.labels.queue.menu_item,
16868
+ slug: 'queue',
16869
+ view: 'queue',
16870
+ isActive: false
16871
+ }, {
16872
+ name: ropApiSettings.labels.logs.menu_item,
16873
+ slug: 'logs',
16874
+ view: 'logs',
16875
+ isActive: false
16876
+ }],
16877
+ licence: parseInt(ropApiSettings.license_type),
16878
+ labels: ropApiSettings.labels,
16879
+ availableServices: [],
16880
+ generalSettings: [],
16881
+ authenticatedServices: [],
16882
+ activeAccounts: {},
16883
+ activePostFormat: [],
16884
+ activeSchedule: [],
16885
+ queue: {}
16886
+ },
16887
+ mutations: {
16888
+ setTabView: function setTabView(state, view) {
16889
+ _vue2.default.$log.debug('Changing tab to ', view);
16890
+ for (var tab in state.displayTabs) {
16891
+ state.displayTabs[tab].isActive = false;
16892
+ if (state.displayTabs[tab].slug === view) {
16893
+ state.displayTabs[tab].isActive = true;
16894
+ state.page.view = state.displayTabs[tab].slug;
16895
+ state.page.template = state.displayTabs[tab].view;
16896
+ }
16897
+ }
16898
+ },
16899
+ setAjaxState: function setAjaxState(state, data) {
16900
+ state.ajaxLoader = data;
16901
+ },
16902
+ updateState: function updateState(state, _ref) {
16903
+ var stateData = _ref.stateData,
16904
+ requestName = _ref.requestName;
16905
+
16906
+ _vue2.default.$log.debug('State change for ', requestName);
16907
+ switch (requestName) {
16908
+ case 'manage_cron':
16909
+ state.cron_status = stateData;
16910
+ break;
16911
+ case 'get_log':
16912
+ state.page.logs = stateData;
16913
+ break;
16914
+ case 'update_settings_toggle':
16915
+ case 'get_general_settings':
16916
+ state.generalSettings = stateData;
16917
+ break;
16918
+ case 'update_selected_post_types':
16919
+ state.generalSettings.selected_post_types = stateData;
16920
+ for (var index in state.generalSettings.available_post_types) {
16921
+ state.generalSettings.available_post_types[index].selected = false;
16922
+ for (var indexSelected in stateData) {
16923
+ if (state.generalSettings.available_post_types[index].value === stateData[indexSelected].value) {
16924
+ state.generalSettings.available_post_types[index].selected = true;
16925
+ }
16926
+ }
16927
+ }
16928
+ break;
16929
+ case 'update_selected_taxonomies':
16930
+ state.generalSettings.selected_taxonomies = stateData;
16931
+ for (var _index in state.generalSettings.available_taxonomies) {
16932
+ state.generalSettings.available_taxonomies[_index].selected = false;
16933
+ for (var _indexSelected in stateData) {
16934
+ if (state.generalSettings.available_taxonomies[_index].value === stateData[_indexSelected].value || state.generalSettings.available_taxonomies[_index].parent === stateData[_indexSelected].value) {
16935
+ state.generalSettings.available_taxonomies[_index].selected = true;
16936
+ }
16937
+ }
16938
+ }
16939
+ break;
16940
+ case 'update_selected_posts':
16941
+ state.generalSettings.selected_posts = stateData;
16942
+ break;
16943
+ case 'get_available_services':
16944
+ state.availableServices = stateData;
16945
+ break;
16946
+ case 'get_authenticated_services':
16947
+ case 'remove_service':
16948
+ state.authenticatedServices = stateData;
16949
+ break;
16950
+ case 'authenticate_service':
16951
+ state.authenticatedServices = stateData;
16952
+ state.auth_in_progress = false;
16953
+ //state.activeAccounts = stateData
16954
+ break;
16955
+ case 'get_active_accounts':
16956
+ case 'update_active_accounts':
16957
+ case 'remove_account':
16958
+ state.activeAccounts = stateData;
16959
+ break;
16960
+ case 'get_taxonomies':
16961
+ state.generalSettings.available_taxonomies = stateData;
16962
+ break;
16963
+ case 'get_posts':
16964
+ if (stateData.page === 1) {
16965
+ state.generalSettings.available_posts = stateData.posts;
16966
+ } else {
16967
+ state.generalSettings.available_posts = state.generalSettings.available_posts.concat(stateData.posts);
16968
+ }
16969
+
16970
+ break;
16971
+ case 'get_post_format':
16972
+ case 'save_post_format':
16973
+ case 'reset_post_format':
16974
+ state.activePostFormat = stateData;
16975
+ break;
16976
+ case 'reset_accounts':
16977
+ state.activeAccounts = {};
16978
+ state.authenticatedServices = [];
16979
+ break;
16980
+ case 'get_shortner_credentials':
16981
+ state.activePostFormat['shortner_credentials'] = stateData;
16982
+ break;
16983
+ case 'get_schedule':
16984
+ case 'save_schedule':
16985
+ case 'reset_schedule':
16986
+ state.activeSchedule = stateData;
16987
+ break;
16988
+ case 'get_queue':
16989
+ case 'update_queue_event':
16990
+ case 'publish_queue_event':
16991
+ case 'skip_queue_event':
16992
+ case 'block_queue_event':
16993
+ state.queue = stateData;
16994
+
16995
+ break;
16996
+ case 'update_toast':
16997
+ state.toast = stateData;
16998
+ break;
16999
+ case 'toggle_account':
17000
+ case 'exclude_post':
17001
+ case 'exclude_post_batch':
17002
+
17003
+ break;
17004
+ default:
17005
+ _vue2.default.$log.error('No state request for ', requestName);
17006
+ }
17007
+ }
17008
+ },
17009
+ actions: {
17010
+ fetchAJAX: function fetchAJAX(_ref2, data) {
17011
+ var commit = _ref2.commit;
17012
+
17013
+ if (data.req !== '') {
17014
+ commit('setAjaxState', true);
17015
+ _vue2.default.http({
17016
+ url: ropApiSettings.root,
17017
+ method: 'POST',
17018
+ headers: { 'X-WP-Nonce': ropApiSettings.nonce },
17019
+ params: { 'req': data.req },
17020
+ body: data.data,
17021
+ responseType: 'json'
17022
+ }).then(function (response) {
17023
+ commit('setAjaxState', false);
17024
+ var display = false;
17025
+ if (display) {
17026
+ var toast = {
17027
+ type: response.data.status,
17028
+ show: true,
17029
+ title: response.data.title,
17030
+ message: response.data.message
17031
+ };
17032
+ commit('updateState', { stateData: toast, requestName: 'update_toast' });
17033
+ }
17034
+ var stateData = response.data;
17035
+ if (response.data.data) {
17036
+ stateData = response.data.data;
17037
+ }
17038
+ var requestName = data.req;
17039
+ if (data.updateState !== false) {
17040
+ commit('updateState', { stateData: stateData, requestName: requestName });
17041
+ }
17042
+ }, function () {
17043
+ commit('setAjaxState', false);
17044
+ _vue2.default.$log.error('Error when trying to do request: ', data.req);
17045
+ });
17046
+ }
17047
+ return false;
17048
+ },
17049
+ fetchAJAXPromise: function fetchAJAXPromise(_ref3, data) {
17050
+ var commit = _ref3.commit;
17051
+
17052
+ if (data.req !== '') {
17053
+ commit('setAjaxState', true);
17054
+ return new Promise(function (resolve, reject) {
17055
+ _vue2.default.http({
17056
+ url: ropApiSettings.root,
17057
+ method: 'POST',
17058
+ headers: { 'X-WP-Nonce': ropApiSettings.nonce },
17059
+ params: { 'req': data.req },
17060
+ body: data.data,
17061
+ responseType: 'json'
17062
+ }).then(function (response) {
17063
+ commit('setAjaxState', false);
17064
+ var stateData = response.data;
17065
+ if (response.data.data) {
17066
+ stateData = response.data.data;
17067
+ }
17068
+ var requestName = data.req;
17069
+ resolve(stateData);
17070
+ if (data.updateState !== false) {
17071
+ commit('updateState', { stateData: stateData, requestName: requestName });
17072
+ }
17073
+ }, function () {
17074
+ commit('setAjaxState', false);
17075
+ _vue2.default.$log.error('Error when trying to do request: ', data.req);
17076
+ });
17077
+ });
17078
+ }
17079
+ return false;
17080
+ }
17081
+ }
17082
+ });
17083
+
17084
+ /***/ }),
17085
+ /* 37 */
17086
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
17087
+
17088
+ "use strict";
17089
+ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
17090
+ /* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Store", function() { return Store; });
17091
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "install", function() { return install; });
17092
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapState", function() { return mapState; });
17093
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapMutations", function() { return mapMutations; });
17094
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapGetters", function() { return mapGetters; });
17095
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapActions", function() { return mapActions; });
17096
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createNamespacedHelpers", function() { return createNamespacedHelpers; });
17097
+ /**
17098
+ * vuex v2.5.0
17099
+ * (c) 2017 Evan You
17100
+ * @license MIT
17101
+ */
17102
+ var applyMixin = function (Vue) {
17103
+ var version = Number(Vue.version.split('.')[0]);
17104
+
17105
+ if (version >= 2) {
17106
+ Vue.mixin({ beforeCreate: vuexInit });
17107
+ } else {
17108
+ // override init and inject vuex init procedure
17109
+ // for 1.x backwards compatibility.
17110
+ var _init = Vue.prototype._init;
17111
+ Vue.prototype._init = function (options) {
17112
+ if ( options === void 0 ) options = {};
17113
+
17114
+ options.init = options.init
17115
+ ? [vuexInit].concat(options.init)
17116
+ : vuexInit;
17117
+ _init.call(this, options);
17118
+ };
17119
+ }
17120
+
17121
+ /**
17122
+ * Vuex init hook, injected into each instances init hooks list.
17123
+ */
17124
+
17125
+ function vuexInit () {
17126
+ var options = this.$options;
17127
+ // store injection
17128
+ if (options.store) {
17129
+ this.$store = typeof options.store === 'function'
17130
+ ? options.store()
17131
+ : options.store;
17132
+ } else if (options.parent && options.parent.$store) {
17133
+ this.$store = options.parent.$store;
17134
+ }
17135
+ }
17136
+ };
17137
+
17138
+ var devtoolHook =
17139
+ typeof window !== 'undefined' &&
17140
+ window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
17141
+
17142
+ function devtoolPlugin (store) {
17143
+ if (!devtoolHook) { return }
17144
+
17145
+ store._devtoolHook = devtoolHook;
17146
+
17147
+ devtoolHook.emit('vuex:init', store);
17148
+
17149
+ devtoolHook.on('vuex:travel-to-state', function (targetState) {
17150
+ store.replaceState(targetState);
17151
+ });
17152
+
17153
+ store.subscribe(function (mutation, state) {
17154
+ devtoolHook.emit('vuex:mutation', mutation, state);
17155
+ });
17156
+ }
17157
+
17158
+ /**
17159
+ * Get the first item that pass the test
17160
+ * by second argument function
17161
+ *
17162
+ * @param {Array} list
17163
+ * @param {Function} f
17164
+ * @return {*}
17165
+ */
17166
+ /**
17167
+ * Deep copy the given object considering circular structure.
17168
+ * This function caches all nested objects and its copies.
17169
+ * If it detects circular structure, use cached copy to avoid infinite loop.
17170
+ *
17171
+ * @param {*} obj
17172
+ * @param {Array<Object>} cache
17173
+ * @return {*}
17174
+ */
17175
+
17176
+
17177
+ /**
17178
+ * forEach for object
17179
+ */
17180
+ function forEachValue (obj, fn) {
17181
+ Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
17182
+ }
17183
+
17184
+ function isObject (obj) {
17185
+ return obj !== null && typeof obj === 'object'
17186
+ }
17187
+
17188
+ function isPromise (val) {
17189
+ return val && typeof val.then === 'function'
17190
+ }
17191
+
17192
+ function assert (condition, msg) {
17193
+ if (!condition) { throw new Error(("[vuex] " + msg)) }
17194
+ }
17195
+
17196
+ var Module = function Module (rawModule, runtime) {
17197
+ this.runtime = runtime;
17198
+ this._children = Object.create(null);
17199
+ this._rawModule = rawModule;
17200
+ var rawState = rawModule.state;
17201
+ this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
17202
+ };
17203
+
17204
+ var prototypeAccessors$1 = { namespaced: { configurable: true } };
17205
+
17206
+ prototypeAccessors$1.namespaced.get = function () {
17207
+ return !!this._rawModule.namespaced
17208
+ };
17209
+
17210
+ Module.prototype.addChild = function addChild (key, module) {
17211
+ this._children[key] = module;
17212
+ };
17213
+
17214
+ Module.prototype.removeChild = function removeChild (key) {
17215
+ delete this._children[key];
17216
+ };
17217
+
17218
+ Module.prototype.getChild = function getChild (key) {
17219
+ return this._children[key]
17220
+ };
17221
+
17222
+ Module.prototype.update = function update (rawModule) {
17223
+ this._rawModule.namespaced = rawModule.namespaced;
17224
+ if (rawModule.actions) {
17225
+ this._rawModule.actions = rawModule.actions;
17226
+ }
17227
+ if (rawModule.mutations) {
17228
+ this._rawModule.mutations = rawModule.mutations;
17229
+ }
17230
+ if (rawModule.getters) {
17231
+ this._rawModule.getters = rawModule.getters;
17232
+ }
17233
+ };
17234
+
17235
+ Module.prototype.forEachChild = function forEachChild (fn) {
17236
+ forEachValue(this._children, fn);
17237
+ };
17238
+
17239
+ Module.prototype.forEachGetter = function forEachGetter (fn) {
17240
+ if (this._rawModule.getters) {
17241
+ forEachValue(this._rawModule.getters, fn);
17242
+ }
17243
+ };
17244
+
17245
+ Module.prototype.forEachAction = function forEachAction (fn) {
17246
+ if (this._rawModule.actions) {
17247
+ forEachValue(this._rawModule.actions, fn);
17248
+ }
17249
+ };
17250
+
17251
+ Module.prototype.forEachMutation = function forEachMutation (fn) {
17252
+ if (this._rawModule.mutations) {
17253
+ forEachValue(this._rawModule.mutations, fn);
17254
+ }
17255
+ };
17256
+
17257
+ Object.defineProperties( Module.prototype, prototypeAccessors$1 );
17258
+
17259
+ var ModuleCollection = function ModuleCollection (rawRootModule) {
17260
+ // register root module (Vuex.Store options)
17261
+ this.register([], rawRootModule, false);
17262
+ };
17263
+
17264
+ ModuleCollection.prototype.get = function get (path) {
17265
+ return path.reduce(function (module, key) {
17266
+ return module.getChild(key)
17267
+ }, this.root)
17268
+ };
17269
+
17270
+ ModuleCollection.prototype.getNamespace = function getNamespace (path) {
17271
+ var module = this.root;
17272
+ return path.reduce(function (namespace, key) {
17273
+ module = module.getChild(key);
17274
+ return namespace + (module.namespaced ? key + '/' : '')
17275
+ }, '')
17276
+ };
17277
+
17278
+ ModuleCollection.prototype.update = function update$1 (rawRootModule) {
17279
+ update([], this.root, rawRootModule);
17280
+ };
17281
+
17282
+ ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
17283
+ var this$1 = this;
17284
+ if ( runtime === void 0 ) runtime = true;
17285
+
17286
+ if (process.env.NODE_ENV !== 'production') {
17287
+ assertRawModule(path, rawModule);
17288
+ }
17289
+
17290
+ var newModule = new Module(rawModule, runtime);
17291
+ if (path.length === 0) {
17292
+ this.root = newModule;
17293
+ } else {
17294
+ var parent = this.get(path.slice(0, -1));
17295
+ parent.addChild(path[path.length - 1], newModule);
17296
+ }
17297
+
17298
+ // register nested modules
17299
+ if (rawModule.modules) {
17300
+ forEachValue(rawModule.modules, function (rawChildModule, key) {
17301
+ this$1.register(path.concat(key), rawChildModule, runtime);
17302
+ });
17303
+ }
17304
+ };
17305
+
17306
+ ModuleCollection.prototype.unregister = function unregister (path) {
17307
+ var parent = this.get(path.slice(0, -1));
17308
+ var key = path[path.length - 1];
17309
+ if (!parent.getChild(key).runtime) { return }
17310
+
17311
+ parent.removeChild(key);
17312
+ };
17313
+
17314
+ function update (path, targetModule, newModule) {
17315
+ if (process.env.NODE_ENV !== 'production') {
17316
+ assertRawModule(path, newModule);
17317
+ }
17318
+
17319
+ // update target module
17320
+ targetModule.update(newModule);
17321
+
17322
+ // update nested modules
17323
+ if (newModule.modules) {
17324
+ for (var key in newModule.modules) {
17325
+ if (!targetModule.getChild(key)) {
17326
+ if (process.env.NODE_ENV !== 'production') {
17327
+ console.warn(
17328
+ "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
17329
+ 'manual reload is needed'
17330
+ );
17331
+ }
17332
+ return
17333
+ }
17334
+ update(
17335
+ path.concat(key),
17336
+ targetModule.getChild(key),
17337
+ newModule.modules[key]
17338
+ );
17339
+ }
17340
+ }
17341
+ }
17342
+
17343
+ var functionAssert = {
17344
+ assert: function (value) { return typeof value === 'function'; },
17345
+ expected: 'function'
17346
+ };
17347
+
17348
+ var objectAssert = {
17349
+ assert: function (value) { return typeof value === 'function' ||
17350
+ (typeof value === 'object' && typeof value.handler === 'function'); },
17351
+ expected: 'function or object with "handler" function'
17352
+ };
17353
+
17354
+ var assertTypes = {
17355
+ getters: functionAssert,
17356
+ mutations: functionAssert,
17357
+ actions: objectAssert
17358
+ };
17359
+
17360
+ function assertRawModule (path, rawModule) {
17361
+ Object.keys(assertTypes).forEach(function (key) {
17362
+ if (!rawModule[key]) { return }
17363
+
17364
+ var assertOptions = assertTypes[key];
17365
+
17366
+ forEachValue(rawModule[key], function (value, type) {
17367
+ assert(
17368
+ assertOptions.assert(value),
17369
+ makeAssertionMessage(path, key, type, value, assertOptions.expected)
17370
+ );
17371
+ });
17372
+ });
17373
+ }
17374
+
17375
+ function makeAssertionMessage (path, key, type, value, expected) {
17376
+ var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
17377
+ if (path.length > 0) {
17378
+ buf += " in module \"" + (path.join('.')) + "\"";
17379
+ }
17380
+ buf += " is " + (JSON.stringify(value)) + ".";
17381
+ return buf
17382
+ }
17383
+
17384
+ var Vue; // bind on install
17385
+
17386
+ var Store = function Store (options) {
17387
+ var this$1 = this;
17388
+ if ( options === void 0 ) options = {};
17389
+
17390
+ // Auto install if it is not done yet and `window` has `Vue`.
17391
+ // To allow users to avoid auto-installation in some cases,
17392
+ // this code should be placed here. See #731
17393
+ if (!Vue && typeof window !== 'undefined' && window.Vue) {
17394
+ install(window.Vue);
17395
+ }
17396
+
17397
+ if (process.env.NODE_ENV !== 'production') {
17398
+ assert(Vue, "must call Vue.use(Vuex) before creating a store instance.");
17399
+ assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
17400
+ assert(this instanceof Store, "Store must be called with the new operator.");
17401
+ }
17402
+
17403
+ var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
17404
+ var strict = options.strict; if ( strict === void 0 ) strict = false;
17405
+
17406
+ var state = options.state; if ( state === void 0 ) state = {};
17407
+ if (typeof state === 'function') {
17408
+ state = state() || {};
17409
+ }
17410
+
17411
+ // store internal state
17412
+ this._committing = false;
17413
+ this._actions = Object.create(null);
17414
+ this._actionSubscribers = [];
17415
+ this._mutations = Object.create(null);
17416
+ this._wrappedGetters = Object.create(null);
17417
+ this._modules = new ModuleCollection(options);
17418
+ this._modulesNamespaceMap = Object.create(null);
17419
+ this._subscribers = [];
17420
+ this._watcherVM = new Vue();
17421
+
17422
+ // bind commit and dispatch to self
17423
+ var store = this;
17424
+ var ref = this;
17425
+ var dispatch = ref.dispatch;
17426
+ var commit = ref.commit;
17427
+ this.dispatch = function boundDispatch (type, payload) {
17428
+ return dispatch.call(store, type, payload)
17429
+ };
17430
+ this.commit = function boundCommit (type, payload, options) {
17431
+ return commit.call(store, type, payload, options)
17432
+ };
17433
+
17434
+ // strict mode
17435
+ this.strict = strict;
17436
+
17437
+ // init root module.
17438
+ // this also recursively registers all sub-modules
17439
+ // and collects all module getters inside this._wrappedGetters
17440
+ installModule(this, state, [], this._modules.root);
17441
+
17442
+ // initialize the store vm, which is responsible for the reactivity
17443
+ // (also registers _wrappedGetters as computed properties)
17444
+ resetStoreVM(this, state);
17445
+
17446
+ // apply plugins
17447
+ plugins.forEach(function (plugin) { return plugin(this$1); });
17448
+
17449
+ if (Vue.config.devtools) {
17450
+ devtoolPlugin(this);
17451
+ }
17452
+ };
17453
+
17454
+ var prototypeAccessors = { state: { configurable: true } };
17455
+
17456
+ prototypeAccessors.state.get = function () {
17457
+ return this._vm._data.$$state
17458
+ };
17459
+
17460
+ prototypeAccessors.state.set = function (v) {
17461
+ if (process.env.NODE_ENV !== 'production') {
17462
+ assert(false, "Use store.replaceState() to explicit replace store state.");
17463
+ }
17464
+ };
17465
+
17466
+ Store.prototype.commit = function commit (_type, _payload, _options) {
17467
+ var this$1 = this;
17468
+
17469
+ // check object-style commit
17470
+ var ref = unifyObjectStyle(_type, _payload, _options);
17471
+ var type = ref.type;
17472
+ var payload = ref.payload;
17473
+ var options = ref.options;
17474
+
17475
+ var mutation = { type: type, payload: payload };
17476
+ var entry = this._mutations[type];
17477
+ if (!entry) {
17478
+ if (process.env.NODE_ENV !== 'production') {
17479
+ console.error(("[vuex] unknown mutation type: " + type));
17480
+ }
17481
+ return
17482
+ }
17483
+ this._withCommit(function () {
17484
+ entry.forEach(function commitIterator (handler) {
17485
+ handler(payload);
17486
+ });
17487
+ });
17488
+ this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });
17489
+
17490
+ if (
17491
+ process.env.NODE_ENV !== 'production' &&
17492
+ options && options.silent
17493
+ ) {
17494
+ console.warn(
17495
+ "[vuex] mutation type: " + type + ". Silent option has been removed. " +
17496
+ 'Use the filter functionality in the vue-devtools'
17497
+ );
17498
+ }
17499
+ };
17500
+
17501
+ Store.prototype.dispatch = function dispatch (_type, _payload) {
17502
+ var this$1 = this;
17503
+
17504
+ // check object-style dispatch
17505
+ var ref = unifyObjectStyle(_type, _payload);
17506
+ var type = ref.type;
17507
+ var payload = ref.payload;
17508
+
17509
+ var action = { type: type, payload: payload };
17510
+ var entry = this._actions[type];
17511
+ if (!entry) {
17512
+ if (process.env.NODE_ENV !== 'production') {
17513
+ console.error(("[vuex] unknown action type: " + type));
17514
+ }
17515
+ return
17516
+ }
17517
+
17518
+ this._actionSubscribers.forEach(function (sub) { return sub(action, this$1.state); });
17519
+
17520
+ return entry.length > 1
17521
+ ? Promise.all(entry.map(function (handler) { return handler(payload); }))
17522
+ : entry[0](payload)
17523
+ };
17524
+
17525
+ Store.prototype.subscribe = function subscribe (fn) {
17526
+ return genericSubscribe(fn, this._subscribers)
17527
+ };
17528
+
17529
+ Store.prototype.subscribeAction = function subscribeAction (fn) {
17530
+ return genericSubscribe(fn, this._actionSubscribers)
17531
+ };
17532
+
17533
+ Store.prototype.watch = function watch (getter, cb, options) {
17534
+ var this$1 = this;
17535
+
17536
+ if (process.env.NODE_ENV !== 'production') {
17537
+ assert(typeof getter === 'function', "store.watch only accepts a function.");
17538
+ }
17539
+ return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)
17540
+ };
17541
+
17542
+ Store.prototype.replaceState = function replaceState (state) {
17543
+ var this$1 = this;
17544
+
17545
+ this._withCommit(function () {
17546
+ this$1._vm._data.$$state = state;
17547
+ });
17548
+ };
17549
+
17550
+ Store.prototype.registerModule = function registerModule (path, rawModule, options) {
17551
+ if ( options === void 0 ) options = {};
17552
+
17553
+ if (typeof path === 'string') { path = [path]; }
17554
+
17555
+ if (process.env.NODE_ENV !== 'production') {
17556
+ assert(Array.isArray(path), "module path must be a string or an Array.");
17557
+ assert(path.length > 0, 'cannot register the root module by using registerModule.');
17558
+ }
17559
+
17560
+ this._modules.register(path, rawModule);
17561
+ installModule(this, this.state, path, this._modules.get(path), options.preserveState);
17562
+ // reset store to update getters...
17563
+ resetStoreVM(this, this.state);
17564
+ };
17565
+
17566
+ Store.prototype.unregisterModule = function unregisterModule (path) {
17567
+ var this$1 = this;
17568
+
17569
+ if (typeof path === 'string') { path = [path]; }
17570
+
17571
+ if (process.env.NODE_ENV !== 'production') {
17572
+ assert(Array.isArray(path), "module path must be a string or an Array.");
17573
+ }
17574
+
17575
+ this._modules.unregister(path);
17576
+ this._withCommit(function () {
17577
+ var parentState = getNestedState(this$1.state, path.slice(0, -1));
17578
+ Vue.delete(parentState, path[path.length - 1]);
17579
+ });
17580
+ resetStore(this);
17581
+ };
17582
+
17583
+ Store.prototype.hotUpdate = function hotUpdate (newOptions) {
17584
+ this._modules.update(newOptions);
17585
+ resetStore(this, true);
17586
+ };
17587
+
17588
+ Store.prototype._withCommit = function _withCommit (fn) {
17589
+ var committing = this._committing;
17590
+ this._committing = true;
17591
+ fn();
17592
+ this._committing = committing;
17593
+ };
17594
+
17595
+ Object.defineProperties( Store.prototype, prototypeAccessors );
17596
+
17597
+ function genericSubscribe (fn, subs) {
17598
+ if (subs.indexOf(fn) < 0) {
17599
+ subs.push(fn);
17600
+ }
17601
+ return function () {
17602
+ var i = subs.indexOf(fn);
17603
+ if (i > -1) {
17604
+ subs.splice(i, 1);
17605
+ }
17606
+ }
17607
+ }
17608
+
17609
+ function resetStore (store, hot) {
17610
+ store._actions = Object.create(null);
17611
+ store._mutations = Object.create(null);
17612
+ store._wrappedGetters = Object.create(null);
17613
+ store._modulesNamespaceMap = Object.create(null);
17614
+ var state = store.state;
17615
+ // init all modules
17616
+ installModule(store, state, [], store._modules.root, true);
17617
+ // reset vm
17618
+ resetStoreVM(store, state, hot);
17619
+ }
17620
+
17621
+ function resetStoreVM (store, state, hot) {
17622
+ var oldVm = store._vm;
17623
+
17624
+ // bind store public getters
17625
+ store.getters = {};
17626
+ var wrappedGetters = store._wrappedGetters;
17627
+ var computed = {};
17628
+ forEachValue(wrappedGetters, function (fn, key) {
17629
+ // use computed to leverage its lazy-caching mechanism
17630
+ computed[key] = function () { return fn(store); };
17631
+ Object.defineProperty(store.getters, key, {
17632
+ get: function () { return store._vm[key]; },
17633
+ enumerable: true // for local getters
17634
+ });
17635
+ });
17636
+
17637
+ // use a Vue instance to store the state tree
17638
+ // suppress warnings just in case the user has added
17639
+ // some funky global mixins
17640
+ var silent = Vue.config.silent;
17641
+ Vue.config.silent = true;
17642
+ store._vm = new Vue({
17643
+ data: {
17644
+ $$state: state
17645
+ },
17646
+ computed: computed
17647
+ });
17648
+ Vue.config.silent = silent;
17649
+
17650
+ // enable strict mode for new vm
17651
+ if (store.strict) {
17652
+ enableStrictMode(store);
17653
+ }
17654
+
17655
+ if (oldVm) {
17656
+ if (hot) {
17657
+ // dispatch changes in all subscribed watchers
17658
+ // to force getter re-evaluation for hot reloading.
17659
+ store._withCommit(function () {
17660
+ oldVm._data.$$state = null;
17661
+ });
17662
+ }
17663
+ Vue.nextTick(function () { return oldVm.$destroy(); });
17664
+ }
17665
+ }
17666
+
17667
+ function installModule (store, rootState, path, module, hot) {
17668
+ var isRoot = !path.length;
17669
+ var namespace = store._modules.getNamespace(path);
17670
+
17671
+ // register in namespace map
17672
+ if (module.namespaced) {
17673
+ store._modulesNamespaceMap[namespace] = module;
17674
+ }
17675
+
17676
+ // set state
17677
+ if (!isRoot && !hot) {
17678
+ var parentState = getNestedState(rootState, path.slice(0, -1));
17679
+ var moduleName = path[path.length - 1];
17680
+ store._withCommit(function () {
17681
+ Vue.set(parentState, moduleName, module.state);
17682
+ });
17683
+ }
17684
+
17685
+ var local = module.context = makeLocalContext(store, namespace, path);
17686
+
17687
+ module.forEachMutation(function (mutation, key) {
17688
+ var namespacedType = namespace + key;
17689
+ registerMutation(store, namespacedType, mutation, local);
17690
+ });
17691
+
17692
+ module.forEachAction(function (action, key) {
17693
+ var type = action.root ? key : namespace + key;
17694
+ var handler = action.handler || action;
17695
+ registerAction(store, type, handler, local);
17696
+ });
17697
+
17698
+ module.forEachGetter(function (getter, key) {
17699
+ var namespacedType = namespace + key;
17700
+ registerGetter(store, namespacedType, getter, local);
17701
+ });
17702
+
17703
+ module.forEachChild(function (child, key) {
17704
+ installModule(store, rootState, path.concat(key), child, hot);
17705
+ });
17706
+ }
17707
+
17708
+ /**
17709
+ * make localized dispatch, commit, getters and state
17710
+ * if there is no namespace, just use root ones
17711
+ */
17712
+ function makeLocalContext (store, namespace, path) {
17713
+ var noNamespace = namespace === '';
17714
+
17715
+ var local = {
17716
+ dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
17717
+ var args = unifyObjectStyle(_type, _payload, _options);
17718
+ var payload = args.payload;
17719
+ var options = args.options;
17720
+ var type = args.type;
17721
+
17722
+ if (!options || !options.root) {
17723
+ type = namespace + type;
17724
+ if (process.env.NODE_ENV !== 'production' && !store._actions[type]) {
17725
+ console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
17726
+ return
17727
+ }
17728
+ }
17729
+
17730
+ return store.dispatch(type, payload)
17731
+ },
17732
+
17733
+ commit: noNamespace ? store.commit : function (_type, _payload, _options) {
17734
+ var args = unifyObjectStyle(_type, _payload, _options);
17735
+ var payload = args.payload;
17736
+ var options = args.options;
17737
+ var type = args.type;
17738
+
17739
+ if (!options || !options.root) {
17740
+ type = namespace + type;
17741
+ if (process.env.NODE_ENV !== 'production' && !store._mutations[type]) {
17742
+ console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
17743
+ return
17744
+ }
17745
+ }
17746
+
17747
+ store.commit(type, payload, options);
17748
+ }
17749
+ };
17750
+
17751
+ // getters and state object must be gotten lazily
17752
+ // because they will be changed by vm update
17753
+ Object.defineProperties(local, {
17754
+ getters: {
17755
+ get: noNamespace
17756
+ ? function () { return store.getters; }
17757
+ : function () { return makeLocalGetters(store, namespace); }
17758
+ },
17759
+ state: {
17760
+ get: function () { return getNestedState(store.state, path); }
17761
+ }
17762
+ });
17763
+
17764
+ return local
17765
+ }
17766
+
17767
+ function makeLocalGetters (store, namespace) {
17768
+ var gettersProxy = {};
17769
+
17770
+ var splitPos = namespace.length;
17771
+ Object.keys(store.getters).forEach(function (type) {
17772
+ // skip if the target getter is not match this namespace
17773
+ if (type.slice(0, splitPos) !== namespace) { return }
17774
+
17775
+ // extract local getter type
17776
+ var localType = type.slice(splitPos);
17777
+
17778
+ // Add a port to the getters proxy.
17779
+ // Define as getter property because
17780
+ // we do not want to evaluate the getters in this time.
17781
+ Object.defineProperty(gettersProxy, localType, {
17782
+ get: function () { return store.getters[type]; },
17783
+ enumerable: true
17784
+ });
17785
+ });
17786
+
17787
+ return gettersProxy
17788
+ }
17789
+
17790
+ function registerMutation (store, type, handler, local) {
17791
+ var entry = store._mutations[type] || (store._mutations[type] = []);
17792
+ entry.push(function wrappedMutationHandler (payload) {
17793
+ handler.call(store, local.state, payload);
17794
+ });
17795
+ }
17796
+
17797
+ function registerAction (store, type, handler, local) {
17798
+ var entry = store._actions[type] || (store._actions[type] = []);
17799
+ entry.push(function wrappedActionHandler (payload, cb) {
17800
+ var res = handler.call(store, {
17801
+ dispatch: local.dispatch,
17802
+ commit: local.commit,
17803
+ getters: local.getters,
17804
+ state: local.state,
17805
+ rootGetters: store.getters,
17806
+ rootState: store.state
17807
+ }, payload, cb);
17808
+ if (!isPromise(res)) {
17809
+ res = Promise.resolve(res);
17810
+ }
17811
+ if (store._devtoolHook) {
17812
+ return res.catch(function (err) {
17813
+ store._devtoolHook.emit('vuex:error', err);
17814
+ throw err
17815
+ })
17816
+ } else {
17817
+ return res
17818
+ }
17819
+ });
17820
+ }
17821
+
17822
+ function registerGetter (store, type, rawGetter, local) {
17823
+ if (store._wrappedGetters[type]) {
17824
+ if (process.env.NODE_ENV !== 'production') {
17825
+ console.error(("[vuex] duplicate getter key: " + type));
17826
+ }
17827
+ return
17828
+ }
17829
+ store._wrappedGetters[type] = function wrappedGetter (store) {
17830
+ return rawGetter(
17831
+ local.state, // local state
17832
+ local.getters, // local getters
17833
+ store.state, // root state
17834
+ store.getters // root getters
17835
+ )
17836
+ };
17837
+ }
17838
+
17839
+ function enableStrictMode (store) {
17840
+ store._vm.$watch(function () { return this._data.$$state }, function () {
17841
+ if (process.env.NODE_ENV !== 'production') {
17842
+ assert(store._committing, "Do not mutate vuex store state outside mutation handlers.");
17843
+ }
17844
+ }, { deep: true, sync: true });
17845
+ }
17846
+
17847
+ function getNestedState (state, path) {
17848
+ return path.length
17849
+ ? path.reduce(function (state, key) { return state[key]; }, state)
17850
+ : state
17851
+ }
17852
+
17853
+ function unifyObjectStyle (type, payload, options) {
17854
+ if (isObject(type) && type.type) {
17855
+ options = payload;
17856
+ payload = type;
17857
+ type = type.type;
17858
+ }
17859
+
17860
+ if (process.env.NODE_ENV !== 'production') {
17861
+ assert(typeof type === 'string', ("Expects string as the type, but found " + (typeof type) + "."));
17862
+ }
17863
+
17864
+ return { type: type, payload: payload, options: options }
17865
+ }
17866
+
17867
+ function install (_Vue) {
17868
+ if (Vue && _Vue === Vue) {
17869
+ if (process.env.NODE_ENV !== 'production') {
17870
+ console.error(
17871
+ '[vuex] already installed. Vue.use(Vuex) should be called only once.'
17872
+ );
17873
+ }
17874
+ return
17875
+ }
17876
+ Vue = _Vue;
17877
+ applyMixin(Vue);
17878
+ }
17879
+
17880
+ var mapState = normalizeNamespace(function (namespace, states) {
17881
+ var res = {};
17882
+ normalizeMap(states).forEach(function (ref) {
17883
+ var key = ref.key;
17884
+ var val = ref.val;
17885
+
17886
+ res[key] = function mappedState () {
17887
+ var state = this.$store.state;
17888
+ var getters = this.$store.getters;
17889
+ if (namespace) {
17890
+ var module = getModuleByNamespace(this.$store, 'mapState', namespace);
17891
+ if (!module) {
17892
+ return
17893
+ }
17894
+ state = module.context.state;
17895
+ getters = module.context.getters;
17896
+ }
17897
+ return typeof val === 'function'
17898
+ ? val.call(this, state, getters)
17899
+ : state[val]
17900
+ };
17901
+ // mark vuex getter for devtools
17902
+ res[key].vuex = true;
17903
+ });
17904
+ return res
17905
+ });
17906
+
17907
+ var mapMutations = normalizeNamespace(function (namespace, mutations) {
17908
+ var res = {};
17909
+ normalizeMap(mutations).forEach(function (ref) {
17910
+ var key = ref.key;
17911
+ var val = ref.val;
17912
+
17913
+ res[key] = function mappedMutation () {
17914
+ var args = [], len = arguments.length;
17915
+ while ( len-- ) args[ len ] = arguments[ len ];
17916
+
17917
+ var commit = this.$store.commit;
17918
+ if (namespace) {
17919
+ var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
17920
+ if (!module) {
17921
+ return
17922
+ }
17923
+ commit = module.context.commit;
17924
+ }
17925
+ return typeof val === 'function'
17926
+ ? val.apply(this, [commit].concat(args))
17927
+ : commit.apply(this.$store, [val].concat(args))
17928
+ };
17929
+ });
17930
+ return res
17931
+ });
17932
+
17933
+ var mapGetters = normalizeNamespace(function (namespace, getters) {
17934
+ var res = {};
17935
+ normalizeMap(getters).forEach(function (ref) {
17936
+ var key = ref.key;
17937
+ var val = ref.val;
17938
+
17939
+ val = namespace + val;
17940
+ res[key] = function mappedGetter () {
17941
+ if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
17942
+ return
17943
+ }
17944
+ if (process.env.NODE_ENV !== 'production' && !(val in this.$store.getters)) {
17945
+ console.error(("[vuex] unknown getter: " + val));
17946
+ return
17947
+ }
17948
+ return this.$store.getters[val]
17949
+ };
17950
+ // mark vuex getter for devtools
17951
+ res[key].vuex = true;
17952
+ });
17953
+ return res
17954
+ });
17955
+
17956
+ var mapActions = normalizeNamespace(function (namespace, actions) {
17957
+ var res = {};
17958
+ normalizeMap(actions).forEach(function (ref) {
17959
+ var key = ref.key;
17960
+ var val = ref.val;
17961
+
17962
+ res[key] = function mappedAction () {
17963
+ var args = [], len = arguments.length;
17964
+ while ( len-- ) args[ len ] = arguments[ len ];
17965
+
17966
+ var dispatch = this.$store.dispatch;
17967
+ if (namespace) {
17968
+ var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
17969
+ if (!module) {
17970
+ return
17971
+ }
17972
+ dispatch = module.context.dispatch;
17973
+ }
17974
+ return typeof val === 'function'
17975
+ ? val.apply(this, [dispatch].concat(args))
17976
+ : dispatch.apply(this.$store, [val].concat(args))
17977
+ };
17978
+ });
17979
+ return res
17980
+ });
17981
+
17982
+ var createNamespacedHelpers = function (namespace) { return ({
17983
+ mapState: mapState.bind(null, namespace),
17984
+ mapGetters: mapGetters.bind(null, namespace),
17985
+ mapMutations: mapMutations.bind(null, namespace),
17986
+ mapActions: mapActions.bind(null, namespace)
17987
+ }); };
17988
+
17989
+ function normalizeMap (map) {
17990
+ return Array.isArray(map)
17991
+ ? map.map(function (key) { return ({ key: key, val: key }); })
17992
+ : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
17993
+ }
17994
+
17995
+ function normalizeNamespace (fn) {
17996
+ return function (namespace, map) {
17997
+ if (typeof namespace !== 'string') {
17998
+ map = namespace;
17999
+ namespace = '';
18000
+ } else if (namespace.charAt(namespace.length - 1) !== '/') {
18001
+ namespace += '/';
18002
+ }
18003
+ return fn(namespace, map)
18004
+ }
18005
+ }
18006
+
18007
+ function getModuleByNamespace (store, helper, namespace) {
18008
+ var module = store._modulesNamespaceMap[namespace];
18009
+ if (process.env.NODE_ENV !== 'production' && !module) {
18010
+ console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
18011
+ }
18012
+ return module
18013
+ }
18014
+
18015
+ var index_esm = {
18016
+ Store: Store,
18017
+ install: install,
18018
+ version: '2.5.0',
18019
+ mapState: mapState,
18020
+ mapMutations: mapMutations,
18021
+ mapGetters: mapGetters,
18022
+ mapActions: mapActions,
18023
+ createNamespacedHelpers: createNamespacedHelpers
18024
+ };
18025
+
18026
+
18027
+ /* harmony default export */ __webpack_exports__["default"] = (index_esm);
18028
+
18029
+ /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(8)))
18030
+
18031
+ /***/ }),
18032
+ /* 38 */
18033
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
18034
+
18035
+ "use strict";
18036
+ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
18037
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Url", function() { return Url; });
18038
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Http", function() { return Http; });
18039
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Resource", function() { return Resource; });
18040
+ /*!
18041
+ * vue-resource v1.5.0
18042
+ * https://github.com/pagekit/vue-resource
18043
+ * Released under the MIT License.
18044
+ */
18045
+
18046
+ /**
18047
+ * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)
18048
+ */
18049
+
18050
+ var RESOLVED = 0;
18051
+ var REJECTED = 1;
18052
+ var PENDING = 2;
18053
+
18054
+ function Promise$1(executor) {
18055
+
18056
+ this.state = PENDING;
18057
+ this.value = undefined;
18058
+ this.deferred = [];
18059
+
18060
+ var promise = this;
18061
+
18062
+ try {
18063
+ executor(function (x) {
18064
+ promise.resolve(x);
18065
+ }, function (r) {
18066
+ promise.reject(r);
18067
+ });
18068
+ } catch (e) {
18069
+ promise.reject(e);
18070
+ }
18071
+ }
18072
+
18073
+ Promise$1.reject = function (r) {
18074
+ return new Promise$1(function (resolve, reject) {
18075
+ reject(r);
18076
+ });
18077
+ };
18078
+
18079
+ Promise$1.resolve = function (x) {
18080
+ return new Promise$1(function (resolve, reject) {
18081
+ resolve(x);
18082
+ });
18083
+ };
18084
+
18085
+ Promise$1.all = function all(iterable) {
18086
+ return new Promise$1(function (resolve, reject) {
18087
+ var count = 0, result = [];
18088
+
18089
+ if (iterable.length === 0) {
18090
+ resolve(result);
18091
+ }
18092
+
18093
+ function resolver(i) {
18094
+ return function (x) {
18095
+ result[i] = x;
18096
+ count += 1;
18097
+
18098
+ if (count === iterable.length) {
18099
+ resolve(result);
18100
+ }
18101
+ };
18102
+ }
18103
+
18104
+ for (var i = 0; i < iterable.length; i += 1) {
18105
+ Promise$1.resolve(iterable[i]).then(resolver(i), reject);
18106
+ }
18107
+ });
18108
+ };
18109
+
18110
+ Promise$1.race = function race(iterable) {
18111
+ return new Promise$1(function (resolve, reject) {
18112
+ for (var i = 0; i < iterable.length; i += 1) {
18113
+ Promise$1.resolve(iterable[i]).then(resolve, reject);
18114
+ }
18115
+ });
18116
+ };
18117
+
18118
+ var p = Promise$1.prototype;
18119
+
18120
+ p.resolve = function resolve(x) {
18121
+ var promise = this;
18122
+
18123
+ if (promise.state === PENDING) {
18124
+ if (x === promise) {
18125
+ throw new TypeError('Promise settled with itself.');
18126
+ }
18127
+
18128
+ var called = false;
18129
+
18130
+ try {
18131
+ var then = x && x['then'];
18132
+
18133
+ if (x !== null && typeof x === 'object' && typeof then === 'function') {
18134
+ then.call(x, function (x) {
18135
+ if (!called) {
18136
+ promise.resolve(x);
18137
+ }
18138
+ called = true;
18139
+
18140
+ }, function (r) {
18141
+ if (!called) {
18142
+ promise.reject(r);
18143
+ }
18144
+ called = true;
18145
+ });
18146
+ return;
18147
+ }
18148
+ } catch (e) {
18149
+ if (!called) {
18150
+ promise.reject(e);
18151
+ }
18152
+ return;
18153
+ }
18154
+
18155
+ promise.state = RESOLVED;
18156
+ promise.value = x;
18157
+ promise.notify();
18158
+ }
18159
+ };
18160
+
18161
+ p.reject = function reject(reason) {
18162
+ var promise = this;
18163
+
18164
+ if (promise.state === PENDING) {
18165
+ if (reason === promise) {
18166
+ throw new TypeError('Promise settled with itself.');
18167
+ }
18168
+
18169
+ promise.state = REJECTED;
18170
+ promise.value = reason;
18171
+ promise.notify();
18172
+ }
18173
+ };
18174
+
18175
+ p.notify = function notify() {
18176
+ var promise = this;
18177
+
18178
+ nextTick(function () {
18179
+ if (promise.state !== PENDING) {
18180
+ while (promise.deferred.length) {
18181
+ var deferred = promise.deferred.shift(),
18182
+ onResolved = deferred[0],
18183
+ onRejected = deferred[1],
18184
+ resolve = deferred[2],
18185
+ reject = deferred[3];
18186
+
18187
+ try {
18188
+ if (promise.state === RESOLVED) {
18189
+ if (typeof onResolved === 'function') {
18190
+ resolve(onResolved.call(undefined, promise.value));
18191
+ } else {
18192
+ resolve(promise.value);
18193
+ }
18194
+ } else if (promise.state === REJECTED) {
18195
+ if (typeof onRejected === 'function') {
18196
+ resolve(onRejected.call(undefined, promise.value));
18197
+ } else {
18198
+ reject(promise.value);
18199
+ }
18200
+ }
18201
+ } catch (e) {
18202
+ reject(e);
18203
+ }
18204
+ }
18205
+ }
18206
+ });
18207
+ };
18208
+
18209
+ p.then = function then(onResolved, onRejected) {
18210
+ var promise = this;
18211
+
18212
+ return new Promise$1(function (resolve, reject) {
18213
+ promise.deferred.push([onResolved, onRejected, resolve, reject]);
18214
+ promise.notify();
18215
+ });
18216
+ };
18217
+
18218
+ p.catch = function (onRejected) {
18219
+ return this.then(undefined, onRejected);
18220
+ };
18221
+
18222
+ /**
18223
+ * Promise adapter.
18224
+ */
18225
+
18226
+ if (typeof Promise === 'undefined') {
18227
+ window.Promise = Promise$1;
18228
+ }
18229
+
18230
+ function PromiseObj(executor, context) {
18231
+
18232
+ if (executor instanceof Promise) {
18233
+ this.promise = executor;
18234
+ } else {
18235
+ this.promise = new Promise(executor.bind(context));
18236
+ }
18237
+
18238
+ this.context = context;
18239
+ }
18240
+
18241
+ PromiseObj.all = function (iterable, context) {
18242
+ return new PromiseObj(Promise.all(iterable), context);
18243
+ };
18244
+
18245
+ PromiseObj.resolve = function (value, context) {
18246
+ return new PromiseObj(Promise.resolve(value), context);
18247
+ };
18248
+
18249
+ PromiseObj.reject = function (reason, context) {
18250
+ return new PromiseObj(Promise.reject(reason), context);
18251
+ };
18252
+
18253
+ PromiseObj.race = function (iterable, context) {
18254
+ return new PromiseObj(Promise.race(iterable), context);
18255
+ };
18256
+
18257
+ var p$1 = PromiseObj.prototype;
18258
+
18259
+ p$1.bind = function (context) {
18260
+ this.context = context;
18261
+ return this;
18262
+ };
18263
+
18264
+ p$1.then = function (fulfilled, rejected) {
18265
+
18266
+ if (fulfilled && fulfilled.bind && this.context) {
18267
+ fulfilled = fulfilled.bind(this.context);
18268
+ }
18269
+
18270
+ if (rejected && rejected.bind && this.context) {
18271
+ rejected = rejected.bind(this.context);
18272
+ }
18273
+
18274
+ return new PromiseObj(this.promise.then(fulfilled, rejected), this.context);
18275
+ };
18276
+
18277
+ p$1.catch = function (rejected) {
18278
+
18279
+ if (rejected && rejected.bind && this.context) {
18280
+ rejected = rejected.bind(this.context);
18281
+ }
18282
+
18283
+ return new PromiseObj(this.promise.catch(rejected), this.context);
18284
+ };
18285
+
18286
+ p$1.finally = function (callback) {
18287
+
18288
+ return this.then(function (value) {
18289
+ callback.call(this);
18290
+ return value;
18291
+ }, function (reason) {
18292
+ callback.call(this);
18293
+ return Promise.reject(reason);
18294
+ }
18295
+ );
18296
+ };
18297
+
18298
+ /**
18299
+ * Utility functions.
18300
+ */
18301
+
18302
+ var ref = {};
18303
+ var hasOwnProperty = ref.hasOwnProperty;
18304
+ var ref$1 = [];
18305
+ var slice = ref$1.slice;
18306
+ var debug = false, ntick;
18307
+
18308
+ var inBrowser = typeof window !== 'undefined';
18309
+
18310
+ function Util (ref) {
18311
+ var config = ref.config;
18312
+ var nextTick = ref.nextTick;
18313
+
18314
+ ntick = nextTick;
18315
+ debug = config.debug || !config.silent;
18316
+ }
18317
+
18318
+ function warn(msg) {
18319
+ if (typeof console !== 'undefined' && debug) {
18320
+ console.warn('[VueResource warn]: ' + msg);
18321
+ }
18322
+ }
18323
+
18324
+ function error(msg) {
18325
+ if (typeof console !== 'undefined') {
18326
+ console.error(msg);
18327
+ }
18328
+ }
18329
+
18330
+ function nextTick(cb, ctx) {
18331
+ return ntick(cb, ctx);
18332
+ }
18333
+
18334
+ function trim(str) {
18335
+ return str ? str.replace(/^\s*|\s*$/g, '') : '';
18336
+ }
18337
+
18338
+ function trimEnd(str, chars) {
18339
+
18340
+ if (str && chars === undefined) {
18341
+ return str.replace(/\s+$/, '');
18342
+ }
18343
+
18344
+ if (!str || !chars) {
18345
+ return str;
18346
+ }
18347
+
18348
+ return str.replace(new RegExp(("[" + chars + "]+$")), '');
18349
+ }
18350
+
18351
+ function toLower(str) {
18352
+ return str ? str.toLowerCase() : '';
18353
+ }
18354
+
18355
+ function toUpper(str) {
18356
+ return str ? str.toUpperCase() : '';
18357
+ }
18358
+
18359
+ var isArray = Array.isArray;
18360
+
18361
+ function isString(val) {
18362
+ return typeof val === 'string';
18363
+ }
18364
+
18365
+ function isFunction(val) {
18366
+ return typeof val === 'function';
18367
+ }
18368
+
18369
+ function isObject(obj) {
18370
+ return obj !== null && typeof obj === 'object';
18371
+ }
18372
+
18373
+ function isPlainObject(obj) {
18374
+ return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;
18375
+ }
18376
+
18377
+ function isBlob(obj) {
18378
+ return typeof Blob !== 'undefined' && obj instanceof Blob;
18379
+ }
18380
+
18381
+ function isFormData(obj) {
18382
+ return typeof FormData !== 'undefined' && obj instanceof FormData;
18383
+ }
18384
+
18385
+ function when(value, fulfilled, rejected) {
18386
+
18387
+ var promise = PromiseObj.resolve(value);
18388
+
18389
+ if (arguments.length < 2) {
18390
+ return promise;
18391
+ }
18392
+
18393
+ return promise.then(fulfilled, rejected);
18394
+ }
18395
+
18396
+ function options(fn, obj, opts) {
18397
+
18398
+ opts = opts || {};
18399
+
18400
+ if (isFunction(opts)) {
18401
+ opts = opts.call(obj);
18402
+ }
18403
+
18404
+ return merge(fn.bind({$vm: obj, $options: opts}), fn, {$options: opts});
18405
+ }
18406
+
18407
+ function each(obj, iterator) {
18408
+
18409
+ var i, key;
18410
+
18411
+ if (isArray(obj)) {
18412
+ for (i = 0; i < obj.length; i++) {
18413
+ iterator.call(obj[i], obj[i], i);
18414
+ }
18415
+ } else if (isObject(obj)) {
18416
+ for (key in obj) {
18417
+ if (hasOwnProperty.call(obj, key)) {
18418
+ iterator.call(obj[key], obj[key], key);
18419
+ }
18420
+ }
18421
+ }
18422
+
18423
+ return obj;
18424
+ }
18425
+
18426
+ var assign = Object.assign || _assign;
18427
+
18428
+ function merge(target) {
18429
+
18430
+ var args = slice.call(arguments, 1);
18431
+
18432
+ args.forEach(function (source) {
18433
+ _merge(target, source, true);
18434
+ });
18435
+
18436
+ return target;
18437
+ }
18438
+
18439
+ function defaults(target) {
18440
+
18441
+ var args = slice.call(arguments, 1);
18442
+
18443
+ args.forEach(function (source) {
18444
+
18445
+ for (var key in source) {
18446
+ if (target[key] === undefined) {
18447
+ target[key] = source[key];
18448
+ }
18449
+ }
18450
+
18451
+ });
18452
+
18453
+ return target;
18454
+ }
18455
+
18456
+ function _assign(target) {
18457
+
18458
+ var args = slice.call(arguments, 1);
18459
+
18460
+ args.forEach(function (source) {
18461
+ _merge(target, source);
18462
+ });
18463
+
18464
+ return target;
18465
+ }
18466
+
18467
+ function _merge(target, source, deep) {
18468
+ for (var key in source) {
18469
+ if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {
18470
+ if (isPlainObject(source[key]) && !isPlainObject(target[key])) {
18471
+ target[key] = {};
18472
+ }
18473
+ if (isArray(source[key]) && !isArray(target[key])) {
18474
+ target[key] = [];
18475
+ }
18476
+ _merge(target[key], source[key], deep);
18477
+ } else if (source[key] !== undefined) {
18478
+ target[key] = source[key];
18479
+ }
18480
+ }
18481
+ }
18482
+
18483
+ /**
18484
+ * Root Prefix Transform.
18485
+ */
18486
+
18487
+ function root (options$$1, next) {
18488
+
18489
+ var url = next(options$$1);
18490
+
18491
+ if (isString(options$$1.root) && !/^(https?:)?\//.test(url)) {
18492
+ url = trimEnd(options$$1.root, '/') + '/' + url;
18493
+ }
18494
+
18495
+ return url;
18496
+ }
18497
+
18498
+ /**
18499
+ * Query Parameter Transform.
18500
+ */
18501
+
18502
+ function query (options$$1, next) {
18503
+
18504
+ var urlParams = Object.keys(Url.options.params), query = {}, url = next(options$$1);
18505
+
18506
+ each(options$$1.params, function (value, key) {
18507
+ if (urlParams.indexOf(key) === -1) {
18508
+ query[key] = value;
18509
+ }
18510
+ });
18511
+
18512
+ query = Url.params(query);
18513
+
18514
+ if (query) {
18515
+ url += (url.indexOf('?') == -1 ? '?' : '&') + query;
18516
+ }
18517
+
18518
+ return url;
18519
+ }
18520
+
18521
+ /**
18522
+ * URL Template v2.0.6 (https://github.com/bramstein/url-template)
18523
+ */
18524
+
18525
+ function expand(url, params, variables) {
18526
+
18527
+ var tmpl = parse(url), expanded = tmpl.expand(params);
18528
+
18529
+ if (variables) {
18530
+ variables.push.apply(variables, tmpl.vars);
18531
+ }
18532
+
18533
+ return expanded;
18534
+ }
18535
+
18536
+ function parse(template) {
18537
+
18538
+ var operators = ['+', '#', '.', '/', ';', '?', '&'], variables = [];
18539
+
18540
+ return {
18541
+ vars: variables,
18542
+ expand: function expand(context) {
18543
+ return template.replace(/\{([^{}]+)\}|([^{}]+)/g, function (_, expression, literal) {
18544
+ if (expression) {
18545
+
18546
+ var operator = null, values = [];
18547
+
18548
+ if (operators.indexOf(expression.charAt(0)) !== -1) {
18549
+ operator = expression.charAt(0);
18550
+ expression = expression.substr(1);
18551
+ }
18552
+
18553
+ expression.split(/,/g).forEach(function (variable) {
18554
+ var tmp = /([^:*]*)(?::(\d+)|(\*))?/.exec(variable);
18555
+ values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
18556
+ variables.push(tmp[1]);
18557
+ });
18558
+
18559
+ if (operator && operator !== '+') {
18560
+
18561
+ var separator = ',';
18562
+
18563
+ if (operator === '?') {
18564
+ separator = '&';
18565
+ } else if (operator !== '#') {
18566
+ separator = operator;
18567
+ }
18568
+
18569
+ return (values.length !== 0 ? operator : '') + values.join(separator);
18570
+ } else {
18571
+ return values.join(',');
18572
+ }
18573
+
18574
+ } else {
18575
+ return encodeReserved(literal);
18576
+ }
18577
+ });
18578
+ }
18579
+ };
18580
+ }
18581
+
18582
+ function getValues(context, operator, key, modifier) {
18583
+
18584
+ var value = context[key], result = [];
18585
+
18586
+ if (isDefined(value) && value !== '') {
18587
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
18588
+ value = value.toString();
18589
+
18590
+ if (modifier && modifier !== '*') {
18591
+ value = value.substring(0, parseInt(modifier, 10));
18592
+ }
18593
+
18594
+ result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));
18595
+ } else {
18596
+ if (modifier === '*') {
18597
+ if (Array.isArray(value)) {
18598
+ value.filter(isDefined).forEach(function (value) {
18599
+ result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));
18600
+ });
18601
+ } else {
18602
+ Object.keys(value).forEach(function (k) {
18603
+ if (isDefined(value[k])) {
18604
+ result.push(encodeValue(operator, value[k], k));
18605
+ }
18606
+ });
18607
+ }
18608
+ } else {
18609
+ var tmp = [];
18610
+
18611
+ if (Array.isArray(value)) {
18612
+ value.filter(isDefined).forEach(function (value) {
18613
+ tmp.push(encodeValue(operator, value));
18614
+ });
18615
+ } else {
18616
+ Object.keys(value).forEach(function (k) {
18617
+ if (isDefined(value[k])) {
18618
+ tmp.push(encodeURIComponent(k));
18619
+ tmp.push(encodeValue(operator, value[k].toString()));
18620
+ }
18621
+ });
18622
+ }
18623
+
18624
+ if (isKeyOperator(operator)) {
18625
+ result.push(encodeURIComponent(key) + '=' + tmp.join(','));
18626
+ } else if (tmp.length !== 0) {
18627
+ result.push(tmp.join(','));
18628
+ }
18629
+ }
18630
+ }
18631
+ } else {
18632
+ if (operator === ';') {
18633
+ result.push(encodeURIComponent(key));
18634
+ } else if (value === '' && (operator === '&' || operator === '?')) {
18635
+ result.push(encodeURIComponent(key) + '=');
18636
+ } else if (value === '') {
18637
+ result.push('');
18638
+ }
18639
+ }
18640
+
18641
+ return result;
18642
+ }
18643
+
18644
+ function isDefined(value) {
18645
+ return value !== undefined && value !== null;
18646
+ }
18647
+
18648
+ function isKeyOperator(operator) {
18649
+ return operator === ';' || operator === '&' || operator === '?';
18650
+ }
18651
+
18652
+ function encodeValue(operator, value, key) {
18653
+
18654
+ value = (operator === '+' || operator === '#') ? encodeReserved(value) : encodeURIComponent(value);
18655
+
18656
+ if (key) {
18657
+ return encodeURIComponent(key) + '=' + value;
18658
+ } else {
18659
+ return value;
18660
+ }
18661
+ }
18662
+
18663
+ function encodeReserved(str) {
18664
+ return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {
18665
+ if (!/%[0-9A-Fa-f]/.test(part)) {
18666
+ part = encodeURI(part);
18667
+ }
18668
+ return part;
18669
+ }).join('');
18670
+ }
18671
+
18672
+ /**
18673
+ * URL Template (RFC 6570) Transform.
18674
+ */
18675
+
18676
+ function template (options) {
18677
+
18678
+ var variables = [], url = expand(options.url, options.params, variables);
18679
+
18680
+ variables.forEach(function (key) {
18681
+ delete options.params[key];
18682
+ });
18683
+
18684
+ return url;
18685
+ }
18686
+
18687
+ /**
18688
+ * Service for URL templating.
18689
+ */
18690
+
18691
+ function Url(url, params) {
18692
+
18693
+ var self = this || {}, options$$1 = url, transform;
18694
+
18695
+ if (isString(url)) {
18696
+ options$$1 = {url: url, params: params};
18697
+ }
18698
+
18699
+ options$$1 = merge({}, Url.options, self.$options, options$$1);
18700
+
18701
+ Url.transforms.forEach(function (handler) {
18702
+
18703
+ if (isString(handler)) {
18704
+ handler = Url.transform[handler];
18705
+ }
18706
+
18707
+ if (isFunction(handler)) {
18708
+ transform = factory(handler, transform, self.$vm);
18709
+ }
18710
+
18711
+ });
18712
+
18713
+ return transform(options$$1);
18714
+ }
18715
+
18716
+ /**
18717
+ * Url options.
18718
+ */
18719
+
18720
+ Url.options = {
18721
+ url: '',
18722
+ root: null,
18723
+ params: {}
18724
+ };
18725
+
18726
+ /**
18727
+ * Url transforms.
18728
+ */
18729
+
18730
+ Url.transform = {template: template, query: query, root: root};
18731
+ Url.transforms = ['template', 'query', 'root'];
18732
+
18733
+ /**
18734
+ * Encodes a Url parameter string.
18735
+ *
18736
+ * @param {Object} obj
18737
+ */
18738
+
18739
+ Url.params = function (obj) {
18740
+
18741
+ var params = [], escape = encodeURIComponent;
18742
+
18743
+ params.add = function (key, value) {
18744
+
18745
+ if (isFunction(value)) {
18746
+ value = value();
18747
+ }
18748
+
18749
+ if (value === null) {
18750
+ value = '';
18751
+ }
18752
+
18753
+ this.push(escape(key) + '=' + escape(value));
18754
+ };
18755
+
18756
+ serialize(params, obj);
18757
+
18758
+ return params.join('&').replace(/%20/g, '+');
18759
+ };
18760
+
18761
+ /**
18762
+ * Parse a URL and return its components.
18763
+ *
18764
+ * @param {String} url
18765
+ */
18766
+
18767
+ Url.parse = function (url) {
18768
+
18769
+ var el = document.createElement('a');
18770
+
18771
+ if (document.documentMode) {
18772
+ el.href = url;
18773
+ url = el.href;
18774
+ }
18775
+
18776
+ el.href = url;
18777
+
18778
+ return {
18779
+ href: el.href,
18780
+ protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',
18781
+ port: el.port,
18782
+ host: el.host,
18783
+ hostname: el.hostname,
18784
+ pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,
18785
+ search: el.search ? el.search.replace(/^\?/, '') : '',
18786
+ hash: el.hash ? el.hash.replace(/^#/, '') : ''
18787
+ };
18788
+ };
18789
+
18790
+ function factory(handler, next, vm) {
18791
+ return function (options$$1) {
18792
+ return handler.call(vm, options$$1, next);
18793
+ };
18794
+ }
18795
+
18796
+ function serialize(params, obj, scope) {
18797
+
18798
+ var array = isArray(obj), plain = isPlainObject(obj), hash;
18799
+
18800
+ each(obj, function (value, key) {
18801
+
18802
+ hash = isObject(value) || isArray(value);
18803
+
18804
+ if (scope) {
18805
+ key = scope + '[' + (plain || hash ? key : '') + ']';
18806
+ }
18807
+
18808
+ if (!scope && array) {
18809
+ params.add(value.name, value.value);
18810
+ } else if (hash) {
18811
+ serialize(params, value, key);
18812
+ } else {
18813
+ params.add(key, value);
18814
+ }
18815
+ });
18816
+ }
18817
+
18818
+ /**
18819
+ * XDomain client (Internet Explorer).
18820
+ */
18821
+
18822
+ function xdrClient (request) {
18823
+ return new PromiseObj(function (resolve) {
18824
+
18825
+ var xdr = new XDomainRequest(), handler = function (ref) {
18826
+ var type = ref.type;
18827
+
18828
+
18829
+ var status = 0;
18830
+
18831
+ if (type === 'load') {
18832
+ status = 200;
18833
+ } else if (type === 'error') {
18834
+ status = 500;
18835
+ }
18836
+
18837
+ resolve(request.respondWith(xdr.responseText, {status: status}));
18838
+ };
18839
+
18840
+ request.abort = function () { return xdr.abort(); };
18841
+
18842
+ xdr.open(request.method, request.getUrl());
18843
+
18844
+ if (request.timeout) {
18845
+ xdr.timeout = request.timeout;
18846
+ }
18847
+
18848
+ xdr.onload = handler;
18849
+ xdr.onabort = handler;
18850
+ xdr.onerror = handler;
18851
+ xdr.ontimeout = handler;
18852
+ xdr.onprogress = function () {};
18853
+ xdr.send(request.getBody());
18854
+ });
18855
+ }
18856
+
18857
+ /**
18858
+ * CORS Interceptor.
18859
+ */
18860
+
18861
+ var SUPPORTS_CORS = inBrowser && 'withCredentials' in new XMLHttpRequest();
18862
+
18863
+ function cors (request) {
18864
+
18865
+ if (inBrowser) {
18866
+
18867
+ var orgUrl = Url.parse(location.href);
18868
+ var reqUrl = Url.parse(request.getUrl());
18869
+
18870
+ if (reqUrl.protocol !== orgUrl.protocol || reqUrl.host !== orgUrl.host) {
18871
+
18872
+ request.crossOrigin = true;
18873
+ request.emulateHTTP = false;
18874
+
18875
+ if (!SUPPORTS_CORS) {
18876
+ request.client = xdrClient;
18877
+ }
18878
+ }
18879
+ }
18880
+
18881
+ }
18882
+
18883
+ /**
18884
+ * Form data Interceptor.
18885
+ */
18886
+
18887
+ function form (request) {
18888
+
18889
+ if (isFormData(request.body)) {
18890
+ request.headers.delete('Content-Type');
18891
+ } else if (isObject(request.body) && request.emulateJSON) {
18892
+ request.body = Url.params(request.body);
18893
+ request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
18894
+ }
18895
+
18896
+ }
18897
+
18898
+ /**
18899
+ * JSON Interceptor.
18900
+ */
18901
+
18902
+ function json (request) {
18903
+
18904
+ var type = request.headers.get('Content-Type') || '';
18905
+
18906
+ if (isObject(request.body) && type.indexOf('application/json') === 0) {
18907
+ request.body = JSON.stringify(request.body);
18908
+ }
18909
+
18910
+ return function (response) {
18911
+
18912
+ return response.bodyText ? when(response.text(), function (text) {
18913
+
18914
+ var type = response.headers.get('Content-Type') || '';
18915
+
18916
+ if (type.indexOf('application/json') === 0 || isJson(text)) {
18917
+
18918
+ try {
18919
+ response.body = JSON.parse(text);
18920
+ } catch (e) {
18921
+ response.body = null;
18922
+ }
18923
+
18924
+ } else {
18925
+ response.body = text;
18926
+ }
18927
+
18928
+ return response;
18929
+
18930
+ }) : response;
18931
+
18932
+ };
18933
+ }
18934
+
18935
+ function isJson(str) {
18936
+
18937
+ var start = str.match(/^\s*(\[|\{)/);
18938
+ var end = {'[': /]\s*$/, '{': /}\s*$/};
18939
+
18940
+ return start && end[start[1]].test(str);
18941
+ }
18942
+
18943
+ /**
18944
+ * JSONP client (Browser).
18945
+ */
18946
+
18947
+ function jsonpClient (request) {
18948
+ return new PromiseObj(function (resolve) {
18949
+
18950
+ var name = request.jsonp || 'callback', callback = request.jsonpCallback || '_jsonp' + Math.random().toString(36).substr(2), body = null, handler, script;
18951
+
18952
+ handler = function (ref) {
18953
+ var type = ref.type;
18954
+
18955
+
18956
+ var status = 0;
18957
+
18958
+ if (type === 'load' && body !== null) {
18959
+ status = 200;
18960
+ } else if (type === 'error') {
18961
+ status = 500;
18962
+ }
18963
+
18964
+ if (status && window[callback]) {
18965
+ delete window[callback];
18966
+ document.body.removeChild(script);
18967
+ }
18968
+
18969
+ resolve(request.respondWith(body, {status: status}));
18970
+ };
18971
+
18972
+ window[callback] = function (result) {
18973
+ body = JSON.stringify(result);
18974
+ };
18975
+
18976
+ request.abort = function () {
18977
+ handler({type: 'abort'});
18978
+ };
18979
+
18980
+ request.params[name] = callback;
18981
+
18982
+ if (request.timeout) {
18983
+ setTimeout(request.abort, request.timeout);
18984
+ }
18985
+
18986
+ script = document.createElement('script');
18987
+ script.src = request.getUrl();
18988
+ script.type = 'text/javascript';
18989
+ script.async = true;
18990
+ script.onload = handler;
18991
+ script.onerror = handler;
18992
+
18993
+ document.body.appendChild(script);
18994
+ });
18995
+ }
18996
+
18997
+ /**
18998
+ * JSONP Interceptor.
18999
+ */
19000
+
19001
+ function jsonp (request) {
19002
+
19003
+ if (request.method == 'JSONP') {
19004
+ request.client = jsonpClient;
19005
+ }
19006
+
19007
+ }
19008
+
19009
+ /**
19010
+ * Before Interceptor.
19011
+ */
19012
+
19013
+ function before (request) {
19014
+
19015
+ if (isFunction(request.before)) {
19016
+ request.before.call(this, request);
19017
+ }
19018
+
19019
+ }
19020
+
19021
+ /**
19022
+ * HTTP method override Interceptor.
19023
+ */
19024
+
19025
+ function method (request) {
19026
+
19027
+ if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {
19028
+ request.headers.set('X-HTTP-Method-Override', request.method);
19029
+ request.method = 'POST';
19030
+ }
19031
+
19032
+ }
19033
+
19034
+ /**
19035
+ * Header Interceptor.
19036
+ */
19037
+
19038
+ function header (request) {
19039
+
19040
+ var headers = assign({}, Http.headers.common,
19041
+ !request.crossOrigin ? Http.headers.custom : {},
19042
+ Http.headers[toLower(request.method)]
19043
+ );
19044
+
19045
+ each(headers, function (value, name) {
19046
+ if (!request.headers.has(name)) {
19047
+ request.headers.set(name, value);
19048
+ }
19049
+ });
19050
+
19051
+ }
19052
+
19053
+ /**
19054
+ * XMLHttp client (Browser).
19055
+ */
19056
+
19057
+ function xhrClient (request) {
19058
+ return new PromiseObj(function (resolve) {
19059
+
19060
+ var xhr = new XMLHttpRequest(), handler = function (event) {
19061
+
19062
+ var response = request.respondWith(
19063
+ 'response' in xhr ? xhr.response : xhr.responseText, {
19064
+ status: xhr.status === 1223 ? 204 : xhr.status, // IE9 status bug
19065
+ statusText: xhr.status === 1223 ? 'No Content' : trim(xhr.statusText)
19066
+ });
19067
+
19068
+ each(trim(xhr.getAllResponseHeaders()).split('\n'), function (row) {
19069
+ response.headers.append(row.slice(0, row.indexOf(':')), row.slice(row.indexOf(':') + 1));
19070
+ });
19071
+
19072
+ resolve(response);
19073
+ };
19074
+
19075
+ request.abort = function () { return xhr.abort(); };
19076
+
19077
+ xhr.open(request.method, request.getUrl(), true);
19078
+
19079
+ if (request.timeout) {
19080
+ xhr.timeout = request.timeout;
19081
+ }
19082
+
19083
+ if (request.responseType && 'responseType' in xhr) {
19084
+ xhr.responseType = request.responseType;
19085
+ }
19086
+
19087
+ if (request.withCredentials || request.credentials) {
19088
+ xhr.withCredentials = true;
19089
+ }
19090
+
19091
+ if (!request.crossOrigin) {
19092
+ request.headers.set('X-Requested-With', 'XMLHttpRequest');
19093
+ }
19094
+
19095
+ // deprecated use downloadProgress
19096
+ if (isFunction(request.progress) && request.method === 'GET') {
19097
+ xhr.addEventListener('progress', request.progress);
19098
+ }
19099
+
19100
+ if (isFunction(request.downloadProgress)) {
19101
+ xhr.addEventListener('progress', request.downloadProgress);
19102
+ }
19103
+
19104
+ // deprecated use uploadProgress
19105
+ if (isFunction(request.progress) && /^(POST|PUT)$/i.test(request.method)) {
19106
+ xhr.upload.addEventListener('progress', request.progress);
19107
+ }
19108
+
19109
+ if (isFunction(request.uploadProgress) && xhr.upload) {
19110
+ xhr.upload.addEventListener('progress', request.uploadProgress);
19111
+ }
19112
+
19113
+ request.headers.forEach(function (value, name) {
19114
+ xhr.setRequestHeader(name, value);
19115
+ });
19116
+
19117
+ xhr.onload = handler;
19118
+ xhr.onabort = handler;
19119
+ xhr.onerror = handler;
19120
+ xhr.ontimeout = handler;
19121
+ xhr.send(request.getBody());
19122
+ });
19123
+ }
19124
+
19125
+ /**
19126
+ * Http client (Node).
19127
+ */
19128
+
19129
+ function nodeClient (request) {
19130
+
19131
+ var client = __webpack_require__(39);
19132
+
19133
+ return new PromiseObj(function (resolve) {
19134
+
19135
+ var url = request.getUrl();
19136
+ var body = request.getBody();
19137
+ var method = request.method;
19138
+ var headers = {}, handler;
19139
+
19140
+ request.headers.forEach(function (value, name) {
19141
+ headers[name] = value;
19142
+ });
19143
+
19144
+ client(url, {body: body, method: method, headers: headers}).then(handler = function (resp) {
19145
+
19146
+ var response = request.respondWith(resp.body, {
19147
+ status: resp.statusCode,
19148
+ statusText: trim(resp.statusMessage)
19149
+ });
19150
+
19151
+ each(resp.headers, function (value, name) {
19152
+ response.headers.set(name, value);
19153
+ });
19154
+
19155
+ resolve(response);
19156
+
19157
+ }, function (error$$1) { return handler(error$$1.response); });
19158
+ });
19159
+ }
19160
+
19161
+ /**
19162
+ * Base client.
19163
+ */
19164
+
19165
+ function Client (context) {
19166
+
19167
+ var reqHandlers = [sendRequest], resHandlers = [];
19168
+
19169
+ if (!isObject(context)) {
19170
+ context = null;
19171
+ }
19172
+
19173
+ function Client(request) {
19174
+ while (reqHandlers.length) {
19175
+
19176
+ var handler = reqHandlers.pop();
19177
+
19178
+ if (isFunction(handler)) {
19179
+
19180
+ var response = (void 0), next = (void 0);
19181
+
19182
+ response = handler.call(context, request, function (val) { return next = val; }) || next;
19183
+
19184
+ if (isObject(response)) {
19185
+ return new PromiseObj(function (resolve, reject) {
19186
+
19187
+ resHandlers.forEach(function (handler) {
19188
+ response = when(response, function (response) {
19189
+ return handler.call(context, response) || response;
19190
+ }, reject);
19191
+ });
19192
+
19193
+ when(response, resolve, reject);
19194
+
19195
+ }, context);
19196
+ }
19197
+
19198
+ if (isFunction(response)) {
19199
+ resHandlers.unshift(response);
19200
+ }
19201
+
19202
+ } else {
19203
+ warn(("Invalid interceptor of type " + (typeof handler) + ", must be a function"));
19204
+ }
19205
+ }
19206
+ }
19207
+
19208
+ Client.use = function (handler) {
19209
+ reqHandlers.push(handler);
19210
+ };
19211
+
19212
+ return Client;
19213
+ }
19214
+
19215
+ function sendRequest(request) {
19216
+
19217
+ var client = request.client || (inBrowser ? xhrClient : nodeClient);
19218
+
19219
+ return client(request);
19220
+ }
19221
+
19222
+ /**
19223
+ * HTTP Headers.
19224
+ */
19225
+
19226
+ var Headers = function Headers(headers) {
19227
+ var this$1 = this;
19228
+
19229
+
19230
+ this.map = {};
19231
+
19232
+ each(headers, function (value, name) { return this$1.append(name, value); });
19233
+ };
19234
+
19235
+ Headers.prototype.has = function has (name) {
19236
+ return getName(this.map, name) !== null;
19237
+ };
19238
+
19239
+ Headers.prototype.get = function get (name) {
19240
+
19241
+ var list = this.map[getName(this.map, name)];
19242
+
19243
+ return list ? list.join() : null;
19244
+ };
19245
+
19246
+ Headers.prototype.getAll = function getAll (name) {
19247
+ return this.map[getName(this.map, name)] || [];
19248
+ };
19249
+
19250
+ Headers.prototype.set = function set (name, value) {
19251
+ this.map[normalizeName(getName(this.map, name) || name)] = [trim(value)];
19252
+ };
19253
+
19254
+ Headers.prototype.append = function append (name, value) {
19255
+
19256
+ var list = this.map[getName(this.map, name)];
19257
+
19258
+ if (list) {
19259
+ list.push(trim(value));
19260
+ } else {
19261
+ this.set(name, value);
19262
+ }
19263
+ };
19264
+
19265
+ Headers.prototype.delete = function delete$1 (name) {
19266
+ delete this.map[getName(this.map, name)];
19267
+ };
19268
+
19269
+ Headers.prototype.deleteAll = function deleteAll () {
19270
+ this.map = {};
19271
+ };
19272
+
19273
+ Headers.prototype.forEach = function forEach (callback, thisArg) {
19274
+ var this$1 = this;
19275
+
19276
+ each(this.map, function (list, name) {
19277
+ each(list, function (value) { return callback.call(thisArg, value, name, this$1); });
19278
+ });
19279
+ };
19280
+
19281
+ function getName(map, name) {
19282
+ return Object.keys(map).reduce(function (prev, curr) {
19283
+ return toLower(name) === toLower(curr) ? curr : prev;
19284
+ }, null);
19285
+ }
19286
+
19287
+ function normalizeName(name) {
19288
+
19289
+ if (/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(name)) {
19290
+ throw new TypeError('Invalid character in header field name');
19291
+ }
19292
+
19293
+ return trim(name);
19294
+ }
19295
+
19296
+ /**
19297
+ * HTTP Response.
19298
+ */
19299
+
19300
+ var Response = function Response(body, ref) {
19301
+ var url = ref.url;
19302
+ var headers = ref.headers;
19303
+ var status = ref.status;
19304
+ var statusText = ref.statusText;
19305
+
19306
+
19307
+ this.url = url;
19308
+ this.ok = status >= 200 && status < 300;
19309
+ this.status = status || 0;
19310
+ this.statusText = statusText || '';
19311
+ this.headers = new Headers(headers);
19312
+ this.body = body;
19313
+
19314
+ if (isString(body)) {
19315
+
19316
+ this.bodyText = body;
19317
+
19318
+ } else if (isBlob(body)) {
19319
+
19320
+ this.bodyBlob = body;
19321
+
19322
+ if (isBlobText(body)) {
19323
+ this.bodyText = blobText(body);
19324
+ }
19325
+ }
19326
+ };
19327
+
19328
+ Response.prototype.blob = function blob () {
19329
+ return when(this.bodyBlob);
19330
+ };
19331
+
19332
+ Response.prototype.text = function text () {
19333
+ return when(this.bodyText);
19334
+ };
19335
+
19336
+ Response.prototype.json = function json () {
19337
+ return when(this.text(), function (text) { return JSON.parse(text); });
19338
+ };
19339
+
19340
+ Object.defineProperty(Response.prototype, 'data', {
19341
+
19342
+ get: function get() {
19343
+ return this.body;
19344
+ },
19345
+
19346
+ set: function set(body) {
19347
+ this.body = body;
19348
+ }
19349
+
19350
+ });
19351
+
19352
+ function blobText(body) {
19353
+ return new PromiseObj(function (resolve) {
19354
+
19355
+ var reader = new FileReader();
19356
+
19357
+ reader.readAsText(body);
19358
+ reader.onload = function () {
19359
+ resolve(reader.result);
19360
+ };
19361
+
19362
+ });
19363
+ }
19364
+
19365
+ function isBlobText(body) {
19366
+ return body.type.indexOf('text') === 0 || body.type.indexOf('json') !== -1;
19367
+ }
19368
+
19369
+ /**
19370
+ * HTTP Request.
19371
+ */
19372
+
19373
+ var Request = function Request(options$$1) {
19374
+
19375
+ this.body = null;
19376
+ this.params = {};
19377
+
19378
+ assign(this, options$$1, {
19379
+ method: toUpper(options$$1.method || 'GET')
19380
+ });
19381
+
19382
+ if (!(this.headers instanceof Headers)) {
19383
+ this.headers = new Headers(this.headers);
19384
+ }
19385
+ };
19386
+
19387
+ Request.prototype.getUrl = function getUrl () {
19388
+ return Url(this);
19389
+ };
19390
+
19391
+ Request.prototype.getBody = function getBody () {
19392
+ return this.body;
19393
+ };
19394
+
19395
+ Request.prototype.respondWith = function respondWith (body, options$$1) {
19396
+ return new Response(body, assign(options$$1 || {}, {url: this.getUrl()}));
19397
+ };
19398
+
19399
+ /**
19400
+ * Service for sending network requests.
19401
+ */
19402
+
19403
+ var COMMON_HEADERS = {'Accept': 'application/json, text/plain, */*'};
19404
+ var JSON_CONTENT_TYPE = {'Content-Type': 'application/json;charset=utf-8'};
19405
+
19406
+ function Http(options$$1) {
19407
+
19408
+ var self = this || {}, client = Client(self.$vm);
19409
+
19410
+ defaults(options$$1 || {}, self.$options, Http.options);
19411
+
19412
+ Http.interceptors.forEach(function (handler) {
19413
+
19414
+ if (isString(handler)) {
19415
+ handler = Http.interceptor[handler];
19416
+ }
19417
+
19418
+ if (isFunction(handler)) {
19419
+ client.use(handler);
19420
+ }
19421
+
19422
+ });
19423
+
19424
+ return client(new Request(options$$1)).then(function (response) {
19425
+
19426
+ return response.ok ? response : PromiseObj.reject(response);
19427
+
19428
+ }, function (response) {
19429
+
19430
+ if (response instanceof Error) {
19431
+ error(response);
19432
+ }
19433
+
19434
+ return PromiseObj.reject(response);
19435
+ });
19436
+ }
19437
+
19438
+ Http.options = {};
19439
+
19440
+ Http.headers = {
19441
+ put: JSON_CONTENT_TYPE,
19442
+ post: JSON_CONTENT_TYPE,
19443
+ patch: JSON_CONTENT_TYPE,
19444
+ delete: JSON_CONTENT_TYPE,
19445
+ common: COMMON_HEADERS,
19446
+ custom: {}
19447
+ };
19448
+
19449
+ Http.interceptor = {before: before, method: method, jsonp: jsonp, json: json, form: form, header: header, cors: cors};
19450
+ Http.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];
19451
+
19452
+ ['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {
19453
+
19454
+ Http[method$$1] = function (url, options$$1) {
19455
+ return this(assign(options$$1 || {}, {url: url, method: method$$1}));
19456
+ };
19457
+
19458
+ });
19459
+
19460
+ ['post', 'put', 'patch'].forEach(function (method$$1) {
19461
+
19462
+ Http[method$$1] = function (url, body, options$$1) {
19463
+ return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body}));
19464
+ };
19465
+
19466
+ });
19467
+
19468
+ /**
19469
+ * Service for interacting with RESTful services.
19470
+ */
19471
+
19472
+ function Resource(url, params, actions, options$$1) {
19473
+
19474
+ var self = this || {}, resource = {};
19475
+
19476
+ actions = assign({},
19477
+ Resource.actions,
19478
+ actions
19479
+ );
19480
+
19481
+ each(actions, function (action, name) {
19482
+
19483
+ action = merge({url: url, params: assign({}, params)}, options$$1, action);
19484
+
19485
+ resource[name] = function () {
19486
+ return (self.$http || Http)(opts(action, arguments));
19487
+ };
19488
+ });
19489
+
19490
+ return resource;
19491
+ }
19492
+
19493
+ function opts(action, args) {
19494
+
19495
+ var options$$1 = assign({}, action), params = {}, body;
19496
+
19497
+ switch (args.length) {
19498
+
19499
+ case 2:
19500
+
19501
+ params = args[0];
19502
+ body = args[1];
19503
+
19504
+ break;
19505
+
19506
+ case 1:
19507
+
19508
+ if (/^(POST|PUT|PATCH)$/i.test(options$$1.method)) {
19509
+ body = args[0];
19510
+ } else {
19511
+ params = args[0];
19512
+ }
19513
+
19514
+ break;
19515
+
19516
+ case 0:
19517
+
19518
+ break;
19519
+
19520
+ default:
19521
+
19522
+ throw 'Expected up to 2 arguments [params, body], got ' + args.length + ' arguments';
19523
+ }
19524
+
19525
+ options$$1.body = body;
19526
+ options$$1.params = assign({}, options$$1.params, params);
19527
+
19528
+ return options$$1;
19529
+ }
19530
+
19531
+ Resource.actions = {
19532
+
19533
+ get: {method: 'GET'},
19534
+ save: {method: 'POST'},
19535
+ query: {method: 'GET'},
19536
+ update: {method: 'PUT'},
19537
+ remove: {method: 'DELETE'},
19538
+ delete: {method: 'DELETE'}
19539
+
19540
+ };
19541
+
19542
+ /**
19543
+ * Install plugin.
19544
+ */
19545
+
19546
+ function plugin(Vue) {
19547
+
19548
+ if (plugin.installed) {
19549
+ return;
19550
+ }
19551
+
19552
+ Util(Vue);
19553
+
19554
+ Vue.url = Url;
19555
+ Vue.http = Http;
19556
+ Vue.resource = Resource;
19557
+ Vue.Promise = PromiseObj;
19558
+
19559
+ Object.defineProperties(Vue.prototype, {
19560
+
19561
+ $url: {
19562
+ get: function get() {
19563
+ return options(Vue.url, this, this.$options.url);
19564
+ }
19565
+ },
19566
+
19567
+ $http: {
19568
+ get: function get() {
19569
+ return options(Vue.http, this, this.$options.http);
19570
+ }
19571
+ },
19572
+
19573
+ $resource: {
19574
+ get: function get() {
19575
+ return Vue.resource.bind(this);
19576
+ }
19577
+ },
19578
+
19579
+ $promise: {
19580
+ get: function get() {
19581
+ var this$1 = this;
19582
+
19583
+ return function (executor) { return new Vue.Promise(executor, this$1); };
19584
+ }
19585
+ }
19586
+
19587
+ });
19588
+ }
19589
+
19590
+ if (typeof window !== 'undefined' && window.Vue) {
19591
+ window.Vue.use(plugin);
19592
+ }
19593
+
19594
+ /* harmony default export */ __webpack_exports__["default"] = (plugin);
19595
+
19596
+
19597
+
19598
+ /***/ }),
19599
+ /* 39 */
19600
+ /***/ (function(module, exports) {
19601
+
19602
+ /* (ignored) */
19603
+
19604
+ /***/ }),
19605
+ /* 40 */
19606
+ /***/ (function(module, exports, __webpack_require__) {
19607
+
19608
+ "use strict";
19609
+
19610
+
19611
+ Object.defineProperty(exports, "__esModule", {
19612
+ value: true
19613
+ });
19614
+
19615
+ var _logger = __webpack_require__(41);
19616
+
19617
+ var _logger2 = _interopRequireDefault(_logger);
19618
+
19619
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19620
+
19621
+ exports.default = {
19622
+ install: _logger2.default.install
19623
+ };
19624
+
19625
+ /***/ }),
19626
+ /* 41 */
19627
+ /***/ (function(module, exports, __webpack_require__) {
19628
+
19629
+ "use strict";
19630
+ function _toConsumableArray(o){if(Array.isArray(o)){for(var e=0,r=Array(o.length);e<o.length;e++)r[e]=o[e];return r}return Array.from(o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(){function o(o,r){var t={};return r.forEach(function(a){r.indexOf(a)>=r.indexOf(o.logLevel)?t[a]=function(){for(var r=arguments.length,t=Array(r),s=0;s<r;s++)t[s]=arguments[s];var l=n(),i=o.showMethodName?l+" "+o.separator+" ":"",g=o.showLogLevel?a+" "+o.separator+" ":"",f=o.stringifyArguments?t.map(function(o){return JSON.stringify(o)}):t;e(a,g,i,f,o.showConsoleColors)}:t[a]=function(){}}),t}function e(){var o=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],t=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(arguments.length>4&&void 0!==arguments[4]&&arguments[4]&&("warn"===o||"error"===o||"fatal"===o)){var n;(n=console)["fatal"===o?"error":o].apply(n,[e,r].concat(_toConsumableArray(t)))}else{var a;(a=console).log.apply(a,[e,r].concat(_toConsumableArray(t)))}}function r(o,e){return!!(o.logLevel&&"string"==typeof o.logLevel&&e.indexOf(o.logLevel)>-1)&&((!o.stringifyArguments||"boolean"==typeof o.stringifyArguments)&&((!o.showLogLevel||"boolean"==typeof o.showLogLevel)&&((!o.showConsoleColors||"boolean"==typeof o.showConsoleColors)&&((!o.separator||!("string"!=typeof o.separator||"string"==typeof o.separator&&o.separator.length>3))&&!(o.showMethodName&&"boolean"!=typeof o.showMethodName)))))}function t(e,t){if(t=Object.assign(a,t),!r(t,s))throw new Error("Provided options for vuejs-logger are not valid.");e.$log=o(t,s),e.prototype.$log=e.$log}function n(){var o={};try{throw new Error("")}catch(e){o=e}var e=o.stack.split("\n")[3];return/ /.test(e)&&(e=e.trim().split(" ")[1]),e&&e.includes(".")&&(e=e.split(".")[1]),e}var a={logLevel:"debug",separator:"|",stringifyArguments:!1,showLogLevel:!1,showMethodName:!1,showConsoleColors:!1},s=["debug","info","warn","error","fatal"];return{install:t,isValidOptions:r,print:e,initLoggerInstance:o,logLevels:s}}();
19631
+
19632
+ /***/ }),
19633
+ /* 42 */
19634
+ /***/ (function(module, exports, __webpack_require__) {
19635
+
19636
+ var has = __webpack_require__(9);
19637
+ var toIObject = __webpack_require__(16);
19638
+ var arrayIndexOf = __webpack_require__(44)(false);
19639
+ var IE_PROTO = __webpack_require__(18)('IE_PROTO');
19640
+
19641
+ module.exports = function (object, names) {
19642
+ var O = toIObject(object);
19643
+ var i = 0;
19644
+ var result = [];
19645
+ var key;
19646
+ for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
19647
+ // Don't enum bug & hidden keys
19648
+ while (names.length > i) if (has(O, key = names[i++])) {
19649
+ ~arrayIndexOf(result, key) || result.push(key);
19650
+ }
19651
+ return result;
19652
+ };
19653
+
19654
+
19655
+ /***/ }),
19656
+ /* 43 */
19657
+ /***/ (function(module, exports, __webpack_require__) {
19658
+
19659
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
19660
+ var cof = __webpack_require__(22);
19661
+ // eslint-disable-next-line no-prototype-builtins
19662
+ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
19663
+ return cof(it) == 'String' ? it.split('') : Object(it);
19664
+ };
19665
+
19666
+
19667
+ /***/ }),
19668
+ /* 44 */
19669
+ /***/ (function(module, exports, __webpack_require__) {
19670
+
19671
+ // false -> Array#indexOf
19672
+ // true -> Array#includes
19673
+ var toIObject = __webpack_require__(16);
19674
+ var toLength = __webpack_require__(45);
19675
+ var toAbsoluteIndex = __webpack_require__(46);
19676
+ module.exports = function (IS_INCLUDES) {
19677
+ return function ($this, el, fromIndex) {
19678
+ var O = toIObject($this);
19679
+ var length = toLength(O.length);
19680
+ var index = toAbsoluteIndex(fromIndex, length);
19681
+ var value;
19682
+ // Array#includes uses SameValueZero equality algorithm
19683
+ // eslint-disable-next-line no-self-compare
19684
+ if (IS_INCLUDES && el != el) while (length > index) {
19685
+ value = O[index++];
19686
+ // eslint-disable-next-line no-self-compare
19687
+ if (value != value) return true;
19688
+ // Array#indexOf ignores holes, Array#includes - not
19689
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
19690
+ if (O[index] === el) return IS_INCLUDES || index || 0;
19691
+ } return !IS_INCLUDES && -1;
19692
+ };
19693
+ };
19694
+
19695
+
19696
+ /***/ }),
19697
+ /* 45 */
19698
+ /***/ (function(module, exports, __webpack_require__) {
19699
+
19700
+ // 7.1.15 ToLength
19701
+ var toInteger = __webpack_require__(17);
19702
+ var min = Math.min;
19703
+ module.exports = function (it) {
19704
+ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
19705
+ };
19706
+
19707
+
19708
+ /***/ }),
19709
+ /* 46 */
19710
+ /***/ (function(module, exports, __webpack_require__) {
19711
+
19712
+ var toInteger = __webpack_require__(17);
19713
+ var max = Math.max;
19714
+ var min = Math.min;
19715
+ module.exports = function (index, length) {
19716
+ index = toInteger(index);
19717
+ return index < 0 ? max(index + length, 0) : min(index, length);
19718
+ };
19719
+
19720
+
19721
+ /***/ }),
19722
+ /* 47 */
19723
+ /***/ (function(module, exports, __webpack_require__) {
19724
+
19725
+ // optional / simple context binding
19726
+ var aFunction = __webpack_require__(48);
19727
+ module.exports = function (fn, that, length) {
19728
+ aFunction(fn);
19729
+ if (that === undefined) return fn;
19730
+ switch (length) {
19731
+ case 1: return function (a) {
19732
+ return fn.call(that, a);
19733
+ };
19734
+ case 2: return function (a, b) {
19735
+ return fn.call(that, a, b);
19736
+ };
19737
+ case 3: return function (a, b, c) {
19738
+ return fn.call(that, a, b, c);
19739
+ };
19740
+ }
19741
+ return function (/* ...args */) {
19742
+ return fn.apply(that, arguments);
19743
+ };
19744
+ };
19745
+
19746
+
19747
+ /***/ }),
19748
+ /* 48 */
19749
+ /***/ (function(module, exports) {
19750
+
19751
+ module.exports = function (it) {
19752
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
19753
+ return it;
19754
+ };
19755
+
19756
+
19757
+ /***/ }),
19758
+ /* 49 */
19759
+ /***/ (function(module, exports, __webpack_require__) {
19760
+
19761
+ module.exports = !__webpack_require__(11) && !__webpack_require__(21)(function () {
19762
+ return Object.defineProperty(__webpack_require__(27)('div'), 'a', { get: function () { return 7; } }).a != 7;
19763
+ });
19764
+
19765
+
19766
+ /***/ }),
19767
+ /* 50 */
19768
+ /***/ (function(module, exports, __webpack_require__) {
19769
+
19770
+ // 7.1.1 ToPrimitive(input [, PreferredType])
19771
+ var isObject = __webpack_require__(20);
19772
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
19773
+ // and the second argument - flag - preferred type is a string
19774
+ module.exports = function (it, S) {
19775
+ if (!isObject(it)) return it;
19776
+ var fn, val;
19777
+ if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
19778
+ if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
19779
+ if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
19780
+ throw TypeError("Can't convert object to primitive value");
19781
+ };
19782
+
19783
+
19784
+ /***/ }),
19785
+ /* 51 */
19786
+ /***/ (function(module, exports, __webpack_require__) {
19787
+
19788
+ __webpack_require__(52);
19789
+ __webpack_require__(63);
19790
+ module.exports = __webpack_require__(65);
19791
+
19792
+
19793
+ /***/ }),
19794
+ /* 52 */
19795
+ /***/ (function(module, exports, __webpack_require__) {
19796
+
19797
+ __webpack_require__(53);
19798
+ var global = __webpack_require__(3);
19799
+ var hide = __webpack_require__(6);
19800
+ var Iterators = __webpack_require__(12);
19801
+ var TO_STRING_TAG = __webpack_require__(4)('toStringTag');
19802
+
19803
+ var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
19804
+ 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
19805
+ 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
19806
+ 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
19807
+ 'TextTrackList,TouchList').split(',');
19808
+
19809
+ for (var i = 0; i < DOMIterables.length; i++) {
19810
+ var NAME = DOMIterables[i];
19811
+ var Collection = global[NAME];
19812
+ var proto = Collection && Collection.prototype;
19813
+ if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
19814
+ Iterators[NAME] = Iterators.Array;
19815
+ }
19816
+
19817
+
19818
+ /***/ }),
19819
+ /* 53 */
19820
+ /***/ (function(module, exports, __webpack_require__) {
19821
+
19822
+ "use strict";
19823
+
19824
+ var addToUnscopables = __webpack_require__(54);
19825
+ var step = __webpack_require__(55);
19826
+ var Iterators = __webpack_require__(12);
19827
+ var toIObject = __webpack_require__(16);
19828
+
19829
+ // 22.1.3.4 Array.prototype.entries()
19830
+ // 22.1.3.13 Array.prototype.keys()
19831
+ // 22.1.3.29 Array.prototype.values()
19832
+ // 22.1.3.30 Array.prototype[@@iterator]()
19833
+ module.exports = __webpack_require__(29)(Array, 'Array', function (iterated, kind) {
19834
+ this._t = toIObject(iterated); // target
19835
+ this._i = 0; // next index
19836
+ this._k = kind; // kind
19837
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
19838
+ }, function () {
19839
+ var O = this._t;
19840
+ var kind = this._k;
19841
+ var index = this._i++;
19842
+ if (!O || index >= O.length) {
19843
+ this._t = undefined;
19844
+ return step(1);
19845
+ }
19846
+ if (kind == 'keys') return step(0, index);
19847
+ if (kind == 'values') return step(0, O[index]);
19848
+ return step(0, [index, O[index]]);
19849
+ }, 'values');
19850
+
19851
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
19852
+ Iterators.Arguments = Iterators.Array;
19853
+
19854
+ addToUnscopables('keys');
19855
+ addToUnscopables('values');
19856
+ addToUnscopables('entries');
19857
+
19858
+
19859
+ /***/ }),
19860
+ /* 54 */
19861
+ /***/ (function(module, exports) {
19862
+
19863
+ module.exports = function () { /* empty */ };
19864
+
19865
+
19866
+ /***/ }),
19867
+ /* 55 */
19868
+ /***/ (function(module, exports) {
19869
+
19870
+ module.exports = function (done, value) {
19871
+ return { value: value, done: !!done };
19872
+ };
19873
+
19874
+
19875
+ /***/ }),
19876
+ /* 56 */
19877
+ /***/ (function(module, exports) {
19878
+
19879
+ module.exports = true;
19880
+
19881
+
19882
+ /***/ }),
19883
+ /* 57 */
19884
+ /***/ (function(module, exports, __webpack_require__) {
19885
+
19886
+ module.exports = __webpack_require__(6);
19887
+
19888
+
19889
+ /***/ }),
19890
+ /* 58 */
19891
+ /***/ (function(module, exports, __webpack_require__) {
19892
+
19893
+ "use strict";
19894
+
19895
+ var create = __webpack_require__(59);
19896
+ var descriptor = __webpack_require__(28);
19897
+ var setToStringTag = __webpack_require__(30);
19898
+ var IteratorPrototype = {};
19899
+
19900
+ // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
19901
+ __webpack_require__(6)(IteratorPrototype, __webpack_require__(4)('iterator'), function () { return this; });
19902
+
19903
+ module.exports = function (Constructor, NAME, next) {
19904
+ Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
19905
+ setToStringTag(Constructor, NAME + ' Iterator');
19906
+ };
19907
+
19908
+
19909
+ /***/ }),
19910
+ /* 59 */
19911
+ /***/ (function(module, exports, __webpack_require__) {
19912
+
19913
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
19914
+ var anObject = __webpack_require__(10);
19915
+ var dPs = __webpack_require__(60);
19916
+ var enumBugKeys = __webpack_require__(25);
19917
+ var IE_PROTO = __webpack_require__(18)('IE_PROTO');
19918
+ var Empty = function () { /* empty */ };
19919
+ var PROTOTYPE = 'prototype';
19920
+
19921
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
19922
+ var createDict = function () {
19923
+ // Thrash, waste and sodomy: IE GC bug
19924
+ var iframe = __webpack_require__(27)('iframe');
19925
+ var i = enumBugKeys.length;
19926
+ var lt = '<';
19927
+ var gt = '>';
19928
+ var iframeDocument;
19929
+ iframe.style.display = 'none';
19930
+ __webpack_require__(61).appendChild(iframe);
19931
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
19932
+ // createDict = iframe.contentWindow.Object;
19933
+ // html.removeChild(iframe);
19934
+ iframeDocument = iframe.contentWindow.document;
19935
+ iframeDocument.open();
19936
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
19937
+ iframeDocument.close();
19938
+ createDict = iframeDocument.F;
19939
+ while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
19940
+ return createDict();
19941
+ };
19942
+
19943
+ module.exports = Object.create || function create(O, Properties) {
19944
+ var result;
19945
+ if (O !== null) {
19946
+ Empty[PROTOTYPE] = anObject(O);
19947
+ result = new Empty();
19948
+ Empty[PROTOTYPE] = null;
19949
+ // add "__proto__" for Object.getPrototypeOf polyfill
19950
+ result[IE_PROTO] = O;
19951
+ } else result = createDict();
19952
+ return Properties === undefined ? result : dPs(result, Properties);
19953
+ };
19954
+
19955
+
19956
+ /***/ }),
19957
+ /* 60 */
19958
+ /***/ (function(module, exports, __webpack_require__) {
19959
+
19960
+ var dP = __webpack_require__(19);
19961
+ var anObject = __webpack_require__(10);
19962
+ var getKeys = __webpack_require__(32);
19963
+
19964
+ module.exports = __webpack_require__(11) ? Object.defineProperties : function defineProperties(O, Properties) {
19965
+ anObject(O);
19966
+ var keys = getKeys(Properties);
19967
+ var length = keys.length;
19968
+ var i = 0;
19969
+ var P;
19970
+ while (length > i) dP.f(O, P = keys[i++], Properties[P]);
19971
+ return O;
19972
+ };
19973
+
19974
+
19975
+ /***/ }),
19976
+ /* 61 */
19977
+ /***/ (function(module, exports, __webpack_require__) {
19978
+
19979
+ var document = __webpack_require__(3).document;
19980
+ module.exports = document && document.documentElement;
19981
+
19982
+
19983
+ /***/ }),
19984
+ /* 62 */
19985
+ /***/ (function(module, exports, __webpack_require__) {
19986
+
19987
+ // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
19988
+ var has = __webpack_require__(9);
19989
+ var toObject = __webpack_require__(31);
19990
+ var IE_PROTO = __webpack_require__(18)('IE_PROTO');
19991
+ var ObjectProto = Object.prototype;
19992
+
19993
+ module.exports = Object.getPrototypeOf || function (O) {
19994
+ O = toObject(O);
19995
+ if (has(O, IE_PROTO)) return O[IE_PROTO];
19996
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
19997
+ return O.constructor.prototype;
19998
+ } return O instanceof Object ? ObjectProto : null;
19999
+ };
20000
+
20001
+
20002
+ /***/ }),
20003
+ /* 63 */
20004
+ /***/ (function(module, exports, __webpack_require__) {
20005
+
20006
+ "use strict";
20007
+
20008
+ var $at = __webpack_require__(64)(true);
20009
+
20010
+ // 21.1.3.27 String.prototype[@@iterator]()
20011
+ __webpack_require__(29)(String, 'String', function (iterated) {
20012
+ this._t = String(iterated); // target
20013
+ this._i = 0; // next index
20014
+ // 21.1.5.2.1 %StringIteratorPrototype%.next()
20015
+ }, function () {
20016
+ var O = this._t;
20017
+ var index = this._i;
20018
+ var point;
20019
+ if (index >= O.length) return { value: undefined, done: true };
20020
+ point = $at(O, index);
20021
+ this._i += point.length;
20022
+ return { value: point, done: false };
20023
+ });
20024
+
20025
+
20026
+ /***/ }),
20027
+ /* 64 */
20028
+ /***/ (function(module, exports, __webpack_require__) {
20029
+
20030
+ var toInteger = __webpack_require__(17);
20031
+ var defined = __webpack_require__(15);
20032
+ // true -> String#at
20033
+ // false -> String#codePointAt
20034
+ module.exports = function (TO_STRING) {
20035
+ return function (that, pos) {
20036
+ var s = String(defined(that));
20037
+ var i = toInteger(pos);
20038
+ var l = s.length;
20039
+ var a, b;
20040
+ if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
20041
+ a = s.charCodeAt(i);
20042
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
20043
+ ? TO_STRING ? s.charAt(i) : a
20044
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
20045
+ };
20046
+ };
20047
+
20048
+
20049
+ /***/ }),
20050
+ /* 65 */
20051
+ /***/ (function(module, exports, __webpack_require__) {
20052
+
20053
+ var anObject = __webpack_require__(10);
20054
+ var get = __webpack_require__(66);
20055
+ module.exports = __webpack_require__(5).getIterator = function (it) {
20056
+ var iterFn = get(it);
20057
+ if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');
20058
+ return anObject(iterFn.call(it));
20059
+ };
20060
+
20061
+
20062
+ /***/ }),
20063
+ /* 66 */
20064
+ /***/ (function(module, exports, __webpack_require__) {
20065
+
20066
+ var classof = __webpack_require__(67);
20067
+ var ITERATOR = __webpack_require__(4)('iterator');
20068
+ var Iterators = __webpack_require__(12);
20069
+ module.exports = __webpack_require__(5).getIteratorMethod = function (it) {
20070
+ if (it != undefined) return it[ITERATOR]
20071
+ || it['@@iterator']
20072
+ || Iterators[classof(it)];
20073
+ };
20074
+
20075
+
20076
+ /***/ }),
20077
+ /* 67 */
20078
+ /***/ (function(module, exports, __webpack_require__) {
20079
+
20080
+ // getting tag from 19.1.3.6 Object.prototype.toString()
20081
+ var cof = __webpack_require__(22);
20082
+ var TAG = __webpack_require__(4)('toStringTag');
20083
+ // ES3 wrong here
20084
+ var ARG = cof(function () { return arguments; }()) == 'Arguments';
20085
+
20086
+ // fallback for IE11 Script Access Denied error
20087
+ var tryGet = function (it, key) {
20088
+ try {
20089
+ return it[key];
20090
+ } catch (e) { /* empty */ }
20091
+ };
20092
+
20093
+ module.exports = function (it) {
20094
+ var O, T, B;
20095
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
20096
+ // @@toStringTag case
20097
+ : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
20098
+ // builtinTag case
20099
+ : ARG ? cof(O)
20100
+ // ES3 arguments fallback
20101
+ : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
20102
+ };
20103
+
20104
+
20105
+ /***/ }),
20106
+ /* 68 */
20107
+ /***/ (function(module, exports, __webpack_require__) {
20108
+
20109
+ var __vue_script__, __vue_template__
20110
+ __vue_script__ = __webpack_require__(69)
20111
+ __vue_template__ = __webpack_require__(71)
20112
+ module.exports = __vue_script__ || {}
20113
+ if (module.exports.__esModule) module.exports = module.exports.default
20114
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
20115
+ if (false) {(function () { module.hot.accept()
20116
+ var hotAPI = require("vue-hot-reload-api")
20117
+ hotAPI.install(require("vue"), true)
20118
+ if (!hotAPI.compatible) return
20119
+ var id = "C:\\Users\\mariu\\Local Sites\\rop\\app\\public\\wp-content\\plugins\\tweet-old-post\\vue\\src\\vue-elements\\reusables\\multiple-select.vue"
20120
+ if (!module.hot.data) {
20121
+ hotAPI.createRecord(id, module.exports)
20122
+ } else {
20123
+ hotAPI.update(id, module.exports, __vue_template__)
20124
+ }
20125
+ })()}
20126
+
20127
+ /***/ }),
20128
+ /* 69 */
20129
+ /***/ (function(module, exports, __webpack_require__) {
20130
+
20131
+ "use strict";
20132
+
20133
+
20134
+ var _getIterator2 = __webpack_require__(33);
20135
+
20136
+ var _getIterator3 = _interopRequireDefault(_getIterator2);
20137
+
20138
+ var _vueClickaway = __webpack_require__(70);
20139
+
20140
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20141
+
20142
+ function containsObject(obj, list) {
20143
+ var i = void 0;
20144
+ for (i = 0; i < list.length; i++) {
20145
+ if (list[i] === obj) {
20146
+ return true;
20147
+ }
20148
+ }
20149
+ return false;
20150
+ } // <template>
20151
+ // <div class="form-autocomplete" style="width: 100%;" v-on-clickaway="closeDropdown">
20152
+ // <!-- autocomplete input container -->
20153
+ // <div class="form-autocomplete-input form-input" :class="is_focused">
20154
+ //
20155
+ // <!-- autocomplete chips -->
20156
+ // <label class="chip" v-for="( option, index ) in selected">
20157
+ // {{option.name}}
20158
+ // <a href="#" class="btn btn-clear" aria-label="Close" @click.prevent="removeSelected(index)"
20159
+ // role="button"></a>
20160
+ // </label>
20161
+ //
20162
+ // <!-- autocomplete real input box -->
20163
+ // <input style="height: 1.0rem;" class="form-input" type="text" ref="search" v-model="search"
20164
+ // :placeholder="autocomplete_placeholder" @click="magic_flag = true" @focus="magic_flag = true"
20165
+ // @keyup="magic_flag = true" @keydown.8="popLast()" @keydown.38="highlightItem(true)"
20166
+ // @keydown.40="highlightItem()" :disabled="is_disabled">
20167
+ // </div>
20168
+ //
20169
+ // <!-- autocomplete suggestion list -->
20170
+ // <ul class="menu" ref="autocomplete_results" :class="is_visible"
20171
+ // style="overflow-y: scroll; max-height: 120px">
20172
+ // <!-- menu list chips -->
20173
+ // <li class="menu-item" v-for="( option, index ) in options" v-if="filterSearch(option)">
20174
+ // <a href="#" @click.prevent="addToSelected(index)" @keydown.38="highlightItem(true)"
20175
+ // @keydown.40="highlightItem()">
20176
+ // <div class="tile tile-centered">
20177
+ // <div class="tile-content" v-html="markMatch(option.name, search)"></div>
20178
+ // </div>
20179
+ // </a>
20180
+ // </li>
20181
+ // <li v-if="has_results">
20182
+ // <a href="#">
20183
+ // <div class="tile tile-centered">
20184
+ // <div class="tile-content"><i>{{labels.multiselect_not_found}}"{{search}}" ...</i></div>
20185
+ // </div>
20186
+ // </a>
20187
+ // </li>
20188
+ // </ul>
20189
+ // </div>
20190
+ //
20191
+ // </template>
20192
+ //
20193
+ // <script>
20194
+
20195
+
20196
+ module.exports = {
20197
+ name: 'multiple-select',
20198
+ mixins: [_vueClickaway.mixin],
20199
+ props: {
20200
+ options: {
20201
+ default: function _default() {
20202
+ return [];
20203
+ },
20204
+ type: Array
20205
+ },
20206
+ disabled: {
20207
+ default: true,
20208
+ type: Boolean
20209
+ },
20210
+ selected: {
20211
+ default: function _default() {
20212
+ return [];
20213
+ },
20214
+ type: Array
20215
+ },
20216
+ placeHolderText: {
20217
+ default: 'Please select something',
20218
+ type: String
20219
+ },
20220
+ changedSelection: {
20221
+ default: function _default(data) {
20222
+ return data;
20223
+ },
20224
+ type: Function
20225
+ },
20226
+ dontLock: {
20227
+ default: false,
20228
+ type: Boolean
20229
+ }
20230
+ },
20231
+ mounted: function mounted() {
20232
+ var _iteratorNormalCompletion = true;
20233
+ var _didIteratorError = false;
20234
+ var _iteratorError = undefined;
20235
+
20236
+ try {
20237
+ for (var _iterator = (0, _getIterator3.default)(this.selected), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
20238
+ var selection = _step.value;
20239
+
20240
+ if (selection.selected) {
20241
+ var index = 0;
20242
+ var _iteratorNormalCompletion2 = true;
20243
+ var _didIteratorError2 = false;
20244
+ var _iteratorError2 = undefined;
20245
+
20246
+ try {
20247
+ for (var _iterator2 = (0, _getIterator3.default)(this.options), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
20248
+ var option = _step2.value;
20249
+
20250
+ if (option.value === selection.value) {
20251
+ this.options[index].selected = selection.selected;
20252
+ }
20253
+ index++;
20254
+ }
20255
+ } catch (err) {
20256
+ _didIteratorError2 = true;
20257
+ _iteratorError2 = err;
20258
+ } finally {
20259
+ try {
20260
+ if (!_iteratorNormalCompletion2 && _iterator2.return) {
20261
+ _iterator2.return();
20262
+ }
20263
+ } finally {
20264
+ if (_didIteratorError2) {
20265
+ throw _iteratorError2;
20266
+ }
20267
+ }
20268
+ }
20269
+ }
20270
+ }
20271
+
20272
+ // this.$emit( 'update', this.search )
20273
+ } catch (err) {
20274
+ _didIteratorError = true;
20275
+ _iteratorError = err;
20276
+ } finally {
20277
+ try {
20278
+ if (!_iteratorNormalCompletion && _iterator.return) {
20279
+ _iterator.return();
20280
+ }
20281
+ } finally {
20282
+ if (_didIteratorError) {
20283
+ throw _iteratorError;
20284
+ }
20285
+ }
20286
+ }
20287
+ },
20288
+
20289
+ data: function data() {
20290
+ return {
20291
+ search: '',
20292
+ highlighted: -1,
20293
+ no_results: false,
20294
+ labels: this.$store.state.labels.general,
20295
+ upsell_link: ropApiSettings.upsell_link,
20296
+ magic_flag: false
20297
+ };
20298
+ },
20299
+ watch: {
20300
+ search: function search(val) {
20301
+ this.$emit('update', val);
20302
+ }
20303
+ },
20304
+ computed: {
20305
+ is_focused: function is_focused() {
20306
+ return {
20307
+ 'is-focused': this.magic_flag === true
20308
+ };
20309
+ },
20310
+ is_visible: function is_visible() {
20311
+ return {
20312
+ 'd-none': this.magic_flag === false
20313
+ };
20314
+ },
20315
+ is_one: function is_one() {
20316
+ if (!this.dontLock) {
20317
+ if (this.options.length === 1 && this.options[0].selected === false) {
20318
+ // this.selected.push(this.options[0])
20319
+ return true;
20320
+ } else if (this.options.length === 1 && this.options[0].selected === true) {
20321
+ return true;
20322
+ }
20323
+ }
20324
+ return false;
20325
+ },
20326
+ autocomplete_placeholder: function autocomplete_placeholder() {
20327
+ if (this.selected.length > 0) {
20328
+ return '';
20329
+ }
20330
+ return this.placeHolderText;
20331
+ },
20332
+ is_disabled: function is_disabled() {
20333
+ return !this.disabled;
20334
+ },
20335
+ has_results: function has_results() {
20336
+ var found = 0;
20337
+ var _iteratorNormalCompletion3 = true;
20338
+ var _didIteratorError3 = false;
20339
+ var _iteratorError3 = undefined;
20340
+
20341
+ try {
20342
+ for (var _iterator3 = (0, _getIterator3.default)(this.options), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
20343
+ var option = _step3.value;
20344
+
20345
+ if (this.filterSearch(option)) {
20346
+ found++;
20347
+ }
20348
+ }
20349
+ } catch (err) {
20350
+ _didIteratorError3 = true;
20351
+ _iteratorError3 = err;
20352
+ } finally {
20353
+ try {
20354
+ if (!_iteratorNormalCompletion3 && _iterator3.return) {
20355
+ _iterator3.return();
20356
+ }
20357
+ } finally {
20358
+ if (_didIteratorError3) {
20359
+ throw _iteratorError3;
20360
+ }
20361
+ }
20362
+ }
20363
+
20364
+ if (found) {
20365
+ return false;
20366
+ }
20367
+ return true;
20368
+ }
20369
+ },
20370
+ methods: {
20371
+ closeDropdown: function closeDropdown() {
20372
+ this.magic_flag = false;
20373
+ },
20374
+ highlightItem: function highlightItem() {
20375
+ var up = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
20376
+
20377
+ if (up) {
20378
+ this.highlighted--;
20379
+ } else {
20380
+ this.highlighted++;
20381
+ }
20382
+ var size = this.$refs.autocomplete_results.children.length - 1;
20383
+ if (size < 0) size = 0;
20384
+ if (this.highlighted > size) this.highlighted = 0;
20385
+ if (this.highlighted < 0) this.highlighted = size;
20386
+ this.$refs.autocomplete_results.children[this.highlighted].firstChild.focus();
20387
+ },
20388
+ popLast: function popLast() {
20389
+ if (this.search === '') {
20390
+ this.selected.pop();
20391
+ this.magic_flag = false;
20392
+ }
20393
+ },
20394
+ markMatch: function markMatch(value, search) {
20395
+ var result = value;
20396
+ if (value.toLowerCase().indexOf(search.toLowerCase()) !== -1 && search !== '') {
20397
+ var rex = new RegExp(search, 'ig');
20398
+ result = value.replace(rex, function (match) {
20399
+ return '<mark>' + match + '</mark>';
20400
+ });
20401
+ }
20402
+ return result;
20403
+ },
20404
+ filterSearch: function filterSearch(element) {
20405
+ if (element.name.toLowerCase().indexOf(this.search.toLowerCase()) !== -1 || this.search === '') {
20406
+ if (element.selected) {
20407
+ return false;
20408
+ }
20409
+ if (containsObject(element, this.selected)) {
20410
+ return false;
20411
+ }
20412
+ return true;
20413
+ }
20414
+ return false;
20415
+ },
20416
+ addToSelected: function addToSelected(index) {
20417
+ if (this.is_disabled) {
20418
+ return;
20419
+ }
20420
+ var newSelection = this.options[index];
20421
+ newSelection.selected = true;
20422
+ this.selected.push(newSelection);
20423
+ this.$refs.search.focus();
20424
+ this.magic_flag = false;
20425
+ this.search = '';
20426
+ this.changedSelection(this.selected);
20427
+ },
20428
+ removeSelected: function removeSelected(index) {
20429
+ if (this.is_disabled) {
20430
+ return;
20431
+ }
20432
+ this.selected.splice(index, 1);
20433
+ this.$refs.search.focus();
20434
+ this.magic_flag = false;
20435
+ this.search = '';
20436
+ this.changedSelection(this.selected);
20437
+ }
20438
+ }
20439
+ // </script>
20440
+
20441
+ };
20442
+
20443
+ /***/ }),
20444
+ /* 70 */
20445
+ /***/ (function(module, exports, __webpack_require__) {
20446
+
20447
+ "use strict";
20448
+ /* WEBPACK VAR INJECTION */(function(process) {
20449
+
20450
+ var Vue = __webpack_require__(7);
20451
+ Vue = 'default' in Vue ? Vue['default'] : Vue;
20452
+
20453
+ var version = '2.2.2';
20454
+
20455
+ var compatible = (/^2\./).test(Vue.version);
20456
+ if (!compatible) {
20457
+ Vue.util.warn('VueClickaway ' + version + ' only supports Vue 2.x, and does not support Vue ' + Vue.version);
20458
+ }
20459
+
20460
+
20461
+
20462
+ // @SECTION: implementation
20463
+
20464
+ var HANDLER = '_vue_clickaway_handler';
20465
+
20466
+ function bind(el, binding, vnode) {
20467
+ unbind(el);
20468
+
20469
+ var vm = vnode.context;
20470
+
20471
+ var callback = binding.value;
20472
+ if (typeof callback !== 'function') {
20473
+ if (process.env.NODE_ENV !== 'production') {
20474
+ Vue.util.warn(
20475
+ 'v-' + binding.name + '="' +
20476
+ binding.expression + '" expects a function value, ' +
20477
+ 'got ' + callback
20478
+ );
20479
+ }
20480
+ return;
20481
+ }
20482
+
20483
+ // @NOTE: Vue binds directives in microtasks, while UI events are dispatched
20484
+ // in macrotasks. This causes the listener to be set up before
20485
+ // the "origin" click event (the event that lead to the binding of
20486
+ // the directive) arrives at the document root. To work around that,
20487
+ // we ignore events until the end of the "initial" macrotask.
20488
+ // @REFERENCE: https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/
20489
+ // @REFERENCE: https://github.com/simplesmiler/vue-clickaway/issues/8
20490
+ var initialMacrotaskEnded = false;
20491
+ setTimeout(function() {
20492
+ initialMacrotaskEnded = true;
20493
+ }, 0);
20494
+
20495
+ el[HANDLER] = function(ev) {
20496
+ // @NOTE: this test used to be just `el.containts`, but working with path is better,
20497
+ // because it tests whether the element was there at the time of
20498
+ // the click, not whether it is there now, that the event has arrived
20499
+ // to the top.
20500
+ // @NOTE: `.path` is non-standard, the standard way is `.composedPath()`
20501
+ var path = ev.path || (ev.composedPath ? ev.composedPath() : undefined);
20502
+ if (initialMacrotaskEnded && (path ? path.indexOf(el) < 0 : !el.contains(ev.target))) {
20503
+ return callback.call(vm, ev);
20504
+ }
20505
+ };
20506
+
20507
+ document.documentElement.addEventListener('click', el[HANDLER], false);
20508
+ }
20509
+
20510
+ function unbind(el) {
20511
+ document.documentElement.removeEventListener('click', el[HANDLER], false);
20512
+ delete el[HANDLER];
20513
+ }
20514
+
20515
+ var directive = {
20516
+ bind: bind,
20517
+ update: function(el, binding) {
20518
+ if (binding.value === binding.oldValue) return;
20519
+ bind(el, binding);
20520
+ },
20521
+ unbind: unbind,
20522
+ };
20523
+
20524
+ var mixin = {
20525
+ directives: { onClickaway: directive },
20526
+ };
20527
+
20528
+ exports.version = version;
20529
+ exports.directive = directive;
20530
+ exports.mixin = mixin;
20531
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8)))
20532
+
20533
+ /***/ }),
20534
+ /* 71 */
20535
+ /***/ (function(module, exports) {
20536
+
20537
+ module.exports = "\n\t<div class=\"form-autocomplete\" style=\"width: 100%;\" v-on-clickaway=\"closeDropdown\">\n\t\t<!-- autocomplete input container -->\n\t\t<div class=\"form-autocomplete-input form-input\" :class=\"is_focused\">\n\t\t\t\n\t\t\t<!-- autocomplete chips -->\n\t\t\t<label class=\"chip\" v-for=\"( option, index ) in selected\">\n\t\t\t\t{{option.name}}\n\t\t\t\t<a href=\"#\" class=\"btn btn-clear\" aria-label=\"Close\" @click.prevent=\"removeSelected(index)\"\n\t\t\t\t role=\"button\"></a>\n\t\t\t</label>\n\t\t\t\n\t\t\t<!-- autocomplete real input box -->\n\t\t\t<input style=\"height: 1.0rem;\" class=\"form-input\" type=\"text\" ref=\"search\" v-model=\"search\"\n\t\t\t :placeholder=\"autocomplete_placeholder\" @click=\"magic_flag = true\" @focus=\"magic_flag = true\"\n\t\t\t @keyup=\"magic_flag = true\" @keydown.8=\"popLast()\" @keydown.38=\"highlightItem(true)\"\n\t\t\t @keydown.40=\"highlightItem()\" :disabled=\"is_disabled\">\n\t\t</div>\n\t\t\n\t\t<!-- autocomplete suggestion list -->\n\t\t<ul class=\"menu\" ref=\"autocomplete_results\" :class=\"is_visible\"\n\t\t style=\"overflow-y: scroll; max-height: 120px\">\n\t\t\t<!-- menu list chips -->\n\t\t\t<li class=\"menu-item\" v-for=\"( option, index ) in options\" v-if=\"filterSearch(option)\">\n\t\t\t\t<a href=\"#\" @click.prevent=\"addToSelected(index)\" @keydown.38=\"highlightItem(true)\"\n\t\t\t\t @keydown.40=\"highlightItem()\">\n\t\t\t\t\t<div class=\"tile tile-centered\">\n\t\t\t\t\t\t<div class=\"tile-content\" v-html=\"markMatch(option.name, search)\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t\t<li v-if=\"has_results\">\n\t\t\t\t<a href=\"#\">\n\t\t\t\t\t<div class=\"tile tile-centered\">\n\t\t\t\t\t\t<div class=\"tile-content\"><i>{{labels.multiselect_not_found}}\"{{search}}\" ...</i></div>\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n\n";
20538
+
20539
+ /***/ }),
20540
+ /* 72 */
20541
+ /***/ (function(module, exports, __webpack_require__) {
20542
+
20543
+ var __vue_script__, __vue_template__
20544
+ __webpack_require__(73)
20545
+ __vue_script__ = __webpack_require__(75)
20546
+ __vue_template__ = __webpack_require__(76)
20547
+ module.exports = __vue_script__ || {}
20548
+ if (module.exports.__esModule) module.exports = module.exports.default
20549
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
20550
+ if (false) {(function () { module.hot.accept()
20551
+ var hotAPI = require("vue-hot-reload-api")
20552
+ hotAPI.install(require("vue"), true)
20553
+ if (!hotAPI.compatible) return
20554
+ var id = "C:\\Users\\mariu\\Local Sites\\rop\\app\\public\\wp-content\\plugins\\tweet-old-post\\vue\\src\\vue-elements\\upsell-sidebar.vue"
20555
+ if (!module.hot.data) {
20556
+ hotAPI.createRecord(id, module.exports)
20557
+ } else {
20558
+ hotAPI.update(id, module.exports, __vue_template__)
20559
+ }
20560
+ })()}
20561
+
20562
+ /***/ }),
20563
+ /* 73 */
20564
+ /***/ (function(module, exports, __webpack_require__) {
20565
+
20566
+ // style-loader: Adds some css to the DOM by adding a <style> tag
20567
+
20568
+ // load the styles
20569
+ var content = __webpack_require__(74);
20570
+ if(typeof content === 'string') content = [[module.i, content, '']];
20571
+ // add the styles to the DOM
20572
+ var update = __webpack_require__(2)(content, {});
20573
+ if(content.locals) module.exports = content.locals;
20574
+ // Hot Module Replacement
20575
+ if(false) {
20576
+ // When the styles change, update the <style> tags
20577
+ if(!content.locals) {
20578
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-6aa195a8&file=upsell-sidebar.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./upsell-sidebar.vue", function() {
20579
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-6aa195a8&file=upsell-sidebar.vue&scoped=true!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./upsell-sidebar.vue");
20580
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
20581
+ update(newContent);
20582
+ });
20583
+ }
20584
+ // When the module is disposed, remove the <style> tags
20585
+ module.hot.dispose(function() { update(); });
20586
+ }
20587
+
20588
+ /***/ }),
20589
+ /* 74 */
20590
+ /***/ (function(module, exports, __webpack_require__) {
20591
+
20592
+ exports = module.exports = __webpack_require__(1)();
20593
+ // imports
20594
+
20595
+
20596
+ // module
20597
+ exports.push([module.i, "\r\n\t#rop-upsell-box[_v-6aa195a8]{\r\n\t\tmargin-top:20px;\r\n\t}\r\n\t#rop_core .rop-upsell-business-card[_v-6aa195a8],\r\n\t#rop_core .rop-upsell-pro-card[_v-6aa195a8] {\r\n\t\tpadding: 0;\r\n\t}\r\n", ""]);
20598
+
20599
+ // exports
20600
+
20601
+
20602
+ /***/ }),
20603
+ /* 75 */
20604
+ /***/ (function(module, exports, __webpack_require__) {
20605
+
20606
+ "use strict";
20607
+
20608
+
20609
+ // <template>
20610
+ // <div id="rop-upsell-box">
20611
+ // <div class="card rop-upsell-pro-card" v-if="license < 1 ">
20612
+ // <a :href="upsell_link" target="_blank">
20613
+ // <img class="img-responsive" :src="to_pro_upsell" :alt="labels.upgrade_pro_cta">
20614
+ // </a>
20615
+ // </div>
20616
+ // <div class="card rop-upsell-business-card" v-if="license === 1">
20617
+ // <a :href="upsell_link" target="_blank">
20618
+ // <img class="img-responsive" :src="to_business_upsell" :alt="labels.upgrade_biz_cta">
20619
+ // </a>
20620
+ // </div>
20621
+ // </div>
20622
+ // </template>
20623
+ //
20624
+ // <script>
20625
+ module.exports = {
20626
+ name: "upsell-sidebar",
20627
+ data: function data() {
20628
+ return {
20629
+ license: this.$store.state.licence,
20630
+ upsell_link: ropApiSettings.upsell_link,
20631
+ to_pro_upsell: ROP_ASSETS_URL + 'img/to_pro.png',
20632
+ labels: this.$store.state.labels.general,
20633
+ to_business_upsell: ROP_ASSETS_URL + 'img/to_business.png'
20634
+ };
20635
+ }
20636
+ // </script>
20637
+ //
20638
+ // <style scoped>
20639
+ // #rop-upsell-box{
20640
+ // margin-top:20px;
20641
+ // }
20642
+ // #rop_core .rop-upsell-business-card,
20643
+ // #rop_core .rop-upsell-pro-card {
20644
+ // padding: 0;
20645
+ // }
20646
+ // </style>
20647
+
20648
+ };
20649
+
20650
+ /***/ }),
20651
+ /* 76 */
20652
+ /***/ (function(module, exports) {
20653
+
20654
+ module.exports = "\n\t<div id=\"rop-upsell-box\" _v-6aa195a8=\"\">\n\t\t<div class=\"card rop-upsell-pro-card\" v-if=\"license < 1 \" _v-6aa195a8=\"\">\n\t\t\t<a :href=\"upsell_link\" target=\"_blank\" _v-6aa195a8=\"\">\n\t\t\t\t<img class=\"img-responsive\" :src=\"to_pro_upsell\" :alt=\"labels.upgrade_pro_cta\" _v-6aa195a8=\"\">\n\t\t\t</a>\n\t\t</div>\n\t\t<div class=\"card rop-upsell-business-card\" v-if=\"license === 1\" _v-6aa195a8=\"\">\n\t\t\t<a :href=\"upsell_link\" target=\"_blank\" _v-6aa195a8=\"\">\n\t\t\t\t<img class=\"img-responsive\" :src=\"to_business_upsell\" :alt=\"labels.upgrade_biz_cta\" _v-6aa195a8=\"\">\n\t\t\t</a>\n\t\t</div>\n\t</div>\n";
20655
+
20656
+ /***/ }),
20657
+ /* 77 */
20658
+ /***/ (function(module, exports, __webpack_require__) {
20659
+
20660
+ var __vue_script__, __vue_template__
20661
+ __webpack_require__(302)
20662
+ __vue_script__ = __webpack_require__(214)
20663
+ __vue_template__ = __webpack_require__(304)
20664
+ module.exports = __vue_script__ || {}
20665
+ if (module.exports.__esModule) module.exports = module.exports.default
20666
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
20667
+ if (false) {(function () { module.hot.accept()
20668
+ var hotAPI = require("vue-hot-reload-api")
20669
+ hotAPI.install(require("vue"), true)
20670
+ if (!hotAPI.compatible) return
20671
+ var id = "C:\\Users\\mariu\\Local Sites\\rop\\app\\public\\wp-content\\plugins\\tweet-old-post\\vue\\src\\vue-elements\\sign-in-btn.vue"
20672
+ if (!module.hot.data) {
20673
+ hotAPI.createRecord(id, module.exports)
20674
+ } else {
20675
+ hotAPI.update(id, module.exports, __vue_template__)
20676
+ }
20677
+ })()}
20678
+
20679
+ /***/ }),
20680
+ /* 78 */
20681
+ /***/ (function(module, exports, __webpack_require__) {
20682
+
20683
+ var __vue_script__, __vue_template__
20684
+ __webpack_require__(231)
20685
+ __vue_script__ = __webpack_require__(233)
20686
+ __vue_template__ = __webpack_require__(234)
20687
+ module.exports = __vue_script__ || {}
20688
+ if (module.exports.__esModule) module.exports = module.exports.default
20689
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
20690
+ if (false) {(function () { module.hot.accept()
20691
+ var hotAPI = require("vue-hot-reload-api")
20692
+ hotAPI.install(require("vue"), true)
20693
+ if (!hotAPI.compatible) return
20694
+ var id = "C:\\Users\\mariu\\Local Sites\\rop\\app\\public\\wp-content\\plugins\\tweet-old-post\\vue\\src\\vue-elements\\reusables\\counter-input.vue"
20695
+ if (!module.hot.data) {
20696
+ hotAPI.createRecord(id, module.exports)
20697
+ } else {
20698
+ hotAPI.update(id, module.exports, __vue_template__)
20699
+ }
20700
+ })()}
20701
+
20702
+ /***/ }),
20703
+ /* 79 */
20704
+ /***/ (function(module, exports, __webpack_require__) {
20705
+
20706
+ //! moment.js locale configuration
20707
+
20708
+ ;(function (global, factory) {
20709
+ true ? factory(__webpack_require__(0)) :
20710
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
20711
+ factory(global.moment)
20712
+ }(this, (function (moment) { 'use strict';
20713
+
20714
+
20715
+ var af = moment.defineLocale('af', {
20716
+ months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
20717
+ monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
20718
+ weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
20719
+ weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
20720
+ weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
20721
+ meridiemParse: /vm|nm/i,
20722
+ isPM : function (input) {
20723
+ return /^nm$/i.test(input);
20724
+ },
20725
+ meridiem : function (hours, minutes, isLower) {
20726
+ if (hours < 12) {
20727
+ return isLower ? 'vm' : 'VM';
20728
+ } else {
20729
+ return isLower ? 'nm' : 'NM';
20730
+ }
20731
+ },
20732
+ longDateFormat : {
20733
+ LT : 'HH:mm',
20734
+ LTS : 'HH:mm:ss',
20735
+ L : 'DD/MM/YYYY',
20736
+ LL : 'D MMMM YYYY',
20737
+ LLL : 'D MMMM YYYY HH:mm',
20738
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
20739
+ },
20740
+ calendar : {
20741
+ sameDay : '[Vandag om] LT',
20742
+ nextDay : '[Môre om] LT',
20743
+ nextWeek : 'dddd [om] LT',
20744
+ lastDay : '[Gister om] LT',
20745
+ lastWeek : '[Laas] dddd [om] LT',
20746
+ sameElse : 'L'
20747
+ },
20748
+ relativeTime : {
20749
+ future : 'oor %s',
20750
+ past : '%s gelede',
20751
+ s : '\'n paar sekondes',
20752
+ ss : '%d sekondes',
20753
+ m : '\'n minuut',
20754
+ mm : '%d minute',
20755
+ h : '\'n uur',
20756
+ hh : '%d ure',
20757
+ d : '\'n dag',
20758
+ dd : '%d dae',
20759
+ M : '\'n maand',
20760
+ MM : '%d maande',
20761
+ y : '\'n jaar',
20762
+ yy : '%d jaar'
20763
+ },
20764
+ dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
20765
+ ordinal : function (number) {
20766
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
20767
+ },
20768
+ week : {
20769
+ dow : 1, // Maandag is die eerste dag van die week.
20770
+ doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
20771
+ }
20772
+ });
20773
+
20774
+ return af;
20775
+
20776
+ })));
20777
+
20778
+
20779
+ /***/ }),
20780
+ /* 80 */
20781
+ /***/ (function(module, exports, __webpack_require__) {
20782
+
20783
+ //! moment.js locale configuration
20784
+
20785
+ ;(function (global, factory) {
20786
+ true ? factory(__webpack_require__(0)) :
20787
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
20788
+ factory(global.moment)
20789
+ }(this, (function (moment) { 'use strict';
20790
+
20791
+
20792
+ var symbolMap = {
20793
+ '1': '١',
20794
+ '2': '٢',
20795
+ '3': '٣',
20796
+ '4': '٤',
20797
+ '5': '٥',
20798
+ '6': '٦',
20799
+ '7': '٧',
20800
+ '8': '٨',
20801
+ '9': '٩',
20802
+ '0': '٠'
20803
+ }, numberMap = {
20804
+ '١': '1',
20805
+ '٢': '2',
20806
+ '٣': '3',
20807
+ '٤': '4',
20808
+ '٥': '5',
20809
+ '٦': '6',
20810
+ '٧': '7',
20811
+ '٨': '8',
20812
+ '٩': '9',
20813
+ '٠': '0'
20814
+ }, pluralForm = function (n) {
20815
+ return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
20816
+ }, plurals = {
20817
+ s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
20818
+ m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
20819
+ h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
20820
+ d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
20821
+ M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
20822
+ y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
20823
+ }, pluralize = function (u) {
20824
+ return function (number, withoutSuffix, string, isFuture) {
20825
+ var f = pluralForm(number),
20826
+ str = plurals[u][pluralForm(number)];
20827
+ if (f === 2) {
20828
+ str = str[withoutSuffix ? 0 : 1];
20829
+ }
20830
+ return str.replace(/%d/i, number);
20831
+ };
20832
+ }, months = [
20833
+ 'يناير',
20834
+ 'فبراير',
20835
+ 'مارس',
20836
+ 'أبريل',
20837
+ 'مايو',
20838
+ 'يونيو',
20839
+ 'يوليو',
20840
+ 'أغسطس',
20841
+ 'سبتمبر',
20842
+ 'أكتوبر',
20843
+ 'نوفمبر',
20844
+ 'ديسمبر'
20845
+ ];
20846
+
20847
+ var ar = moment.defineLocale('ar', {
20848
+ months : months,
20849
+ monthsShort : months,
20850
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
20851
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
20852
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
20853
+ weekdaysParseExact : true,
20854
+ longDateFormat : {
20855
+ LT : 'HH:mm',
20856
+ LTS : 'HH:mm:ss',
20857
+ L : 'D/\u200FM/\u200FYYYY',
20858
+ LL : 'D MMMM YYYY',
20859
+ LLL : 'D MMMM YYYY HH:mm',
20860
+ LLLL : 'dddd D MMMM YYYY HH:mm'
20861
+ },
20862
+ meridiemParse: /ص|م/,
20863
+ isPM : function (input) {
20864
+ return 'م' === input;
20865
+ },
20866
+ meridiem : function (hour, minute, isLower) {
20867
+ if (hour < 12) {
20868
+ return 'ص';
20869
+ } else {
20870
+ return 'م';
20871
+ }
20872
+ },
20873
+ calendar : {
20874
+ sameDay: '[اليوم عند الساعة] LT',
20875
+ nextDay: '[غدًا عند الساعة] LT',
20876
+ nextWeek: 'dddd [عند الساعة] LT',
20877
+ lastDay: '[أمس عند الساعة] LT',
20878
+ lastWeek: 'dddd [عند الساعة] LT',
20879
+ sameElse: 'L'
20880
+ },
20881
+ relativeTime : {
20882
+ future : 'بعد %s',
20883
+ past : 'منذ %s',
20884
+ s : pluralize('s'),
20885
+ ss : pluralize('s'),
20886
+ m : pluralize('m'),
20887
+ mm : pluralize('m'),
20888
+ h : pluralize('h'),
20889
+ hh : pluralize('h'),
20890
+ d : pluralize('d'),
20891
+ dd : pluralize('d'),
20892
+ M : pluralize('M'),
20893
+ MM : pluralize('M'),
20894
+ y : pluralize('y'),
20895
+ yy : pluralize('y')
20896
+ },
20897
+ preparse: function (string) {
20898
+ return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
20899
+ return numberMap[match];
20900
+ }).replace(/،/g, ',');
20901
+ },
20902
+ postformat: function (string) {
20903
+ return string.replace(/\d/g, function (match) {
20904
+ return symbolMap[match];
20905
+ }).replace(/,/g, '،');
20906
+ },
20907
+ week : {
20908
+ dow : 6, // Saturday is the first day of the week.
20909
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
20910
+ }
20911
+ });
20912
+
20913
+ return ar;
20914
+
20915
+ })));
20916
+
20917
+
20918
+ /***/ }),
20919
+ /* 81 */
20920
+ /***/ (function(module, exports, __webpack_require__) {
20921
+
20922
+ //! moment.js locale configuration
20923
+
20924
+ ;(function (global, factory) {
20925
+ true ? factory(__webpack_require__(0)) :
20926
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
20927
+ factory(global.moment)
20928
+ }(this, (function (moment) { 'use strict';
20929
+
20930
+
20931
+ var arDz = moment.defineLocale('ar-dz', {
20932
+ months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
20933
+ monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
20934
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
20935
+ weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
20936
+ weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),
20937
+ weekdaysParseExact : true,
20938
+ longDateFormat : {
20939
+ LT : 'HH:mm',
20940
+ LTS : 'HH:mm:ss',
20941
+ L : 'DD/MM/YYYY',
20942
+ LL : 'D MMMM YYYY',
20943
+ LLL : 'D MMMM YYYY HH:mm',
20944
+ LLLL : 'dddd D MMMM YYYY HH:mm'
20945
+ },
20946
+ calendar : {
20947
+ sameDay: '[اليوم على الساعة] LT',
20948
+ nextDay: '[غدا على الساعة] LT',
20949
+ nextWeek: 'dddd [على الساعة] LT',
20950
+ lastDay: '[أمس على الساعة] LT',
20951
+ lastWeek: 'dddd [على الساعة] LT',
20952
+ sameElse: 'L'
20953
+ },
20954
+ relativeTime : {
20955
+ future : 'في %s',
20956
+ past : 'منذ %s',
20957
+ s : 'ثوان',
20958
+ ss : '%d ثانية',
20959
+ m : 'دقيقة',
20960
+ mm : '%d دقائق',
20961
+ h : 'ساعة',
20962
+ hh : '%d ساعات',
20963
+ d : 'يوم',
20964
+ dd : '%d أيام',
20965
+ M : 'شهر',
20966
+ MM : '%d أشهر',
20967
+ y : 'سنة',
20968
+ yy : '%d سنوات'
20969
+ },
20970
+ week : {
20971
+ dow : 0, // Sunday is the first day of the week.
20972
+ doy : 4 // The week that contains Jan 1st is the first week of the year.
20973
+ }
20974
+ });
20975
+
20976
+ return arDz;
20977
+
20978
+ })));
20979
+
20980
+
20981
+ /***/ }),
20982
+ /* 82 */
20983
+ /***/ (function(module, exports, __webpack_require__) {
20984
+
20985
+ //! moment.js locale configuration
20986
+
20987
+ ;(function (global, factory) {
20988
+ true ? factory(__webpack_require__(0)) :
20989
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
20990
+ factory(global.moment)
20991
+ }(this, (function (moment) { 'use strict';
20992
+
20993
+
20994
+ var arKw = moment.defineLocale('ar-kw', {
20995
+ months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
20996
+ monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
20997
+ weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
20998
+ weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
20999
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
21000
+ weekdaysParseExact : true,
21001
+ longDateFormat : {
21002
+ LT : 'HH:mm',
21003
+ LTS : 'HH:mm:ss',
21004
+ L : 'DD/MM/YYYY',
21005
+ LL : 'D MMMM YYYY',
21006
+ LLL : 'D MMMM YYYY HH:mm',
21007
+ LLLL : 'dddd D MMMM YYYY HH:mm'
21008
+ },
21009
+ calendar : {
21010
+ sameDay: '[اليوم على الساعة] LT',
21011
+ nextDay: '[غدا على الساعة] LT',
21012
+ nextWeek: 'dddd [على الساعة] LT',
21013
+ lastDay: '[أمس على الساعة] LT',
21014
+ lastWeek: 'dddd [على الساعة] LT',
21015
+ sameElse: 'L'
21016
+ },
21017
+ relativeTime : {
21018
+ future : 'في %s',
21019
+ past : 'منذ %s',
21020
+ s : 'ثوان',
21021
+ ss : '%d ثانية',
21022
+ m : 'دقيقة',
21023
+ mm : '%d دقائق',
21024
+ h : 'ساعة',
21025
+ hh : '%d ساعات',
21026
+ d : 'يوم',
21027
+ dd : '%d أيام',
21028
+ M : 'شهر',
21029
+ MM : '%d أشهر',
21030
+ y : 'سنة',
21031
+ yy : '%d سنوات'
21032
+ },
21033
+ week : {
21034
+ dow : 0, // Sunday is the first day of the week.
21035
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
21036
+ }
21037
+ });
21038
+
21039
+ return arKw;
21040
+
21041
+ })));
21042
+
21043
+
21044
+ /***/ }),
21045
+ /* 83 */
21046
+ /***/ (function(module, exports, __webpack_require__) {
21047
+
21048
+ //! moment.js locale configuration
21049
+
21050
+ ;(function (global, factory) {
21051
+ true ? factory(__webpack_require__(0)) :
21052
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21053
+ factory(global.moment)
21054
+ }(this, (function (moment) { 'use strict';
21055
+
21056
+
21057
+ var symbolMap = {
21058
+ '1': '1',
21059
+ '2': '2',
21060
+ '3': '3',
21061
+ '4': '4',
21062
+ '5': '5',
21063
+ '6': '6',
21064
+ '7': '7',
21065
+ '8': '8',
21066
+ '9': '9',
21067
+ '0': '0'
21068
+ }, pluralForm = function (n) {
21069
+ return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
21070
+ }, plurals = {
21071
+ s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
21072
+ m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
21073
+ h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
21074
+ d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
21075
+ M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
21076
+ y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
21077
+ }, pluralize = function (u) {
21078
+ return function (number, withoutSuffix, string, isFuture) {
21079
+ var f = pluralForm(number),
21080
+ str = plurals[u][pluralForm(number)];
21081
+ if (f === 2) {
21082
+ str = str[withoutSuffix ? 0 : 1];
21083
+ }
21084
+ return str.replace(/%d/i, number);
21085
+ };
21086
+ }, months = [
21087
+ 'يناير',
21088
+ 'فبراير',
21089
+ 'مارس',
21090
+ 'أبريل',
21091
+ 'مايو',
21092
+ 'يونيو',
21093
+ 'يوليو',
21094
+ 'أغسطس',
21095
+ 'سبتمبر',
21096
+ 'أكتوبر',
21097
+ 'نوفمبر',
21098
+ 'ديسمبر'
21099
+ ];
21100
+
21101
+ var arLy = moment.defineLocale('ar-ly', {
21102
+ months : months,
21103
+ monthsShort : months,
21104
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
21105
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
21106
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
21107
+ weekdaysParseExact : true,
21108
+ longDateFormat : {
21109
+ LT : 'HH:mm',
21110
+ LTS : 'HH:mm:ss',
21111
+ L : 'D/\u200FM/\u200FYYYY',
21112
+ LL : 'D MMMM YYYY',
21113
+ LLL : 'D MMMM YYYY HH:mm',
21114
+ LLLL : 'dddd D MMMM YYYY HH:mm'
21115
+ },
21116
+ meridiemParse: /ص|م/,
21117
+ isPM : function (input) {
21118
+ return 'م' === input;
21119
+ },
21120
+ meridiem : function (hour, minute, isLower) {
21121
+ if (hour < 12) {
21122
+ return 'ص';
21123
+ } else {
21124
+ return 'م';
21125
+ }
21126
+ },
21127
+ calendar : {
21128
+ sameDay: '[اليوم عند الساعة] LT',
21129
+ nextDay: '[غدًا عند الساعة] LT',
21130
+ nextWeek: 'dddd [عند الساعة] LT',
21131
+ lastDay: '[أمس عند الساعة] LT',
21132
+ lastWeek: 'dddd [عند الساعة] LT',
21133
+ sameElse: 'L'
21134
+ },
21135
+ relativeTime : {
21136
+ future : 'بعد %s',
21137
+ past : 'منذ %s',
21138
+ s : pluralize('s'),
21139
+ ss : pluralize('s'),
21140
+ m : pluralize('m'),
21141
+ mm : pluralize('m'),
21142
+ h : pluralize('h'),
21143
+ hh : pluralize('h'),
21144
+ d : pluralize('d'),
21145
+ dd : pluralize('d'),
21146
+ M : pluralize('M'),
21147
+ MM : pluralize('M'),
21148
+ y : pluralize('y'),
21149
+ yy : pluralize('y')
21150
+ },
21151
+ preparse: function (string) {
21152
+ return string.replace(/،/g, ',');
21153
+ },
21154
+ postformat: function (string) {
21155
+ return string.replace(/\d/g, function (match) {
21156
+ return symbolMap[match];
21157
+ }).replace(/,/g, '،');
21158
+ },
21159
+ week : {
21160
+ dow : 6, // Saturday is the first day of the week.
21161
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
21162
+ }
21163
+ });
21164
+
21165
+ return arLy;
21166
+
21167
+ })));
21168
+
21169
+
21170
+ /***/ }),
21171
+ /* 84 */
21172
+ /***/ (function(module, exports, __webpack_require__) {
21173
+
21174
+ //! moment.js locale configuration
21175
+
21176
+ ;(function (global, factory) {
21177
+ true ? factory(__webpack_require__(0)) :
21178
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21179
+ factory(global.moment)
21180
+ }(this, (function (moment) { 'use strict';
21181
+
21182
+
21183
+ var arMa = moment.defineLocale('ar-ma', {
21184
+ months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
21185
+ monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
21186
+ weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
21187
+ weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
21188
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
21189
+ weekdaysParseExact : true,
21190
+ longDateFormat : {
21191
+ LT : 'HH:mm',
21192
+ LTS : 'HH:mm:ss',
21193
+ L : 'DD/MM/YYYY',
21194
+ LL : 'D MMMM YYYY',
21195
+ LLL : 'D MMMM YYYY HH:mm',
21196
+ LLLL : 'dddd D MMMM YYYY HH:mm'
21197
+ },
21198
+ calendar : {
21199
+ sameDay: '[اليوم على الساعة] LT',
21200
+ nextDay: '[غدا على الساعة] LT',
21201
+ nextWeek: 'dddd [على الساعة] LT',
21202
+ lastDay: '[أمس على الساعة] LT',
21203
+ lastWeek: 'dddd [على الساعة] LT',
21204
+ sameElse: 'L'
21205
+ },
21206
+ relativeTime : {
21207
+ future : 'في %s',
21208
+ past : 'منذ %s',
21209
+ s : 'ثوان',
21210
+ ss : '%d ثانية',
21211
+ m : 'دقيقة',
21212
+ mm : '%d دقائق',
21213
+ h : 'ساعة',
21214
+ hh : '%d ساعات',
21215
+ d : 'يوم',
21216
+ dd : '%d أيام',
21217
+ M : 'شهر',
21218
+ MM : '%d أشهر',
21219
+ y : 'سنة',
21220
+ yy : '%d سنوات'
21221
+ },
21222
+ week : {
21223
+ dow : 6, // Saturday is the first day of the week.
21224
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
21225
+ }
21226
+ });
21227
+
21228
+ return arMa;
21229
+
21230
+ })));
21231
+
21232
+
21233
+ /***/ }),
21234
+ /* 85 */
21235
+ /***/ (function(module, exports, __webpack_require__) {
21236
+
21237
+ //! moment.js locale configuration
21238
+
21239
+ ;(function (global, factory) {
21240
+ true ? factory(__webpack_require__(0)) :
21241
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21242
+ factory(global.moment)
21243
+ }(this, (function (moment) { 'use strict';
21244
+
21245
+
21246
+ var symbolMap = {
21247
+ '1': '١',
21248
+ '2': '٢',
21249
+ '3': '٣',
21250
+ '4': '٤',
21251
+ '5': '٥',
21252
+ '6': '٦',
21253
+ '7': '٧',
21254
+ '8': '٨',
21255
+ '9': '٩',
21256
+ '0': '٠'
21257
+ }, numberMap = {
21258
+ '١': '1',
21259
+ '٢': '2',
21260
+ '٣': '3',
21261
+ '٤': '4',
21262
+ '٥': '5',
21263
+ '٦': '6',
21264
+ '٧': '7',
21265
+ '٨': '8',
21266
+ '٩': '9',
21267
+ '٠': '0'
21268
+ };
21269
+
21270
+ var arSa = moment.defineLocale('ar-sa', {
21271
+ months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
21272
+ monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
21273
+ weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
21274
+ weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
21275
+ weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
21276
+ weekdaysParseExact : true,
21277
+ longDateFormat : {
21278
+ LT : 'HH:mm',
21279
+ LTS : 'HH:mm:ss',
21280
+ L : 'DD/MM/YYYY',
21281
+ LL : 'D MMMM YYYY',
21282
+ LLL : 'D MMMM YYYY HH:mm',
21283
+ LLLL : 'dddd D MMMM YYYY HH:mm'
21284
+ },
21285
+ meridiemParse: /ص|م/,
21286
+ isPM : function (input) {
21287
+ return 'م' === input;
21288
+ },
21289
+ meridiem : function (hour, minute, isLower) {
21290
+ if (hour < 12) {
21291
+ return 'ص';
21292
+ } else {
21293
+ return 'م';
21294
+ }
21295
+ },
21296
+ calendar : {
21297
+ sameDay: '[اليوم على الساعة] LT',
21298
+ nextDay: '[غدا على الساعة] LT',
21299
+ nextWeek: 'dddd [على الساعة] LT',
21300
+ lastDay: '[أمس على الساعة] LT',
21301
+ lastWeek: 'dddd [على الساعة] LT',
21302
+ sameElse: 'L'
21303
+ },
21304
+ relativeTime : {
21305
+ future : 'في %s',
21306
+ past : 'منذ %s',
21307
+ s : 'ثوان',
21308
+ ss : '%d ثانية',
21309
+ m : 'دقيقة',
21310
+ mm : '%d دقائق',
21311
+ h : 'ساعة',
21312
+ hh : '%d ساعات',
21313
+ d : 'يوم',
21314
+ dd : '%d أيام',
21315
+ M : 'شهر',
21316
+ MM : '%d أشهر',
21317
+ y : 'سنة',
21318
+ yy : '%d سنوات'
21319
+ },
21320
+ preparse: function (string) {
21321
+ return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
21322
+ return numberMap[match];
21323
+ }).replace(/،/g, ',');
21324
+ },
21325
+ postformat: function (string) {
21326
+ return string.replace(/\d/g, function (match) {
21327
+ return symbolMap[match];
21328
+ }).replace(/,/g, '،');
21329
+ },
21330
+ week : {
21331
+ dow : 0, // Sunday is the first day of the week.
21332
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
21333
+ }
21334
+ });
21335
+
21336
+ return arSa;
21337
+
21338
+ })));
21339
+
21340
+
21341
+ /***/ }),
21342
+ /* 86 */
21343
+ /***/ (function(module, exports, __webpack_require__) {
21344
+
21345
+ //! moment.js locale configuration
21346
+
21347
+ ;(function (global, factory) {
21348
+ true ? factory(__webpack_require__(0)) :
21349
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21350
+ factory(global.moment)
21351
+ }(this, (function (moment) { 'use strict';
21352
+
21353
+
21354
+ var arTn = moment.defineLocale('ar-tn', {
21355
+ months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
21356
+ monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
21357
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
21358
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
21359
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
21360
+ weekdaysParseExact : true,
21361
+ longDateFormat: {
21362
+ LT: 'HH:mm',
21363
+ LTS: 'HH:mm:ss',
21364
+ L: 'DD/MM/YYYY',
21365
+ LL: 'D MMMM YYYY',
21366
+ LLL: 'D MMMM YYYY HH:mm',
21367
+ LLLL: 'dddd D MMMM YYYY HH:mm'
21368
+ },
21369
+ calendar: {
21370
+ sameDay: '[اليوم على الساعة] LT',
21371
+ nextDay: '[غدا على الساعة] LT',
21372
+ nextWeek: 'dddd [على الساعة] LT',
21373
+ lastDay: '[أمس على الساعة] LT',
21374
+ lastWeek: 'dddd [على الساعة] LT',
21375
+ sameElse: 'L'
21376
+ },
21377
+ relativeTime: {
21378
+ future: 'في %s',
21379
+ past: 'منذ %s',
21380
+ s: 'ثوان',
21381
+ ss : '%d ثانية',
21382
+ m: 'دقيقة',
21383
+ mm: '%d دقائق',
21384
+ h: 'ساعة',
21385
+ hh: '%d ساعات',
21386
+ d: 'يوم',
21387
+ dd: '%d أيام',
21388
+ M: 'شهر',
21389
+ MM: '%d أشهر',
21390
+ y: 'سنة',
21391
+ yy: '%d سنوات'
21392
+ },
21393
+ week: {
21394
+ dow: 1, // Monday is the first day of the week.
21395
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
21396
+ }
21397
+ });
21398
+
21399
+ return arTn;
21400
+
21401
+ })));
21402
+
21403
+
21404
+ /***/ }),
21405
+ /* 87 */
21406
+ /***/ (function(module, exports, __webpack_require__) {
21407
+
21408
+ //! moment.js locale configuration
21409
+
21410
+ ;(function (global, factory) {
21411
+ true ? factory(__webpack_require__(0)) :
21412
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21413
+ factory(global.moment)
21414
+ }(this, (function (moment) { 'use strict';
21415
+
21416
+
21417
+ var suffixes = {
21418
+ 1: '-inci',
21419
+ 5: '-inci',
21420
+ 8: '-inci',
21421
+ 70: '-inci',
21422
+ 80: '-inci',
21423
+ 2: '-nci',
21424
+ 7: '-nci',
21425
+ 20: '-nci',
21426
+ 50: '-nci',
21427
+ 3: '-üncü',
21428
+ 4: '-üncü',
21429
+ 100: '-üncü',
21430
+ 6: '-ncı',
21431
+ 9: '-uncu',
21432
+ 10: '-uncu',
21433
+ 30: '-uncu',
21434
+ 60: '-ıncı',
21435
+ 90: '-ıncı'
21436
+ };
21437
+
21438
+ var az = moment.defineLocale('az', {
21439
+ months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
21440
+ monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
21441
+ weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
21442
+ weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
21443
+ weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
21444
+ weekdaysParseExact : true,
21445
+ longDateFormat : {
21446
+ LT : 'HH:mm',
21447
+ LTS : 'HH:mm:ss',
21448
+ L : 'DD.MM.YYYY',
21449
+ LL : 'D MMMM YYYY',
21450
+ LLL : 'D MMMM YYYY HH:mm',
21451
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
21452
+ },
21453
+ calendar : {
21454
+ sameDay : '[bugün saat] LT',
21455
+ nextDay : '[sabah saat] LT',
21456
+ nextWeek : '[gələn həftə] dddd [saat] LT',
21457
+ lastDay : '[dünən] LT',
21458
+ lastWeek : '[keçən həftə] dddd [saat] LT',
21459
+ sameElse : 'L'
21460
+ },
21461
+ relativeTime : {
21462
+ future : '%s sonra',
21463
+ past : '%s əvvəl',
21464
+ s : 'birneçə saniyyə',
21465
+ ss : '%d saniyə',
21466
+ m : 'bir dəqiqə',
21467
+ mm : '%d dəqiqə',
21468
+ h : 'bir saat',
21469
+ hh : '%d saat',
21470
+ d : 'bir gün',
21471
+ dd : '%d gün',
21472
+ M : 'bir ay',
21473
+ MM : '%d ay',
21474
+ y : 'bir il',
21475
+ yy : '%d il'
21476
+ },
21477
+ meridiemParse: /gecə|səhər|gündüz|axşam/,
21478
+ isPM : function (input) {
21479
+ return /^(gündüz|axşam)$/.test(input);
21480
+ },
21481
+ meridiem : function (hour, minute, isLower) {
21482
+ if (hour < 4) {
21483
+ return 'gecə';
21484
+ } else if (hour < 12) {
21485
+ return 'səhər';
21486
+ } else if (hour < 17) {
21487
+ return 'gündüz';
21488
+ } else {
21489
+ return 'axşam';
21490
+ }
21491
+ },
21492
+ dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
21493
+ ordinal : function (number) {
21494
+ if (number === 0) { // special case for zero
21495
+ return number + '-ıncı';
21496
+ }
21497
+ var a = number % 10,
21498
+ b = number % 100 - a,
21499
+ c = number >= 100 ? 100 : null;
21500
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
21501
+ },
21502
+ week : {
21503
+ dow : 1, // Monday is the first day of the week.
21504
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
21505
+ }
21506
+ });
21507
+
21508
+ return az;
21509
+
21510
+ })));
21511
+
21512
+
21513
+ /***/ }),
21514
+ /* 88 */
21515
+ /***/ (function(module, exports, __webpack_require__) {
21516
+
21517
+ //! moment.js locale configuration
21518
+
21519
+ ;(function (global, factory) {
21520
+ true ? factory(__webpack_require__(0)) :
21521
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21522
+ factory(global.moment)
21523
+ }(this, (function (moment) { 'use strict';
21524
+
21525
+
21526
+ function plural(word, num) {
21527
+ var forms = word.split('_');
21528
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
21529
+ }
21530
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
21531
+ var format = {
21532
+ 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
21533
+ 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
21534
+ 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
21535
+ 'dd': 'дзень_дні_дзён',
21536
+ 'MM': 'месяц_месяцы_месяцаў',
21537
+ 'yy': 'год_гады_гадоў'
21538
+ };
21539
+ if (key === 'm') {
21540
+ return withoutSuffix ? 'хвіліна' : 'хвіліну';
21541
+ }
21542
+ else if (key === 'h') {
21543
+ return withoutSuffix ? 'гадзіна' : 'гадзіну';
21544
+ }
21545
+ else {
21546
+ return number + ' ' + plural(format[key], +number);
21547
+ }
21548
+ }
21549
+
21550
+ var be = moment.defineLocale('be', {
21551
+ months : {
21552
+ format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
21553
+ standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
21554
+ },
21555
+ monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
21556
+ weekdays : {
21557
+ format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
21558
+ standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
21559
+ isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/
21560
+ },
21561
+ weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
21562
+ weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
21563
+ longDateFormat : {
21564
+ LT : 'HH:mm',
21565
+ LTS : 'HH:mm:ss',
21566
+ L : 'DD.MM.YYYY',
21567
+ LL : 'D MMMM YYYY г.',
21568
+ LLL : 'D MMMM YYYY г., HH:mm',
21569
+ LLLL : 'dddd, D MMMM YYYY г., HH:mm'
21570
+ },
21571
+ calendar : {
21572
+ sameDay: '[Сёння ў] LT',
21573
+ nextDay: '[Заўтра ў] LT',
21574
+ lastDay: '[Учора ў] LT',
21575
+ nextWeek: function () {
21576
+ return '[У] dddd [ў] LT';
21577
+ },
21578
+ lastWeek: function () {
21579
+ switch (this.day()) {
21580
+ case 0:
21581
+ case 3:
21582
+ case 5:
21583
+ case 6:
21584
+ return '[У мінулую] dddd [ў] LT';
21585
+ case 1:
21586
+ case 2:
21587
+ case 4:
21588
+ return '[У мінулы] dddd [ў] LT';
21589
+ }
21590
+ },
21591
+ sameElse: 'L'
21592
+ },
21593
+ relativeTime : {
21594
+ future : 'праз %s',
21595
+ past : '%s таму',
21596
+ s : 'некалькі секунд',
21597
+ m : relativeTimeWithPlural,
21598
+ mm : relativeTimeWithPlural,
21599
+ h : relativeTimeWithPlural,
21600
+ hh : relativeTimeWithPlural,
21601
+ d : 'дзень',
21602
+ dd : relativeTimeWithPlural,
21603
+ M : 'месяц',
21604
+ MM : relativeTimeWithPlural,
21605
+ y : 'год',
21606
+ yy : relativeTimeWithPlural
21607
+ },
21608
+ meridiemParse: /ночы|раніцы|дня|вечара/,
21609
+ isPM : function (input) {
21610
+ return /^(дня|вечара)$/.test(input);
21611
+ },
21612
+ meridiem : function (hour, minute, isLower) {
21613
+ if (hour < 4) {
21614
+ return 'ночы';
21615
+ } else if (hour < 12) {
21616
+ return 'раніцы';
21617
+ } else if (hour < 17) {
21618
+ return 'дня';
21619
+ } else {
21620
+ return 'вечара';
21621
+ }
21622
+ },
21623
+ dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
21624
+ ordinal: function (number, period) {
21625
+ switch (period) {
21626
+ case 'M':
21627
+ case 'd':
21628
+ case 'DDD':
21629
+ case 'w':
21630
+ case 'W':
21631
+ return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
21632
+ case 'D':
21633
+ return number + '-га';
21634
+ default:
21635
+ return number;
21636
+ }
21637
+ },
21638
+ week : {
21639
+ dow : 1, // Monday is the first day of the week.
21640
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
21641
+ }
21642
+ });
21643
+
21644
+ return be;
21645
+
21646
+ })));
21647
+
21648
+
21649
+ /***/ }),
21650
+ /* 89 */
21651
+ /***/ (function(module, exports, __webpack_require__) {
21652
+
21653
+ //! moment.js locale configuration
21654
+
21655
+ ;(function (global, factory) {
21656
+ true ? factory(__webpack_require__(0)) :
21657
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21658
+ factory(global.moment)
21659
+ }(this, (function (moment) { 'use strict';
21660
+
21661
+
21662
+ var bg = moment.defineLocale('bg', {
21663
+ months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
21664
+ monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
21665
+ weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
21666
+ weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
21667
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
21668
+ longDateFormat : {
21669
+ LT : 'H:mm',
21670
+ LTS : 'H:mm:ss',
21671
+ L : 'D.MM.YYYY',
21672
+ LL : 'D MMMM YYYY',
21673
+ LLL : 'D MMMM YYYY H:mm',
21674
+ LLLL : 'dddd, D MMMM YYYY H:mm'
21675
+ },
21676
+ calendar : {
21677
+ sameDay : '[Днес в] LT',
21678
+ nextDay : '[Утре в] LT',
21679
+ nextWeek : 'dddd [в] LT',
21680
+ lastDay : '[Вчера в] LT',
21681
+ lastWeek : function () {
21682
+ switch (this.day()) {
21683
+ case 0:
21684
+ case 3:
21685
+ case 6:
21686
+ return '[В изминалата] dddd [в] LT';
21687
+ case 1:
21688
+ case 2:
21689
+ case 4:
21690
+ case 5:
21691
+ return '[В изминалия] dddd [в] LT';
21692
+ }
21693
+ },
21694
+ sameElse : 'L'
21695
+ },
21696
+ relativeTime : {
21697
+ future : 'след %s',
21698
+ past : 'преди %s',
21699
+ s : 'няколко секунди',
21700
+ ss : '%d секунди',
21701
+ m : 'минута',
21702
+ mm : '%d минути',
21703
+ h : 'час',
21704
+ hh : '%d часа',
21705
+ d : 'ден',
21706
+ dd : '%d дни',
21707
+ M : 'месец',
21708
+ MM : '%d месеца',
21709
+ y : 'година',
21710
+ yy : '%d години'
21711
+ },
21712
+ dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
21713
+ ordinal : function (number) {
21714
+ var lastDigit = number % 10,
21715
+ last2Digits = number % 100;
21716
+ if (number === 0) {
21717
+ return number + '-ев';
21718
+ } else if (last2Digits === 0) {
21719
+ return number + '-ен';
21720
+ } else if (last2Digits > 10 && last2Digits < 20) {
21721
+ return number + '-ти';
21722
+ } else if (lastDigit === 1) {
21723
+ return number + '-ви';
21724
+ } else if (lastDigit === 2) {
21725
+ return number + '-ри';
21726
+ } else if (lastDigit === 7 || lastDigit === 8) {
21727
+ return number + '-ми';
21728
+ } else {
21729
+ return number + '-ти';
21730
+ }
21731
+ },
21732
+ week : {
21733
+ dow : 1, // Monday is the first day of the week.
21734
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
21735
+ }
21736
+ });
21737
+
21738
+ return bg;
21739
+
21740
+ })));
21741
+
21742
+
21743
+ /***/ }),
21744
+ /* 90 */
21745
+ /***/ (function(module, exports, __webpack_require__) {
21746
+
21747
+ //! moment.js locale configuration
21748
+
21749
+ ;(function (global, factory) {
21750
+ true ? factory(__webpack_require__(0)) :
21751
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21752
+ factory(global.moment)
21753
+ }(this, (function (moment) { 'use strict';
21754
+
21755
+
21756
+ var bm = moment.defineLocale('bm', {
21757
+ months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),
21758
+ monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
21759
+ weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
21760
+ weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
21761
+ weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
21762
+ longDateFormat : {
21763
+ LT : 'HH:mm',
21764
+ LTS : 'HH:mm:ss',
21765
+ L : 'DD/MM/YYYY',
21766
+ LL : 'MMMM [tile] D [san] YYYY',
21767
+ LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
21768
+ LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'
21769
+ },
21770
+ calendar : {
21771
+ sameDay : '[Bi lɛrɛ] LT',
21772
+ nextDay : '[Sini lɛrɛ] LT',
21773
+ nextWeek : 'dddd [don lɛrɛ] LT',
21774
+ lastDay : '[Kunu lɛrɛ] LT',
21775
+ lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',
21776
+ sameElse : 'L'
21777
+ },
21778
+ relativeTime : {
21779
+ future : '%s kɔnɔ',
21780
+ past : 'a bɛ %s bɔ',
21781
+ s : 'sanga dama dama',
21782
+ ss : 'sekondi %d',
21783
+ m : 'miniti kelen',
21784
+ mm : 'miniti %d',
21785
+ h : 'lɛrɛ kelen',
21786
+ hh : 'lɛrɛ %d',
21787
+ d : 'tile kelen',
21788
+ dd : 'tile %d',
21789
+ M : 'kalo kelen',
21790
+ MM : 'kalo %d',
21791
+ y : 'san kelen',
21792
+ yy : 'san %d'
21793
+ },
21794
+ week : {
21795
+ dow : 1, // Monday is the first day of the week.
21796
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
21797
+ }
21798
+ });
21799
+
21800
+ return bm;
21801
+
21802
+ })));
21803
+
21804
+
21805
+ /***/ }),
21806
+ /* 91 */
21807
+ /***/ (function(module, exports, __webpack_require__) {
21808
+
21809
+ //! moment.js locale configuration
21810
+
21811
+ ;(function (global, factory) {
21812
+ true ? factory(__webpack_require__(0)) :
21813
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21814
+ factory(global.moment)
21815
+ }(this, (function (moment) { 'use strict';
21816
+
21817
+
21818
+ var symbolMap = {
21819
+ '1': '১',
21820
+ '2': '২',
21821
+ '3': '৩',
21822
+ '4': '৪',
21823
+ '5': '৫',
21824
+ '6': '৬',
21825
+ '7': '৭',
21826
+ '8': '৮',
21827
+ '9': '৯',
21828
+ '0': '০'
21829
+ },
21830
+ numberMap = {
21831
+ '১': '1',
21832
+ '২': '2',
21833
+ '৩': '3',
21834
+ '৪': '4',
21835
+ '৫': '5',
21836
+ '৬': '6',
21837
+ '৭': '7',
21838
+ '৮': '8',
21839
+ '৯': '9',
21840
+ '০': '0'
21841
+ };
21842
+
21843
+ var bn = moment.defineLocale('bn', {
21844
+ months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
21845
+ monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),
21846
+ weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),
21847
+ weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
21848
+ weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),
21849
+ longDateFormat : {
21850
+ LT : 'A h:mm সময়',
21851
+ LTS : 'A h:mm:ss সময়',
21852
+ L : 'DD/MM/YYYY',
21853
+ LL : 'D MMMM YYYY',
21854
+ LLL : 'D MMMM YYYY, A h:mm সময়',
21855
+ LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
21856
+ },
21857
+ calendar : {
21858
+ sameDay : '[আজ] LT',
21859
+ nextDay : '[আগামীকাল] LT',
21860
+ nextWeek : 'dddd, LT',
21861
+ lastDay : '[গতকাল] LT',
21862
+ lastWeek : '[গত] dddd, LT',
21863
+ sameElse : 'L'
21864
+ },
21865
+ relativeTime : {
21866
+ future : '%s পরে',
21867
+ past : '%s আগে',
21868
+ s : 'কয়েক সেকেন্ড',
21869
+ ss : '%d সেকেন্ড',
21870
+ m : 'এক মিনিট',
21871
+ mm : '%d মিনিট',
21872
+ h : 'এক ঘন্টা',
21873
+ hh : '%d ঘন্টা',
21874
+ d : 'এক দিন',
21875
+ dd : '%d দিন',
21876
+ M : 'এক মাস',
21877
+ MM : '%d মাস',
21878
+ y : 'এক বছর',
21879
+ yy : '%d বছর'
21880
+ },
21881
+ preparse: function (string) {
21882
+ return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
21883
+ return numberMap[match];
21884
+ });
21885
+ },
21886
+ postformat: function (string) {
21887
+ return string.replace(/\d/g, function (match) {
21888
+ return symbolMap[match];
21889
+ });
21890
+ },
21891
+ meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
21892
+ meridiemHour : function (hour, meridiem) {
21893
+ if (hour === 12) {
21894
+ hour = 0;
21895
+ }
21896
+ if ((meridiem === 'রাত' && hour >= 4) ||
21897
+ (meridiem === 'দুপুর' && hour < 5) ||
21898
+ meridiem === 'বিকাল') {
21899
+ return hour + 12;
21900
+ } else {
21901
+ return hour;
21902
+ }
21903
+ },
21904
+ meridiem : function (hour, minute, isLower) {
21905
+ if (hour < 4) {
21906
+ return 'রাত';
21907
+ } else if (hour < 10) {
21908
+ return 'সকাল';
21909
+ } else if (hour < 17) {
21910
+ return 'দুপুর';
21911
+ } else if (hour < 20) {
21912
+ return 'বিকাল';
21913
+ } else {
21914
+ return 'রাত';
21915
+ }
21916
+ },
21917
+ week : {
21918
+ dow : 0, // Sunday is the first day of the week.
21919
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
21920
+ }
21921
+ });
21922
+
21923
+ return bn;
21924
+
21925
+ })));
21926
+
21927
+
21928
+ /***/ }),
21929
+ /* 92 */
21930
+ /***/ (function(module, exports, __webpack_require__) {
21931
+
21932
+ //! moment.js locale configuration
21933
+
21934
+ ;(function (global, factory) {
21935
+ true ? factory(__webpack_require__(0)) :
21936
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
21937
+ factory(global.moment)
21938
+ }(this, (function (moment) { 'use strict';
21939
+
21940
+
21941
+ var symbolMap = {
21942
+ '1': '༡',
21943
+ '2': '༢',
21944
+ '3': '༣',
21945
+ '4': '༤',
21946
+ '5': '༥',
21947
+ '6': '༦',
21948
+ '7': '༧',
21949
+ '8': '༨',
21950
+ '9': '༩',
21951
+ '0': '༠'
21952
+ },
21953
+ numberMap = {
21954
+ '༡': '1',
21955
+ '༢': '2',
21956
+ '༣': '3',
21957
+ '༤': '4',
21958
+ '༥': '5',
21959
+ '༦': '6',
21960
+ '༧': '7',
21961
+ '༨': '8',
21962
+ '༩': '9',
21963
+ '༠': '0'
21964
+ };
21965
+
21966
+ var bo = moment.defineLocale('bo', {
21967
+ months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
21968
+ monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
21969
+ weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
21970
+ weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
21971
+ weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
21972
+ longDateFormat : {
21973
+ LT : 'A h:mm',
21974
+ LTS : 'A h:mm:ss',
21975
+ L : 'DD/MM/YYYY',
21976
+ LL : 'D MMMM YYYY',
21977
+ LLL : 'D MMMM YYYY, A h:mm',
21978
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
21979
+ },
21980
+ calendar : {
21981
+ sameDay : '[དི་རིང] LT',
21982
+ nextDay : '[སང་ཉིན] LT',
21983
+ nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
21984
+ lastDay : '[ཁ་སང] LT',
21985
+ lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
21986
+ sameElse : 'L'
21987
+ },
21988
+ relativeTime : {
21989
+ future : '%s ལ་',
21990
+ past : '%s སྔན་ལ',
21991
+ s : 'ལམ་སང',
21992
+ ss : '%d སྐར་ཆ།',
21993
+ m : 'སྐར་མ་གཅིག',
21994
+ mm : '%d སྐར་མ',
21995
+ h : 'ཆུ་ཚོད་གཅིག',
21996
+ hh : '%d ཆུ་ཚོད',
21997
+ d : 'ཉིན་གཅིག',
21998
+ dd : '%d ཉིན་',
21999
+ M : 'ཟླ་བ་གཅིག',
22000
+ MM : '%d ཟླ་བ',
22001
+ y : 'ལོ་གཅིག',
22002
+ yy : '%d ལོ'
22003
+ },
22004
+ preparse: function (string) {
22005
+ return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
22006
+ return numberMap[match];
22007
+ });
22008
+ },
22009
+ postformat: function (string) {
22010
+ return string.replace(/\d/g, function (match) {
22011
+ return symbolMap[match];
22012
+ });
22013
+ },
22014
+ meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
22015
+ meridiemHour : function (hour, meridiem) {
22016
+ if (hour === 12) {
22017
+ hour = 0;
22018
+ }
22019
+ if ((meridiem === 'མཚན་མོ' && hour >= 4) ||
22020
+ (meridiem === 'ཉིན་གུང' && hour < 5) ||
22021
+ meridiem === 'དགོང་དག') {
22022
+ return hour + 12;
22023
+ } else {
22024
+ return hour;
22025
+ }
22026
+ },
22027
+ meridiem : function (hour, minute, isLower) {
22028
+ if (hour < 4) {
22029
+ return 'མཚན་མོ';
22030
+ } else if (hour < 10) {
22031
+ return 'ཞོགས་ཀས';
22032
+ } else if (hour < 17) {
22033
+ return 'ཉིན་གུང';
22034
+ } else if (hour < 20) {
22035
+ return 'དགོང་དག';
22036
+ } else {
22037
+ return 'མཚན་མོ';
22038
+ }
22039
+ },
22040
+ week : {
22041
+ dow : 0, // Sunday is the first day of the week.
22042
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
22043
+ }
22044
+ });
22045
+
22046
+ return bo;
22047
+
22048
+ })));
22049
+
22050
+
22051
+ /***/ }),
22052
+ /* 93 */
22053
+ /***/ (function(module, exports, __webpack_require__) {
22054
+
22055
+ //! moment.js locale configuration
22056
+
22057
+ ;(function (global, factory) {
22058
+ true ? factory(__webpack_require__(0)) :
22059
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22060
+ factory(global.moment)
22061
+ }(this, (function (moment) { 'use strict';
22062
+
22063
+
22064
+ function relativeTimeWithMutation(number, withoutSuffix, key) {
22065
+ var format = {
22066
+ 'mm': 'munutenn',
22067
+ 'MM': 'miz',
22068
+ 'dd': 'devezh'
22069
+ };
22070
+ return number + ' ' + mutation(format[key], number);
22071
+ }
22072
+ function specialMutationForYears(number) {
22073
+ switch (lastNumber(number)) {
22074
+ case 1:
22075
+ case 3:
22076
+ case 4:
22077
+ case 5:
22078
+ case 9:
22079
+ return number + ' bloaz';
22080
+ default:
22081
+ return number + ' vloaz';
22082
+ }
22083
+ }
22084
+ function lastNumber(number) {
22085
+ if (number > 9) {
22086
+ return lastNumber(number % 10);
22087
+ }
22088
+ return number;
22089
+ }
22090
+ function mutation(text, number) {
22091
+ if (number === 2) {
22092
+ return softMutation(text);
22093
+ }
22094
+ return text;
22095
+ }
22096
+ function softMutation(text) {
22097
+ var mutationTable = {
22098
+ 'm': 'v',
22099
+ 'b': 'v',
22100
+ 'd': 'z'
22101
+ };
22102
+ if (mutationTable[text.charAt(0)] === undefined) {
22103
+ return text;
22104
+ }
22105
+ return mutationTable[text.charAt(0)] + text.substring(1);
22106
+ }
22107
+
22108
+ var br = moment.defineLocale('br', {
22109
+ months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
22110
+ monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
22111
+ weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
22112
+ weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
22113
+ weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
22114
+ weekdaysParseExact : true,
22115
+ longDateFormat : {
22116
+ LT : 'h[e]mm A',
22117
+ LTS : 'h[e]mm:ss A',
22118
+ L : 'DD/MM/YYYY',
22119
+ LL : 'D [a viz] MMMM YYYY',
22120
+ LLL : 'D [a viz] MMMM YYYY h[e]mm A',
22121
+ LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
22122
+ },
22123
+ calendar : {
22124
+ sameDay : '[Hiziv da] LT',
22125
+ nextDay : '[Warc\'hoazh da] LT',
22126
+ nextWeek : 'dddd [da] LT',
22127
+ lastDay : '[Dec\'h da] LT',
22128
+ lastWeek : 'dddd [paset da] LT',
22129
+ sameElse : 'L'
22130
+ },
22131
+ relativeTime : {
22132
+ future : 'a-benn %s',
22133
+ past : '%s \'zo',
22134
+ s : 'un nebeud segondennoù',
22135
+ ss : '%d eilenn',
22136
+ m : 'ur vunutenn',
22137
+ mm : relativeTimeWithMutation,
22138
+ h : 'un eur',
22139
+ hh : '%d eur',
22140
+ d : 'un devezh',
22141
+ dd : relativeTimeWithMutation,
22142
+ M : 'ur miz',
22143
+ MM : relativeTimeWithMutation,
22144
+ y : 'ur bloaz',
22145
+ yy : specialMutationForYears
22146
+ },
22147
+ dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
22148
+ ordinal : function (number) {
22149
+ var output = (number === 1) ? 'añ' : 'vet';
22150
+ return number + output;
22151
+ },
22152
+ week : {
22153
+ dow : 1, // Monday is the first day of the week.
22154
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
22155
+ }
22156
+ });
22157
+
22158
+ return br;
22159
+
22160
+ })));
22161
+
22162
+
22163
+ /***/ }),
22164
+ /* 94 */
22165
+ /***/ (function(module, exports, __webpack_require__) {
22166
+
22167
+ //! moment.js locale configuration
22168
+
22169
+ ;(function (global, factory) {
22170
+ true ? factory(__webpack_require__(0)) :
22171
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22172
+ factory(global.moment)
22173
+ }(this, (function (moment) { 'use strict';
22174
+
22175
+
22176
+ function translate(number, withoutSuffix, key) {
22177
+ var result = number + ' ';
22178
+ switch (key) {
22179
+ case 'ss':
22180
+ if (number === 1) {
22181
+ result += 'sekunda';
22182
+ } else if (number === 2 || number === 3 || number === 4) {
22183
+ result += 'sekunde';
22184
+ } else {
22185
+ result += 'sekundi';
22186
+ }
22187
+ return result;
22188
+ case 'm':
22189
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
22190
+ case 'mm':
22191
+ if (number === 1) {
22192
+ result += 'minuta';
22193
+ } else if (number === 2 || number === 3 || number === 4) {
22194
+ result += 'minute';
22195
+ } else {
22196
+ result += 'minuta';
22197
+ }
22198
+ return result;
22199
+ case 'h':
22200
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
22201
+ case 'hh':
22202
+ if (number === 1) {
22203
+ result += 'sat';
22204
+ } else if (number === 2 || number === 3 || number === 4) {
22205
+ result += 'sata';
22206
+ } else {
22207
+ result += 'sati';
22208
+ }
22209
+ return result;
22210
+ case 'dd':
22211
+ if (number === 1) {
22212
+ result += 'dan';
22213
+ } else {
22214
+ result += 'dana';
22215
+ }
22216
+ return result;
22217
+ case 'MM':
22218
+ if (number === 1) {
22219
+ result += 'mjesec';
22220
+ } else if (number === 2 || number === 3 || number === 4) {
22221
+ result += 'mjeseca';
22222
+ } else {
22223
+ result += 'mjeseci';
22224
+ }
22225
+ return result;
22226
+ case 'yy':
22227
+ if (number === 1) {
22228
+ result += 'godina';
22229
+ } else if (number === 2 || number === 3 || number === 4) {
22230
+ result += 'godine';
22231
+ } else {
22232
+ result += 'godina';
22233
+ }
22234
+ return result;
22235
+ }
22236
+ }
22237
+
22238
+ var bs = moment.defineLocale('bs', {
22239
+ months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
22240
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
22241
+ monthsParseExact: true,
22242
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
22243
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
22244
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
22245
+ weekdaysParseExact : true,
22246
+ longDateFormat : {
22247
+ LT : 'H:mm',
22248
+ LTS : 'H:mm:ss',
22249
+ L : 'DD.MM.YYYY',
22250
+ LL : 'D. MMMM YYYY',
22251
+ LLL : 'D. MMMM YYYY H:mm',
22252
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
22253
+ },
22254
+ calendar : {
22255
+ sameDay : '[danas u] LT',
22256
+ nextDay : '[sutra u] LT',
22257
+ nextWeek : function () {
22258
+ switch (this.day()) {
22259
+ case 0:
22260
+ return '[u] [nedjelju] [u] LT';
22261
+ case 3:
22262
+ return '[u] [srijedu] [u] LT';
22263
+ case 6:
22264
+ return '[u] [subotu] [u] LT';
22265
+ case 1:
22266
+ case 2:
22267
+ case 4:
22268
+ case 5:
22269
+ return '[u] dddd [u] LT';
22270
+ }
22271
+ },
22272
+ lastDay : '[jučer u] LT',
22273
+ lastWeek : function () {
22274
+ switch (this.day()) {
22275
+ case 0:
22276
+ case 3:
22277
+ return '[prošlu] dddd [u] LT';
22278
+ case 6:
22279
+ return '[prošle] [subote] [u] LT';
22280
+ case 1:
22281
+ case 2:
22282
+ case 4:
22283
+ case 5:
22284
+ return '[prošli] dddd [u] LT';
22285
+ }
22286
+ },
22287
+ sameElse : 'L'
22288
+ },
22289
+ relativeTime : {
22290
+ future : 'za %s',
22291
+ past : 'prije %s',
22292
+ s : 'par sekundi',
22293
+ ss : translate,
22294
+ m : translate,
22295
+ mm : translate,
22296
+ h : translate,
22297
+ hh : translate,
22298
+ d : 'dan',
22299
+ dd : translate,
22300
+ M : 'mjesec',
22301
+ MM : translate,
22302
+ y : 'godinu',
22303
+ yy : translate
22304
+ },
22305
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
22306
+ ordinal : '%d.',
22307
+ week : {
22308
+ dow : 1, // Monday is the first day of the week.
22309
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
22310
+ }
22311
+ });
22312
+
22313
+ return bs;
22314
+
22315
+ })));
22316
+
22317
+
22318
+ /***/ }),
22319
+ /* 95 */
22320
+ /***/ (function(module, exports, __webpack_require__) {
22321
+
22322
+ //! moment.js locale configuration
22323
+
22324
+ ;(function (global, factory) {
22325
+ true ? factory(__webpack_require__(0)) :
22326
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22327
+ factory(global.moment)
22328
+ }(this, (function (moment) { 'use strict';
22329
+
22330
+
22331
+ var ca = moment.defineLocale('ca', {
22332
+ months : {
22333
+ standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
22334
+ format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'),
22335
+ isFormat: /D[oD]?(\s)+MMMM/
22336
+ },
22337
+ monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),
22338
+ monthsParseExact : true,
22339
+ weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
22340
+ weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
22341
+ weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
22342
+ weekdaysParseExact : true,
22343
+ longDateFormat : {
22344
+ LT : 'H:mm',
22345
+ LTS : 'H:mm:ss',
22346
+ L : 'DD/MM/YYYY',
22347
+ LL : 'D MMMM [de] YYYY',
22348
+ ll : 'D MMM YYYY',
22349
+ LLL : 'D MMMM [de] YYYY [a les] H:mm',
22350
+ lll : 'D MMM YYYY, H:mm',
22351
+ LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',
22352
+ llll : 'ddd D MMM YYYY, H:mm'
22353
+ },
22354
+ calendar : {
22355
+ sameDay : function () {
22356
+ return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
22357
+ },
22358
+ nextDay : function () {
22359
+ return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
22360
+ },
22361
+ nextWeek : function () {
22362
+ return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
22363
+ },
22364
+ lastDay : function () {
22365
+ return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
22366
+ },
22367
+ lastWeek : function () {
22368
+ return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
22369
+ },
22370
+ sameElse : 'L'
22371
+ },
22372
+ relativeTime : {
22373
+ future : 'd\'aquí %s',
22374
+ past : 'fa %s',
22375
+ s : 'uns segons',
22376
+ ss : '%d segons',
22377
+ m : 'un minut',
22378
+ mm : '%d minuts',
22379
+ h : 'una hora',
22380
+ hh : '%d hores',
22381
+ d : 'un dia',
22382
+ dd : '%d dies',
22383
+ M : 'un mes',
22384
+ MM : '%d mesos',
22385
+ y : 'un any',
22386
+ yy : '%d anys'
22387
+ },
22388
+ dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
22389
+ ordinal : function (number, period) {
22390
+ var output = (number === 1) ? 'r' :
22391
+ (number === 2) ? 'n' :
22392
+ (number === 3) ? 'r' :
22393
+ (number === 4) ? 't' : 'è';
22394
+ if (period === 'w' || period === 'W') {
22395
+ output = 'a';
22396
+ }
22397
+ return number + output;
22398
+ },
22399
+ week : {
22400
+ dow : 1, // Monday is the first day of the week.
22401
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
22402
+ }
22403
+ });
22404
+
22405
+ return ca;
22406
+
22407
+ })));
22408
+
22409
+
22410
+ /***/ }),
22411
+ /* 96 */
22412
+ /***/ (function(module, exports, __webpack_require__) {
22413
+
22414
+ //! moment.js locale configuration
22415
+
22416
+ ;(function (global, factory) {
22417
+ true ? factory(__webpack_require__(0)) :
22418
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22419
+ factory(global.moment)
22420
+ }(this, (function (moment) { 'use strict';
22421
+
22422
+
22423
+ var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
22424
+ monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
22425
+ function plural(n) {
22426
+ return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
22427
+ }
22428
+ function translate(number, withoutSuffix, key, isFuture) {
22429
+ var result = number + ' ';
22430
+ switch (key) {
22431
+ case 's': // a few seconds / in a few seconds / a few seconds ago
22432
+ return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
22433
+ case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
22434
+ if (withoutSuffix || isFuture) {
22435
+ return result + (plural(number) ? 'sekundy' : 'sekund');
22436
+ } else {
22437
+ return result + 'sekundami';
22438
+ }
22439
+ break;
22440
+ case 'm': // a minute / in a minute / a minute ago
22441
+ return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
22442
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
22443
+ if (withoutSuffix || isFuture) {
22444
+ return result + (plural(number) ? 'minuty' : 'minut');
22445
+ } else {
22446
+ return result + 'minutami';
22447
+ }
22448
+ break;
22449
+ case 'h': // an hour / in an hour / an hour ago
22450
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
22451
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
22452
+ if (withoutSuffix || isFuture) {
22453
+ return result + (plural(number) ? 'hodiny' : 'hodin');
22454
+ } else {
22455
+ return result + 'hodinami';
22456
+ }
22457
+ break;
22458
+ case 'd': // a day / in a day / a day ago
22459
+ return (withoutSuffix || isFuture) ? 'den' : 'dnem';
22460
+ case 'dd': // 9 days / in 9 days / 9 days ago
22461
+ if (withoutSuffix || isFuture) {
22462
+ return result + (plural(number) ? 'dny' : 'dní');
22463
+ } else {
22464
+ return result + 'dny';
22465
+ }
22466
+ break;
22467
+ case 'M': // a month / in a month / a month ago
22468
+ return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
22469
+ case 'MM': // 9 months / in 9 months / 9 months ago
22470
+ if (withoutSuffix || isFuture) {
22471
+ return result + (plural(number) ? 'měsíce' : 'měsíců');
22472
+ } else {
22473
+ return result + 'měsíci';
22474
+ }
22475
+ break;
22476
+ case 'y': // a year / in a year / a year ago
22477
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
22478
+ case 'yy': // 9 years / in 9 years / 9 years ago
22479
+ if (withoutSuffix || isFuture) {
22480
+ return result + (plural(number) ? 'roky' : 'let');
22481
+ } else {
22482
+ return result + 'lety';
22483
+ }
22484
+ break;
22485
+ }
22486
+ }
22487
+
22488
+ var cs = moment.defineLocale('cs', {
22489
+ months : months,
22490
+ monthsShort : monthsShort,
22491
+ monthsParse : (function (months, monthsShort) {
22492
+ var i, _monthsParse = [];
22493
+ for (i = 0; i < 12; i++) {
22494
+ // use custom parser to solve problem with July (červenec)
22495
+ _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
22496
+ }
22497
+ return _monthsParse;
22498
+ }(months, monthsShort)),
22499
+ shortMonthsParse : (function (monthsShort) {
22500
+ var i, _shortMonthsParse = [];
22501
+ for (i = 0; i < 12; i++) {
22502
+ _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
22503
+ }
22504
+ return _shortMonthsParse;
22505
+ }(monthsShort)),
22506
+ longMonthsParse : (function (months) {
22507
+ var i, _longMonthsParse = [];
22508
+ for (i = 0; i < 12; i++) {
22509
+ _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
22510
+ }
22511
+ return _longMonthsParse;
22512
+ }(months)),
22513
+ weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
22514
+ weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
22515
+ weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
22516
+ longDateFormat : {
22517
+ LT: 'H:mm',
22518
+ LTS : 'H:mm:ss',
22519
+ L : 'DD.MM.YYYY',
22520
+ LL : 'D. MMMM YYYY',
22521
+ LLL : 'D. MMMM YYYY H:mm',
22522
+ LLLL : 'dddd D. MMMM YYYY H:mm',
22523
+ l : 'D. M. YYYY'
22524
+ },
22525
+ calendar : {
22526
+ sameDay: '[dnes v] LT',
22527
+ nextDay: '[zítra v] LT',
22528
+ nextWeek: function () {
22529
+ switch (this.day()) {
22530
+ case 0:
22531
+ return '[v neděli v] LT';
22532
+ case 1:
22533
+ case 2:
22534
+ return '[v] dddd [v] LT';
22535
+ case 3:
22536
+ return '[ve středu v] LT';
22537
+ case 4:
22538
+ return '[ve čtvrtek v] LT';
22539
+ case 5:
22540
+ return '[v pátek v] LT';
22541
+ case 6:
22542
+ return '[v sobotu v] LT';
22543
+ }
22544
+ },
22545
+ lastDay: '[včera v] LT',
22546
+ lastWeek: function () {
22547
+ switch (this.day()) {
22548
+ case 0:
22549
+ return '[minulou neděli v] LT';
22550
+ case 1:
22551
+ case 2:
22552
+ return '[minulé] dddd [v] LT';
22553
+ case 3:
22554
+ return '[minulou středu v] LT';
22555
+ case 4:
22556
+ case 5:
22557
+ return '[minulý] dddd [v] LT';
22558
+ case 6:
22559
+ return '[minulou sobotu v] LT';
22560
+ }
22561
+ },
22562
+ sameElse: 'L'
22563
+ },
22564
+ relativeTime : {
22565
+ future : 'za %s',
22566
+ past : 'před %s',
22567
+ s : translate,
22568
+ ss : translate,
22569
+ m : translate,
22570
+ mm : translate,
22571
+ h : translate,
22572
+ hh : translate,
22573
+ d : translate,
22574
+ dd : translate,
22575
+ M : translate,
22576
+ MM : translate,
22577
+ y : translate,
22578
+ yy : translate
22579
+ },
22580
+ dayOfMonthOrdinalParse : /\d{1,2}\./,
22581
+ ordinal : '%d.',
22582
+ week : {
22583
+ dow : 1, // Monday is the first day of the week.
22584
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
22585
+ }
22586
+ });
22587
+
22588
+ return cs;
22589
+
22590
+ })));
22591
+
22592
+
22593
+ /***/ }),
22594
+ /* 97 */
22595
+ /***/ (function(module, exports, __webpack_require__) {
22596
+
22597
+ //! moment.js locale configuration
22598
+
22599
+ ;(function (global, factory) {
22600
+ true ? factory(__webpack_require__(0)) :
22601
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22602
+ factory(global.moment)
22603
+ }(this, (function (moment) { 'use strict';
22604
+
22605
+
22606
+ var cv = moment.defineLocale('cv', {
22607
+ months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
22608
+ monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
22609
+ weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
22610
+ weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
22611
+ weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
22612
+ longDateFormat : {
22613
+ LT : 'HH:mm',
22614
+ LTS : 'HH:mm:ss',
22615
+ L : 'DD-MM-YYYY',
22616
+ LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
22617
+ LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
22618
+ LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
22619
+ },
22620
+ calendar : {
22621
+ sameDay: '[Паян] LT [сехетре]',
22622
+ nextDay: '[Ыран] LT [сехетре]',
22623
+ lastDay: '[Ӗнер] LT [сехетре]',
22624
+ nextWeek: '[Ҫитес] dddd LT [сехетре]',
22625
+ lastWeek: '[Иртнӗ] dddd LT [сехетре]',
22626
+ sameElse: 'L'
22627
+ },
22628
+ relativeTime : {
22629
+ future : function (output) {
22630
+ var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
22631
+ return output + affix;
22632
+ },
22633
+ past : '%s каялла',
22634
+ s : 'пӗр-ик ҫеккунт',
22635
+ ss : '%d ҫеккунт',
22636
+ m : 'пӗр минут',
22637
+ mm : '%d минут',
22638
+ h : 'пӗр сехет',
22639
+ hh : '%d сехет',
22640
+ d : 'пӗр кун',
22641
+ dd : '%d кун',
22642
+ M : 'пӗр уйӑх',
22643
+ MM : '%d уйӑх',
22644
+ y : 'пӗр ҫул',
22645
+ yy : '%d ҫул'
22646
+ },
22647
+ dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
22648
+ ordinal : '%d-мӗш',
22649
+ week : {
22650
+ dow : 1, // Monday is the first day of the week.
22651
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
22652
+ }
22653
+ });
22654
+
22655
+ return cv;
22656
+
22657
+ })));
22658
+
22659
+
22660
+ /***/ }),
22661
+ /* 98 */
22662
+ /***/ (function(module, exports, __webpack_require__) {
22663
+
22664
+ //! moment.js locale configuration
22665
+
22666
+ ;(function (global, factory) {
22667
+ true ? factory(__webpack_require__(0)) :
22668
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22669
+ factory(global.moment)
22670
+ }(this, (function (moment) { 'use strict';
22671
+
22672
+
22673
+ var cy = moment.defineLocale('cy', {
22674
+ months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
22675
+ monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
22676
+ weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
22677
+ weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
22678
+ weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
22679
+ weekdaysParseExact : true,
22680
+ // time formats are the same as en-gb
22681
+ longDateFormat: {
22682
+ LT: 'HH:mm',
22683
+ LTS : 'HH:mm:ss',
22684
+ L: 'DD/MM/YYYY',
22685
+ LL: 'D MMMM YYYY',
22686
+ LLL: 'D MMMM YYYY HH:mm',
22687
+ LLLL: 'dddd, D MMMM YYYY HH:mm'
22688
+ },
22689
+ calendar: {
22690
+ sameDay: '[Heddiw am] LT',
22691
+ nextDay: '[Yfory am] LT',
22692
+ nextWeek: 'dddd [am] LT',
22693
+ lastDay: '[Ddoe am] LT',
22694
+ lastWeek: 'dddd [diwethaf am] LT',
22695
+ sameElse: 'L'
22696
+ },
22697
+ relativeTime: {
22698
+ future: 'mewn %s',
22699
+ past: '%s yn ôl',
22700
+ s: 'ychydig eiliadau',
22701
+ ss: '%d eiliad',
22702
+ m: 'munud',
22703
+ mm: '%d munud',
22704
+ h: 'awr',
22705
+ hh: '%d awr',
22706
+ d: 'diwrnod',
22707
+ dd: '%d diwrnod',
22708
+ M: 'mis',
22709
+ MM: '%d mis',
22710
+ y: 'blwyddyn',
22711
+ yy: '%d flynedd'
22712
+ },
22713
+ dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
22714
+ // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
22715
+ ordinal: function (number) {
22716
+ var b = number,
22717
+ output = '',
22718
+ lookup = [
22719
+ '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
22720
+ 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
22721
+ ];
22722
+ if (b > 20) {
22723
+ if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
22724
+ output = 'fed'; // not 30ain, 70ain or 90ain
22725
+ } else {
22726
+ output = 'ain';
22727
+ }
22728
+ } else if (b > 0) {
22729
+ output = lookup[b];
22730
+ }
22731
+ return number + output;
22732
+ },
22733
+ week : {
22734
+ dow : 1, // Monday is the first day of the week.
22735
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
22736
+ }
22737
+ });
22738
+
22739
+ return cy;
22740
+
22741
+ })));
22742
+
22743
+
22744
+ /***/ }),
22745
+ /* 99 */
22746
+ /***/ (function(module, exports, __webpack_require__) {
22747
+
22748
+ //! moment.js locale configuration
22749
+
22750
+ ;(function (global, factory) {
22751
+ true ? factory(__webpack_require__(0)) :
22752
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22753
+ factory(global.moment)
22754
+ }(this, (function (moment) { 'use strict';
22755
+
22756
+
22757
+ var da = moment.defineLocale('da', {
22758
+ months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
22759
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
22760
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
22761
+ weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
22762
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
22763
+ longDateFormat : {
22764
+ LT : 'HH:mm',
22765
+ LTS : 'HH:mm:ss',
22766
+ L : 'DD.MM.YYYY',
22767
+ LL : 'D. MMMM YYYY',
22768
+ LLL : 'D. MMMM YYYY HH:mm',
22769
+ LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'
22770
+ },
22771
+ calendar : {
22772
+ sameDay : '[i dag kl.] LT',
22773
+ nextDay : '[i morgen kl.] LT',
22774
+ nextWeek : 'på dddd [kl.] LT',
22775
+ lastDay : '[i går kl.] LT',
22776
+ lastWeek : '[i] dddd[s kl.] LT',
22777
+ sameElse : 'L'
22778
+ },
22779
+ relativeTime : {
22780
+ future : 'om %s',
22781
+ past : '%s siden',
22782
+ s : 'få sekunder',
22783
+ ss : '%d sekunder',
22784
+ m : 'et minut',
22785
+ mm : '%d minutter',
22786
+ h : 'en time',
22787
+ hh : '%d timer',
22788
+ d : 'en dag',
22789
+ dd : '%d dage',
22790
+ M : 'en måned',
22791
+ MM : '%d måneder',
22792
+ y : 'et år',
22793
+ yy : '%d år'
22794
+ },
22795
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
22796
+ ordinal : '%d.',
22797
+ week : {
22798
+ dow : 1, // Monday is the first day of the week.
22799
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
22800
+ }
22801
+ });
22802
+
22803
+ return da;
22804
+
22805
+ })));
22806
+
22807
+
22808
+ /***/ }),
22809
+ /* 100 */
22810
+ /***/ (function(module, exports, __webpack_require__) {
22811
+
22812
+ //! moment.js locale configuration
22813
+
22814
+ ;(function (global, factory) {
22815
+ true ? factory(__webpack_require__(0)) :
22816
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22817
+ factory(global.moment)
22818
+ }(this, (function (moment) { 'use strict';
22819
+
22820
+
22821
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
22822
+ var format = {
22823
+ 'm': ['eine Minute', 'einer Minute'],
22824
+ 'h': ['eine Stunde', 'einer Stunde'],
22825
+ 'd': ['ein Tag', 'einem Tag'],
22826
+ 'dd': [number + ' Tage', number + ' Tagen'],
22827
+ 'M': ['ein Monat', 'einem Monat'],
22828
+ 'MM': [number + ' Monate', number + ' Monaten'],
22829
+ 'y': ['ein Jahr', 'einem Jahr'],
22830
+ 'yy': [number + ' Jahre', number + ' Jahren']
22831
+ };
22832
+ return withoutSuffix ? format[key][0] : format[key][1];
22833
+ }
22834
+
22835
+ var de = moment.defineLocale('de', {
22836
+ months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
22837
+ monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
22838
+ monthsParseExact : true,
22839
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
22840
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
22841
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
22842
+ weekdaysParseExact : true,
22843
+ longDateFormat : {
22844
+ LT: 'HH:mm',
22845
+ LTS: 'HH:mm:ss',
22846
+ L : 'DD.MM.YYYY',
22847
+ LL : 'D. MMMM YYYY',
22848
+ LLL : 'D. MMMM YYYY HH:mm',
22849
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
22850
+ },
22851
+ calendar : {
22852
+ sameDay: '[heute um] LT [Uhr]',
22853
+ sameElse: 'L',
22854
+ nextDay: '[morgen um] LT [Uhr]',
22855
+ nextWeek: 'dddd [um] LT [Uhr]',
22856
+ lastDay: '[gestern um] LT [Uhr]',
22857
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
22858
+ },
22859
+ relativeTime : {
22860
+ future : 'in %s',
22861
+ past : 'vor %s',
22862
+ s : 'ein paar Sekunden',
22863
+ ss : '%d Sekunden',
22864
+ m : processRelativeTime,
22865
+ mm : '%d Minuten',
22866
+ h : processRelativeTime,
22867
+ hh : '%d Stunden',
22868
+ d : processRelativeTime,
22869
+ dd : processRelativeTime,
22870
+ M : processRelativeTime,
22871
+ MM : processRelativeTime,
22872
+ y : processRelativeTime,
22873
+ yy : processRelativeTime
22874
+ },
22875
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
22876
+ ordinal : '%d.',
22877
+ week : {
22878
+ dow : 1, // Monday is the first day of the week.
22879
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
22880
+ }
22881
+ });
22882
+
22883
+ return de;
22884
+
22885
+ })));
22886
+
22887
+
22888
+ /***/ }),
22889
+ /* 101 */
22890
+ /***/ (function(module, exports, __webpack_require__) {
22891
+
22892
+ //! moment.js locale configuration
22893
+
22894
+ ;(function (global, factory) {
22895
+ true ? factory(__webpack_require__(0)) :
22896
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22897
+ factory(global.moment)
22898
+ }(this, (function (moment) { 'use strict';
22899
+
22900
+
22901
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
22902
+ var format = {
22903
+ 'm': ['eine Minute', 'einer Minute'],
22904
+ 'h': ['eine Stunde', 'einer Stunde'],
22905
+ 'd': ['ein Tag', 'einem Tag'],
22906
+ 'dd': [number + ' Tage', number + ' Tagen'],
22907
+ 'M': ['ein Monat', 'einem Monat'],
22908
+ 'MM': [number + ' Monate', number + ' Monaten'],
22909
+ 'y': ['ein Jahr', 'einem Jahr'],
22910
+ 'yy': [number + ' Jahre', number + ' Jahren']
22911
+ };
22912
+ return withoutSuffix ? format[key][0] : format[key][1];
22913
+ }
22914
+
22915
+ var deAt = moment.defineLocale('de-at', {
22916
+ months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
22917
+ monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
22918
+ monthsParseExact : true,
22919
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
22920
+ weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
22921
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
22922
+ weekdaysParseExact : true,
22923
+ longDateFormat : {
22924
+ LT: 'HH:mm',
22925
+ LTS: 'HH:mm:ss',
22926
+ L : 'DD.MM.YYYY',
22927
+ LL : 'D. MMMM YYYY',
22928
+ LLL : 'D. MMMM YYYY HH:mm',
22929
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
22930
+ },
22931
+ calendar : {
22932
+ sameDay: '[heute um] LT [Uhr]',
22933
+ sameElse: 'L',
22934
+ nextDay: '[morgen um] LT [Uhr]',
22935
+ nextWeek: 'dddd [um] LT [Uhr]',
22936
+ lastDay: '[gestern um] LT [Uhr]',
22937
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
22938
+ },
22939
+ relativeTime : {
22940
+ future : 'in %s',
22941
+ past : 'vor %s',
22942
+ s : 'ein paar Sekunden',
22943
+ ss : '%d Sekunden',
22944
+ m : processRelativeTime,
22945
+ mm : '%d Minuten',
22946
+ h : processRelativeTime,
22947
+ hh : '%d Stunden',
22948
+ d : processRelativeTime,
22949
+ dd : processRelativeTime,
22950
+ M : processRelativeTime,
22951
+ MM : processRelativeTime,
22952
+ y : processRelativeTime,
22953
+ yy : processRelativeTime
22954
+ },
22955
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
22956
+ ordinal : '%d.',
22957
+ week : {
22958
+ dow : 1, // Monday is the first day of the week.
22959
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
22960
+ }
22961
+ });
22962
+
22963
+ return deAt;
22964
+
22965
+ })));
22966
+
22967
+
22968
+ /***/ }),
22969
+ /* 102 */
22970
+ /***/ (function(module, exports, __webpack_require__) {
22971
+
22972
+ //! moment.js locale configuration
22973
+
22974
+ ;(function (global, factory) {
22975
+ true ? factory(__webpack_require__(0)) :
22976
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
22977
+ factory(global.moment)
22978
+ }(this, (function (moment) { 'use strict';
22979
+
22980
+
22981
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
22982
+ var format = {
22983
+ 'm': ['eine Minute', 'einer Minute'],
22984
+ 'h': ['eine Stunde', 'einer Stunde'],
22985
+ 'd': ['ein Tag', 'einem Tag'],
22986
+ 'dd': [number + ' Tage', number + ' Tagen'],
22987
+ 'M': ['ein Monat', 'einem Monat'],
22988
+ 'MM': [number + ' Monate', number + ' Monaten'],
22989
+ 'y': ['ein Jahr', 'einem Jahr'],
22990
+ 'yy': [number + ' Jahre', number + ' Jahren']
22991
+ };
22992
+ return withoutSuffix ? format[key][0] : format[key][1];
22993
+ }
22994
+
22995
+ var deCh = moment.defineLocale('de-ch', {
22996
+ months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
22997
+ monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
22998
+ monthsParseExact : true,
22999
+ weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
23000
+ weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
23001
+ weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
23002
+ weekdaysParseExact : true,
23003
+ longDateFormat : {
23004
+ LT: 'HH:mm',
23005
+ LTS: 'HH:mm:ss',
23006
+ L : 'DD.MM.YYYY',
23007
+ LL : 'D. MMMM YYYY',
23008
+ LLL : 'D. MMMM YYYY HH:mm',
23009
+ LLLL : 'dddd, D. MMMM YYYY HH:mm'
23010
+ },
23011
+ calendar : {
23012
+ sameDay: '[heute um] LT [Uhr]',
23013
+ sameElse: 'L',
23014
+ nextDay: '[morgen um] LT [Uhr]',
23015
+ nextWeek: 'dddd [um] LT [Uhr]',
23016
+ lastDay: '[gestern um] LT [Uhr]',
23017
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
23018
+ },
23019
+ relativeTime : {
23020
+ future : 'in %s',
23021
+ past : 'vor %s',
23022
+ s : 'ein paar Sekunden',
23023
+ ss : '%d Sekunden',
23024
+ m : processRelativeTime,
23025
+ mm : '%d Minuten',
23026
+ h : processRelativeTime,
23027
+ hh : '%d Stunden',
23028
+ d : processRelativeTime,
23029
+ dd : processRelativeTime,
23030
+ M : processRelativeTime,
23031
+ MM : processRelativeTime,
23032
+ y : processRelativeTime,
23033
+ yy : processRelativeTime
23034
+ },
23035
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
23036
+ ordinal : '%d.',
23037
+ week : {
23038
+ dow : 1, // Monday is the first day of the week.
23039
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
23040
+ }
23041
+ });
23042
+
23043
+ return deCh;
23044
+
23045
+ })));
23046
+
23047
+
23048
+ /***/ }),
23049
+ /* 103 */
23050
+ /***/ (function(module, exports, __webpack_require__) {
23051
+
23052
+ //! moment.js locale configuration
23053
+
23054
+ ;(function (global, factory) {
23055
+ true ? factory(__webpack_require__(0)) :
23056
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23057
+ factory(global.moment)
23058
+ }(this, (function (moment) { 'use strict';
23059
+
23060
+
23061
+ var months = [
23062
+ 'ޖެނުއަރީ',
23063
+ 'ފެބްރުއަރީ',
23064
+ 'މާރިޗު',
23065
+ 'އޭޕްރީލު',
23066
+ 'މޭ',
23067
+ 'ޖޫން',
23068
+ 'ޖުލައި',
23069
+ 'އޯގަސްޓު',
23070
+ 'ސެޕްޓެމްބަރު',
23071
+ 'އޮކްޓޯބަރު',
23072
+ 'ނޮވެމްބަރު',
23073
+ 'ޑިސެމްބަރު'
23074
+ ], weekdays = [
23075
+ 'އާދިއްތަ',
23076
+ 'ހޯމަ',
23077
+ 'އަންގާރަ',
23078
+ 'ބުދަ',
23079
+ 'ބުރާސްފަތި',
23080
+ 'ހުކުރު',
23081
+ 'ހޮނިހިރު'
23082
+ ];
23083
+
23084
+ var dv = moment.defineLocale('dv', {
23085
+ months : months,
23086
+ monthsShort : months,
23087
+ weekdays : weekdays,
23088
+ weekdaysShort : weekdays,
23089
+ weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
23090
+ longDateFormat : {
23091
+
23092
+ LT : 'HH:mm',
23093
+ LTS : 'HH:mm:ss',
23094
+ L : 'D/M/YYYY',
23095
+ LL : 'D MMMM YYYY',
23096
+ LLL : 'D MMMM YYYY HH:mm',
23097
+ LLLL : 'dddd D MMMM YYYY HH:mm'
23098
+ },
23099
+ meridiemParse: /މކ|މފ/,
23100
+ isPM : function (input) {
23101
+ return 'މފ' === input;
23102
+ },
23103
+ meridiem : function (hour, minute, isLower) {
23104
+ if (hour < 12) {
23105
+ return 'މކ';
23106
+ } else {
23107
+ return 'މފ';
23108
+ }
23109
+ },
23110
+ calendar : {
23111
+ sameDay : '[މިއަދު] LT',
23112
+ nextDay : '[މާދަމާ] LT',
23113
+ nextWeek : 'dddd LT',
23114
+ lastDay : '[އިއްޔެ] LT',
23115
+ lastWeek : '[ފާއިތުވި] dddd LT',
23116
+ sameElse : 'L'
23117
+ },
23118
+ relativeTime : {
23119
+ future : 'ތެރޭގައި %s',
23120
+ past : 'ކުރިން %s',
23121
+ s : 'ސިކުންތުކޮޅެއް',
23122
+ ss : 'd% ސިކުންތު',
23123
+ m : 'މިނިޓެއް',
23124
+ mm : 'މިނިޓު %d',
23125
+ h : 'ގަޑިއިރެއް',
23126
+ hh : 'ގަޑިއިރު %d',
23127
+ d : 'ދުވަހެއް',
23128
+ dd : 'ދުވަސް %d',
23129
+ M : 'މަހެއް',
23130
+ MM : 'މަސް %d',
23131
+ y : 'އަހަރެއް',
23132
+ yy : 'އަހަރު %d'
23133
+ },
23134
+ preparse: function (string) {
23135
+ return string.replace(/،/g, ',');
23136
+ },
23137
+ postformat: function (string) {
23138
+ return string.replace(/,/g, '،');
23139
+ },
23140
+ week : {
23141
+ dow : 7, // Sunday is the first day of the week.
23142
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
23143
+ }
23144
+ });
23145
+
23146
+ return dv;
23147
+
23148
+ })));
23149
+
23150
+
23151
+ /***/ }),
23152
+ /* 104 */
23153
+ /***/ (function(module, exports, __webpack_require__) {
23154
+
23155
+ //! moment.js locale configuration
23156
+
23157
+ ;(function (global, factory) {
23158
+ true ? factory(__webpack_require__(0)) :
23159
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23160
+ factory(global.moment)
23161
+ }(this, (function (moment) { 'use strict';
23162
+
23163
+ function isFunction(input) {
23164
+ return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
23165
+ }
23166
+
23167
+
23168
+ var el = moment.defineLocale('el', {
23169
+ monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
23170
+ monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
23171
+ months : function (momentToFormat, format) {
23172
+ if (!momentToFormat) {
23173
+ return this._monthsNominativeEl;
23174
+ } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
23175
+ return this._monthsGenitiveEl[momentToFormat.month()];
23176
+ } else {
23177
+ return this._monthsNominativeEl[momentToFormat.month()];
23178
+ }
23179
+ },
23180
+ monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
23181
+ weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
23182
+ weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
23183
+ weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
23184
+ meridiem : function (hours, minutes, isLower) {
23185
+ if (hours > 11) {
23186
+ return isLower ? 'μμ' : 'ΜΜ';
23187
+ } else {
23188
+ return isLower ? 'πμ' : 'ΠΜ';
23189
+ }
23190
+ },
23191
+ isPM : function (input) {
23192
+ return ((input + '').toLowerCase()[0] === 'μ');
23193
+ },
23194
+ meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
23195
+ longDateFormat : {
23196
+ LT : 'h:mm A',
23197
+ LTS : 'h:mm:ss A',
23198
+ L : 'DD/MM/YYYY',
23199
+ LL : 'D MMMM YYYY',
23200
+ LLL : 'D MMMM YYYY h:mm A',
23201
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
23202
+ },
23203
+ calendarEl : {
23204
+ sameDay : '[Σήμερα {}] LT',
23205
+ nextDay : '[Αύριο {}] LT',
23206
+ nextWeek : 'dddd [{}] LT',
23207
+ lastDay : '[Χθες {}] LT',
23208
+ lastWeek : function () {
23209
+ switch (this.day()) {
23210
+ case 6:
23211
+ return '[το προηγούμενο] dddd [{}] LT';
23212
+ default:
23213
+ return '[την προηγούμενη] dddd [{}] LT';
23214
+ }
23215
+ },
23216
+ sameElse : 'L'
23217
+ },
23218
+ calendar : function (key, mom) {
23219
+ var output = this._calendarEl[key],
23220
+ hours = mom && mom.hours();
23221
+ if (isFunction(output)) {
23222
+ output = output.apply(mom);
23223
+ }
23224
+ return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
23225
+ },
23226
+ relativeTime : {
23227
+ future : 'σε %s',
23228
+ past : '%s πριν',
23229
+ s : 'λίγα δευτερόλεπτα',
23230
+ ss : '%d δευτερόλεπτα',
23231
+ m : 'ένα λεπτό',
23232
+ mm : '%d λεπτά',
23233
+ h : 'μία ώρα',
23234
+ hh : '%d ώρες',
23235
+ d : 'μία μέρα',
23236
+ dd : '%d μέρες',
23237
+ M : 'ένας μήνας',
23238
+ MM : '%d μήνες',
23239
+ y : 'ένας χρόνος',
23240
+ yy : '%d χρόνια'
23241
+ },
23242
+ dayOfMonthOrdinalParse: /\d{1,2}η/,
23243
+ ordinal: '%dη',
23244
+ week : {
23245
+ dow : 1, // Monday is the first day of the week.
23246
+ doy : 4 // The week that contains Jan 4st is the first week of the year.
23247
+ }
23248
+ });
23249
+
23250
+ return el;
23251
+
23252
+ })));
23253
+
23254
+
23255
+ /***/ }),
23256
+ /* 105 */
23257
+ /***/ (function(module, exports, __webpack_require__) {
23258
+
23259
+ //! moment.js locale configuration
23260
+
23261
+ ;(function (global, factory) {
23262
+ true ? factory(__webpack_require__(0)) :
23263
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23264
+ factory(global.moment)
23265
+ }(this, (function (moment) { 'use strict';
23266
+
23267
+
23268
+ var enAu = moment.defineLocale('en-au', {
23269
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
23270
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
23271
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
23272
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
23273
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
23274
+ longDateFormat : {
23275
+ LT : 'h:mm A',
23276
+ LTS : 'h:mm:ss A',
23277
+ L : 'DD/MM/YYYY',
23278
+ LL : 'D MMMM YYYY',
23279
+ LLL : 'D MMMM YYYY h:mm A',
23280
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
23281
+ },
23282
+ calendar : {
23283
+ sameDay : '[Today at] LT',
23284
+ nextDay : '[Tomorrow at] LT',
23285
+ nextWeek : 'dddd [at] LT',
23286
+ lastDay : '[Yesterday at] LT',
23287
+ lastWeek : '[Last] dddd [at] LT',
23288
+ sameElse : 'L'
23289
+ },
23290
+ relativeTime : {
23291
+ future : 'in %s',
23292
+ past : '%s ago',
23293
+ s : 'a few seconds',
23294
+ ss : '%d seconds',
23295
+ m : 'a minute',
23296
+ mm : '%d minutes',
23297
+ h : 'an hour',
23298
+ hh : '%d hours',
23299
+ d : 'a day',
23300
+ dd : '%d days',
23301
+ M : 'a month',
23302
+ MM : '%d months',
23303
+ y : 'a year',
23304
+ yy : '%d years'
23305
+ },
23306
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
23307
+ ordinal : function (number) {
23308
+ var b = number % 10,
23309
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
23310
+ (b === 1) ? 'st' :
23311
+ (b === 2) ? 'nd' :
23312
+ (b === 3) ? 'rd' : 'th';
23313
+ return number + output;
23314
+ },
23315
+ week : {
23316
+ dow : 1, // Monday is the first day of the week.
23317
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
23318
+ }
23319
+ });
23320
+
23321
+ return enAu;
23322
+
23323
+ })));
23324
+
23325
+
23326
+ /***/ }),
23327
+ /* 106 */
23328
+ /***/ (function(module, exports, __webpack_require__) {
23329
+
23330
+ //! moment.js locale configuration
23331
+
23332
+ ;(function (global, factory) {
23333
+ true ? factory(__webpack_require__(0)) :
23334
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23335
+ factory(global.moment)
23336
+ }(this, (function (moment) { 'use strict';
23337
+
23338
+
23339
+ var enCa = moment.defineLocale('en-ca', {
23340
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
23341
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
23342
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
23343
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
23344
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
23345
+ longDateFormat : {
23346
+ LT : 'h:mm A',
23347
+ LTS : 'h:mm:ss A',
23348
+ L : 'YYYY-MM-DD',
23349
+ LL : 'MMMM D, YYYY',
23350
+ LLL : 'MMMM D, YYYY h:mm A',
23351
+ LLLL : 'dddd, MMMM D, YYYY h:mm A'
23352
+ },
23353
+ calendar : {
23354
+ sameDay : '[Today at] LT',
23355
+ nextDay : '[Tomorrow at] LT',
23356
+ nextWeek : 'dddd [at] LT',
23357
+ lastDay : '[Yesterday at] LT',
23358
+ lastWeek : '[Last] dddd [at] LT',
23359
+ sameElse : 'L'
23360
+ },
23361
+ relativeTime : {
23362
+ future : 'in %s',
23363
+ past : '%s ago',
23364
+ s : 'a few seconds',
23365
+ ss : '%d seconds',
23366
+ m : 'a minute',
23367
+ mm : '%d minutes',
23368
+ h : 'an hour',
23369
+ hh : '%d hours',
23370
+ d : 'a day',
23371
+ dd : '%d days',
23372
+ M : 'a month',
23373
+ MM : '%d months',
23374
+ y : 'a year',
23375
+ yy : '%d years'
23376
+ },
23377
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
23378
+ ordinal : function (number) {
23379
+ var b = number % 10,
23380
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
23381
+ (b === 1) ? 'st' :
23382
+ (b === 2) ? 'nd' :
23383
+ (b === 3) ? 'rd' : 'th';
23384
+ return number + output;
23385
+ }
23386
+ });
23387
+
23388
+ return enCa;
23389
+
23390
+ })));
23391
+
23392
+
23393
+ /***/ }),
23394
+ /* 107 */
23395
+ /***/ (function(module, exports, __webpack_require__) {
23396
+
23397
+ //! moment.js locale configuration
23398
+
23399
+ ;(function (global, factory) {
23400
+ true ? factory(__webpack_require__(0)) :
23401
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23402
+ factory(global.moment)
23403
+ }(this, (function (moment) { 'use strict';
23404
+
23405
+
23406
+ var enGb = moment.defineLocale('en-gb', {
23407
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
23408
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
23409
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
23410
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
23411
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
23412
+ longDateFormat : {
23413
+ LT : 'HH:mm',
23414
+ LTS : 'HH:mm:ss',
23415
+ L : 'DD/MM/YYYY',
23416
+ LL : 'D MMMM YYYY',
23417
+ LLL : 'D MMMM YYYY HH:mm',
23418
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
23419
+ },
23420
+ calendar : {
23421
+ sameDay : '[Today at] LT',
23422
+ nextDay : '[Tomorrow at] LT',
23423
+ nextWeek : 'dddd [at] LT',
23424
+ lastDay : '[Yesterday at] LT',
23425
+ lastWeek : '[Last] dddd [at] LT',
23426
+ sameElse : 'L'
23427
+ },
23428
+ relativeTime : {
23429
+ future : 'in %s',
23430
+ past : '%s ago',
23431
+ s : 'a few seconds',
23432
+ ss : '%d seconds',
23433
+ m : 'a minute',
23434
+ mm : '%d minutes',
23435
+ h : 'an hour',
23436
+ hh : '%d hours',
23437
+ d : 'a day',
23438
+ dd : '%d days',
23439
+ M : 'a month',
23440
+ MM : '%d months',
23441
+ y : 'a year',
23442
+ yy : '%d years'
23443
+ },
23444
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
23445
+ ordinal : function (number) {
23446
+ var b = number % 10,
23447
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
23448
+ (b === 1) ? 'st' :
23449
+ (b === 2) ? 'nd' :
23450
+ (b === 3) ? 'rd' : 'th';
23451
+ return number + output;
23452
+ },
23453
+ week : {
23454
+ dow : 1, // Monday is the first day of the week.
23455
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
23456
+ }
23457
+ });
23458
+
23459
+ return enGb;
23460
+
23461
+ })));
23462
+
23463
+
23464
+ /***/ }),
23465
+ /* 108 */
23466
+ /***/ (function(module, exports, __webpack_require__) {
23467
+
23468
+ //! moment.js locale configuration
23469
+
23470
+ ;(function (global, factory) {
23471
+ true ? factory(__webpack_require__(0)) :
23472
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23473
+ factory(global.moment)
23474
+ }(this, (function (moment) { 'use strict';
23475
+
23476
+
23477
+ var enIe = moment.defineLocale('en-ie', {
23478
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
23479
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
23480
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
23481
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
23482
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
23483
+ longDateFormat : {
23484
+ LT : 'HH:mm',
23485
+ LTS : 'HH:mm:ss',
23486
+ L : 'DD-MM-YYYY',
23487
+ LL : 'D MMMM YYYY',
23488
+ LLL : 'D MMMM YYYY HH:mm',
23489
+ LLLL : 'dddd D MMMM YYYY HH:mm'
23490
+ },
23491
+ calendar : {
23492
+ sameDay : '[Today at] LT',
23493
+ nextDay : '[Tomorrow at] LT',
23494
+ nextWeek : 'dddd [at] LT',
23495
+ lastDay : '[Yesterday at] LT',
23496
+ lastWeek : '[Last] dddd [at] LT',
23497
+ sameElse : 'L'
23498
+ },
23499
+ relativeTime : {
23500
+ future : 'in %s',
23501
+ past : '%s ago',
23502
+ s : 'a few seconds',
23503
+ ss : '%d seconds',
23504
+ m : 'a minute',
23505
+ mm : '%d minutes',
23506
+ h : 'an hour',
23507
+ hh : '%d hours',
23508
+ d : 'a day',
23509
+ dd : '%d days',
23510
+ M : 'a month',
23511
+ MM : '%d months',
23512
+ y : 'a year',
23513
+ yy : '%d years'
23514
+ },
23515
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
23516
+ ordinal : function (number) {
23517
+ var b = number % 10,
23518
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
23519
+ (b === 1) ? 'st' :
23520
+ (b === 2) ? 'nd' :
23521
+ (b === 3) ? 'rd' : 'th';
23522
+ return number + output;
23523
+ },
23524
+ week : {
23525
+ dow : 1, // Monday is the first day of the week.
23526
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
23527
+ }
23528
+ });
23529
+
23530
+ return enIe;
23531
+
23532
+ })));
23533
+
23534
+
23535
+ /***/ }),
23536
+ /* 109 */
23537
+ /***/ (function(module, exports, __webpack_require__) {
23538
+
23539
+ //! moment.js locale configuration
23540
+
23541
+ ;(function (global, factory) {
23542
+ true ? factory(__webpack_require__(0)) :
23543
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23544
+ factory(global.moment)
23545
+ }(this, (function (moment) { 'use strict';
23546
+
23547
+
23548
+ var enIl = moment.defineLocale('en-il', {
23549
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
23550
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
23551
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
23552
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
23553
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
23554
+ longDateFormat : {
23555
+ LT : 'HH:mm',
23556
+ LTS : 'HH:mm:ss',
23557
+ L : 'DD/MM/YYYY',
23558
+ LL : 'D MMMM YYYY',
23559
+ LLL : 'D MMMM YYYY HH:mm',
23560
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
23561
+ },
23562
+ calendar : {
23563
+ sameDay : '[Today at] LT',
23564
+ nextDay : '[Tomorrow at] LT',
23565
+ nextWeek : 'dddd [at] LT',
23566
+ lastDay : '[Yesterday at] LT',
23567
+ lastWeek : '[Last] dddd [at] LT',
23568
+ sameElse : 'L'
23569
+ },
23570
+ relativeTime : {
23571
+ future : 'in %s',
23572
+ past : '%s ago',
23573
+ s : 'a few seconds',
23574
+ m : 'a minute',
23575
+ mm : '%d minutes',
23576
+ h : 'an hour',
23577
+ hh : '%d hours',
23578
+ d : 'a day',
23579
+ dd : '%d days',
23580
+ M : 'a month',
23581
+ MM : '%d months',
23582
+ y : 'a year',
23583
+ yy : '%d years'
23584
+ },
23585
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
23586
+ ordinal : function (number) {
23587
+ var b = number % 10,
23588
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
23589
+ (b === 1) ? 'st' :
23590
+ (b === 2) ? 'nd' :
23591
+ (b === 3) ? 'rd' : 'th';
23592
+ return number + output;
23593
+ }
23594
+ });
23595
+
23596
+ return enIl;
23597
+
23598
+ })));
23599
+
23600
+
23601
+ /***/ }),
23602
+ /* 110 */
23603
+ /***/ (function(module, exports, __webpack_require__) {
23604
+
23605
+ //! moment.js locale configuration
23606
+
23607
+ ;(function (global, factory) {
23608
+ true ? factory(__webpack_require__(0)) :
23609
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23610
+ factory(global.moment)
23611
+ }(this, (function (moment) { 'use strict';
23612
+
23613
+
23614
+ var enNz = moment.defineLocale('en-nz', {
23615
+ months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
23616
+ monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
23617
+ weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
23618
+ weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
23619
+ weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
23620
+ longDateFormat : {
23621
+ LT : 'h:mm A',
23622
+ LTS : 'h:mm:ss A',
23623
+ L : 'DD/MM/YYYY',
23624
+ LL : 'D MMMM YYYY',
23625
+ LLL : 'D MMMM YYYY h:mm A',
23626
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
23627
+ },
23628
+ calendar : {
23629
+ sameDay : '[Today at] LT',
23630
+ nextDay : '[Tomorrow at] LT',
23631
+ nextWeek : 'dddd [at] LT',
23632
+ lastDay : '[Yesterday at] LT',
23633
+ lastWeek : '[Last] dddd [at] LT',
23634
+ sameElse : 'L'
23635
+ },
23636
+ relativeTime : {
23637
+ future : 'in %s',
23638
+ past : '%s ago',
23639
+ s : 'a few seconds',
23640
+ ss : '%d seconds',
23641
+ m : 'a minute',
23642
+ mm : '%d minutes',
23643
+ h : 'an hour',
23644
+ hh : '%d hours',
23645
+ d : 'a day',
23646
+ dd : '%d days',
23647
+ M : 'a month',
23648
+ MM : '%d months',
23649
+ y : 'a year',
23650
+ yy : '%d years'
23651
+ },
23652
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
23653
+ ordinal : function (number) {
23654
+ var b = number % 10,
23655
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
23656
+ (b === 1) ? 'st' :
23657
+ (b === 2) ? 'nd' :
23658
+ (b === 3) ? 'rd' : 'th';
23659
+ return number + output;
23660
+ },
23661
+ week : {
23662
+ dow : 1, // Monday is the first day of the week.
23663
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
23664
+ }
23665
+ });
23666
+
23667
+ return enNz;
23668
+
23669
+ })));
23670
+
23671
+
23672
+ /***/ }),
23673
+ /* 111 */
23674
+ /***/ (function(module, exports, __webpack_require__) {
23675
+
23676
+ //! moment.js locale configuration
23677
+
23678
+ ;(function (global, factory) {
23679
+ true ? factory(__webpack_require__(0)) :
23680
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23681
+ factory(global.moment)
23682
+ }(this, (function (moment) { 'use strict';
23683
+
23684
+
23685
+ var eo = moment.defineLocale('eo', {
23686
+ months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
23687
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
23688
+ weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
23689
+ weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
23690
+ weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
23691
+ longDateFormat : {
23692
+ LT : 'HH:mm',
23693
+ LTS : 'HH:mm:ss',
23694
+ L : 'YYYY-MM-DD',
23695
+ LL : 'D[-a de] MMMM, YYYY',
23696
+ LLL : 'D[-a de] MMMM, YYYY HH:mm',
23697
+ LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'
23698
+ },
23699
+ meridiemParse: /[ap]\.t\.m/i,
23700
+ isPM: function (input) {
23701
+ return input.charAt(0).toLowerCase() === 'p';
23702
+ },
23703
+ meridiem : function (hours, minutes, isLower) {
23704
+ if (hours > 11) {
23705
+ return isLower ? 'p.t.m.' : 'P.T.M.';
23706
+ } else {
23707
+ return isLower ? 'a.t.m.' : 'A.T.M.';
23708
+ }
23709
+ },
23710
+ calendar : {
23711
+ sameDay : '[Hodiaŭ je] LT',
23712
+ nextDay : '[Morgaŭ je] LT',
23713
+ nextWeek : 'dddd [je] LT',
23714
+ lastDay : '[Hieraŭ je] LT',
23715
+ lastWeek : '[pasinta] dddd [je] LT',
23716
+ sameElse : 'L'
23717
+ },
23718
+ relativeTime : {
23719
+ future : 'post %s',
23720
+ past : 'antaŭ %s',
23721
+ s : 'sekundoj',
23722
+ ss : '%d sekundoj',
23723
+ m : 'minuto',
23724
+ mm : '%d minutoj',
23725
+ h : 'horo',
23726
+ hh : '%d horoj',
23727
+ d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
23728
+ dd : '%d tagoj',
23729
+ M : 'monato',
23730
+ MM : '%d monatoj',
23731
+ y : 'jaro',
23732
+ yy : '%d jaroj'
23733
+ },
23734
+ dayOfMonthOrdinalParse: /\d{1,2}a/,
23735
+ ordinal : '%da',
23736
+ week : {
23737
+ dow : 1, // Monday is the first day of the week.
23738
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
23739
+ }
23740
+ });
23741
+
23742
+ return eo;
23743
+
23744
+ })));
23745
+
23746
+
23747
+ /***/ }),
23748
+ /* 112 */
23749
+ /***/ (function(module, exports, __webpack_require__) {
23750
+
23751
+ //! moment.js locale configuration
23752
+
23753
+ ;(function (global, factory) {
23754
+ true ? factory(__webpack_require__(0)) :
23755
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23756
+ factory(global.moment)
23757
+ }(this, (function (moment) { 'use strict';
23758
+
23759
+
23760
+ var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
23761
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
23762
+
23763
+ var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
23764
+ var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
23765
+
23766
+ var es = moment.defineLocale('es', {
23767
+ months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
23768
+ monthsShort : function (m, format) {
23769
+ if (!m) {
23770
+ return monthsShortDot;
23771
+ } else if (/-MMM-/.test(format)) {
23772
+ return monthsShort[m.month()];
23773
+ } else {
23774
+ return monthsShortDot[m.month()];
23775
+ }
23776
+ },
23777
+ monthsRegex : monthsRegex,
23778
+ monthsShortRegex : monthsRegex,
23779
+ monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
23780
+ monthsShortStrictRegex : /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
23781
+ monthsParse : monthsParse,
23782
+ longMonthsParse : monthsParse,
23783
+ shortMonthsParse : monthsParse,
23784
+ weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
23785
+ weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
23786
+ weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
23787
+ weekdaysParseExact : true,
23788
+ longDateFormat : {
23789
+ LT : 'H:mm',
23790
+ LTS : 'H:mm:ss',
23791
+ L : 'DD/MM/YYYY',
23792
+ LL : 'D [de] MMMM [de] YYYY',
23793
+ LLL : 'D [de] MMMM [de] YYYY H:mm',
23794
+ LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
23795
+ },
23796
+ calendar : {
23797
+ sameDay : function () {
23798
+ return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23799
+ },
23800
+ nextDay : function () {
23801
+ return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23802
+ },
23803
+ nextWeek : function () {
23804
+ return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23805
+ },
23806
+ lastDay : function () {
23807
+ return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23808
+ },
23809
+ lastWeek : function () {
23810
+ return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23811
+ },
23812
+ sameElse : 'L'
23813
+ },
23814
+ relativeTime : {
23815
+ future : 'en %s',
23816
+ past : 'hace %s',
23817
+ s : 'unos segundos',
23818
+ ss : '%d segundos',
23819
+ m : 'un minuto',
23820
+ mm : '%d minutos',
23821
+ h : 'una hora',
23822
+ hh : '%d horas',
23823
+ d : 'un día',
23824
+ dd : '%d días',
23825
+ M : 'un mes',
23826
+ MM : '%d meses',
23827
+ y : 'un año',
23828
+ yy : '%d años'
23829
+ },
23830
+ dayOfMonthOrdinalParse : /\d{1,2}º/,
23831
+ ordinal : '%dº',
23832
+ week : {
23833
+ dow : 1, // Monday is the first day of the week.
23834
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
23835
+ }
23836
+ });
23837
+
23838
+ return es;
23839
+
23840
+ })));
23841
+
23842
+
23843
+ /***/ }),
23844
+ /* 113 */
23845
+ /***/ (function(module, exports, __webpack_require__) {
23846
+
23847
+ //! moment.js locale configuration
23848
+
23849
+ ;(function (global, factory) {
23850
+ true ? factory(__webpack_require__(0)) :
23851
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23852
+ factory(global.moment)
23853
+ }(this, (function (moment) { 'use strict';
23854
+
23855
+
23856
+ var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
23857
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
23858
+
23859
+ var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
23860
+ var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
23861
+
23862
+ var esDo = moment.defineLocale('es-do', {
23863
+ months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
23864
+ monthsShort : function (m, format) {
23865
+ if (!m) {
23866
+ return monthsShortDot;
23867
+ } else if (/-MMM-/.test(format)) {
23868
+ return monthsShort[m.month()];
23869
+ } else {
23870
+ return monthsShortDot[m.month()];
23871
+ }
23872
+ },
23873
+ monthsRegex: monthsRegex,
23874
+ monthsShortRegex: monthsRegex,
23875
+ monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
23876
+ monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
23877
+ monthsParse: monthsParse,
23878
+ longMonthsParse: monthsParse,
23879
+ shortMonthsParse: monthsParse,
23880
+ weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
23881
+ weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
23882
+ weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
23883
+ weekdaysParseExact : true,
23884
+ longDateFormat : {
23885
+ LT : 'h:mm A',
23886
+ LTS : 'h:mm:ss A',
23887
+ L : 'DD/MM/YYYY',
23888
+ LL : 'D [de] MMMM [de] YYYY',
23889
+ LLL : 'D [de] MMMM [de] YYYY h:mm A',
23890
+ LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'
23891
+ },
23892
+ calendar : {
23893
+ sameDay : function () {
23894
+ return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23895
+ },
23896
+ nextDay : function () {
23897
+ return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23898
+ },
23899
+ nextWeek : function () {
23900
+ return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23901
+ },
23902
+ lastDay : function () {
23903
+ return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23904
+ },
23905
+ lastWeek : function () {
23906
+ return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23907
+ },
23908
+ sameElse : 'L'
23909
+ },
23910
+ relativeTime : {
23911
+ future : 'en %s',
23912
+ past : 'hace %s',
23913
+ s : 'unos segundos',
23914
+ ss : '%d segundos',
23915
+ m : 'un minuto',
23916
+ mm : '%d minutos',
23917
+ h : 'una hora',
23918
+ hh : '%d horas',
23919
+ d : 'un día',
23920
+ dd : '%d días',
23921
+ M : 'un mes',
23922
+ MM : '%d meses',
23923
+ y : 'un año',
23924
+ yy : '%d años'
23925
+ },
23926
+ dayOfMonthOrdinalParse : /\d{1,2}º/,
23927
+ ordinal : '%dº',
23928
+ week : {
23929
+ dow : 1, // Monday is the first day of the week.
23930
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
23931
+ }
23932
+ });
23933
+
23934
+ return esDo;
23935
+
23936
+ })));
23937
+
23938
+
23939
+ /***/ }),
23940
+ /* 114 */
23941
+ /***/ (function(module, exports, __webpack_require__) {
23942
+
23943
+ //! moment.js locale configuration
23944
+
23945
+ ;(function (global, factory) {
23946
+ true ? factory(__webpack_require__(0)) :
23947
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
23948
+ factory(global.moment)
23949
+ }(this, (function (moment) { 'use strict';
23950
+
23951
+
23952
+ var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
23953
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
23954
+
23955
+ var esUs = moment.defineLocale('es-us', {
23956
+ months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
23957
+ monthsShort : function (m, format) {
23958
+ if (!m) {
23959
+ return monthsShortDot;
23960
+ } else if (/-MMM-/.test(format)) {
23961
+ return monthsShort[m.month()];
23962
+ } else {
23963
+ return monthsShortDot[m.month()];
23964
+ }
23965
+ },
23966
+ monthsParseExact : true,
23967
+ weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
23968
+ weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
23969
+ weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
23970
+ weekdaysParseExact : true,
23971
+ longDateFormat : {
23972
+ LT : 'h:mm A',
23973
+ LTS : 'h:mm:ss A',
23974
+ L : 'MM/DD/YYYY',
23975
+ LL : 'MMMM [de] D [de] YYYY',
23976
+ LLL : 'MMMM [de] D [de] YYYY h:mm A',
23977
+ LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'
23978
+ },
23979
+ calendar : {
23980
+ sameDay : function () {
23981
+ return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23982
+ },
23983
+ nextDay : function () {
23984
+ return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23985
+ },
23986
+ nextWeek : function () {
23987
+ return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23988
+ },
23989
+ lastDay : function () {
23990
+ return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23991
+ },
23992
+ lastWeek : function () {
23993
+ return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
23994
+ },
23995
+ sameElse : 'L'
23996
+ },
23997
+ relativeTime : {
23998
+ future : 'en %s',
23999
+ past : 'hace %s',
24000
+ s : 'unos segundos',
24001
+ ss : '%d segundos',
24002
+ m : 'un minuto',
24003
+ mm : '%d minutos',
24004
+ h : 'una hora',
24005
+ hh : '%d horas',
24006
+ d : 'un día',
24007
+ dd : '%d días',
24008
+ M : 'un mes',
24009
+ MM : '%d meses',
24010
+ y : 'un año',
24011
+ yy : '%d años'
24012
+ },
24013
+ dayOfMonthOrdinalParse : /\d{1,2}º/,
24014
+ ordinal : '%dº',
24015
+ week : {
24016
+ dow : 0, // Sunday is the first day of the week.
24017
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
24018
+ }
24019
+ });
24020
+
24021
+ return esUs;
24022
+
24023
+ })));
24024
+
24025
+
24026
+ /***/ }),
24027
+ /* 115 */
24028
+ /***/ (function(module, exports, __webpack_require__) {
24029
+
24030
+ //! moment.js locale configuration
24031
+
24032
+ ;(function (global, factory) {
24033
+ true ? factory(__webpack_require__(0)) :
24034
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24035
+ factory(global.moment)
24036
+ }(this, (function (moment) { 'use strict';
24037
+
24038
+
24039
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
24040
+ var format = {
24041
+ 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
24042
+ 'ss': [number + 'sekundi', number + 'sekundit'],
24043
+ 'm' : ['ühe minuti', 'üks minut'],
24044
+ 'mm': [number + ' minuti', number + ' minutit'],
24045
+ 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
24046
+ 'hh': [number + ' tunni', number + ' tundi'],
24047
+ 'd' : ['ühe päeva', 'üks päev'],
24048
+ 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
24049
+ 'MM': [number + ' kuu', number + ' kuud'],
24050
+ 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
24051
+ 'yy': [number + ' aasta', number + ' aastat']
24052
+ };
24053
+ if (withoutSuffix) {
24054
+ return format[key][2] ? format[key][2] : format[key][1];
24055
+ }
24056
+ return isFuture ? format[key][0] : format[key][1];
24057
+ }
24058
+
24059
+ var et = moment.defineLocale('et', {
24060
+ months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
24061
+ monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
24062
+ weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
24063
+ weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
24064
+ weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
24065
+ longDateFormat : {
24066
+ LT : 'H:mm',
24067
+ LTS : 'H:mm:ss',
24068
+ L : 'DD.MM.YYYY',
24069
+ LL : 'D. MMMM YYYY',
24070
+ LLL : 'D. MMMM YYYY H:mm',
24071
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
24072
+ },
24073
+ calendar : {
24074
+ sameDay : '[Täna,] LT',
24075
+ nextDay : '[Homme,] LT',
24076
+ nextWeek : '[Järgmine] dddd LT',
24077
+ lastDay : '[Eile,] LT',
24078
+ lastWeek : '[Eelmine] dddd LT',
24079
+ sameElse : 'L'
24080
+ },
24081
+ relativeTime : {
24082
+ future : '%s pärast',
24083
+ past : '%s tagasi',
24084
+ s : processRelativeTime,
24085
+ ss : processRelativeTime,
24086
+ m : processRelativeTime,
24087
+ mm : processRelativeTime,
24088
+ h : processRelativeTime,
24089
+ hh : processRelativeTime,
24090
+ d : processRelativeTime,
24091
+ dd : '%d päeva',
24092
+ M : processRelativeTime,
24093
+ MM : processRelativeTime,
24094
+ y : processRelativeTime,
24095
+ yy : processRelativeTime
24096
+ },
24097
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
24098
+ ordinal : '%d.',
24099
+ week : {
24100
+ dow : 1, // Monday is the first day of the week.
24101
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
24102
+ }
24103
+ });
24104
+
24105
+ return et;
24106
+
24107
+ })));
24108
+
24109
+
24110
+ /***/ }),
24111
+ /* 116 */
24112
+ /***/ (function(module, exports, __webpack_require__) {
24113
+
24114
+ //! moment.js locale configuration
24115
+
24116
+ ;(function (global, factory) {
24117
+ true ? factory(__webpack_require__(0)) :
24118
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24119
+ factory(global.moment)
24120
+ }(this, (function (moment) { 'use strict';
24121
+
24122
+
24123
+ var eu = moment.defineLocale('eu', {
24124
+ months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
24125
+ monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
24126
+ monthsParseExact : true,
24127
+ weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
24128
+ weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
24129
+ weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
24130
+ weekdaysParseExact : true,
24131
+ longDateFormat : {
24132
+ LT : 'HH:mm',
24133
+ LTS : 'HH:mm:ss',
24134
+ L : 'YYYY-MM-DD',
24135
+ LL : 'YYYY[ko] MMMM[ren] D[a]',
24136
+ LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
24137
+ LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
24138
+ l : 'YYYY-M-D',
24139
+ ll : 'YYYY[ko] MMM D[a]',
24140
+ lll : 'YYYY[ko] MMM D[a] HH:mm',
24141
+ llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
24142
+ },
24143
+ calendar : {
24144
+ sameDay : '[gaur] LT[etan]',
24145
+ nextDay : '[bihar] LT[etan]',
24146
+ nextWeek : 'dddd LT[etan]',
24147
+ lastDay : '[atzo] LT[etan]',
24148
+ lastWeek : '[aurreko] dddd LT[etan]',
24149
+ sameElse : 'L'
24150
+ },
24151
+ relativeTime : {
24152
+ future : '%s barru',
24153
+ past : 'duela %s',
24154
+ s : 'segundo batzuk',
24155
+ ss : '%d segundo',
24156
+ m : 'minutu bat',
24157
+ mm : '%d minutu',
24158
+ h : 'ordu bat',
24159
+ hh : '%d ordu',
24160
+ d : 'egun bat',
24161
+ dd : '%d egun',
24162
+ M : 'hilabete bat',
24163
+ MM : '%d hilabete',
24164
+ y : 'urte bat',
24165
+ yy : '%d urte'
24166
+ },
24167
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
24168
+ ordinal : '%d.',
24169
+ week : {
24170
+ dow : 1, // Monday is the first day of the week.
24171
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
24172
+ }
24173
+ });
24174
+
24175
+ return eu;
24176
+
24177
+ })));
24178
+
24179
+
24180
+ /***/ }),
24181
+ /* 117 */
24182
+ /***/ (function(module, exports, __webpack_require__) {
24183
+
24184
+ //! moment.js locale configuration
24185
+
24186
+ ;(function (global, factory) {
24187
+ true ? factory(__webpack_require__(0)) :
24188
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24189
+ factory(global.moment)
24190
+ }(this, (function (moment) { 'use strict';
24191
+
24192
+
24193
+ var symbolMap = {
24194
+ '1': '۱',
24195
+ '2': '۲',
24196
+ '3': '۳',
24197
+ '4': '۴',
24198
+ '5': '۵',
24199
+ '6': '۶',
24200
+ '7': '۷',
24201
+ '8': '۸',
24202
+ '9': '۹',
24203
+ '0': '۰'
24204
+ }, numberMap = {
24205
+ '۱': '1',
24206
+ '۲': '2',
24207
+ '۳': '3',
24208
+ '۴': '4',
24209
+ '۵': '5',
24210
+ '۶': '6',
24211
+ '۷': '7',
24212
+ '۸': '8',
24213
+ '۹': '9',
24214
+ '۰': '0'
24215
+ };
24216
+
24217
+ var fa = moment.defineLocale('fa', {
24218
+ months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
24219
+ monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
24220
+ weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
24221
+ weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
24222
+ weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
24223
+ weekdaysParseExact : true,
24224
+ longDateFormat : {
24225
+ LT : 'HH:mm',
24226
+ LTS : 'HH:mm:ss',
24227
+ L : 'DD/MM/YYYY',
24228
+ LL : 'D MMMM YYYY',
24229
+ LLL : 'D MMMM YYYY HH:mm',
24230
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
24231
+ },
24232
+ meridiemParse: /قبل از ظهر|بعد از ظهر/,
24233
+ isPM: function (input) {
24234
+ return /بعد از ظهر/.test(input);
24235
+ },
24236
+ meridiem : function (hour, minute, isLower) {
24237
+ if (hour < 12) {
24238
+ return 'قبل از ظهر';
24239
+ } else {
24240
+ return 'بعد از ظهر';
24241
+ }
24242
+ },
24243
+ calendar : {
24244
+ sameDay : '[امروز ساعت] LT',
24245
+ nextDay : '[فردا ساعت] LT',
24246
+ nextWeek : 'dddd [ساعت] LT',
24247
+ lastDay : '[دیروز ساعت] LT',
24248
+ lastWeek : 'dddd [پیش] [ساعت] LT',
24249
+ sameElse : 'L'
24250
+ },
24251
+ relativeTime : {
24252
+ future : 'در %s',
24253
+ past : '%s پیش',
24254
+ s : 'چند ثانیه',
24255
+ ss : 'ثانیه d%',
24256
+ m : 'یک دقیقه',
24257
+ mm : '%d دقیقه',
24258
+ h : 'یک ساعت',
24259
+ hh : '%d ساعت',
24260
+ d : 'یک روز',
24261
+ dd : '%d روز',
24262
+ M : 'یک ماه',
24263
+ MM : '%d ماه',
24264
+ y : 'یک سال',
24265
+ yy : '%d سال'
24266
+ },
24267
+ preparse: function (string) {
24268
+ return string.replace(/[۰-۹]/g, function (match) {
24269
+ return numberMap[match];
24270
+ }).replace(/،/g, ',');
24271
+ },
24272
+ postformat: function (string) {
24273
+ return string.replace(/\d/g, function (match) {
24274
+ return symbolMap[match];
24275
+ }).replace(/,/g, '،');
24276
+ },
24277
+ dayOfMonthOrdinalParse: /\d{1,2}م/,
24278
+ ordinal : '%dم',
24279
+ week : {
24280
+ dow : 6, // Saturday is the first day of the week.
24281
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
24282
+ }
24283
+ });
24284
+
24285
+ return fa;
24286
+
24287
+ })));
24288
+
24289
+
24290
+ /***/ }),
24291
+ /* 118 */
24292
+ /***/ (function(module, exports, __webpack_require__) {
24293
+
24294
+ //! moment.js locale configuration
24295
+
24296
+ ;(function (global, factory) {
24297
+ true ? factory(__webpack_require__(0)) :
24298
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24299
+ factory(global.moment)
24300
+ }(this, (function (moment) { 'use strict';
24301
+
24302
+
24303
+ var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
24304
+ numbersFuture = [
24305
+ 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
24306
+ numbersPast[7], numbersPast[8], numbersPast[9]
24307
+ ];
24308
+ function translate(number, withoutSuffix, key, isFuture) {
24309
+ var result = '';
24310
+ switch (key) {
24311
+ case 's':
24312
+ return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
24313
+ case 'ss':
24314
+ return isFuture ? 'sekunnin' : 'sekuntia';
24315
+ case 'm':
24316
+ return isFuture ? 'minuutin' : 'minuutti';
24317
+ case 'mm':
24318
+ result = isFuture ? 'minuutin' : 'minuuttia';
24319
+ break;
24320
+ case 'h':
24321
+ return isFuture ? 'tunnin' : 'tunti';
24322
+ case 'hh':
24323
+ result = isFuture ? 'tunnin' : 'tuntia';
24324
+ break;
24325
+ case 'd':
24326
+ return isFuture ? 'päivän' : 'päivä';
24327
+ case 'dd':
24328
+ result = isFuture ? 'päivän' : 'päivää';
24329
+ break;
24330
+ case 'M':
24331
+ return isFuture ? 'kuukauden' : 'kuukausi';
24332
+ case 'MM':
24333
+ result = isFuture ? 'kuukauden' : 'kuukautta';
24334
+ break;
24335
+ case 'y':
24336
+ return isFuture ? 'vuoden' : 'vuosi';
24337
+ case 'yy':
24338
+ result = isFuture ? 'vuoden' : 'vuotta';
24339
+ break;
24340
+ }
24341
+ result = verbalNumber(number, isFuture) + ' ' + result;
24342
+ return result;
24343
+ }
24344
+ function verbalNumber(number, isFuture) {
24345
+ return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
24346
+ }
24347
+
24348
+ var fi = moment.defineLocale('fi', {
24349
+ months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
24350
+ monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
24351
+ weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
24352
+ weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
24353
+ weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
24354
+ longDateFormat : {
24355
+ LT : 'HH.mm',
24356
+ LTS : 'HH.mm.ss',
24357
+ L : 'DD.MM.YYYY',
24358
+ LL : 'Do MMMM[ta] YYYY',
24359
+ LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
24360
+ LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
24361
+ l : 'D.M.YYYY',
24362
+ ll : 'Do MMM YYYY',
24363
+ lll : 'Do MMM YYYY, [klo] HH.mm',
24364
+ llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
24365
+ },
24366
+ calendar : {
24367
+ sameDay : '[tänään] [klo] LT',
24368
+ nextDay : '[huomenna] [klo] LT',
24369
+ nextWeek : 'dddd [klo] LT',
24370
+ lastDay : '[eilen] [klo] LT',
24371
+ lastWeek : '[viime] dddd[na] [klo] LT',
24372
+ sameElse : 'L'
24373
+ },
24374
+ relativeTime : {
24375
+ future : '%s päästä',
24376
+ past : '%s sitten',
24377
+ s : translate,
24378
+ ss : translate,
24379
+ m : translate,
24380
+ mm : translate,
24381
+ h : translate,
24382
+ hh : translate,
24383
+ d : translate,
24384
+ dd : translate,
24385
+ M : translate,
24386
+ MM : translate,
24387
+ y : translate,
24388
+ yy : translate
24389
+ },
24390
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
24391
+ ordinal : '%d.',
24392
+ week : {
24393
+ dow : 1, // Monday is the first day of the week.
24394
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
24395
+ }
24396
+ });
24397
+
24398
+ return fi;
24399
+
24400
+ })));
24401
+
24402
+
24403
+ /***/ }),
24404
+ /* 119 */
24405
+ /***/ (function(module, exports, __webpack_require__) {
24406
+
24407
+ //! moment.js locale configuration
24408
+
24409
+ ;(function (global, factory) {
24410
+ true ? factory(__webpack_require__(0)) :
24411
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24412
+ factory(global.moment)
24413
+ }(this, (function (moment) { 'use strict';
24414
+
24415
+
24416
+ var fo = moment.defineLocale('fo', {
24417
+ months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
24418
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
24419
+ weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
24420
+ weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
24421
+ weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
24422
+ longDateFormat : {
24423
+ LT : 'HH:mm',
24424
+ LTS : 'HH:mm:ss',
24425
+ L : 'DD/MM/YYYY',
24426
+ LL : 'D MMMM YYYY',
24427
+ LLL : 'D MMMM YYYY HH:mm',
24428
+ LLLL : 'dddd D. MMMM, YYYY HH:mm'
24429
+ },
24430
+ calendar : {
24431
+ sameDay : '[Í dag kl.] LT',
24432
+ nextDay : '[Í morgin kl.] LT',
24433
+ nextWeek : 'dddd [kl.] LT',
24434
+ lastDay : '[Í gjár kl.] LT',
24435
+ lastWeek : '[síðstu] dddd [kl] LT',
24436
+ sameElse : 'L'
24437
+ },
24438
+ relativeTime : {
24439
+ future : 'um %s',
24440
+ past : '%s síðani',
24441
+ s : 'fá sekund',
24442
+ ss : '%d sekundir',
24443
+ m : 'ein minutt',
24444
+ mm : '%d minuttir',
24445
+ h : 'ein tími',
24446
+ hh : '%d tímar',
24447
+ d : 'ein dagur',
24448
+ dd : '%d dagar',
24449
+ M : 'ein mánaði',
24450
+ MM : '%d mánaðir',
24451
+ y : 'eitt ár',
24452
+ yy : '%d ár'
24453
+ },
24454
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
24455
+ ordinal : '%d.',
24456
+ week : {
24457
+ dow : 1, // Monday is the first day of the week.
24458
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
24459
+ }
24460
+ });
24461
+
24462
+ return fo;
24463
+
24464
+ })));
24465
+
24466
+
24467
+ /***/ }),
24468
+ /* 120 */
24469
+ /***/ (function(module, exports, __webpack_require__) {
24470
+
24471
+ //! moment.js locale configuration
24472
+
24473
+ ;(function (global, factory) {
24474
+ true ? factory(__webpack_require__(0)) :
24475
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24476
+ factory(global.moment)
24477
+ }(this, (function (moment) { 'use strict';
24478
+
24479
+
24480
+ var fr = moment.defineLocale('fr', {
24481
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
24482
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
24483
+ monthsParseExact : true,
24484
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
24485
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
24486
+ weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
24487
+ weekdaysParseExact : true,
24488
+ longDateFormat : {
24489
+ LT : 'HH:mm',
24490
+ LTS : 'HH:mm:ss',
24491
+ L : 'DD/MM/YYYY',
24492
+ LL : 'D MMMM YYYY',
24493
+ LLL : 'D MMMM YYYY HH:mm',
24494
+ LLLL : 'dddd D MMMM YYYY HH:mm'
24495
+ },
24496
+ calendar : {
24497
+ sameDay : '[Aujourd’hui à] LT',
24498
+ nextDay : '[Demain à] LT',
24499
+ nextWeek : 'dddd [à] LT',
24500
+ lastDay : '[Hier à] LT',
24501
+ lastWeek : 'dddd [dernier à] LT',
24502
+ sameElse : 'L'
24503
+ },
24504
+ relativeTime : {
24505
+ future : 'dans %s',
24506
+ past : 'il y a %s',
24507
+ s : 'quelques secondes',
24508
+ ss : '%d secondes',
24509
+ m : 'une minute',
24510
+ mm : '%d minutes',
24511
+ h : 'une heure',
24512
+ hh : '%d heures',
24513
+ d : 'un jour',
24514
+ dd : '%d jours',
24515
+ M : 'un mois',
24516
+ MM : '%d mois',
24517
+ y : 'un an',
24518
+ yy : '%d ans'
24519
+ },
24520
+ dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
24521
+ ordinal : function (number, period) {
24522
+ switch (period) {
24523
+ // TODO: Return 'e' when day of month > 1. Move this case inside
24524
+ // block for masculine words below.
24525
+ // See https://github.com/moment/moment/issues/3375
24526
+ case 'D':
24527
+ return number + (number === 1 ? 'er' : '');
24528
+
24529
+ // Words with masculine grammatical gender: mois, trimestre, jour
24530
+ default:
24531
+ case 'M':
24532
+ case 'Q':
24533
+ case 'DDD':
24534
+ case 'd':
24535
+ return number + (number === 1 ? 'er' : 'e');
24536
+
24537
+ // Words with feminine grammatical gender: semaine
24538
+ case 'w':
24539
+ case 'W':
24540
+ return number + (number === 1 ? 're' : 'e');
24541
+ }
24542
+ },
24543
+ week : {
24544
+ dow : 1, // Monday is the first day of the week.
24545
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
24546
+ }
24547
+ });
24548
+
24549
+ return fr;
24550
+
24551
+ })));
24552
+
24553
+
24554
+ /***/ }),
24555
+ /* 121 */
24556
+ /***/ (function(module, exports, __webpack_require__) {
24557
+
24558
+ //! moment.js locale configuration
24559
+
24560
+ ;(function (global, factory) {
24561
+ true ? factory(__webpack_require__(0)) :
24562
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24563
+ factory(global.moment)
24564
+ }(this, (function (moment) { 'use strict';
24565
+
24566
+
24567
+ var frCa = moment.defineLocale('fr-ca', {
24568
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
24569
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
24570
+ monthsParseExact : true,
24571
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
24572
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
24573
+ weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
24574
+ weekdaysParseExact : true,
24575
+ longDateFormat : {
24576
+ LT : 'HH:mm',
24577
+ LTS : 'HH:mm:ss',
24578
+ L : 'YYYY-MM-DD',
24579
+ LL : 'D MMMM YYYY',
24580
+ LLL : 'D MMMM YYYY HH:mm',
24581
+ LLLL : 'dddd D MMMM YYYY HH:mm'
24582
+ },
24583
+ calendar : {
24584
+ sameDay : '[Aujourd’hui à] LT',
24585
+ nextDay : '[Demain à] LT',
24586
+ nextWeek : 'dddd [à] LT',
24587
+ lastDay : '[Hier à] LT',
24588
+ lastWeek : 'dddd [dernier à] LT',
24589
+ sameElse : 'L'
24590
+ },
24591
+ relativeTime : {
24592
+ future : 'dans %s',
24593
+ past : 'il y a %s',
24594
+ s : 'quelques secondes',
24595
+ ss : '%d secondes',
24596
+ m : 'une minute',
24597
+ mm : '%d minutes',
24598
+ h : 'une heure',
24599
+ hh : '%d heures',
24600
+ d : 'un jour',
24601
+ dd : '%d jours',
24602
+ M : 'un mois',
24603
+ MM : '%d mois',
24604
+ y : 'un an',
24605
+ yy : '%d ans'
24606
+ },
24607
+ dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
24608
+ ordinal : function (number, period) {
24609
+ switch (period) {
24610
+ // Words with masculine grammatical gender: mois, trimestre, jour
24611
+ default:
24612
+ case 'M':
24613
+ case 'Q':
24614
+ case 'D':
24615
+ case 'DDD':
24616
+ case 'd':
24617
+ return number + (number === 1 ? 'er' : 'e');
24618
+
24619
+ // Words with feminine grammatical gender: semaine
24620
+ case 'w':
24621
+ case 'W':
24622
+ return number + (number === 1 ? 're' : 'e');
24623
+ }
24624
+ }
24625
+ });
24626
+
24627
+ return frCa;
24628
+
24629
+ })));
24630
+
24631
+
24632
+ /***/ }),
24633
+ /* 122 */
24634
+ /***/ (function(module, exports, __webpack_require__) {
24635
+
24636
+ //! moment.js locale configuration
24637
+
24638
+ ;(function (global, factory) {
24639
+ true ? factory(__webpack_require__(0)) :
24640
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24641
+ factory(global.moment)
24642
+ }(this, (function (moment) { 'use strict';
24643
+
24644
+
24645
+ var frCh = moment.defineLocale('fr-ch', {
24646
+ months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
24647
+ monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
24648
+ monthsParseExact : true,
24649
+ weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
24650
+ weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
24651
+ weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
24652
+ weekdaysParseExact : true,
24653
+ longDateFormat : {
24654
+ LT : 'HH:mm',
24655
+ LTS : 'HH:mm:ss',
24656
+ L : 'DD.MM.YYYY',
24657
+ LL : 'D MMMM YYYY',
24658
+ LLL : 'D MMMM YYYY HH:mm',
24659
+ LLLL : 'dddd D MMMM YYYY HH:mm'
24660
+ },
24661
+ calendar : {
24662
+ sameDay : '[Aujourd’hui à] LT',
24663
+ nextDay : '[Demain à] LT',
24664
+ nextWeek : 'dddd [à] LT',
24665
+ lastDay : '[Hier à] LT',
24666
+ lastWeek : 'dddd [dernier à] LT',
24667
+ sameElse : 'L'
24668
+ },
24669
+ relativeTime : {
24670
+ future : 'dans %s',
24671
+ past : 'il y a %s',
24672
+ s : 'quelques secondes',
24673
+ ss : '%d secondes',
24674
+ m : 'une minute',
24675
+ mm : '%d minutes',
24676
+ h : 'une heure',
24677
+ hh : '%d heures',
24678
+ d : 'un jour',
24679
+ dd : '%d jours',
24680
+ M : 'un mois',
24681
+ MM : '%d mois',
24682
+ y : 'un an',
24683
+ yy : '%d ans'
24684
+ },
24685
+ dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
24686
+ ordinal : function (number, period) {
24687
+ switch (period) {
24688
+ // Words with masculine grammatical gender: mois, trimestre, jour
24689
+ default:
24690
+ case 'M':
24691
+ case 'Q':
24692
+ case 'D':
24693
+ case 'DDD':
24694
+ case 'd':
24695
+ return number + (number === 1 ? 'er' : 'e');
24696
+
24697
+ // Words with feminine grammatical gender: semaine
24698
+ case 'w':
24699
+ case 'W':
24700
+ return number + (number === 1 ? 're' : 'e');
24701
+ }
24702
+ },
24703
+ week : {
24704
+ dow : 1, // Monday is the first day of the week.
24705
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
24706
+ }
24707
+ });
24708
+
24709
+ return frCh;
24710
+
24711
+ })));
24712
+
24713
+
24714
+ /***/ }),
24715
+ /* 123 */
24716
+ /***/ (function(module, exports, __webpack_require__) {
24717
+
24718
+ //! moment.js locale configuration
24719
+
24720
+ ;(function (global, factory) {
24721
+ true ? factory(__webpack_require__(0)) :
24722
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24723
+ factory(global.moment)
24724
+ }(this, (function (moment) { 'use strict';
24725
+
24726
+
24727
+ var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
24728
+ monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
24729
+
24730
+ var fy = moment.defineLocale('fy', {
24731
+ months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
24732
+ monthsShort : function (m, format) {
24733
+ if (!m) {
24734
+ return monthsShortWithDots;
24735
+ } else if (/-MMM-/.test(format)) {
24736
+ return monthsShortWithoutDots[m.month()];
24737
+ } else {
24738
+ return monthsShortWithDots[m.month()];
24739
+ }
24740
+ },
24741
+ monthsParseExact : true,
24742
+ weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
24743
+ weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
24744
+ weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
24745
+ weekdaysParseExact : true,
24746
+ longDateFormat : {
24747
+ LT : 'HH:mm',
24748
+ LTS : 'HH:mm:ss',
24749
+ L : 'DD-MM-YYYY',
24750
+ LL : 'D MMMM YYYY',
24751
+ LLL : 'D MMMM YYYY HH:mm',
24752
+ LLLL : 'dddd D MMMM YYYY HH:mm'
24753
+ },
24754
+ calendar : {
24755
+ sameDay: '[hjoed om] LT',
24756
+ nextDay: '[moarn om] LT',
24757
+ nextWeek: 'dddd [om] LT',
24758
+ lastDay: '[juster om] LT',
24759
+ lastWeek: '[ôfrûne] dddd [om] LT',
24760
+ sameElse: 'L'
24761
+ },
24762
+ relativeTime : {
24763
+ future : 'oer %s',
24764
+ past : '%s lyn',
24765
+ s : 'in pear sekonden',
24766
+ ss : '%d sekonden',
24767
+ m : 'ien minút',
24768
+ mm : '%d minuten',
24769
+ h : 'ien oere',
24770
+ hh : '%d oeren',
24771
+ d : 'ien dei',
24772
+ dd : '%d dagen',
24773
+ M : 'ien moanne',
24774
+ MM : '%d moannen',
24775
+ y : 'ien jier',
24776
+ yy : '%d jierren'
24777
+ },
24778
+ dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
24779
+ ordinal : function (number) {
24780
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
24781
+ },
24782
+ week : {
24783
+ dow : 1, // Monday is the first day of the week.
24784
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
24785
+ }
24786
+ });
24787
+
24788
+ return fy;
24789
+
24790
+ })));
24791
+
24792
+
24793
+ /***/ }),
24794
+ /* 124 */
24795
+ /***/ (function(module, exports, __webpack_require__) {
24796
+
24797
+ //! moment.js locale configuration
24798
+
24799
+ ;(function (global, factory) {
24800
+ true ? factory(__webpack_require__(0)) :
24801
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24802
+ factory(global.moment)
24803
+ }(this, (function (moment) { 'use strict';
24804
+
24805
+
24806
+ var months = [
24807
+ 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
24808
+ ];
24809
+
24810
+ var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
24811
+
24812
+ var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
24813
+
24814
+ var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
24815
+
24816
+ var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
24817
+
24818
+ var gd = moment.defineLocale('gd', {
24819
+ months : months,
24820
+ monthsShort : monthsShort,
24821
+ monthsParseExact : true,
24822
+ weekdays : weekdays,
24823
+ weekdaysShort : weekdaysShort,
24824
+ weekdaysMin : weekdaysMin,
24825
+ longDateFormat : {
24826
+ LT : 'HH:mm',
24827
+ LTS : 'HH:mm:ss',
24828
+ L : 'DD/MM/YYYY',
24829
+ LL : 'D MMMM YYYY',
24830
+ LLL : 'D MMMM YYYY HH:mm',
24831
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
24832
+ },
24833
+ calendar : {
24834
+ sameDay : '[An-diugh aig] LT',
24835
+ nextDay : '[A-màireach aig] LT',
24836
+ nextWeek : 'dddd [aig] LT',
24837
+ lastDay : '[An-dè aig] LT',
24838
+ lastWeek : 'dddd [seo chaidh] [aig] LT',
24839
+ sameElse : 'L'
24840
+ },
24841
+ relativeTime : {
24842
+ future : 'ann an %s',
24843
+ past : 'bho chionn %s',
24844
+ s : 'beagan diogan',
24845
+ ss : '%d diogan',
24846
+ m : 'mionaid',
24847
+ mm : '%d mionaidean',
24848
+ h : 'uair',
24849
+ hh : '%d uairean',
24850
+ d : 'latha',
24851
+ dd : '%d latha',
24852
+ M : 'mìos',
24853
+ MM : '%d mìosan',
24854
+ y : 'bliadhna',
24855
+ yy : '%d bliadhna'
24856
+ },
24857
+ dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/,
24858
+ ordinal : function (number) {
24859
+ var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
24860
+ return number + output;
24861
+ },
24862
+ week : {
24863
+ dow : 1, // Monday is the first day of the week.
24864
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
24865
+ }
24866
+ });
24867
+
24868
+ return gd;
24869
+
24870
+ })));
24871
+
24872
+
24873
+ /***/ }),
24874
+ /* 125 */
24875
+ /***/ (function(module, exports, __webpack_require__) {
24876
+
24877
+ //! moment.js locale configuration
24878
+
24879
+ ;(function (global, factory) {
24880
+ true ? factory(__webpack_require__(0)) :
24881
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24882
+ factory(global.moment)
24883
+ }(this, (function (moment) { 'use strict';
24884
+
24885
+
24886
+ var gl = moment.defineLocale('gl', {
24887
+ months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),
24888
+ monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),
24889
+ monthsParseExact: true,
24890
+ weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
24891
+ weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
24892
+ weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),
24893
+ weekdaysParseExact : true,
24894
+ longDateFormat : {
24895
+ LT : 'H:mm',
24896
+ LTS : 'H:mm:ss',
24897
+ L : 'DD/MM/YYYY',
24898
+ LL : 'D [de] MMMM [de] YYYY',
24899
+ LLL : 'D [de] MMMM [de] YYYY H:mm',
24900
+ LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
24901
+ },
24902
+ calendar : {
24903
+ sameDay : function () {
24904
+ return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
24905
+ },
24906
+ nextDay : function () {
24907
+ return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
24908
+ },
24909
+ nextWeek : function () {
24910
+ return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
24911
+ },
24912
+ lastDay : function () {
24913
+ return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
24914
+ },
24915
+ lastWeek : function () {
24916
+ return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
24917
+ },
24918
+ sameElse : 'L'
24919
+ },
24920
+ relativeTime : {
24921
+ future : function (str) {
24922
+ if (str.indexOf('un') === 0) {
24923
+ return 'n' + str;
24924
+ }
24925
+ return 'en ' + str;
24926
+ },
24927
+ past : 'hai %s',
24928
+ s : 'uns segundos',
24929
+ ss : '%d segundos',
24930
+ m : 'un minuto',
24931
+ mm : '%d minutos',
24932
+ h : 'unha hora',
24933
+ hh : '%d horas',
24934
+ d : 'un día',
24935
+ dd : '%d días',
24936
+ M : 'un mes',
24937
+ MM : '%d meses',
24938
+ y : 'un ano',
24939
+ yy : '%d anos'
24940
+ },
24941
+ dayOfMonthOrdinalParse : /\d{1,2}º/,
24942
+ ordinal : '%dº',
24943
+ week : {
24944
+ dow : 1, // Monday is the first day of the week.
24945
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
24946
+ }
24947
+ });
24948
+
24949
+ return gl;
24950
+
24951
+ })));
24952
+
24953
+
24954
+ /***/ }),
24955
+ /* 126 */
24956
+ /***/ (function(module, exports, __webpack_require__) {
24957
+
24958
+ //! moment.js locale configuration
24959
+
24960
+ ;(function (global, factory) {
24961
+ true ? factory(__webpack_require__(0)) :
24962
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
24963
+ factory(global.moment)
24964
+ }(this, (function (moment) { 'use strict';
24965
+
24966
+
24967
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
24968
+ var format = {
24969
+ 's': ['thodde secondanim', 'thodde second'],
24970
+ 'ss': [number + ' secondanim', number + ' second'],
24971
+ 'm': ['eka mintan', 'ek minute'],
24972
+ 'mm': [number + ' mintanim', number + ' mintam'],
24973
+ 'h': ['eka horan', 'ek hor'],
24974
+ 'hh': [number + ' horanim', number + ' horam'],
24975
+ 'd': ['eka disan', 'ek dis'],
24976
+ 'dd': [number + ' disanim', number + ' dis'],
24977
+ 'M': ['eka mhoinean', 'ek mhoino'],
24978
+ 'MM': [number + ' mhoineanim', number + ' mhoine'],
24979
+ 'y': ['eka vorsan', 'ek voros'],
24980
+ 'yy': [number + ' vorsanim', number + ' vorsam']
24981
+ };
24982
+ return withoutSuffix ? format[key][0] : format[key][1];
24983
+ }
24984
+
24985
+ var gomLatn = moment.defineLocale('gom-latn', {
24986
+ months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),
24987
+ monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
24988
+ monthsParseExact : true,
24989
+ weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'),
24990
+ weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
24991
+ weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
24992
+ weekdaysParseExact : true,
24993
+ longDateFormat : {
24994
+ LT : 'A h:mm [vazta]',
24995
+ LTS : 'A h:mm:ss [vazta]',
24996
+ L : 'DD-MM-YYYY',
24997
+ LL : 'D MMMM YYYY',
24998
+ LLL : 'D MMMM YYYY A h:mm [vazta]',
24999
+ LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',
25000
+ llll: 'ddd, D MMM YYYY, A h:mm [vazta]'
25001
+ },
25002
+ calendar : {
25003
+ sameDay: '[Aiz] LT',
25004
+ nextDay: '[Faleam] LT',
25005
+ nextWeek: '[Ieta to] dddd[,] LT',
25006
+ lastDay: '[Kal] LT',
25007
+ lastWeek: '[Fatlo] dddd[,] LT',
25008
+ sameElse: 'L'
25009
+ },
25010
+ relativeTime : {
25011
+ future : '%s',
25012
+ past : '%s adim',
25013
+ s : processRelativeTime,
25014
+ ss : processRelativeTime,
25015
+ m : processRelativeTime,
25016
+ mm : processRelativeTime,
25017
+ h : processRelativeTime,
25018
+ hh : processRelativeTime,
25019
+ d : processRelativeTime,
25020
+ dd : processRelativeTime,
25021
+ M : processRelativeTime,
25022
+ MM : processRelativeTime,
25023
+ y : processRelativeTime,
25024
+ yy : processRelativeTime
25025
+ },
25026
+ dayOfMonthOrdinalParse : /\d{1,2}(er)/,
25027
+ ordinal : function (number, period) {
25028
+ switch (period) {
25029
+ // the ordinal 'er' only applies to day of the month
25030
+ case 'D':
25031
+ return number + 'er';
25032
+ default:
25033
+ case 'M':
25034
+ case 'Q':
25035
+ case 'DDD':
25036
+ case 'd':
25037
+ case 'w':
25038
+ case 'W':
25039
+ return number;
25040
+ }
25041
+ },
25042
+ week : {
25043
+ dow : 1, // Monday is the first day of the week.
25044
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
25045
+ },
25046
+ meridiemParse: /rati|sokalli|donparam|sanje/,
25047
+ meridiemHour : function (hour, meridiem) {
25048
+ if (hour === 12) {
25049
+ hour = 0;
25050
+ }
25051
+ if (meridiem === 'rati') {
25052
+ return hour < 4 ? hour : hour + 12;
25053
+ } else if (meridiem === 'sokalli') {
25054
+ return hour;
25055
+ } else if (meridiem === 'donparam') {
25056
+ return hour > 12 ? hour : hour + 12;
25057
+ } else if (meridiem === 'sanje') {
25058
+ return hour + 12;
25059
+ }
25060
+ },
25061
+ meridiem : function (hour, minute, isLower) {
25062
+ if (hour < 4) {
25063
+ return 'rati';
25064
+ } else if (hour < 12) {
25065
+ return 'sokalli';
25066
+ } else if (hour < 16) {
25067
+ return 'donparam';
25068
+ } else if (hour < 20) {
25069
+ return 'sanje';
25070
+ } else {
25071
+ return 'rati';
25072
+ }
25073
+ }
25074
+ });
25075
+
25076
+ return gomLatn;
25077
+
25078
+ })));
25079
+
25080
+
25081
+ /***/ }),
25082
+ /* 127 */
25083
+ /***/ (function(module, exports, __webpack_require__) {
25084
+
25085
+ //! moment.js locale configuration
25086
+
25087
+ ;(function (global, factory) {
25088
+ true ? factory(__webpack_require__(0)) :
25089
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
25090
+ factory(global.moment)
25091
+ }(this, (function (moment) { 'use strict';
25092
+
25093
+
25094
+ var symbolMap = {
25095
+ '1': '૧',
25096
+ '2': '૨',
25097
+ '3': '૩',
25098
+ '4': '૪',
25099
+ '5': '૫',
25100
+ '6': '૬',
25101
+ '7': '૭',
25102
+ '8': '૮',
25103
+ '9': '૯',
25104
+ '0': '૦'
25105
+ },
25106
+ numberMap = {
25107
+ '૧': '1',
25108
+ '૨': '2',
25109
+ '૩': '3',
25110
+ '૪': '4',
25111
+ '૫': '5',
25112
+ '૬': '6',
25113
+ '૭': '7',
25114
+ '૮': '8',
25115
+ '૯': '9',
25116
+ '૦': '0'
25117
+ };
25118
+
25119
+ var gu = moment.defineLocale('gu', {
25120
+ months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),
25121
+ monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),
25122
+ monthsParseExact: true,
25123
+ weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),
25124
+ weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
25125
+ weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
25126
+ longDateFormat: {
25127
+ LT: 'A h:mm વાગ્યે',
25128
+ LTS: 'A h:mm:ss વાગ્યે',
25129
+ L: 'DD/MM/YYYY',
25130
+ LL: 'D MMMM YYYY',
25131
+ LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
25132
+ LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'
25133
+ },
25134
+ calendar: {
25135
+ sameDay: '[આજ] LT',
25136
+ nextDay: '[કાલે] LT',
25137
+ nextWeek: 'dddd, LT',
25138
+ lastDay: '[ગઇકાલે] LT',
25139
+ lastWeek: '[પાછલા] dddd, LT',
25140
+ sameElse: 'L'
25141
+ },
25142
+ relativeTime: {
25143
+ future: '%s મા',
25144
+ past: '%s પેહલા',
25145
+ s: 'અમુક પળો',
25146
+ ss: '%d સેકંડ',
25147
+ m: 'એક મિનિટ',
25148
+ mm: '%d મિનિટ',
25149
+ h: 'એક કલાક',
25150
+ hh: '%d કલાક',
25151
+ d: 'એક દિવસ',
25152
+ dd: '%d દિવસ',
25153
+ M: 'એક મહિનો',
25154
+ MM: '%d મહિનો',
25155
+ y: 'એક વર્ષ',
25156
+ yy: '%d વર્ષ'
25157
+ },
25158
+ preparse: function (string) {
25159
+ return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
25160
+ return numberMap[match];
25161
+ });
25162
+ },
25163
+ postformat: function (string) {
25164
+ return string.replace(/\d/g, function (match) {
25165
+ return symbolMap[match];
25166
+ });
25167
+ },
25168
+ // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
25169
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
25170
+ meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
25171
+ meridiemHour: function (hour, meridiem) {
25172
+ if (hour === 12) {
25173
+ hour = 0;
25174
+ }
25175
+ if (meridiem === 'રાત') {
25176
+ return hour < 4 ? hour : hour + 12;
25177
+ } else if (meridiem === 'સવાર') {
25178
+ return hour;
25179
+ } else if (meridiem === 'બપોર') {
25180
+ return hour >= 10 ? hour : hour + 12;
25181
+ } else if (meridiem === 'સાંજ') {
25182
+ return hour + 12;
25183
+ }
25184
+ },
25185
+ meridiem: function (hour, minute, isLower) {
25186
+ if (hour < 4) {
25187
+ return 'રાત';
25188
+ } else if (hour < 10) {
25189
+ return 'સવાર';
25190
+ } else if (hour < 17) {
25191
+ return 'બપોર';
25192
+ } else if (hour < 20) {
25193
+ return 'સાંજ';
25194
+ } else {
25195
+ return 'રાત';
25196
+ }
25197
+ },
25198
+ week: {
25199
+ dow: 0, // Sunday is the first day of the week.
25200
+ doy: 6 // The week that contains Jan 1st is the first week of the year.
25201
+ }
25202
+ });
25203
+
25204
+ return gu;
25205
+
25206
+ })));
25207
+
25208
+
25209
+ /***/ }),
25210
+ /* 128 */
25211
+ /***/ (function(module, exports, __webpack_require__) {
25212
+
25213
+ //! moment.js locale configuration
25214
+
25215
+ ;(function (global, factory) {
25216
+ true ? factory(__webpack_require__(0)) :
25217
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
25218
+ factory(global.moment)
25219
+ }(this, (function (moment) { 'use strict';
25220
+
25221
+
25222
+ var he = moment.defineLocale('he', {
25223
+ months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
25224
+ monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
25225
+ weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
25226
+ weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
25227
+ weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
25228
+ longDateFormat : {
25229
+ LT : 'HH:mm',
25230
+ LTS : 'HH:mm:ss',
25231
+ L : 'DD/MM/YYYY',
25232
+ LL : 'D [ב]MMMM YYYY',
25233
+ LLL : 'D [ב]MMMM YYYY HH:mm',
25234
+ LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
25235
+ l : 'D/M/YYYY',
25236
+ ll : 'D MMM YYYY',
25237
+ lll : 'D MMM YYYY HH:mm',
25238
+ llll : 'ddd, D MMM YYYY HH:mm'
25239
+ },
25240
+ calendar : {
25241
+ sameDay : '[היום ב־]LT',
25242
+ nextDay : '[מחר ב־]LT',
25243
+ nextWeek : 'dddd [בשעה] LT',
25244
+ lastDay : '[אתמול ב־]LT',
25245
+ lastWeek : '[ביום] dddd [האחרון בשעה] LT',
25246
+ sameElse : 'L'
25247
+ },
25248
+ relativeTime : {
25249
+ future : 'בעוד %s',
25250
+ past : 'לפני %s',
25251
+ s : 'מספר שניות',
25252
+ ss : '%d שניות',
25253
+ m : 'דקה',
25254
+ mm : '%d דקות',
25255
+ h : 'שעה',
25256
+ hh : function (number) {
25257
+ if (number === 2) {
25258
+ return 'שעתיים';
25259
+ }
25260
+ return number + ' שעות';
25261
+ },
25262
+ d : 'יום',
25263
+ dd : function (number) {
25264
+ if (number === 2) {
25265
+ return 'יומיים';
25266
+ }
25267
+ return number + ' ימים';
25268
+ },
25269
+ M : 'חודש',
25270
+ MM : function (number) {
25271
+ if (number === 2) {
25272
+ return 'חודשיים';
25273
+ }
25274
+ return number + ' חודשים';
25275
+ },
25276
+ y : 'שנה',
25277
+ yy : function (number) {
25278
+ if (number === 2) {
25279
+ return 'שנתיים';
25280
+ } else if (number % 10 === 0 && number !== 10) {
25281
+ return number + ' שנה';
25282
+ }
25283
+ return number + ' שנים';
25284
+ }
25285
+ },
25286
+ meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
25287
+ isPM : function (input) {
25288
+ return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
25289
+ },
25290
+ meridiem : function (hour, minute, isLower) {
25291
+ if (hour < 5) {
25292
+ return 'לפנות בוקר';
25293
+ } else if (hour < 10) {
25294
+ return 'בבוקר';
25295
+ } else if (hour < 12) {
25296
+ return isLower ? 'לפנה"צ' : 'לפני הצהריים';
25297
+ } else if (hour < 18) {
25298
+ return isLower ? 'אחה"צ' : 'אחרי הצהריים';
25299
+ } else {
25300
+ return 'בערב';
25301
+ }
25302
+ }
25303
+ });
25304
+
25305
+ return he;
25306
+
25307
+ })));
25308
+
25309
+
25310
+ /***/ }),
25311
+ /* 129 */
25312
+ /***/ (function(module, exports, __webpack_require__) {
25313
+
25314
+ //! moment.js locale configuration
25315
+
25316
+ ;(function (global, factory) {
25317
+ true ? factory(__webpack_require__(0)) :
25318
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
25319
+ factory(global.moment)
25320
+ }(this, (function (moment) { 'use strict';
25321
+
25322
+
25323
+ var symbolMap = {
25324
+ '1': '१',
25325
+ '2': '२',
25326
+ '3': '३',
25327
+ '4': '४',
25328
+ '5': '५',
25329
+ '6': '६',
25330
+ '7': '७',
25331
+ '8': '८',
25332
+ '9': '९',
25333
+ '0': '०'
25334
+ },
25335
+ numberMap = {
25336
+ '१': '1',
25337
+ '२': '2',
25338
+ '३': '3',
25339
+ '४': '4',
25340
+ '५': '5',
25341
+ '६': '6',
25342
+ '७': '7',
25343
+ '८': '8',
25344
+ '९': '9',
25345
+ '०': '0'
25346
+ };
25347
+
25348
+ var hi = moment.defineLocale('hi', {
25349
+ months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
25350
+ monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
25351
+ monthsParseExact: true,
25352
+ weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
25353
+ weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
25354
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
25355
+ longDateFormat : {
25356
+ LT : 'A h:mm बजे',
25357
+ LTS : 'A h:mm:ss बजे',
25358
+ L : 'DD/MM/YYYY',
25359
+ LL : 'D MMMM YYYY',
25360
+ LLL : 'D MMMM YYYY, A h:mm बजे',
25361
+ LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
25362
+ },
25363
+ calendar : {
25364
+ sameDay : '[आज] LT',
25365
+ nextDay : '[कल] LT',
25366
+ nextWeek : 'dddd, LT',
25367
+ lastDay : '[कल] LT',
25368
+ lastWeek : '[पिछले] dddd, LT',
25369
+ sameElse : 'L'
25370
+ },
25371
+ relativeTime : {
25372
+ future : '%s में',
25373
+ past : '%s पहले',
25374
+ s : 'कुछ ही क्षण',
25375
+ ss : '%d सेकंड',
25376
+ m : 'एक मिनट',
25377
+ mm : '%d मिनट',
25378
+ h : 'एक घंटा',
25379
+ hh : '%d घंटे',
25380
+ d : 'एक दिन',
25381
+ dd : '%d दिन',
25382
+ M : 'एक महीने',
25383
+ MM : '%d महीने',
25384
+ y : 'एक वर्ष',
25385
+ yy : '%d वर्ष'
25386
+ },
25387
+ preparse: function (string) {
25388
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
25389
+ return numberMap[match];
25390
+ });
25391
+ },
25392
+ postformat: function (string) {
25393
+ return string.replace(/\d/g, function (match) {
25394
+ return symbolMap[match];
25395
+ });
25396
+ },
25397
+ // Hindi notation for meridiems are quite fuzzy in practice. While there exists
25398
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
25399
+ meridiemParse: /रात|सुबह|दोपहर|शाम/,
25400
+ meridiemHour : function (hour, meridiem) {
25401
+ if (hour === 12) {
25402
+ hour = 0;
25403
+ }
25404
+ if (meridiem === 'रात') {
25405
+ return hour < 4 ? hour : hour + 12;
25406
+ } else if (meridiem === 'सुबह') {
25407
+ return hour;
25408
+ } else if (meridiem === 'दोपहर') {
25409
+ return hour >= 10 ? hour : hour + 12;
25410
+ } else if (meridiem === 'शाम') {
25411
+ return hour + 12;
25412
+ }
25413
+ },
25414
+ meridiem : function (hour, minute, isLower) {
25415
+ if (hour < 4) {
25416
+ return 'रात';
25417
+ } else if (hour < 10) {
25418
+ return 'सुबह';
25419
+ } else if (hour < 17) {
25420
+ return 'दोपहर';
25421
+ } else if (hour < 20) {
25422
+ return 'शाम';
25423
+ } else {
25424
+ return 'रात';
25425
+ }
25426
+ },
25427
+ week : {
25428
+ dow : 0, // Sunday is the first day of the week.
25429
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
25430
+ }
25431
+ });
25432
+
25433
+ return hi;
25434
+
25435
+ })));
25436
+
25437
+
25438
+ /***/ }),
25439
+ /* 130 */
25440
+ /***/ (function(module, exports, __webpack_require__) {
25441
+
25442
+ //! moment.js locale configuration
25443
+
25444
+ ;(function (global, factory) {
25445
+ true ? factory(__webpack_require__(0)) :
25446
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
25447
+ factory(global.moment)
25448
+ }(this, (function (moment) { 'use strict';
25449
+
25450
+
25451
+ function translate(number, withoutSuffix, key) {
25452
+ var result = number + ' ';
25453
+ switch (key) {
25454
+ case 'ss':
25455
+ if (number === 1) {
25456
+ result += 'sekunda';
25457
+ } else if (number === 2 || number === 3 || number === 4) {
25458
+ result += 'sekunde';
25459
+ } else {
25460
+ result += 'sekundi';
25461
+ }
25462
+ return result;
25463
+ case 'm':
25464
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
25465
+ case 'mm':
25466
+ if (number === 1) {
25467
+ result += 'minuta';
25468
+ } else if (number === 2 || number === 3 || number === 4) {
25469
+ result += 'minute';
25470
+ } else {
25471
+ result += 'minuta';
25472
+ }
25473
+ return result;
25474
+ case 'h':
25475
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
25476
+ case 'hh':
25477
+ if (number === 1) {
25478
+ result += 'sat';
25479
+ } else if (number === 2 || number === 3 || number === 4) {
25480
+ result += 'sata';
25481
+ } else {
25482
+ result += 'sati';
25483
+ }
25484
+ return result;
25485
+ case 'dd':
25486
+ if (number === 1) {
25487
+ result += 'dan';
25488
+ } else {
25489
+ result += 'dana';
25490
+ }
25491
+ return result;
25492
+ case 'MM':
25493
+ if (number === 1) {
25494
+ result += 'mjesec';
25495
+ } else if (number === 2 || number === 3 || number === 4) {
25496
+ result += 'mjeseca';
25497
+ } else {
25498
+ result += 'mjeseci';
25499
+ }
25500
+ return result;
25501
+ case 'yy':
25502
+ if (number === 1) {
25503
+ result += 'godina';
25504
+ } else if (number === 2 || number === 3 || number === 4) {
25505
+ result += 'godine';
25506
+ } else {
25507
+ result += 'godina';
25508
+ }
25509
+ return result;
25510
+ }
25511
+ }
25512
+
25513
+ var hr = moment.defineLocale('hr', {
25514
+ months : {
25515
+ format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
25516
+ standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
25517
+ },
25518
+ monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
25519
+ monthsParseExact: true,
25520
+ weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
25521
+ weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
25522
+ weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
25523
+ weekdaysParseExact : true,
25524
+ longDateFormat : {
25525
+ LT : 'H:mm',
25526
+ LTS : 'H:mm:ss',
25527
+ L : 'DD.MM.YYYY',
25528
+ LL : 'D. MMMM YYYY',
25529
+ LLL : 'D. MMMM YYYY H:mm',
25530
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
25531
+ },
25532
+ calendar : {
25533
+ sameDay : '[danas u] LT',
25534
+ nextDay : '[sutra u] LT',
25535
+ nextWeek : function () {
25536
+ switch (this.day()) {
25537
+ case 0:
25538
+ return '[u] [nedjelju] [u] LT';
25539
+ case 3:
25540
+ return '[u] [srijedu] [u] LT';
25541
+ case 6:
25542
+ return '[u] [subotu] [u] LT';
25543
+ case 1:
25544
+ case 2:
25545
+ case 4:
25546
+ case 5:
25547
+ return '[u] dddd [u] LT';
25548
+ }
25549
+ },
25550
+ lastDay : '[jučer u] LT',
25551
+ lastWeek : function () {
25552
+ switch (this.day()) {
25553
+ case 0:
25554
+ case 3:
25555
+ return '[prošlu] dddd [u] LT';
25556
+ case 6:
25557
+ return '[prošle] [subote] [u] LT';
25558
+ case 1:
25559
+ case 2:
25560
+ case 4:
25561
+ case 5:
25562
+ return '[prošli] dddd [u] LT';
25563
+ }
25564
+ },
25565
+ sameElse : 'L'
25566
+ },
25567
+ relativeTime : {
25568
+ future : 'za %s',
25569
+ past : 'prije %s',
25570
+ s : 'par sekundi',
25571
+ ss : translate,
25572
+ m : translate,
25573
+ mm : translate,
25574
+ h : translate,
25575
+ hh : translate,
25576
+ d : 'dan',
25577
+ dd : translate,
25578
+ M : 'mjesec',
25579
+ MM : translate,
25580
+ y : 'godinu',
25581
+ yy : translate
25582
+ },
25583
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
25584
+ ordinal : '%d.',
25585
+ week : {
25586
+ dow : 1, // Monday is the first day of the week.
25587
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
25588
+ }
25589
+ });
25590
+
25591
+ return hr;
25592
+
25593
+ })));
25594
+
25595
+
25596
+ /***/ }),
25597
+ /* 131 */
25598
+ /***/ (function(module, exports, __webpack_require__) {
25599
+
25600
+ //! moment.js locale configuration
25601
+
25602
+ ;(function (global, factory) {
25603
+ true ? factory(__webpack_require__(0)) :
25604
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
25605
+ factory(global.moment)
25606
+ }(this, (function (moment) { 'use strict';
25607
+
25608
+
25609
+ var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
25610
+ function translate(number, withoutSuffix, key, isFuture) {
25611
+ var num = number;
25612
+ switch (key) {
25613
+ case 's':
25614
+ return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
25615
+ case 'ss':
25616
+ return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';
25617
+ case 'm':
25618
+ return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
25619
+ case 'mm':
25620
+ return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
25621
+ case 'h':
25622
+ return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
25623
+ case 'hh':
25624
+ return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
25625
+ case 'd':
25626
+ return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
25627
+ case 'dd':
25628
+ return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
25629
+ case 'M':
25630
+ return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
25631
+ case 'MM':
25632
+ return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
25633
+ case 'y':
25634
+ return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
25635
+ case 'yy':
25636
+ return num + (isFuture || withoutSuffix ? ' év' : ' éve');
25637
+ }
25638
+ return '';
25639
+ }
25640
+ function week(isFuture) {
25641
+ return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
25642
+ }
25643
+
25644
+ var hu = moment.defineLocale('hu', {
25645
+ months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
25646
+ monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
25647
+ weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
25648
+ weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
25649
+ weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
25650
+ longDateFormat : {
25651
+ LT : 'H:mm',
25652
+ LTS : 'H:mm:ss',
25653
+ L : 'YYYY.MM.DD.',
25654
+ LL : 'YYYY. MMMM D.',
25655
+ LLL : 'YYYY. MMMM D. H:mm',
25656
+ LLLL : 'YYYY. MMMM D., dddd H:mm'
25657
+ },
25658
+ meridiemParse: /de|du/i,
25659
+ isPM: function (input) {
25660
+ return input.charAt(1).toLowerCase() === 'u';
25661
+ },
25662
+ meridiem : function (hours, minutes, isLower) {
25663
+ if (hours < 12) {
25664
+ return isLower === true ? 'de' : 'DE';
25665
+ } else {
25666
+ return isLower === true ? 'du' : 'DU';
25667
+ }
25668
+ },
25669
+ calendar : {
25670
+ sameDay : '[ma] LT[-kor]',
25671
+ nextDay : '[holnap] LT[-kor]',
25672
+ nextWeek : function () {
25673
+ return week.call(this, true);
25674
+ },
25675
+ lastDay : '[tegnap] LT[-kor]',
25676
+ lastWeek : function () {
25677
+ return week.call(this, false);
25678
+ },
25679
+ sameElse : 'L'
25680
+ },
25681
+ relativeTime : {
25682
+ future : '%s múlva',
25683
+ past : '%s',
25684
+ s : translate,
25685
+ ss : translate,
25686
+ m : translate,
25687
+ mm : translate,
25688
+ h : translate,
25689
+ hh : translate,
25690
+ d : translate,
25691
+ dd : translate,
25692
+ M : translate,
25693
+ MM : translate,
25694
+ y : translate,
25695
+ yy : translate
25696
+ },
25697
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
25698
+ ordinal : '%d.',
25699
+ week : {
25700
+ dow : 1, // Monday is the first day of the week.
25701
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
25702
+ }
25703
+ });
25704
+
25705
+ return hu;
25706
+
25707
+ })));
25708
+
25709
+
25710
+ /***/ }),
25711
+ /* 132 */
25712
+ /***/ (function(module, exports, __webpack_require__) {
25713
+
25714
+ //! moment.js locale configuration
25715
+
25716
+ ;(function (global, factory) {
25717
+ true ? factory(__webpack_require__(0)) :
25718
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
25719
+ factory(global.moment)
25720
+ }(this, (function (moment) { 'use strict';
25721
+
25722
+
25723
+ var hyAm = moment.defineLocale('hy-am', {
25724
+ months : {
25725
+ format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
25726
+ standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
25727
+ },
25728
+ monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
25729
+ weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
25730
+ weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
25731
+ weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
25732
+ longDateFormat : {
25733
+ LT : 'HH:mm',
25734
+ LTS : 'HH:mm:ss',
25735
+ L : 'DD.MM.YYYY',
25736
+ LL : 'D MMMM YYYY թ.',
25737
+ LLL : 'D MMMM YYYY թ., HH:mm',
25738
+ LLLL : 'dddd, D MMMM YYYY թ., HH:mm'
25739
+ },
25740
+ calendar : {
25741
+ sameDay: '[այսօր] LT',
25742
+ nextDay: '[վաղը] LT',
25743
+ lastDay: '[երեկ] LT',
25744
+ nextWeek: function () {
25745
+ return 'dddd [օրը ժամը] LT';
25746
+ },
25747
+ lastWeek: function () {
25748
+ return '[անցած] dddd [օրը ժամը] LT';
25749
+ },
25750
+ sameElse: 'L'
25751
+ },
25752
+ relativeTime : {
25753
+ future : '%s հետո',
25754
+ past : '%s առաջ',
25755
+ s : 'մի քանի վայրկյան',
25756
+ ss : '%d վայրկյան',
25757
+ m : 'րոպե',
25758
+ mm : '%d րոպե',
25759
+ h : 'ժամ',
25760
+ hh : '%d ժամ',
25761
+ d : 'օր',
25762
+ dd : '%d օր',
25763
+ M : 'ամիս',
25764
+ MM : '%d ամիս',
25765
+ y : 'տարի',
25766
+ yy : '%d տարի'
25767
+ },
25768
+ meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
25769
+ isPM: function (input) {
25770
+ return /^(ցերեկվա|երեկոյան)$/.test(input);
25771
+ },
25772
+ meridiem : function (hour) {
25773
+ if (hour < 4) {
25774
+ return 'գիշերվա';
25775
+ } else if (hour < 12) {
25776
+ return 'առավոտվա';
25777
+ } else if (hour < 17) {
25778
+ return 'ցերեկվա';
25779
+ } else {
25780
+ return 'երեկոյան';
25781
+ }
25782
+ },
25783
+ dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
25784
+ ordinal: function (number, period) {
25785
+ switch (period) {
25786
+ case 'DDD':
25787
+ case 'w':
25788
+ case 'W':
25789
+ case 'DDDo':
25790
+ if (number === 1) {
25791
+ return number + '-ին';
25792
+ }
25793
+ return number + '-րդ';
25794
+ default:
25795
+ return number;
25796
+ }
25797
+ },
25798
+ week : {
25799
+ dow : 1, // Monday is the first day of the week.
25800
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
25801
+ }
25802
+ });
25803
+
25804
+ return hyAm;
25805
+
25806
+ })));
25807
+
25808
+
25809
+ /***/ }),
25810
+ /* 133 */
25811
+ /***/ (function(module, exports, __webpack_require__) {
25812
+
25813
+ //! moment.js locale configuration
25814
+
25815
+ ;(function (global, factory) {
25816
+ true ? factory(__webpack_require__(0)) :
25817
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
25818
+ factory(global.moment)
25819
+ }(this, (function (moment) { 'use strict';
25820
+
25821
+
25822
+ var id = moment.defineLocale('id', {
25823
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
25824
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
25825
+ weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
25826
+ weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
25827
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
25828
+ longDateFormat : {
25829
+ LT : 'HH.mm',
25830
+ LTS : 'HH.mm.ss',
25831
+ L : 'DD/MM/YYYY',
25832
+ LL : 'D MMMM YYYY',
25833
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
25834
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
25835
+ },
25836
+ meridiemParse: /pagi|siang|sore|malam/,
25837
+ meridiemHour : function (hour, meridiem) {
25838
+ if (hour === 12) {
25839
+ hour = 0;
25840
+ }
25841
+ if (meridiem === 'pagi') {
25842
+ return hour;
25843
+ } else if (meridiem === 'siang') {
25844
+ return hour >= 11 ? hour : hour + 12;
25845
+ } else if (meridiem === 'sore' || meridiem === 'malam') {
25846
+ return hour + 12;
25847
+ }
25848
+ },
25849
+ meridiem : function (hours, minutes, isLower) {
25850
+ if (hours < 11) {
25851
+ return 'pagi';
25852
+ } else if (hours < 15) {
25853
+ return 'siang';
25854
+ } else if (hours < 19) {
25855
+ return 'sore';
25856
+ } else {
25857
+ return 'malam';
25858
+ }
25859
+ },
25860
+ calendar : {
25861
+ sameDay : '[Hari ini pukul] LT',
25862
+ nextDay : '[Besok pukul] LT',
25863
+ nextWeek : 'dddd [pukul] LT',
25864
+ lastDay : '[Kemarin pukul] LT',
25865
+ lastWeek : 'dddd [lalu pukul] LT',
25866
+ sameElse : 'L'
25867
+ },
25868
+ relativeTime : {
25869
+ future : 'dalam %s',
25870
+ past : '%s yang lalu',
25871
+ s : 'beberapa detik',
25872
+ ss : '%d detik',
25873
+ m : 'semenit',
25874
+ mm : '%d menit',
25875
+ h : 'sejam',
25876
+ hh : '%d jam',
25877
+ d : 'sehari',
25878
+ dd : '%d hari',
25879
+ M : 'sebulan',
25880
+ MM : '%d bulan',
25881
+ y : 'setahun',
25882
+ yy : '%d tahun'
25883
+ },
25884
+ week : {
25885
+ dow : 1, // Monday is the first day of the week.
25886
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
25887
+ }
25888
+ });
25889
+
25890
+ return id;
25891
+
25892
+ })));
25893
+
25894
+
25895
+ /***/ }),
25896
+ /* 134 */
25897
+ /***/ (function(module, exports, __webpack_require__) {
25898
+
25899
+ //! moment.js locale configuration
25900
+
25901
+ ;(function (global, factory) {
25902
+ true ? factory(__webpack_require__(0)) :
25903
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
25904
+ factory(global.moment)
25905
+ }(this, (function (moment) { 'use strict';
25906
+
25907
+
25908
+ function plural(n) {
25909
+ if (n % 100 === 11) {
25910
+ return true;
25911
+ } else if (n % 10 === 1) {
25912
+ return false;
25913
+ }
25914
+ return true;
25915
+ }
25916
+ function translate(number, withoutSuffix, key, isFuture) {
25917
+ var result = number + ' ';
25918
+ switch (key) {
25919
+ case 's':
25920
+ return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
25921
+ case 'ss':
25922
+ if (plural(number)) {
25923
+ return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');
25924
+ }
25925
+ return result + 'sekúnda';
25926
+ case 'm':
25927
+ return withoutSuffix ? 'mínúta' : 'mínútu';
25928
+ case 'mm':
25929
+ if (plural(number)) {
25930
+ return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
25931
+ } else if (withoutSuffix) {
25932
+ return result + 'mínúta';
25933
+ }
25934
+ return result + 'mínútu';
25935
+ case 'hh':
25936
+ if (plural(number)) {
25937
+ return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
25938
+ }
25939
+ return result + 'klukkustund';
25940
+ case 'd':
25941
+ if (withoutSuffix) {
25942
+ return 'dagur';
25943
+ }
25944
+ return isFuture ? 'dag' : 'degi';
25945
+ case 'dd':
25946
+ if (plural(number)) {
25947
+ if (withoutSuffix) {
25948
+ return result + 'dagar';
25949
+ }
25950
+ return result + (isFuture ? 'daga' : 'dögum');
25951
+ } else if (withoutSuffix) {
25952
+ return result + 'dagur';
25953
+ }
25954
+ return result + (isFuture ? 'dag' : 'degi');
25955
+ case 'M':
25956
+ if (withoutSuffix) {
25957
+ return 'mánuður';
25958
+ }
25959
+ return isFuture ? 'mánuð' : 'mánuði';
25960
+ case 'MM':
25961
+ if (plural(number)) {
25962
+ if (withoutSuffix) {
25963
+ return result + 'mánuðir';
25964
+ }
25965
+ return result + (isFuture ? 'mánuði' : 'mánuðum');
25966
+ } else if (withoutSuffix) {
25967
+ return result + 'mánuður';
25968
+ }
25969
+ return result + (isFuture ? 'mánuð' : 'mánuði');
25970
+ case 'y':
25971
+ return withoutSuffix || isFuture ? 'ár' : 'ári';
25972
+ case 'yy':
25973
+ if (plural(number)) {
25974
+ return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
25975
+ }
25976
+ return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
25977
+ }
25978
+ }
25979
+
25980
+ var is = moment.defineLocale('is', {
25981
+ months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
25982
+ monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
25983
+ weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
25984
+ weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
25985
+ weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
25986
+ longDateFormat : {
25987
+ LT : 'H:mm',
25988
+ LTS : 'H:mm:ss',
25989
+ L : 'DD.MM.YYYY',
25990
+ LL : 'D. MMMM YYYY',
25991
+ LLL : 'D. MMMM YYYY [kl.] H:mm',
25992
+ LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
25993
+ },
25994
+ calendar : {
25995
+ sameDay : '[í dag kl.] LT',
25996
+ nextDay : '[á morgun kl.] LT',
25997
+ nextWeek : 'dddd [kl.] LT',
25998
+ lastDay : '[í gær kl.] LT',
25999
+ lastWeek : '[síðasta] dddd [kl.] LT',
26000
+ sameElse : 'L'
26001
+ },
26002
+ relativeTime : {
26003
+ future : 'eftir %s',
26004
+ past : 'fyrir %s síðan',
26005
+ s : translate,
26006
+ ss : translate,
26007
+ m : translate,
26008
+ mm : translate,
26009
+ h : 'klukkustund',
26010
+ hh : translate,
26011
+ d : translate,
26012
+ dd : translate,
26013
+ M : translate,
26014
+ MM : translate,
26015
+ y : translate,
26016
+ yy : translate
26017
+ },
26018
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
26019
+ ordinal : '%d.',
26020
+ week : {
26021
+ dow : 1, // Monday is the first day of the week.
26022
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
26023
+ }
26024
+ });
26025
+
26026
+ return is;
26027
+
26028
+ })));
26029
+
26030
+
26031
+ /***/ }),
26032
+ /* 135 */
26033
+ /***/ (function(module, exports, __webpack_require__) {
26034
+
26035
+ //! moment.js locale configuration
26036
+
26037
+ ;(function (global, factory) {
26038
+ true ? factory(__webpack_require__(0)) :
26039
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26040
+ factory(global.moment)
26041
+ }(this, (function (moment) { 'use strict';
26042
+
26043
+
26044
+ var it = moment.defineLocale('it', {
26045
+ months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
26046
+ monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
26047
+ weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),
26048
+ weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
26049
+ weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),
26050
+ longDateFormat : {
26051
+ LT : 'HH:mm',
26052
+ LTS : 'HH:mm:ss',
26053
+ L : 'DD/MM/YYYY',
26054
+ LL : 'D MMMM YYYY',
26055
+ LLL : 'D MMMM YYYY HH:mm',
26056
+ LLLL : 'dddd D MMMM YYYY HH:mm'
26057
+ },
26058
+ calendar : {
26059
+ sameDay: '[Oggi alle] LT',
26060
+ nextDay: '[Domani alle] LT',
26061
+ nextWeek: 'dddd [alle] LT',
26062
+ lastDay: '[Ieri alle] LT',
26063
+ lastWeek: function () {
26064
+ switch (this.day()) {
26065
+ case 0:
26066
+ return '[la scorsa] dddd [alle] LT';
26067
+ default:
26068
+ return '[lo scorso] dddd [alle] LT';
26069
+ }
26070
+ },
26071
+ sameElse: 'L'
26072
+ },
26073
+ relativeTime : {
26074
+ future : function (s) {
26075
+ return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
26076
+ },
26077
+ past : '%s fa',
26078
+ s : 'alcuni secondi',
26079
+ ss : '%d secondi',
26080
+ m : 'un minuto',
26081
+ mm : '%d minuti',
26082
+ h : 'un\'ora',
26083
+ hh : '%d ore',
26084
+ d : 'un giorno',
26085
+ dd : '%d giorni',
26086
+ M : 'un mese',
26087
+ MM : '%d mesi',
26088
+ y : 'un anno',
26089
+ yy : '%d anni'
26090
+ },
26091
+ dayOfMonthOrdinalParse : /\d{1,2}º/,
26092
+ ordinal: '%dº',
26093
+ week : {
26094
+ dow : 1, // Monday is the first day of the week.
26095
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
26096
+ }
26097
+ });
26098
+
26099
+ return it;
26100
+
26101
+ })));
26102
+
26103
+
26104
+ /***/ }),
26105
+ /* 136 */
26106
+ /***/ (function(module, exports, __webpack_require__) {
26107
+
26108
+ //! moment.js locale configuration
26109
+
26110
+ ;(function (global, factory) {
26111
+ true ? factory(__webpack_require__(0)) :
26112
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26113
+ factory(global.moment)
26114
+ }(this, (function (moment) { 'use strict';
26115
+
26116
+
26117
+ var ja = moment.defineLocale('ja', {
26118
+ months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
26119
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
26120
+ weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
26121
+ weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
26122
+ weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
26123
+ longDateFormat : {
26124
+ LT : 'HH:mm',
26125
+ LTS : 'HH:mm:ss',
26126
+ L : 'YYYY/MM/DD',
26127
+ LL : 'YYYY年M月D日',
26128
+ LLL : 'YYYY年M月D日 HH:mm',
26129
+ LLLL : 'YYYY年M月D日 dddd HH:mm',
26130
+ l : 'YYYY/MM/DD',
26131
+ ll : 'YYYY年M月D日',
26132
+ lll : 'YYYY年M月D日 HH:mm',
26133
+ llll : 'YYYY年M月D日(ddd) HH:mm'
26134
+ },
26135
+ meridiemParse: /午前|午後/i,
26136
+ isPM : function (input) {
26137
+ return input === '午後';
26138
+ },
26139
+ meridiem : function (hour, minute, isLower) {
26140
+ if (hour < 12) {
26141
+ return '午前';
26142
+ } else {
26143
+ return '午後';
26144
+ }
26145
+ },
26146
+ calendar : {
26147
+ sameDay : '[今日] LT',
26148
+ nextDay : '[明日] LT',
26149
+ nextWeek : function (now) {
26150
+ if (now.week() < this.week()) {
26151
+ return '[来週]dddd LT';
26152
+ } else {
26153
+ return 'dddd LT';
26154
+ }
26155
+ },
26156
+ lastDay : '[昨日] LT',
26157
+ lastWeek : function (now) {
26158
+ if (this.week() < now.week()) {
26159
+ return '[先週]dddd LT';
26160
+ } else {
26161
+ return 'dddd LT';
26162
+ }
26163
+ },
26164
+ sameElse : 'L'
26165
+ },
26166
+ dayOfMonthOrdinalParse : /\d{1,2}日/,
26167
+ ordinal : function (number, period) {
26168
+ switch (period) {
26169
+ case 'd':
26170
+ case 'D':
26171
+ case 'DDD':
26172
+ return number + '日';
26173
+ default:
26174
+ return number;
26175
+ }
26176
+ },
26177
+ relativeTime : {
26178
+ future : '%s後',
26179
+ past : '%s前',
26180
+ s : '数秒',
26181
+ ss : '%d秒',
26182
+ m : '1分',
26183
+ mm : '%d分',
26184
+ h : '1時間',
26185
+ hh : '%d時間',
26186
+ d : '1日',
26187
+ dd : '%d日',
26188
+ M : '1ヶ月',
26189
+ MM : '%dヶ月',
26190
+ y : '1年',
26191
+ yy : '%d年'
26192
+ }
26193
+ });
26194
+
26195
+ return ja;
26196
+
26197
+ })));
26198
+
26199
+
26200
+ /***/ }),
26201
+ /* 137 */
26202
+ /***/ (function(module, exports, __webpack_require__) {
26203
+
26204
+ //! moment.js locale configuration
26205
+
26206
+ ;(function (global, factory) {
26207
+ true ? factory(__webpack_require__(0)) :
26208
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26209
+ factory(global.moment)
26210
+ }(this, (function (moment) { 'use strict';
26211
+
26212
+
26213
+ var jv = moment.defineLocale('jv', {
26214
+ months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
26215
+ monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
26216
+ weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
26217
+ weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
26218
+ weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
26219
+ longDateFormat : {
26220
+ LT : 'HH.mm',
26221
+ LTS : 'HH.mm.ss',
26222
+ L : 'DD/MM/YYYY',
26223
+ LL : 'D MMMM YYYY',
26224
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
26225
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
26226
+ },
26227
+ meridiemParse: /enjing|siyang|sonten|ndalu/,
26228
+ meridiemHour : function (hour, meridiem) {
26229
+ if (hour === 12) {
26230
+ hour = 0;
26231
+ }
26232
+ if (meridiem === 'enjing') {
26233
+ return hour;
26234
+ } else if (meridiem === 'siyang') {
26235
+ return hour >= 11 ? hour : hour + 12;
26236
+ } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
26237
+ return hour + 12;
26238
+ }
26239
+ },
26240
+ meridiem : function (hours, minutes, isLower) {
26241
+ if (hours < 11) {
26242
+ return 'enjing';
26243
+ } else if (hours < 15) {
26244
+ return 'siyang';
26245
+ } else if (hours < 19) {
26246
+ return 'sonten';
26247
+ } else {
26248
+ return 'ndalu';
26249
+ }
26250
+ },
26251
+ calendar : {
26252
+ sameDay : '[Dinten puniko pukul] LT',
26253
+ nextDay : '[Mbenjang pukul] LT',
26254
+ nextWeek : 'dddd [pukul] LT',
26255
+ lastDay : '[Kala wingi pukul] LT',
26256
+ lastWeek : 'dddd [kepengker pukul] LT',
26257
+ sameElse : 'L'
26258
+ },
26259
+ relativeTime : {
26260
+ future : 'wonten ing %s',
26261
+ past : '%s ingkang kepengker',
26262
+ s : 'sawetawis detik',
26263
+ ss : '%d detik',
26264
+ m : 'setunggal menit',
26265
+ mm : '%d menit',
26266
+ h : 'setunggal jam',
26267
+ hh : '%d jam',
26268
+ d : 'sedinten',
26269
+ dd : '%d dinten',
26270
+ M : 'sewulan',
26271
+ MM : '%d wulan',
26272
+ y : 'setaun',
26273
+ yy : '%d taun'
26274
+ },
26275
+ week : {
26276
+ dow : 1, // Monday is the first day of the week.
26277
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
26278
+ }
26279
+ });
26280
+
26281
+ return jv;
26282
+
26283
+ })));
26284
+
26285
+
26286
+ /***/ }),
26287
+ /* 138 */
26288
+ /***/ (function(module, exports, __webpack_require__) {
26289
+
26290
+ //! moment.js locale configuration
26291
+
26292
+ ;(function (global, factory) {
26293
+ true ? factory(__webpack_require__(0)) :
26294
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26295
+ factory(global.moment)
26296
+ }(this, (function (moment) { 'use strict';
26297
+
26298
+
26299
+ var ka = moment.defineLocale('ka', {
26300
+ months : {
26301
+ standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
26302
+ format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
26303
+ },
26304
+ monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
26305
+ weekdays : {
26306
+ standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
26307
+ format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
26308
+ isFormat: /(წინა|შემდეგ)/
26309
+ },
26310
+ weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
26311
+ weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
26312
+ longDateFormat : {
26313
+ LT : 'h:mm A',
26314
+ LTS : 'h:mm:ss A',
26315
+ L : 'DD/MM/YYYY',
26316
+ LL : 'D MMMM YYYY',
26317
+ LLL : 'D MMMM YYYY h:mm A',
26318
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
26319
+ },
26320
+ calendar : {
26321
+ sameDay : '[დღეს] LT[-ზე]',
26322
+ nextDay : '[ხვალ] LT[-ზე]',
26323
+ lastDay : '[გუშინ] LT[-ზე]',
26324
+ nextWeek : '[შემდეგ] dddd LT[-ზე]',
26325
+ lastWeek : '[წინა] dddd LT-ზე',
26326
+ sameElse : 'L'
26327
+ },
26328
+ relativeTime : {
26329
+ future : function (s) {
26330
+ return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
26331
+ s.replace(/ი$/, 'ში') :
26332
+ s + 'ში';
26333
+ },
26334
+ past : function (s) {
26335
+ if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
26336
+ return s.replace(/(ი|ე)$/, 'ის წინ');
26337
+ }
26338
+ if ((/წელი/).test(s)) {
26339
+ return s.replace(/წელი$/, 'წლის წინ');
26340
+ }
26341
+ },
26342
+ s : 'რამდენიმე წამი',
26343
+ ss : '%d წამი',
26344
+ m : 'წუთი',
26345
+ mm : '%d წუთი',
26346
+ h : 'საათი',
26347
+ hh : '%d საათი',
26348
+ d : 'დღე',
26349
+ dd : '%d დღე',
26350
+ M : 'თვე',
26351
+ MM : '%d თვე',
26352
+ y : 'წელი',
26353
+ yy : '%d წელი'
26354
+ },
26355
+ dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
26356
+ ordinal : function (number) {
26357
+ if (number === 0) {
26358
+ return number;
26359
+ }
26360
+ if (number === 1) {
26361
+ return number + '-ლი';
26362
+ }
26363
+ if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
26364
+ return 'მე-' + number;
26365
+ }
26366
+ return number + '-ე';
26367
+ },
26368
+ week : {
26369
+ dow : 1,
26370
+ doy : 7
26371
+ }
26372
+ });
26373
+
26374
+ return ka;
26375
+
26376
+ })));
26377
+
26378
+
26379
+ /***/ }),
26380
+ /* 139 */
26381
+ /***/ (function(module, exports, __webpack_require__) {
26382
+
26383
+ //! moment.js locale configuration
26384
+
26385
+ ;(function (global, factory) {
26386
+ true ? factory(__webpack_require__(0)) :
26387
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26388
+ factory(global.moment)
26389
+ }(this, (function (moment) { 'use strict';
26390
+
26391
+
26392
+ var suffixes = {
26393
+ 0: '-ші',
26394
+ 1: '-ші',
26395
+ 2: '-ші',
26396
+ 3: '-ші',
26397
+ 4: '-ші',
26398
+ 5: '-ші',
26399
+ 6: '-шы',
26400
+ 7: '-ші',
26401
+ 8: '-ші',
26402
+ 9: '-шы',
26403
+ 10: '-шы',
26404
+ 20: '-шы',
26405
+ 30: '-шы',
26406
+ 40: '-шы',
26407
+ 50: '-ші',
26408
+ 60: '-шы',
26409
+ 70: '-ші',
26410
+ 80: '-ші',
26411
+ 90: '-шы',
26412
+ 100: '-ші'
26413
+ };
26414
+
26415
+ var kk = moment.defineLocale('kk', {
26416
+ months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),
26417
+ monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
26418
+ weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),
26419
+ weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
26420
+ weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
26421
+ longDateFormat : {
26422
+ LT : 'HH:mm',
26423
+ LTS : 'HH:mm:ss',
26424
+ L : 'DD.MM.YYYY',
26425
+ LL : 'D MMMM YYYY',
26426
+ LLL : 'D MMMM YYYY HH:mm',
26427
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
26428
+ },
26429
+ calendar : {
26430
+ sameDay : '[Бүгін сағат] LT',
26431
+ nextDay : '[Ертең сағат] LT',
26432
+ nextWeek : 'dddd [сағат] LT',
26433
+ lastDay : '[Кеше сағат] LT',
26434
+ lastWeek : '[Өткен аптаның] dddd [сағат] LT',
26435
+ sameElse : 'L'
26436
+ },
26437
+ relativeTime : {
26438
+ future : '%s ішінде',
26439
+ past : '%s бұрын',
26440
+ s : 'бірнеше секунд',
26441
+ ss : '%d секунд',
26442
+ m : 'бір минут',
26443
+ mm : '%d минут',
26444
+ h : 'бір сағат',
26445
+ hh : '%d сағат',
26446
+ d : 'бір күн',
26447
+ dd : '%d күн',
26448
+ M : 'бір ай',
26449
+ MM : '%d ай',
26450
+ y : 'бір жыл',
26451
+ yy : '%d жыл'
26452
+ },
26453
+ dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
26454
+ ordinal : function (number) {
26455
+ var a = number % 10,
26456
+ b = number >= 100 ? 100 : null;
26457
+ return number + (suffixes[number] || suffixes[a] || suffixes[b]);
26458
+ },
26459
+ week : {
26460
+ dow : 1, // Monday is the first day of the week.
26461
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
26462
+ }
26463
+ });
26464
+
26465
+ return kk;
26466
+
26467
+ })));
26468
+
26469
+
26470
+ /***/ }),
26471
+ /* 140 */
26472
+ /***/ (function(module, exports, __webpack_require__) {
26473
+
26474
+ //! moment.js locale configuration
26475
+
26476
+ ;(function (global, factory) {
26477
+ true ? factory(__webpack_require__(0)) :
26478
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26479
+ factory(global.moment)
26480
+ }(this, (function (moment) { 'use strict';
26481
+
26482
+
26483
+ var symbolMap = {
26484
+ '1': '១',
26485
+ '2': '២',
26486
+ '3': '៣',
26487
+ '4': '៤',
26488
+ '5': '៥',
26489
+ '6': '៦',
26490
+ '7': '៧',
26491
+ '8': '៨',
26492
+ '9': '៩',
26493
+ '0': '០'
26494
+ }, numberMap = {
26495
+ '១': '1',
26496
+ '២': '2',
26497
+ '៣': '3',
26498
+ '៤': '4',
26499
+ '៥': '5',
26500
+ '៦': '6',
26501
+ '៧': '7',
26502
+ '៨': '8',
26503
+ '៩': '9',
26504
+ '០': '0'
26505
+ };
26506
+
26507
+ var km = moment.defineLocale('km', {
26508
+ months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
26509
+ '_'
26510
+ ),
26511
+ monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
26512
+ '_'
26513
+ ),
26514
+ weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
26515
+ weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
26516
+ weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
26517
+ weekdaysParseExact: true,
26518
+ longDateFormat: {
26519
+ LT: 'HH:mm',
26520
+ LTS: 'HH:mm:ss',
26521
+ L: 'DD/MM/YYYY',
26522
+ LL: 'D MMMM YYYY',
26523
+ LLL: 'D MMMM YYYY HH:mm',
26524
+ LLLL: 'dddd, D MMMM YYYY HH:mm'
26525
+ },
26526
+ meridiemParse: /ព្រឹក|ល្ងាច/,
26527
+ isPM: function (input) {
26528
+ return input === 'ល្ងាច';
26529
+ },
26530
+ meridiem: function (hour, minute, isLower) {
26531
+ if (hour < 12) {
26532
+ return 'ព្រឹក';
26533
+ } else {
26534
+ return 'ល្ងាច';
26535
+ }
26536
+ },
26537
+ calendar: {
26538
+ sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
26539
+ nextDay: '[ស្អែក ម៉ោង] LT',
26540
+ nextWeek: 'dddd [ម៉ោង] LT',
26541
+ lastDay: '[ម្សិលមិញ ម៉ោង] LT',
26542
+ lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
26543
+ sameElse: 'L'
26544
+ },
26545
+ relativeTime: {
26546
+ future: '%sទៀត',
26547
+ past: '%sមុន',
26548
+ s: 'ប៉ុន្មានវិនាទី',
26549
+ ss: '%d វិនាទី',
26550
+ m: 'មួយនាទី',
26551
+ mm: '%d នាទី',
26552
+ h: 'មួយម៉ោង',
26553
+ hh: '%d ម៉ោង',
26554
+ d: 'មួយថ្ងៃ',
26555
+ dd: '%d ថ្ងៃ',
26556
+ M: 'មួយខែ',
26557
+ MM: '%d ខែ',
26558
+ y: 'មួយឆ្នាំ',
26559
+ yy: '%d ឆ្នាំ'
26560
+ },
26561
+ dayOfMonthOrdinalParse : /ទី\d{1,2}/,
26562
+ ordinal : 'ទី%d',
26563
+ preparse: function (string) {
26564
+ return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
26565
+ return numberMap[match];
26566
+ });
26567
+ },
26568
+ postformat: function (string) {
26569
+ return string.replace(/\d/g, function (match) {
26570
+ return symbolMap[match];
26571
+ });
26572
+ },
26573
+ week: {
26574
+ dow: 1, // Monday is the first day of the week.
26575
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
26576
+ }
26577
+ });
26578
+
26579
+ return km;
26580
+
26581
+ })));
26582
+
26583
+
26584
+ /***/ }),
26585
+ /* 141 */
26586
+ /***/ (function(module, exports, __webpack_require__) {
26587
+
26588
+ //! moment.js locale configuration
26589
+
26590
+ ;(function (global, factory) {
26591
+ true ? factory(__webpack_require__(0)) :
26592
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26593
+ factory(global.moment)
26594
+ }(this, (function (moment) { 'use strict';
26595
+
26596
+
26597
+ var symbolMap = {
26598
+ '1': '೧',
26599
+ '2': '೨',
26600
+ '3': '೩',
26601
+ '4': '೪',
26602
+ '5': '೫',
26603
+ '6': '೬',
26604
+ '7': '೭',
26605
+ '8': '೮',
26606
+ '9': '೯',
26607
+ '0': '೦'
26608
+ },
26609
+ numberMap = {
26610
+ '೧': '1',
26611
+ '೨': '2',
26612
+ '೩': '3',
26613
+ '೪': '4',
26614
+ '೫': '5',
26615
+ '೬': '6',
26616
+ '೭': '7',
26617
+ '೮': '8',
26618
+ '೯': '9',
26619
+ '೦': '0'
26620
+ };
26621
+
26622
+ var kn = moment.defineLocale('kn', {
26623
+ months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),
26624
+ monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),
26625
+ monthsParseExact: true,
26626
+ weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),
26627
+ weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
26628
+ weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
26629
+ longDateFormat : {
26630
+ LT : 'A h:mm',
26631
+ LTS : 'A h:mm:ss',
26632
+ L : 'DD/MM/YYYY',
26633
+ LL : 'D MMMM YYYY',
26634
+ LLL : 'D MMMM YYYY, A h:mm',
26635
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
26636
+ },
26637
+ calendar : {
26638
+ sameDay : '[ಇಂದು] LT',
26639
+ nextDay : '[ನಾಳೆ] LT',
26640
+ nextWeek : 'dddd, LT',
26641
+ lastDay : '[ನಿನ್ನೆ] LT',
26642
+ lastWeek : '[ಕೊನೆಯ] dddd, LT',
26643
+ sameElse : 'L'
26644
+ },
26645
+ relativeTime : {
26646
+ future : '%s ನಂತರ',
26647
+ past : '%s ಹಿಂದೆ',
26648
+ s : 'ಕೆಲವು ಕ್ಷಣಗಳು',
26649
+ ss : '%d ಸೆಕೆಂಡುಗಳು',
26650
+ m : 'ಒಂದು ನಿಮಿಷ',
26651
+ mm : '%d ನಿಮಿಷ',
26652
+ h : 'ಒಂದು ಗಂಟೆ',
26653
+ hh : '%d ಗಂಟೆ',
26654
+ d : 'ಒಂದು ದಿನ',
26655
+ dd : '%d ದಿನ',
26656
+ M : 'ಒಂದು ತಿಂಗಳು',
26657
+ MM : '%d ತಿಂಗಳು',
26658
+ y : 'ಒಂದು ವರ್ಷ',
26659
+ yy : '%d ವರ್ಷ'
26660
+ },
26661
+ preparse: function (string) {
26662
+ return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
26663
+ return numberMap[match];
26664
+ });
26665
+ },
26666
+ postformat: function (string) {
26667
+ return string.replace(/\d/g, function (match) {
26668
+ return symbolMap[match];
26669
+ });
26670
+ },
26671
+ meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
26672
+ meridiemHour : function (hour, meridiem) {
26673
+ if (hour === 12) {
26674
+ hour = 0;
26675
+ }
26676
+ if (meridiem === 'ರಾತ್ರಿ') {
26677
+ return hour < 4 ? hour : hour + 12;
26678
+ } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
26679
+ return hour;
26680
+ } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
26681
+ return hour >= 10 ? hour : hour + 12;
26682
+ } else if (meridiem === 'ಸಂಜೆ') {
26683
+ return hour + 12;
26684
+ }
26685
+ },
26686
+ meridiem : function (hour, minute, isLower) {
26687
+ if (hour < 4) {
26688
+ return 'ರಾತ್ರಿ';
26689
+ } else if (hour < 10) {
26690
+ return 'ಬೆಳಿಗ್ಗೆ';
26691
+ } else if (hour < 17) {
26692
+ return 'ಮಧ್ಯಾಹ್ನ';
26693
+ } else if (hour < 20) {
26694
+ return 'ಸಂಜೆ';
26695
+ } else {
26696
+ return 'ರಾತ್ರಿ';
26697
+ }
26698
+ },
26699
+ dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
26700
+ ordinal : function (number) {
26701
+ return number + 'ನೇ';
26702
+ },
26703
+ week : {
26704
+ dow : 0, // Sunday is the first day of the week.
26705
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
26706
+ }
26707
+ });
26708
+
26709
+ return kn;
26710
+
26711
+ })));
26712
+
26713
+
26714
+ /***/ }),
26715
+ /* 142 */
26716
+ /***/ (function(module, exports, __webpack_require__) {
26717
+
26718
+ //! moment.js locale configuration
26719
+
26720
+ ;(function (global, factory) {
26721
+ true ? factory(__webpack_require__(0)) :
26722
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26723
+ factory(global.moment)
26724
+ }(this, (function (moment) { 'use strict';
26725
+
26726
+
26727
+ var ko = moment.defineLocale('ko', {
26728
+ months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
26729
+ monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
26730
+ weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
26731
+ weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
26732
+ weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
26733
+ longDateFormat : {
26734
+ LT : 'A h:mm',
26735
+ LTS : 'A h:mm:ss',
26736
+ L : 'YYYY.MM.DD.',
26737
+ LL : 'YYYY년 MMMM D일',
26738
+ LLL : 'YYYY년 MMMM D일 A h:mm',
26739
+ LLLL : 'YYYY년 MMMM D일 dddd A h:mm',
26740
+ l : 'YYYY.MM.DD.',
26741
+ ll : 'YYYY년 MMMM D일',
26742
+ lll : 'YYYY년 MMMM D일 A h:mm',
26743
+ llll : 'YYYY년 MMMM D일 dddd A h:mm'
26744
+ },
26745
+ calendar : {
26746
+ sameDay : '오늘 LT',
26747
+ nextDay : '내일 LT',
26748
+ nextWeek : 'dddd LT',
26749
+ lastDay : '어제 LT',
26750
+ lastWeek : '지난주 dddd LT',
26751
+ sameElse : 'L'
26752
+ },
26753
+ relativeTime : {
26754
+ future : '%s 후',
26755
+ past : '%s 전',
26756
+ s : '몇 초',
26757
+ ss : '%d초',
26758
+ m : '1분',
26759
+ mm : '%d분',
26760
+ h : '한 시간',
26761
+ hh : '%d시간',
26762
+ d : '하루',
26763
+ dd : '%d일',
26764
+ M : '한 달',
26765
+ MM : '%d달',
26766
+ y : '일 년',
26767
+ yy : '%d년'
26768
+ },
26769
+ dayOfMonthOrdinalParse : /\d{1,2}(일|월|주)/,
26770
+ ordinal : function (number, period) {
26771
+ switch (period) {
26772
+ case 'd':
26773
+ case 'D':
26774
+ case 'DDD':
26775
+ return number + '일';
26776
+ case 'M':
26777
+ return number + '월';
26778
+ case 'w':
26779
+ case 'W':
26780
+ return number + '주';
26781
+ default:
26782
+ return number;
26783
+ }
26784
+ },
26785
+ meridiemParse : /오전|오후/,
26786
+ isPM : function (token) {
26787
+ return token === '오후';
26788
+ },
26789
+ meridiem : function (hour, minute, isUpper) {
26790
+ return hour < 12 ? '오전' : '오후';
26791
+ }
26792
+ });
26793
+
26794
+ return ko;
26795
+
26796
+ })));
26797
+
26798
+
26799
+ /***/ }),
26800
+ /* 143 */
26801
+ /***/ (function(module, exports, __webpack_require__) {
26802
+
26803
+ //! moment.js locale configuration
26804
+
26805
+ ;(function (global, factory) {
26806
+ true ? factory(__webpack_require__(0)) :
26807
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26808
+ factory(global.moment)
26809
+ }(this, (function (moment) { 'use strict';
26810
+
26811
+
26812
+ var suffixes = {
26813
+ 0: '-чү',
26814
+ 1: '-чи',
26815
+ 2: '-чи',
26816
+ 3: '-чү',
26817
+ 4: '-чү',
26818
+ 5: '-чи',
26819
+ 6: '-чы',
26820
+ 7: '-чи',
26821
+ 8: '-чи',
26822
+ 9: '-чу',
26823
+ 10: '-чу',
26824
+ 20: '-чы',
26825
+ 30: '-чу',
26826
+ 40: '-чы',
26827
+ 50: '-чү',
26828
+ 60: '-чы',
26829
+ 70: '-чи',
26830
+ 80: '-чи',
26831
+ 90: '-чу',
26832
+ 100: '-чү'
26833
+ };
26834
+
26835
+ var ky = moment.defineLocale('ky', {
26836
+ months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
26837
+ monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
26838
+ weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),
26839
+ weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
26840
+ weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
26841
+ longDateFormat : {
26842
+ LT : 'HH:mm',
26843
+ LTS : 'HH:mm:ss',
26844
+ L : 'DD.MM.YYYY',
26845
+ LL : 'D MMMM YYYY',
26846
+ LLL : 'D MMMM YYYY HH:mm',
26847
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
26848
+ },
26849
+ calendar : {
26850
+ sameDay : '[Бүгүн саат] LT',
26851
+ nextDay : '[Эртең саат] LT',
26852
+ nextWeek : 'dddd [саат] LT',
26853
+ lastDay : '[Кече саат] LT',
26854
+ lastWeek : '[Өткен аптанын] dddd [күнү] [саат] LT',
26855
+ sameElse : 'L'
26856
+ },
26857
+ relativeTime : {
26858
+ future : '%s ичинде',
26859
+ past : '%s мурун',
26860
+ s : 'бирнече секунд',
26861
+ ss : '%d секунд',
26862
+ m : 'бир мүнөт',
26863
+ mm : '%d мүнөт',
26864
+ h : 'бир саат',
26865
+ hh : '%d саат',
26866
+ d : 'бир күн',
26867
+ dd : '%d күн',
26868
+ M : 'бир ай',
26869
+ MM : '%d ай',
26870
+ y : 'бир жыл',
26871
+ yy : '%d жыл'
26872
+ },
26873
+ dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
26874
+ ordinal : function (number) {
26875
+ var a = number % 10,
26876
+ b = number >= 100 ? 100 : null;
26877
+ return number + (suffixes[number] || suffixes[a] || suffixes[b]);
26878
+ },
26879
+ week : {
26880
+ dow : 1, // Monday is the first day of the week.
26881
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
26882
+ }
26883
+ });
26884
+
26885
+ return ky;
26886
+
26887
+ })));
26888
+
26889
+
26890
+ /***/ }),
26891
+ /* 144 */
26892
+ /***/ (function(module, exports, __webpack_require__) {
26893
+
26894
+ //! moment.js locale configuration
26895
+
26896
+ ;(function (global, factory) {
26897
+ true ? factory(__webpack_require__(0)) :
26898
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
26899
+ factory(global.moment)
26900
+ }(this, (function (moment) { 'use strict';
26901
+
26902
+
26903
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
26904
+ var format = {
26905
+ 'm': ['eng Minutt', 'enger Minutt'],
26906
+ 'h': ['eng Stonn', 'enger Stonn'],
26907
+ 'd': ['een Dag', 'engem Dag'],
26908
+ 'M': ['ee Mount', 'engem Mount'],
26909
+ 'y': ['ee Joer', 'engem Joer']
26910
+ };
26911
+ return withoutSuffix ? format[key][0] : format[key][1];
26912
+ }
26913
+ function processFutureTime(string) {
26914
+ var number = string.substr(0, string.indexOf(' '));
26915
+ if (eifelerRegelAppliesToNumber(number)) {
26916
+ return 'a ' + string;
26917
+ }
26918
+ return 'an ' + string;
26919
+ }
26920
+ function processPastTime(string) {
26921
+ var number = string.substr(0, string.indexOf(' '));
26922
+ if (eifelerRegelAppliesToNumber(number)) {
26923
+ return 'viru ' + string;
26924
+ }
26925
+ return 'virun ' + string;
26926
+ }
26927
+ /**
26928
+ * Returns true if the word before the given number loses the '-n' ending.
26929
+ * e.g. 'an 10 Deeg' but 'a 5 Deeg'
26930
+ *
26931
+ * @param number {integer}
26932
+ * @returns {boolean}
26933
+ */
26934
+ function eifelerRegelAppliesToNumber(number) {
26935
+ number = parseInt(number, 10);
26936
+ if (isNaN(number)) {
26937
+ return false;
26938
+ }
26939
+ if (number < 0) {
26940
+ // Negative Number --> always true
26941
+ return true;
26942
+ } else if (number < 10) {
26943
+ // Only 1 digit
26944
+ if (4 <= number && number <= 7) {
26945
+ return true;
26946
+ }
26947
+ return false;
26948
+ } else if (number < 100) {
26949
+ // 2 digits
26950
+ var lastDigit = number % 10, firstDigit = number / 10;
26951
+ if (lastDigit === 0) {
26952
+ return eifelerRegelAppliesToNumber(firstDigit);
26953
+ }
26954
+ return eifelerRegelAppliesToNumber(lastDigit);
26955
+ } else if (number < 10000) {
26956
+ // 3 or 4 digits --> recursively check first digit
26957
+ while (number >= 10) {
26958
+ number = number / 10;
26959
+ }
26960
+ return eifelerRegelAppliesToNumber(number);
26961
+ } else {
26962
+ // Anything larger than 4 digits: recursively check first n-3 digits
26963
+ number = number / 1000;
26964
+ return eifelerRegelAppliesToNumber(number);
26965
+ }
26966
+ }
26967
+
26968
+ var lb = moment.defineLocale('lb', {
26969
+ months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
26970
+ monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
26971
+ monthsParseExact : true,
26972
+ weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
26973
+ weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
26974
+ weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
26975
+ weekdaysParseExact : true,
26976
+ longDateFormat: {
26977
+ LT: 'H:mm [Auer]',
26978
+ LTS: 'H:mm:ss [Auer]',
26979
+ L: 'DD.MM.YYYY',
26980
+ LL: 'D. MMMM YYYY',
26981
+ LLL: 'D. MMMM YYYY H:mm [Auer]',
26982
+ LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
26983
+ },
26984
+ calendar: {
26985
+ sameDay: '[Haut um] LT',
26986
+ sameElse: 'L',
26987
+ nextDay: '[Muer um] LT',
26988
+ nextWeek: 'dddd [um] LT',
26989
+ lastDay: '[Gëschter um] LT',
26990
+ lastWeek: function () {
26991
+ // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
26992
+ switch (this.day()) {
26993
+ case 2:
26994
+ case 4:
26995
+ return '[Leschten] dddd [um] LT';
26996
+ default:
26997
+ return '[Leschte] dddd [um] LT';
26998
+ }
26999
+ }
27000
+ },
27001
+ relativeTime : {
27002
+ future : processFutureTime,
27003
+ past : processPastTime,
27004
+ s : 'e puer Sekonnen',
27005
+ ss : '%d Sekonnen',
27006
+ m : processRelativeTime,
27007
+ mm : '%d Minutten',
27008
+ h : processRelativeTime,
27009
+ hh : '%d Stonnen',
27010
+ d : processRelativeTime,
27011
+ dd : '%d Deeg',
27012
+ M : processRelativeTime,
27013
+ MM : '%d Méint',
27014
+ y : processRelativeTime,
27015
+ yy : '%d Joer'
27016
+ },
27017
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
27018
+ ordinal: '%d.',
27019
+ week: {
27020
+ dow: 1, // Monday is the first day of the week.
27021
+ doy: 4 // The week that contains Jan 4th is the first week of the year.
27022
+ }
27023
+ });
27024
+
27025
+ return lb;
27026
+
27027
+ })));
27028
+
27029
+
27030
+ /***/ }),
27031
+ /* 145 */
27032
+ /***/ (function(module, exports, __webpack_require__) {
27033
+
27034
+ //! moment.js locale configuration
27035
+
27036
+ ;(function (global, factory) {
27037
+ true ? factory(__webpack_require__(0)) :
27038
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27039
+ factory(global.moment)
27040
+ }(this, (function (moment) { 'use strict';
27041
+
27042
+
27043
+ var lo = moment.defineLocale('lo', {
27044
+ months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
27045
+ monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
27046
+ weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
27047
+ weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
27048
+ weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
27049
+ weekdaysParseExact : true,
27050
+ longDateFormat : {
27051
+ LT : 'HH:mm',
27052
+ LTS : 'HH:mm:ss',
27053
+ L : 'DD/MM/YYYY',
27054
+ LL : 'D MMMM YYYY',
27055
+ LLL : 'D MMMM YYYY HH:mm',
27056
+ LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
27057
+ },
27058
+ meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
27059
+ isPM: function (input) {
27060
+ return input === 'ຕອນແລງ';
27061
+ },
27062
+ meridiem : function (hour, minute, isLower) {
27063
+ if (hour < 12) {
27064
+ return 'ຕອນເຊົ້າ';
27065
+ } else {
27066
+ return 'ຕອນແລງ';
27067
+ }
27068
+ },
27069
+ calendar : {
27070
+ sameDay : '[ມື້ນີ້ເວລາ] LT',
27071
+ nextDay : '[ມື້ອື່ນເວລາ] LT',
27072
+ nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
27073
+ lastDay : '[ມື້ວານນີ້ເວລາ] LT',
27074
+ lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
27075
+ sameElse : 'L'
27076
+ },
27077
+ relativeTime : {
27078
+ future : 'ອີກ %s',
27079
+ past : '%sຜ່ານມາ',
27080
+ s : 'ບໍ່ເທົ່າໃດວິນາທີ',
27081
+ ss : '%d ວິນາທີ' ,
27082
+ m : '1 ນາທີ',
27083
+ mm : '%d ນາທີ',
27084
+ h : '1 ຊົ່ວໂມງ',
27085
+ hh : '%d ຊົ່ວໂມງ',
27086
+ d : '1 ມື້',
27087
+ dd : '%d ມື້',
27088
+ M : '1 ເດືອນ',
27089
+ MM : '%d ເດືອນ',
27090
+ y : '1 ປີ',
27091
+ yy : '%d ປີ'
27092
+ },
27093
+ dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
27094
+ ordinal : function (number) {
27095
+ return 'ທີ່' + number;
27096
+ }
27097
+ });
27098
+
27099
+ return lo;
27100
+
27101
+ })));
27102
+
27103
+
27104
+ /***/ }),
27105
+ /* 146 */
27106
+ /***/ (function(module, exports, __webpack_require__) {
27107
+
27108
+ //! moment.js locale configuration
27109
+
27110
+ ;(function (global, factory) {
27111
+ true ? factory(__webpack_require__(0)) :
27112
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27113
+ factory(global.moment)
27114
+ }(this, (function (moment) { 'use strict';
27115
+
27116
+
27117
+ var units = {
27118
+ 'ss' : 'sekundė_sekundžių_sekundes',
27119
+ 'm' : 'minutė_minutės_minutę',
27120
+ 'mm': 'minutės_minučių_minutes',
27121
+ 'h' : 'valanda_valandos_valandą',
27122
+ 'hh': 'valandos_valandų_valandas',
27123
+ 'd' : 'diena_dienos_dieną',
27124
+ 'dd': 'dienos_dienų_dienas',
27125
+ 'M' : 'mėnuo_mėnesio_mėnesį',
27126
+ 'MM': 'mėnesiai_mėnesių_mėnesius',
27127
+ 'y' : 'metai_metų_metus',
27128
+ 'yy': 'metai_metų_metus'
27129
+ };
27130
+ function translateSeconds(number, withoutSuffix, key, isFuture) {
27131
+ if (withoutSuffix) {
27132
+ return 'kelios sekundės';
27133
+ } else {
27134
+ return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
27135
+ }
27136
+ }
27137
+ function translateSingular(number, withoutSuffix, key, isFuture) {
27138
+ return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
27139
+ }
27140
+ function special(number) {
27141
+ return number % 10 === 0 || (number > 10 && number < 20);
27142
+ }
27143
+ function forms(key) {
27144
+ return units[key].split('_');
27145
+ }
27146
+ function translate(number, withoutSuffix, key, isFuture) {
27147
+ var result = number + ' ';
27148
+ if (number === 1) {
27149
+ return result + translateSingular(number, withoutSuffix, key[0], isFuture);
27150
+ } else if (withoutSuffix) {
27151
+ return result + (special(number) ? forms(key)[1] : forms(key)[0]);
27152
+ } else {
27153
+ if (isFuture) {
27154
+ return result + forms(key)[1];
27155
+ } else {
27156
+ return result + (special(number) ? forms(key)[1] : forms(key)[2]);
27157
+ }
27158
+ }
27159
+ }
27160
+ var lt = moment.defineLocale('lt', {
27161
+ months : {
27162
+ format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
27163
+ standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),
27164
+ isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/
27165
+ },
27166
+ monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
27167
+ weekdays : {
27168
+ format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
27169
+ standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
27170
+ isFormat: /dddd HH:mm/
27171
+ },
27172
+ weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
27173
+ weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
27174
+ weekdaysParseExact : true,
27175
+ longDateFormat : {
27176
+ LT : 'HH:mm',
27177
+ LTS : 'HH:mm:ss',
27178
+ L : 'YYYY-MM-DD',
27179
+ LL : 'YYYY [m.] MMMM D [d.]',
27180
+ LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
27181
+ LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
27182
+ l : 'YYYY-MM-DD',
27183
+ ll : 'YYYY [m.] MMMM D [d.]',
27184
+ lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
27185
+ llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
27186
+ },
27187
+ calendar : {
27188
+ sameDay : '[Šiandien] LT',
27189
+ nextDay : '[Rytoj] LT',
27190
+ nextWeek : 'dddd LT',
27191
+ lastDay : '[Vakar] LT',
27192
+ lastWeek : '[Praėjusį] dddd LT',
27193
+ sameElse : 'L'
27194
+ },
27195
+ relativeTime : {
27196
+ future : 'po %s',
27197
+ past : 'prieš %s',
27198
+ s : translateSeconds,
27199
+ ss : translate,
27200
+ m : translateSingular,
27201
+ mm : translate,
27202
+ h : translateSingular,
27203
+ hh : translate,
27204
+ d : translateSingular,
27205
+ dd : translate,
27206
+ M : translateSingular,
27207
+ MM : translate,
27208
+ y : translateSingular,
27209
+ yy : translate
27210
+ },
27211
+ dayOfMonthOrdinalParse: /\d{1,2}-oji/,
27212
+ ordinal : function (number) {
27213
+ return number + '-oji';
27214
+ },
27215
+ week : {
27216
+ dow : 1, // Monday is the first day of the week.
27217
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
27218
+ }
27219
+ });
27220
+
27221
+ return lt;
27222
+
27223
+ })));
27224
+
27225
+
27226
+ /***/ }),
27227
+ /* 147 */
27228
+ /***/ (function(module, exports, __webpack_require__) {
27229
+
27230
+ //! moment.js locale configuration
27231
+
27232
+ ;(function (global, factory) {
27233
+ true ? factory(__webpack_require__(0)) :
27234
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27235
+ factory(global.moment)
27236
+ }(this, (function (moment) { 'use strict';
27237
+
27238
+
27239
+ var units = {
27240
+ 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
27241
+ 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
27242
+ 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
27243
+ 'h': 'stundas_stundām_stunda_stundas'.split('_'),
27244
+ 'hh': 'stundas_stundām_stunda_stundas'.split('_'),
27245
+ 'd': 'dienas_dienām_diena_dienas'.split('_'),
27246
+ 'dd': 'dienas_dienām_diena_dienas'.split('_'),
27247
+ 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
27248
+ 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
27249
+ 'y': 'gada_gadiem_gads_gadi'.split('_'),
27250
+ 'yy': 'gada_gadiem_gads_gadi'.split('_')
27251
+ };
27252
+ /**
27253
+ * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
27254
+ */
27255
+ function format(forms, number, withoutSuffix) {
27256
+ if (withoutSuffix) {
27257
+ // E.g. "21 minūte", "3 minūtes".
27258
+ return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
27259
+ } else {
27260
+ // E.g. "21 minūtes" as in "pēc 21 minūtes".
27261
+ // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
27262
+ return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
27263
+ }
27264
+ }
27265
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
27266
+ return number + ' ' + format(units[key], number, withoutSuffix);
27267
+ }
27268
+ function relativeTimeWithSingular(number, withoutSuffix, key) {
27269
+ return format(units[key], number, withoutSuffix);
27270
+ }
27271
+ function relativeSeconds(number, withoutSuffix) {
27272
+ return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
27273
+ }
27274
+
27275
+ var lv = moment.defineLocale('lv', {
27276
+ months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
27277
+ monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
27278
+ weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
27279
+ weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
27280
+ weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
27281
+ weekdaysParseExact : true,
27282
+ longDateFormat : {
27283
+ LT : 'HH:mm',
27284
+ LTS : 'HH:mm:ss',
27285
+ L : 'DD.MM.YYYY.',
27286
+ LL : 'YYYY. [gada] D. MMMM',
27287
+ LLL : 'YYYY. [gada] D. MMMM, HH:mm',
27288
+ LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
27289
+ },
27290
+ calendar : {
27291
+ sameDay : '[Šodien pulksten] LT',
27292
+ nextDay : '[Rīt pulksten] LT',
27293
+ nextWeek : 'dddd [pulksten] LT',
27294
+ lastDay : '[Vakar pulksten] LT',
27295
+ lastWeek : '[Pagājušā] dddd [pulksten] LT',
27296
+ sameElse : 'L'
27297
+ },
27298
+ relativeTime : {
27299
+ future : 'pēc %s',
27300
+ past : 'pirms %s',
27301
+ s : relativeSeconds,
27302
+ ss : relativeTimeWithPlural,
27303
+ m : relativeTimeWithSingular,
27304
+ mm : relativeTimeWithPlural,
27305
+ h : relativeTimeWithSingular,
27306
+ hh : relativeTimeWithPlural,
27307
+ d : relativeTimeWithSingular,
27308
+ dd : relativeTimeWithPlural,
27309
+ M : relativeTimeWithSingular,
27310
+ MM : relativeTimeWithPlural,
27311
+ y : relativeTimeWithSingular,
27312
+ yy : relativeTimeWithPlural
27313
+ },
27314
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
27315
+ ordinal : '%d.',
27316
+ week : {
27317
+ dow : 1, // Monday is the first day of the week.
27318
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
27319
+ }
27320
+ });
27321
+
27322
+ return lv;
27323
+
27324
+ })));
27325
+
27326
+
27327
+ /***/ }),
27328
+ /* 148 */
27329
+ /***/ (function(module, exports, __webpack_require__) {
27330
+
27331
+ //! moment.js locale configuration
27332
+
27333
+ ;(function (global, factory) {
27334
+ true ? factory(__webpack_require__(0)) :
27335
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27336
+ factory(global.moment)
27337
+ }(this, (function (moment) { 'use strict';
27338
+
27339
+
27340
+ var translator = {
27341
+ words: { //Different grammatical cases
27342
+ ss: ['sekund', 'sekunda', 'sekundi'],
27343
+ m: ['jedan minut', 'jednog minuta'],
27344
+ mm: ['minut', 'minuta', 'minuta'],
27345
+ h: ['jedan sat', 'jednog sata'],
27346
+ hh: ['sat', 'sata', 'sati'],
27347
+ dd: ['dan', 'dana', 'dana'],
27348
+ MM: ['mjesec', 'mjeseca', 'mjeseci'],
27349
+ yy: ['godina', 'godine', 'godina']
27350
+ },
27351
+ correctGrammaticalCase: function (number, wordKey) {
27352
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
27353
+ },
27354
+ translate: function (number, withoutSuffix, key) {
27355
+ var wordKey = translator.words[key];
27356
+ if (key.length === 1) {
27357
+ return withoutSuffix ? wordKey[0] : wordKey[1];
27358
+ } else {
27359
+ return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
27360
+ }
27361
+ }
27362
+ };
27363
+
27364
+ var me = moment.defineLocale('me', {
27365
+ months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
27366
+ monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
27367
+ monthsParseExact : true,
27368
+ weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
27369
+ weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
27370
+ weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
27371
+ weekdaysParseExact : true,
27372
+ longDateFormat: {
27373
+ LT: 'H:mm',
27374
+ LTS : 'H:mm:ss',
27375
+ L: 'DD.MM.YYYY',
27376
+ LL: 'D. MMMM YYYY',
27377
+ LLL: 'D. MMMM YYYY H:mm',
27378
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
27379
+ },
27380
+ calendar: {
27381
+ sameDay: '[danas u] LT',
27382
+ nextDay: '[sjutra u] LT',
27383
+
27384
+ nextWeek: function () {
27385
+ switch (this.day()) {
27386
+ case 0:
27387
+ return '[u] [nedjelju] [u] LT';
27388
+ case 3:
27389
+ return '[u] [srijedu] [u] LT';
27390
+ case 6:
27391
+ return '[u] [subotu] [u] LT';
27392
+ case 1:
27393
+ case 2:
27394
+ case 4:
27395
+ case 5:
27396
+ return '[u] dddd [u] LT';
27397
+ }
27398
+ },
27399
+ lastDay : '[juče u] LT',
27400
+ lastWeek : function () {
27401
+ var lastWeekDays = [
27402
+ '[prošle] [nedjelje] [u] LT',
27403
+ '[prošlog] [ponedjeljka] [u] LT',
27404
+ '[prošlog] [utorka] [u] LT',
27405
+ '[prošle] [srijede] [u] LT',
27406
+ '[prošlog] [četvrtka] [u] LT',
27407
+ '[prošlog] [petka] [u] LT',
27408
+ '[prošle] [subote] [u] LT'
27409
+ ];
27410
+ return lastWeekDays[this.day()];
27411
+ },
27412
+ sameElse : 'L'
27413
+ },
27414
+ relativeTime : {
27415
+ future : 'za %s',
27416
+ past : 'prije %s',
27417
+ s : 'nekoliko sekundi',
27418
+ ss : translator.translate,
27419
+ m : translator.translate,
27420
+ mm : translator.translate,
27421
+ h : translator.translate,
27422
+ hh : translator.translate,
27423
+ d : 'dan',
27424
+ dd : translator.translate,
27425
+ M : 'mjesec',
27426
+ MM : translator.translate,
27427
+ y : 'godinu',
27428
+ yy : translator.translate
27429
+ },
27430
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
27431
+ ordinal : '%d.',
27432
+ week : {
27433
+ dow : 1, // Monday is the first day of the week.
27434
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
27435
+ }
27436
+ });
27437
+
27438
+ return me;
27439
+
27440
+ })));
27441
+
27442
+
27443
+ /***/ }),
27444
+ /* 149 */
27445
+ /***/ (function(module, exports, __webpack_require__) {
27446
+
27447
+ //! moment.js locale configuration
27448
+
27449
+ ;(function (global, factory) {
27450
+ true ? factory(__webpack_require__(0)) :
27451
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27452
+ factory(global.moment)
27453
+ }(this, (function (moment) { 'use strict';
27454
+
27455
+
27456
+ var mi = moment.defineLocale('mi', {
27457
+ months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),
27458
+ monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),
27459
+ monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
27460
+ monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
27461
+ monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
27462
+ monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
27463
+ weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
27464
+ weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
27465
+ weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
27466
+ longDateFormat: {
27467
+ LT: 'HH:mm',
27468
+ LTS: 'HH:mm:ss',
27469
+ L: 'DD/MM/YYYY',
27470
+ LL: 'D MMMM YYYY',
27471
+ LLL: 'D MMMM YYYY [i] HH:mm',
27472
+ LLLL: 'dddd, D MMMM YYYY [i] HH:mm'
27473
+ },
27474
+ calendar: {
27475
+ sameDay: '[i teie mahana, i] LT',
27476
+ nextDay: '[apopo i] LT',
27477
+ nextWeek: 'dddd [i] LT',
27478
+ lastDay: '[inanahi i] LT',
27479
+ lastWeek: 'dddd [whakamutunga i] LT',
27480
+ sameElse: 'L'
27481
+ },
27482
+ relativeTime: {
27483
+ future: 'i roto i %s',
27484
+ past: '%s i mua',
27485
+ s: 'te hēkona ruarua',
27486
+ ss: '%d hēkona',
27487
+ m: 'he meneti',
27488
+ mm: '%d meneti',
27489
+ h: 'te haora',
27490
+ hh: '%d haora',
27491
+ d: 'he ra',
27492
+ dd: '%d ra',
27493
+ M: 'he marama',
27494
+ MM: '%d marama',
27495
+ y: 'he tau',
27496
+ yy: '%d tau'
27497
+ },
27498
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
27499
+ ordinal: '%dº',
27500
+ week : {
27501
+ dow : 1, // Monday is the first day of the week.
27502
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
27503
+ }
27504
+ });
27505
+
27506
+ return mi;
27507
+
27508
+ })));
27509
+
27510
+
27511
+ /***/ }),
27512
+ /* 150 */
27513
+ /***/ (function(module, exports, __webpack_require__) {
27514
+
27515
+ //! moment.js locale configuration
27516
+
27517
+ ;(function (global, factory) {
27518
+ true ? factory(__webpack_require__(0)) :
27519
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27520
+ factory(global.moment)
27521
+ }(this, (function (moment) { 'use strict';
27522
+
27523
+
27524
+ var mk = moment.defineLocale('mk', {
27525
+ months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
27526
+ monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
27527
+ weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
27528
+ weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
27529
+ weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
27530
+ longDateFormat : {
27531
+ LT : 'H:mm',
27532
+ LTS : 'H:mm:ss',
27533
+ L : 'D.MM.YYYY',
27534
+ LL : 'D MMMM YYYY',
27535
+ LLL : 'D MMMM YYYY H:mm',
27536
+ LLLL : 'dddd, D MMMM YYYY H:mm'
27537
+ },
27538
+ calendar : {
27539
+ sameDay : '[Денес во] LT',
27540
+ nextDay : '[Утре во] LT',
27541
+ nextWeek : '[Во] dddd [во] LT',
27542
+ lastDay : '[Вчера во] LT',
27543
+ lastWeek : function () {
27544
+ switch (this.day()) {
27545
+ case 0:
27546
+ case 3:
27547
+ case 6:
27548
+ return '[Изминатата] dddd [во] LT';
27549
+ case 1:
27550
+ case 2:
27551
+ case 4:
27552
+ case 5:
27553
+ return '[Изминатиот] dddd [во] LT';
27554
+ }
27555
+ },
27556
+ sameElse : 'L'
27557
+ },
27558
+ relativeTime : {
27559
+ future : 'после %s',
27560
+ past : 'пред %s',
27561
+ s : 'неколку секунди',
27562
+ ss : '%d секунди',
27563
+ m : 'минута',
27564
+ mm : '%d минути',
27565
+ h : 'час',
27566
+ hh : '%d часа',
27567
+ d : 'ден',
27568
+ dd : '%d дена',
27569
+ M : 'месец',
27570
+ MM : '%d месеци',
27571
+ y : 'година',
27572
+ yy : '%d години'
27573
+ },
27574
+ dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
27575
+ ordinal : function (number) {
27576
+ var lastDigit = number % 10,
27577
+ last2Digits = number % 100;
27578
+ if (number === 0) {
27579
+ return number + '-ев';
27580
+ } else if (last2Digits === 0) {
27581
+ return number + '-ен';
27582
+ } else if (last2Digits > 10 && last2Digits < 20) {
27583
+ return number + '-ти';
27584
+ } else if (lastDigit === 1) {
27585
+ return number + '-ви';
27586
+ } else if (lastDigit === 2) {
27587
+ return number + '-ри';
27588
+ } else if (lastDigit === 7 || lastDigit === 8) {
27589
+ return number + '-ми';
27590
+ } else {
27591
+ return number + '-ти';
27592
+ }
27593
+ },
27594
+ week : {
27595
+ dow : 1, // Monday is the first day of the week.
27596
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
27597
+ }
27598
+ });
27599
+
27600
+ return mk;
27601
+
27602
+ })));
27603
+
27604
+
27605
+ /***/ }),
27606
+ /* 151 */
27607
+ /***/ (function(module, exports, __webpack_require__) {
27608
+
27609
+ //! moment.js locale configuration
27610
+
27611
+ ;(function (global, factory) {
27612
+ true ? factory(__webpack_require__(0)) :
27613
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27614
+ factory(global.moment)
27615
+ }(this, (function (moment) { 'use strict';
27616
+
27617
+
27618
+ var ml = moment.defineLocale('ml', {
27619
+ months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
27620
+ monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
27621
+ monthsParseExact : true,
27622
+ weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
27623
+ weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
27624
+ weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
27625
+ longDateFormat : {
27626
+ LT : 'A h:mm -നു',
27627
+ LTS : 'A h:mm:ss -നു',
27628
+ L : 'DD/MM/YYYY',
27629
+ LL : 'D MMMM YYYY',
27630
+ LLL : 'D MMMM YYYY, A h:mm -നു',
27631
+ LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
27632
+ },
27633
+ calendar : {
27634
+ sameDay : '[ഇന്ന്] LT',
27635
+ nextDay : '[നാളെ] LT',
27636
+ nextWeek : 'dddd, LT',
27637
+ lastDay : '[ഇന്നലെ] LT',
27638
+ lastWeek : '[കഴിഞ്ഞ] dddd, LT',
27639
+ sameElse : 'L'
27640
+ },
27641
+ relativeTime : {
27642
+ future : '%s കഴിഞ്ഞ്',
27643
+ past : '%s മുൻപ്',
27644
+ s : 'അൽപ നിമിഷങ്ങൾ',
27645
+ ss : '%d സെക്കൻഡ്',
27646
+ m : 'ഒരു മിനിറ്റ്',
27647
+ mm : '%d മിനിറ്റ്',
27648
+ h : 'ഒരു മണിക്കൂർ',
27649
+ hh : '%d മണിക്കൂർ',
27650
+ d : 'ഒരു ദിവസം',
27651
+ dd : '%d ദിവസം',
27652
+ M : 'ഒരു മാസം',
27653
+ MM : '%d മാസം',
27654
+ y : 'ഒരു വർഷം',
27655
+ yy : '%d വർഷം'
27656
+ },
27657
+ meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
27658
+ meridiemHour : function (hour, meridiem) {
27659
+ if (hour === 12) {
27660
+ hour = 0;
27661
+ }
27662
+ if ((meridiem === 'രാത്രി' && hour >= 4) ||
27663
+ meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
27664
+ meridiem === 'വൈകുന്നേരം') {
27665
+ return hour + 12;
27666
+ } else {
27667
+ return hour;
27668
+ }
27669
+ },
27670
+ meridiem : function (hour, minute, isLower) {
27671
+ if (hour < 4) {
27672
+ return 'രാത്രി';
27673
+ } else if (hour < 12) {
27674
+ return 'രാവിലെ';
27675
+ } else if (hour < 17) {
27676
+ return 'ഉച്ച കഴിഞ്ഞ്';
27677
+ } else if (hour < 20) {
27678
+ return 'വൈകുന്നേരം';
27679
+ } else {
27680
+ return 'രാത്രി';
27681
+ }
27682
+ }
27683
+ });
27684
+
27685
+ return ml;
27686
+
27687
+ })));
27688
+
27689
+
27690
+ /***/ }),
27691
+ /* 152 */
27692
+ /***/ (function(module, exports, __webpack_require__) {
27693
+
27694
+ //! moment.js locale configuration
27695
+
27696
+ ;(function (global, factory) {
27697
+ true ? factory(__webpack_require__(0)) :
27698
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27699
+ factory(global.moment)
27700
+ }(this, (function (moment) { 'use strict';
27701
+
27702
+
27703
+ function translate(number, withoutSuffix, key, isFuture) {
27704
+ switch (key) {
27705
+ case 's':
27706
+ return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
27707
+ case 'ss':
27708
+ return number + (withoutSuffix ? ' секунд' : ' секундын');
27709
+ case 'm':
27710
+ case 'mm':
27711
+ return number + (withoutSuffix ? ' минут' : ' минутын');
27712
+ case 'h':
27713
+ case 'hh':
27714
+ return number + (withoutSuffix ? ' цаг' : ' цагийн');
27715
+ case 'd':
27716
+ case 'dd':
27717
+ return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
27718
+ case 'M':
27719
+ case 'MM':
27720
+ return number + (withoutSuffix ? ' сар' : ' сарын');
27721
+ case 'y':
27722
+ case 'yy':
27723
+ return number + (withoutSuffix ? ' жил' : ' жилийн');
27724
+ default:
27725
+ return number;
27726
+ }
27727
+ }
27728
+
27729
+ var mn = moment.defineLocale('mn', {
27730
+ months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),
27731
+ monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),
27732
+ monthsParseExact : true,
27733
+ weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
27734
+ weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
27735
+ weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
27736
+ weekdaysParseExact : true,
27737
+ longDateFormat : {
27738
+ LT : 'HH:mm',
27739
+ LTS : 'HH:mm:ss',
27740
+ L : 'YYYY-MM-DD',
27741
+ LL : 'YYYY оны MMMMын D',
27742
+ LLL : 'YYYY оны MMMMын D HH:mm',
27743
+ LLLL : 'dddd, YYYY оны MMMMын D HH:mm'
27744
+ },
27745
+ meridiemParse: /ҮӨ|ҮХ/i,
27746
+ isPM : function (input) {
27747
+ return input === 'ҮХ';
27748
+ },
27749
+ meridiem : function (hour, minute, isLower) {
27750
+ if (hour < 12) {
27751
+ return 'ҮӨ';
27752
+ } else {
27753
+ return 'ҮХ';
27754
+ }
27755
+ },
27756
+ calendar : {
27757
+ sameDay : '[Өнөөдөр] LT',
27758
+ nextDay : '[Маргааш] LT',
27759
+ nextWeek : '[Ирэх] dddd LT',
27760
+ lastDay : '[Өчигдөр] LT',
27761
+ lastWeek : '[Өнгөрсөн] dddd LT',
27762
+ sameElse : 'L'
27763
+ },
27764
+ relativeTime : {
27765
+ future : '%s дараа',
27766
+ past : '%s өмнө',
27767
+ s : translate,
27768
+ ss : translate,
27769
+ m : translate,
27770
+ mm : translate,
27771
+ h : translate,
27772
+ hh : translate,
27773
+ d : translate,
27774
+ dd : translate,
27775
+ M : translate,
27776
+ MM : translate,
27777
+ y : translate,
27778
+ yy : translate
27779
+ },
27780
+ dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
27781
+ ordinal : function (number, period) {
27782
+ switch (period) {
27783
+ case 'd':
27784
+ case 'D':
27785
+ case 'DDD':
27786
+ return number + ' өдөр';
27787
+ default:
27788
+ return number;
27789
+ }
27790
+ }
27791
+ });
27792
+
27793
+ return mn;
27794
+
27795
+ })));
27796
+
27797
+
27798
+ /***/ }),
27799
+ /* 153 */
27800
+ /***/ (function(module, exports, __webpack_require__) {
27801
+
27802
+ //! moment.js locale configuration
27803
+
27804
+ ;(function (global, factory) {
27805
+ true ? factory(__webpack_require__(0)) :
27806
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27807
+ factory(global.moment)
27808
+ }(this, (function (moment) { 'use strict';
27809
+
27810
+
27811
+ var symbolMap = {
27812
+ '1': '१',
27813
+ '2': '२',
27814
+ '3': '३',
27815
+ '4': '४',
27816
+ '5': '५',
27817
+ '6': '६',
27818
+ '7': '७',
27819
+ '8': '८',
27820
+ '9': '९',
27821
+ '0': '०'
27822
+ },
27823
+ numberMap = {
27824
+ '१': '1',
27825
+ '२': '2',
27826
+ '३': '3',
27827
+ '४': '4',
27828
+ '५': '5',
27829
+ '६': '6',
27830
+ '७': '7',
27831
+ '८': '8',
27832
+ '९': '9',
27833
+ '०': '0'
27834
+ };
27835
+
27836
+ function relativeTimeMr(number, withoutSuffix, string, isFuture)
27837
+ {
27838
+ var output = '';
27839
+ if (withoutSuffix) {
27840
+ switch (string) {
27841
+ case 's': output = 'काही सेकंद'; break;
27842
+ case 'ss': output = '%d सेकंद'; break;
27843
+ case 'm': output = 'एक मिनिट'; break;
27844
+ case 'mm': output = '%d मिनिटे'; break;
27845
+ case 'h': output = 'एक तास'; break;
27846
+ case 'hh': output = '%d तास'; break;
27847
+ case 'd': output = 'एक दिवस'; break;
27848
+ case 'dd': output = '%d दिवस'; break;
27849
+ case 'M': output = 'एक महिना'; break;
27850
+ case 'MM': output = '%d महिने'; break;
27851
+ case 'y': output = 'एक वर्ष'; break;
27852
+ case 'yy': output = '%d वर्षे'; break;
27853
+ }
27854
+ }
27855
+ else {
27856
+ switch (string) {
27857
+ case 's': output = 'काही सेकंदां'; break;
27858
+ case 'ss': output = '%d सेकंदां'; break;
27859
+ case 'm': output = 'एका मिनिटा'; break;
27860
+ case 'mm': output = '%d मिनिटां'; break;
27861
+ case 'h': output = 'एका तासा'; break;
27862
+ case 'hh': output = '%d तासां'; break;
27863
+ case 'd': output = 'एका दिवसा'; break;
27864
+ case 'dd': output = '%d दिवसां'; break;
27865
+ case 'M': output = 'एका महिन्या'; break;
27866
+ case 'MM': output = '%d महिन्यां'; break;
27867
+ case 'y': output = 'एका वर्षा'; break;
27868
+ case 'yy': output = '%d वर्षां'; break;
27869
+ }
27870
+ }
27871
+ return output.replace(/%d/i, number);
27872
+ }
27873
+
27874
+ var mr = moment.defineLocale('mr', {
27875
+ months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
27876
+ monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
27877
+ monthsParseExact : true,
27878
+ weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
27879
+ weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
27880
+ weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
27881
+ longDateFormat : {
27882
+ LT : 'A h:mm वाजता',
27883
+ LTS : 'A h:mm:ss वाजता',
27884
+ L : 'DD/MM/YYYY',
27885
+ LL : 'D MMMM YYYY',
27886
+ LLL : 'D MMMM YYYY, A h:mm वाजता',
27887
+ LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
27888
+ },
27889
+ calendar : {
27890
+ sameDay : '[आज] LT',
27891
+ nextDay : '[उद्या] LT',
27892
+ nextWeek : 'dddd, LT',
27893
+ lastDay : '[काल] LT',
27894
+ lastWeek: '[मागील] dddd, LT',
27895
+ sameElse : 'L'
27896
+ },
27897
+ relativeTime : {
27898
+ future: '%sमध्ये',
27899
+ past: '%sपूर्वी',
27900
+ s: relativeTimeMr,
27901
+ ss: relativeTimeMr,
27902
+ m: relativeTimeMr,
27903
+ mm: relativeTimeMr,
27904
+ h: relativeTimeMr,
27905
+ hh: relativeTimeMr,
27906
+ d: relativeTimeMr,
27907
+ dd: relativeTimeMr,
27908
+ M: relativeTimeMr,
27909
+ MM: relativeTimeMr,
27910
+ y: relativeTimeMr,
27911
+ yy: relativeTimeMr
27912
+ },
27913
+ preparse: function (string) {
27914
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
27915
+ return numberMap[match];
27916
+ });
27917
+ },
27918
+ postformat: function (string) {
27919
+ return string.replace(/\d/g, function (match) {
27920
+ return symbolMap[match];
27921
+ });
27922
+ },
27923
+ meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
27924
+ meridiemHour : function (hour, meridiem) {
27925
+ if (hour === 12) {
27926
+ hour = 0;
27927
+ }
27928
+ if (meridiem === 'रात्री') {
27929
+ return hour < 4 ? hour : hour + 12;
27930
+ } else if (meridiem === 'सकाळी') {
27931
+ return hour;
27932
+ } else if (meridiem === 'दुपारी') {
27933
+ return hour >= 10 ? hour : hour + 12;
27934
+ } else if (meridiem === 'सायंकाळी') {
27935
+ return hour + 12;
27936
+ }
27937
+ },
27938
+ meridiem: function (hour, minute, isLower) {
27939
+ if (hour < 4) {
27940
+ return 'रात्री';
27941
+ } else if (hour < 10) {
27942
+ return 'सकाळी';
27943
+ } else if (hour < 17) {
27944
+ return 'दुपारी';
27945
+ } else if (hour < 20) {
27946
+ return 'सायंकाळी';
27947
+ } else {
27948
+ return 'रात्री';
27949
+ }
27950
+ },
27951
+ week : {
27952
+ dow : 0, // Sunday is the first day of the week.
27953
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
27954
+ }
27955
+ });
27956
+
27957
+ return mr;
27958
+
27959
+ })));
27960
+
27961
+
27962
+ /***/ }),
27963
+ /* 154 */
27964
+ /***/ (function(module, exports, __webpack_require__) {
27965
+
27966
+ //! moment.js locale configuration
27967
+
27968
+ ;(function (global, factory) {
27969
+ true ? factory(__webpack_require__(0)) :
27970
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
27971
+ factory(global.moment)
27972
+ }(this, (function (moment) { 'use strict';
27973
+
27974
+
27975
+ var ms = moment.defineLocale('ms', {
27976
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
27977
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
27978
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
27979
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
27980
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
27981
+ longDateFormat : {
27982
+ LT : 'HH.mm',
27983
+ LTS : 'HH.mm.ss',
27984
+ L : 'DD/MM/YYYY',
27985
+ LL : 'D MMMM YYYY',
27986
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
27987
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
27988
+ },
27989
+ meridiemParse: /pagi|tengahari|petang|malam/,
27990
+ meridiemHour: function (hour, meridiem) {
27991
+ if (hour === 12) {
27992
+ hour = 0;
27993
+ }
27994
+ if (meridiem === 'pagi') {
27995
+ return hour;
27996
+ } else if (meridiem === 'tengahari') {
27997
+ return hour >= 11 ? hour : hour + 12;
27998
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
27999
+ return hour + 12;
28000
+ }
28001
+ },
28002
+ meridiem : function (hours, minutes, isLower) {
28003
+ if (hours < 11) {
28004
+ return 'pagi';
28005
+ } else if (hours < 15) {
28006
+ return 'tengahari';
28007
+ } else if (hours < 19) {
28008
+ return 'petang';
28009
+ } else {
28010
+ return 'malam';
28011
+ }
28012
+ },
28013
+ calendar : {
28014
+ sameDay : '[Hari ini pukul] LT',
28015
+ nextDay : '[Esok pukul] LT',
28016
+ nextWeek : 'dddd [pukul] LT',
28017
+ lastDay : '[Kelmarin pukul] LT',
28018
+ lastWeek : 'dddd [lepas pukul] LT',
28019
+ sameElse : 'L'
28020
+ },
28021
+ relativeTime : {
28022
+ future : 'dalam %s',
28023
+ past : '%s yang lepas',
28024
+ s : 'beberapa saat',
28025
+ ss : '%d saat',
28026
+ m : 'seminit',
28027
+ mm : '%d minit',
28028
+ h : 'sejam',
28029
+ hh : '%d jam',
28030
+ d : 'sehari',
28031
+ dd : '%d hari',
28032
+ M : 'sebulan',
28033
+ MM : '%d bulan',
28034
+ y : 'setahun',
28035
+ yy : '%d tahun'
28036
+ },
28037
+ week : {
28038
+ dow : 1, // Monday is the first day of the week.
28039
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
28040
+ }
28041
+ });
28042
+
28043
+ return ms;
28044
+
28045
+ })));
28046
+
28047
+
28048
+ /***/ }),
28049
+ /* 155 */
28050
+ /***/ (function(module, exports, __webpack_require__) {
28051
+
28052
+ //! moment.js locale configuration
28053
+
28054
+ ;(function (global, factory) {
28055
+ true ? factory(__webpack_require__(0)) :
28056
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28057
+ factory(global.moment)
28058
+ }(this, (function (moment) { 'use strict';
28059
+
28060
+
28061
+ var msMy = moment.defineLocale('ms-my', {
28062
+ months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
28063
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
28064
+ weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
28065
+ weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
28066
+ weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
28067
+ longDateFormat : {
28068
+ LT : 'HH.mm',
28069
+ LTS : 'HH.mm.ss',
28070
+ L : 'DD/MM/YYYY',
28071
+ LL : 'D MMMM YYYY',
28072
+ LLL : 'D MMMM YYYY [pukul] HH.mm',
28073
+ LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
28074
+ },
28075
+ meridiemParse: /pagi|tengahari|petang|malam/,
28076
+ meridiemHour: function (hour, meridiem) {
28077
+ if (hour === 12) {
28078
+ hour = 0;
28079
+ }
28080
+ if (meridiem === 'pagi') {
28081
+ return hour;
28082
+ } else if (meridiem === 'tengahari') {
28083
+ return hour >= 11 ? hour : hour + 12;
28084
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
28085
+ return hour + 12;
28086
+ }
28087
+ },
28088
+ meridiem : function (hours, minutes, isLower) {
28089
+ if (hours < 11) {
28090
+ return 'pagi';
28091
+ } else if (hours < 15) {
28092
+ return 'tengahari';
28093
+ } else if (hours < 19) {
28094
+ return 'petang';
28095
+ } else {
28096
+ return 'malam';
28097
+ }
28098
+ },
28099
+ calendar : {
28100
+ sameDay : '[Hari ini pukul] LT',
28101
+ nextDay : '[Esok pukul] LT',
28102
+ nextWeek : 'dddd [pukul] LT',
28103
+ lastDay : '[Kelmarin pukul] LT',
28104
+ lastWeek : 'dddd [lepas pukul] LT',
28105
+ sameElse : 'L'
28106
+ },
28107
+ relativeTime : {
28108
+ future : 'dalam %s',
28109
+ past : '%s yang lepas',
28110
+ s : 'beberapa saat',
28111
+ ss : '%d saat',
28112
+ m : 'seminit',
28113
+ mm : '%d minit',
28114
+ h : 'sejam',
28115
+ hh : '%d jam',
28116
+ d : 'sehari',
28117
+ dd : '%d hari',
28118
+ M : 'sebulan',
28119
+ MM : '%d bulan',
28120
+ y : 'setahun',
28121
+ yy : '%d tahun'
28122
+ },
28123
+ week : {
28124
+ dow : 1, // Monday is the first day of the week.
28125
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
28126
+ }
28127
+ });
28128
+
28129
+ return msMy;
28130
+
28131
+ })));
28132
+
28133
+
28134
+ /***/ }),
28135
+ /* 156 */
28136
+ /***/ (function(module, exports, __webpack_require__) {
28137
+
28138
+ //! moment.js locale configuration
28139
+
28140
+ ;(function (global, factory) {
28141
+ true ? factory(__webpack_require__(0)) :
28142
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28143
+ factory(global.moment)
28144
+ }(this, (function (moment) { 'use strict';
28145
+
28146
+
28147
+ var mt = moment.defineLocale('mt', {
28148
+ months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),
28149
+ monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
28150
+ weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),
28151
+ weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
28152
+ weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
28153
+ longDateFormat : {
28154
+ LT : 'HH:mm',
28155
+ LTS : 'HH:mm:ss',
28156
+ L : 'DD/MM/YYYY',
28157
+ LL : 'D MMMM YYYY',
28158
+ LLL : 'D MMMM YYYY HH:mm',
28159
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
28160
+ },
28161
+ calendar : {
28162
+ sameDay : '[Illum fil-]LT',
28163
+ nextDay : '[Għada fil-]LT',
28164
+ nextWeek : 'dddd [fil-]LT',
28165
+ lastDay : '[Il-bieraħ fil-]LT',
28166
+ lastWeek : 'dddd [li għadda] [fil-]LT',
28167
+ sameElse : 'L'
28168
+ },
28169
+ relativeTime : {
28170
+ future : 'f’ %s',
28171
+ past : '%s ilu',
28172
+ s : 'ftit sekondi',
28173
+ ss : '%d sekondi',
28174
+ m : 'minuta',
28175
+ mm : '%d minuti',
28176
+ h : 'siegħa',
28177
+ hh : '%d siegħat',
28178
+ d : 'ġurnata',
28179
+ dd : '%d ġranet',
28180
+ M : 'xahar',
28181
+ MM : '%d xhur',
28182
+ y : 'sena',
28183
+ yy : '%d sni'
28184
+ },
28185
+ dayOfMonthOrdinalParse : /\d{1,2}º/,
28186
+ ordinal: '%dº',
28187
+ week : {
28188
+ dow : 1, // Monday is the first day of the week.
28189
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
28190
+ }
28191
+ });
28192
+
28193
+ return mt;
28194
+
28195
+ })));
28196
+
28197
+
28198
+ /***/ }),
28199
+ /* 157 */
28200
+ /***/ (function(module, exports, __webpack_require__) {
28201
+
28202
+ //! moment.js locale configuration
28203
+
28204
+ ;(function (global, factory) {
28205
+ true ? factory(__webpack_require__(0)) :
28206
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28207
+ factory(global.moment)
28208
+ }(this, (function (moment) { 'use strict';
28209
+
28210
+
28211
+ var symbolMap = {
28212
+ '1': '၁',
28213
+ '2': '၂',
28214
+ '3': '၃',
28215
+ '4': '၄',
28216
+ '5': '၅',
28217
+ '6': '၆',
28218
+ '7': '၇',
28219
+ '8': '၈',
28220
+ '9': '၉',
28221
+ '0': '၀'
28222
+ }, numberMap = {
28223
+ '၁': '1',
28224
+ '၂': '2',
28225
+ '၃': '3',
28226
+ '၄': '4',
28227
+ '၅': '5',
28228
+ '၆': '6',
28229
+ '၇': '7',
28230
+ '၈': '8',
28231
+ '၉': '9',
28232
+ '၀': '0'
28233
+ };
28234
+
28235
+ var my = moment.defineLocale('my', {
28236
+ months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
28237
+ monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
28238
+ weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
28239
+ weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
28240
+ weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
28241
+
28242
+ longDateFormat: {
28243
+ LT: 'HH:mm',
28244
+ LTS: 'HH:mm:ss',
28245
+ L: 'DD/MM/YYYY',
28246
+ LL: 'D MMMM YYYY',
28247
+ LLL: 'D MMMM YYYY HH:mm',
28248
+ LLLL: 'dddd D MMMM YYYY HH:mm'
28249
+ },
28250
+ calendar: {
28251
+ sameDay: '[ယနေ.] LT [မှာ]',
28252
+ nextDay: '[မနက်ဖြန်] LT [မှာ]',
28253
+ nextWeek: 'dddd LT [မှာ]',
28254
+ lastDay: '[မနေ.က] LT [မှာ]',
28255
+ lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
28256
+ sameElse: 'L'
28257
+ },
28258
+ relativeTime: {
28259
+ future: 'လာမည့် %s မှာ',
28260
+ past: 'လွန်ခဲ့သော %s က',
28261
+ s: 'စက္ကန်.အနည်းငယ်',
28262
+ ss : '%d စက္ကန့်',
28263
+ m: 'တစ်မိနစ်',
28264
+ mm: '%d မိနစ်',
28265
+ h: 'တစ်နာရီ',
28266
+ hh: '%d နာရီ',
28267
+ d: 'တစ်ရက်',
28268
+ dd: '%d ရက်',
28269
+ M: 'တစ်လ',
28270
+ MM: '%d လ',
28271
+ y: 'တစ်နှစ်',
28272
+ yy: '%d နှစ်'
28273
+ },
28274
+ preparse: function (string) {
28275
+ return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
28276
+ return numberMap[match];
28277
+ });
28278
+ },
28279
+ postformat: function (string) {
28280
+ return string.replace(/\d/g, function (match) {
28281
+ return symbolMap[match];
28282
+ });
28283
+ },
28284
+ week: {
28285
+ dow: 1, // Monday is the first day of the week.
28286
+ doy: 4 // The week that contains Jan 1st is the first week of the year.
28287
+ }
28288
+ });
28289
+
28290
+ return my;
28291
+
28292
+ })));
28293
+
28294
+
28295
+ /***/ }),
28296
+ /* 158 */
28297
+ /***/ (function(module, exports, __webpack_require__) {
28298
+
28299
+ //! moment.js locale configuration
28300
+
28301
+ ;(function (global, factory) {
28302
+ true ? factory(__webpack_require__(0)) :
28303
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28304
+ factory(global.moment)
28305
+ }(this, (function (moment) { 'use strict';
28306
+
28307
+
28308
+ var nb = moment.defineLocale('nb', {
28309
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
28310
+ monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
28311
+ monthsParseExact : true,
28312
+ weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
28313
+ weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
28314
+ weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
28315
+ weekdaysParseExact : true,
28316
+ longDateFormat : {
28317
+ LT : 'HH:mm',
28318
+ LTS : 'HH:mm:ss',
28319
+ L : 'DD.MM.YYYY',
28320
+ LL : 'D. MMMM YYYY',
28321
+ LLL : 'D. MMMM YYYY [kl.] HH:mm',
28322
+ LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
28323
+ },
28324
+ calendar : {
28325
+ sameDay: '[i dag kl.] LT',
28326
+ nextDay: '[i morgen kl.] LT',
28327
+ nextWeek: 'dddd [kl.] LT',
28328
+ lastDay: '[i går kl.] LT',
28329
+ lastWeek: '[forrige] dddd [kl.] LT',
28330
+ sameElse: 'L'
28331
+ },
28332
+ relativeTime : {
28333
+ future : 'om %s',
28334
+ past : '%s siden',
28335
+ s : 'noen sekunder',
28336
+ ss : '%d sekunder',
28337
+ m : 'ett minutt',
28338
+ mm : '%d minutter',
28339
+ h : 'en time',
28340
+ hh : '%d timer',
28341
+ d : 'en dag',
28342
+ dd : '%d dager',
28343
+ M : 'en måned',
28344
+ MM : '%d måneder',
28345
+ y : 'ett år',
28346
+ yy : '%d år'
28347
+ },
28348
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
28349
+ ordinal : '%d.',
28350
+ week : {
28351
+ dow : 1, // Monday is the first day of the week.
28352
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
28353
+ }
28354
+ });
28355
+
28356
+ return nb;
28357
+
28358
+ })));
28359
+
28360
+
28361
+ /***/ }),
28362
+ /* 159 */
28363
+ /***/ (function(module, exports, __webpack_require__) {
28364
+
28365
+ //! moment.js locale configuration
28366
+
28367
+ ;(function (global, factory) {
28368
+ true ? factory(__webpack_require__(0)) :
28369
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28370
+ factory(global.moment)
28371
+ }(this, (function (moment) { 'use strict';
28372
+
28373
+
28374
+ var symbolMap = {
28375
+ '1': '१',
28376
+ '2': '२',
28377
+ '3': '३',
28378
+ '4': '४',
28379
+ '5': '५',
28380
+ '6': '६',
28381
+ '7': '७',
28382
+ '8': '८',
28383
+ '9': '९',
28384
+ '0': '०'
28385
+ },
28386
+ numberMap = {
28387
+ '१': '1',
28388
+ '२': '2',
28389
+ '३': '3',
28390
+ '४': '4',
28391
+ '५': '5',
28392
+ '६': '6',
28393
+ '७': '7',
28394
+ '८': '8',
28395
+ '९': '9',
28396
+ '०': '0'
28397
+ };
28398
+
28399
+ var ne = moment.defineLocale('ne', {
28400
+ months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
28401
+ monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
28402
+ monthsParseExact : true,
28403
+ weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
28404
+ weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
28405
+ weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
28406
+ weekdaysParseExact : true,
28407
+ longDateFormat : {
28408
+ LT : 'Aको h:mm बजे',
28409
+ LTS : 'Aको h:mm:ss बजे',
28410
+ L : 'DD/MM/YYYY',
28411
+ LL : 'D MMMM YYYY',
28412
+ LLL : 'D MMMM YYYY, Aको h:mm बजे',
28413
+ LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
28414
+ },
28415
+ preparse: function (string) {
28416
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
28417
+ return numberMap[match];
28418
+ });
28419
+ },
28420
+ postformat: function (string) {
28421
+ return string.replace(/\d/g, function (match) {
28422
+ return symbolMap[match];
28423
+ });
28424
+ },
28425
+ meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
28426
+ meridiemHour : function (hour, meridiem) {
28427
+ if (hour === 12) {
28428
+ hour = 0;
28429
+ }
28430
+ if (meridiem === 'राति') {
28431
+ return hour < 4 ? hour : hour + 12;
28432
+ } else if (meridiem === 'बिहान') {
28433
+ return hour;
28434
+ } else if (meridiem === 'दिउँसो') {
28435
+ return hour >= 10 ? hour : hour + 12;
28436
+ } else if (meridiem === 'साँझ') {
28437
+ return hour + 12;
28438
+ }
28439
+ },
28440
+ meridiem : function (hour, minute, isLower) {
28441
+ if (hour < 3) {
28442
+ return 'राति';
28443
+ } else if (hour < 12) {
28444
+ return 'बिहान';
28445
+ } else if (hour < 16) {
28446
+ return 'दिउँसो';
28447
+ } else if (hour < 20) {
28448
+ return 'साँझ';
28449
+ } else {
28450
+ return 'राति';
28451
+ }
28452
+ },
28453
+ calendar : {
28454
+ sameDay : '[आज] LT',
28455
+ nextDay : '[भोलि] LT',
28456
+ nextWeek : '[आउँदो] dddd[,] LT',
28457
+ lastDay : '[हिजो] LT',
28458
+ lastWeek : '[गएको] dddd[,] LT',
28459
+ sameElse : 'L'
28460
+ },
28461
+ relativeTime : {
28462
+ future : '%sमा',
28463
+ past : '%s अगाडि',
28464
+ s : 'केही क्षण',
28465
+ ss : '%d सेकेण्ड',
28466
+ m : 'एक मिनेट',
28467
+ mm : '%d मिनेट',
28468
+ h : 'एक घण्टा',
28469
+ hh : '%d घण्टा',
28470
+ d : 'एक दिन',
28471
+ dd : '%d दिन',
28472
+ M : 'एक महिना',
28473
+ MM : '%d महिना',
28474
+ y : 'एक बर्ष',
28475
+ yy : '%d बर्ष'
28476
+ },
28477
+ week : {
28478
+ dow : 0, // Sunday is the first day of the week.
28479
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
28480
+ }
28481
+ });
28482
+
28483
+ return ne;
28484
+
28485
+ })));
28486
+
28487
+
28488
+ /***/ }),
28489
+ /* 160 */
28490
+ /***/ (function(module, exports, __webpack_require__) {
28491
+
28492
+ //! moment.js locale configuration
28493
+
28494
+ ;(function (global, factory) {
28495
+ true ? factory(__webpack_require__(0)) :
28496
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28497
+ factory(global.moment)
28498
+ }(this, (function (moment) { 'use strict';
28499
+
28500
+
28501
+ var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
28502
+ monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
28503
+
28504
+ var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
28505
+ var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
28506
+
28507
+ var nl = moment.defineLocale('nl', {
28508
+ months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
28509
+ monthsShort : function (m, format) {
28510
+ if (!m) {
28511
+ return monthsShortWithDots;
28512
+ } else if (/-MMM-/.test(format)) {
28513
+ return monthsShortWithoutDots[m.month()];
28514
+ } else {
28515
+ return monthsShortWithDots[m.month()];
28516
+ }
28517
+ },
28518
+
28519
+ monthsRegex: monthsRegex,
28520
+ monthsShortRegex: monthsRegex,
28521
+ monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
28522
+ monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
28523
+
28524
+ monthsParse : monthsParse,
28525
+ longMonthsParse : monthsParse,
28526
+ shortMonthsParse : monthsParse,
28527
+
28528
+ weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
28529
+ weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
28530
+ weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
28531
+ weekdaysParseExact : true,
28532
+ longDateFormat : {
28533
+ LT : 'HH:mm',
28534
+ LTS : 'HH:mm:ss',
28535
+ L : 'DD-MM-YYYY',
28536
+ LL : 'D MMMM YYYY',
28537
+ LLL : 'D MMMM YYYY HH:mm',
28538
+ LLLL : 'dddd D MMMM YYYY HH:mm'
28539
+ },
28540
+ calendar : {
28541
+ sameDay: '[vandaag om] LT',
28542
+ nextDay: '[morgen om] LT',
28543
+ nextWeek: 'dddd [om] LT',
28544
+ lastDay: '[gisteren om] LT',
28545
+ lastWeek: '[afgelopen] dddd [om] LT',
28546
+ sameElse: 'L'
28547
+ },
28548
+ relativeTime : {
28549
+ future : 'over %s',
28550
+ past : '%s geleden',
28551
+ s : 'een paar seconden',
28552
+ ss : '%d seconden',
28553
+ m : 'één minuut',
28554
+ mm : '%d minuten',
28555
+ h : 'één uur',
28556
+ hh : '%d uur',
28557
+ d : 'één dag',
28558
+ dd : '%d dagen',
28559
+ M : 'één maand',
28560
+ MM : '%d maanden',
28561
+ y : 'één jaar',
28562
+ yy : '%d jaar'
28563
+ },
28564
+ dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
28565
+ ordinal : function (number) {
28566
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
28567
+ },
28568
+ week : {
28569
+ dow : 1, // Monday is the first day of the week.
28570
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
28571
+ }
28572
+ });
28573
+
28574
+ return nl;
28575
+
28576
+ })));
28577
+
28578
+
28579
+ /***/ }),
28580
+ /* 161 */
28581
+ /***/ (function(module, exports, __webpack_require__) {
28582
+
28583
+ //! moment.js locale configuration
28584
+
28585
+ ;(function (global, factory) {
28586
+ true ? factory(__webpack_require__(0)) :
28587
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28588
+ factory(global.moment)
28589
+ }(this, (function (moment) { 'use strict';
28590
+
28591
+
28592
+ var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
28593
+ monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
28594
+
28595
+ var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
28596
+ var monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
28597
+
28598
+ var nlBe = moment.defineLocale('nl-be', {
28599
+ months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
28600
+ monthsShort : function (m, format) {
28601
+ if (!m) {
28602
+ return monthsShortWithDots;
28603
+ } else if (/-MMM-/.test(format)) {
28604
+ return monthsShortWithoutDots[m.month()];
28605
+ } else {
28606
+ return monthsShortWithDots[m.month()];
28607
+ }
28608
+ },
28609
+
28610
+ monthsRegex: monthsRegex,
28611
+ monthsShortRegex: monthsRegex,
28612
+ monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
28613
+ monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
28614
+
28615
+ monthsParse : monthsParse,
28616
+ longMonthsParse : monthsParse,
28617
+ shortMonthsParse : monthsParse,
28618
+
28619
+ weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
28620
+ weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
28621
+ weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
28622
+ weekdaysParseExact : true,
28623
+ longDateFormat : {
28624
+ LT : 'HH:mm',
28625
+ LTS : 'HH:mm:ss',
28626
+ L : 'DD/MM/YYYY',
28627
+ LL : 'D MMMM YYYY',
28628
+ LLL : 'D MMMM YYYY HH:mm',
28629
+ LLLL : 'dddd D MMMM YYYY HH:mm'
28630
+ },
28631
+ calendar : {
28632
+ sameDay: '[vandaag om] LT',
28633
+ nextDay: '[morgen om] LT',
28634
+ nextWeek: 'dddd [om] LT',
28635
+ lastDay: '[gisteren om] LT',
28636
+ lastWeek: '[afgelopen] dddd [om] LT',
28637
+ sameElse: 'L'
28638
+ },
28639
+ relativeTime : {
28640
+ future : 'over %s',
28641
+ past : '%s geleden',
28642
+ s : 'een paar seconden',
28643
+ ss : '%d seconden',
28644
+ m : 'één minuut',
28645
+ mm : '%d minuten',
28646
+ h : 'één uur',
28647
+ hh : '%d uur',
28648
+ d : 'één dag',
28649
+ dd : '%d dagen',
28650
+ M : 'één maand',
28651
+ MM : '%d maanden',
28652
+ y : 'één jaar',
28653
+ yy : '%d jaar'
28654
+ },
28655
+ dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
28656
+ ordinal : function (number) {
28657
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
28658
+ },
28659
+ week : {
28660
+ dow : 1, // Monday is the first day of the week.
28661
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
28662
+ }
28663
+ });
28664
+
28665
+ return nlBe;
28666
+
28667
+ })));
28668
+
28669
+
28670
+ /***/ }),
28671
+ /* 162 */
28672
+ /***/ (function(module, exports, __webpack_require__) {
28673
+
28674
+ //! moment.js locale configuration
28675
+
28676
+ ;(function (global, factory) {
28677
+ true ? factory(__webpack_require__(0)) :
28678
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28679
+ factory(global.moment)
28680
+ }(this, (function (moment) { 'use strict';
28681
+
28682
+
28683
+ var nn = moment.defineLocale('nn', {
28684
+ months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
28685
+ monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
28686
+ weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
28687
+ weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
28688
+ weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
28689
+ longDateFormat : {
28690
+ LT : 'HH:mm',
28691
+ LTS : 'HH:mm:ss',
28692
+ L : 'DD.MM.YYYY',
28693
+ LL : 'D. MMMM YYYY',
28694
+ LLL : 'D. MMMM YYYY [kl.] H:mm',
28695
+ LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
28696
+ },
28697
+ calendar : {
28698
+ sameDay: '[I dag klokka] LT',
28699
+ nextDay: '[I morgon klokka] LT',
28700
+ nextWeek: 'dddd [klokka] LT',
28701
+ lastDay: '[I går klokka] LT',
28702
+ lastWeek: '[Føregåande] dddd [klokka] LT',
28703
+ sameElse: 'L'
28704
+ },
28705
+ relativeTime : {
28706
+ future : 'om %s',
28707
+ past : '%s sidan',
28708
+ s : 'nokre sekund',
28709
+ ss : '%d sekund',
28710
+ m : 'eit minutt',
28711
+ mm : '%d minutt',
28712
+ h : 'ein time',
28713
+ hh : '%d timar',
28714
+ d : 'ein dag',
28715
+ dd : '%d dagar',
28716
+ M : 'ein månad',
28717
+ MM : '%d månader',
28718
+ y : 'eit år',
28719
+ yy : '%d år'
28720
+ },
28721
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
28722
+ ordinal : '%d.',
28723
+ week : {
28724
+ dow : 1, // Monday is the first day of the week.
28725
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
28726
+ }
28727
+ });
28728
+
28729
+ return nn;
28730
+
28731
+ })));
28732
+
28733
+
28734
+ /***/ }),
28735
+ /* 163 */
28736
+ /***/ (function(module, exports, __webpack_require__) {
28737
+
28738
+ //! moment.js locale configuration
28739
+
28740
+ ;(function (global, factory) {
28741
+ true ? factory(__webpack_require__(0)) :
28742
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28743
+ factory(global.moment)
28744
+ }(this, (function (moment) { 'use strict';
28745
+
28746
+
28747
+ var symbolMap = {
28748
+ '1': '੧',
28749
+ '2': '੨',
28750
+ '3': '੩',
28751
+ '4': '੪',
28752
+ '5': '੫',
28753
+ '6': '੬',
28754
+ '7': '੭',
28755
+ '8': '੮',
28756
+ '9': '੯',
28757
+ '0': '੦'
28758
+ },
28759
+ numberMap = {
28760
+ '੧': '1',
28761
+ '੨': '2',
28762
+ '੩': '3',
28763
+ '੪': '4',
28764
+ '੫': '5',
28765
+ '੬': '6',
28766
+ '੭': '7',
28767
+ '੮': '8',
28768
+ '੯': '9',
28769
+ '੦': '0'
28770
+ };
28771
+
28772
+ var paIn = moment.defineLocale('pa-in', {
28773
+ // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.
28774
+ months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
28775
+ monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
28776
+ weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),
28777
+ weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
28778
+ weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
28779
+ longDateFormat : {
28780
+ LT : 'A h:mm ਵਜੇ',
28781
+ LTS : 'A h:mm:ss ਵਜੇ',
28782
+ L : 'DD/MM/YYYY',
28783
+ LL : 'D MMMM YYYY',
28784
+ LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',
28785
+ LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'
28786
+ },
28787
+ calendar : {
28788
+ sameDay : '[ਅਜ] LT',
28789
+ nextDay : '[ਕਲ] LT',
28790
+ nextWeek : 'dddd, LT',
28791
+ lastDay : '[ਕਲ] LT',
28792
+ lastWeek : '[ਪਿਛਲੇ] dddd, LT',
28793
+ sameElse : 'L'
28794
+ },
28795
+ relativeTime : {
28796
+ future : '%s ਵਿੱਚ',
28797
+ past : '%s ਪਿਛਲੇ',
28798
+ s : 'ਕੁਝ ਸਕਿੰਟ',
28799
+ ss : '%d ਸਕਿੰਟ',
28800
+ m : 'ਇਕ ਮਿੰਟ',
28801
+ mm : '%d ਮਿੰਟ',
28802
+ h : 'ਇੱਕ ਘੰਟਾ',
28803
+ hh : '%d ਘੰਟੇ',
28804
+ d : 'ਇੱਕ ਦਿਨ',
28805
+ dd : '%d ਦਿਨ',
28806
+ M : 'ਇੱਕ ਮਹੀਨਾ',
28807
+ MM : '%d ਮਹੀਨੇ',
28808
+ y : 'ਇੱਕ ਸਾਲ',
28809
+ yy : '%d ਸਾਲ'
28810
+ },
28811
+ preparse: function (string) {
28812
+ return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
28813
+ return numberMap[match];
28814
+ });
28815
+ },
28816
+ postformat: function (string) {
28817
+ return string.replace(/\d/g, function (match) {
28818
+ return symbolMap[match];
28819
+ });
28820
+ },
28821
+ // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
28822
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
28823
+ meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
28824
+ meridiemHour : function (hour, meridiem) {
28825
+ if (hour === 12) {
28826
+ hour = 0;
28827
+ }
28828
+ if (meridiem === 'ਰਾਤ') {
28829
+ return hour < 4 ? hour : hour + 12;
28830
+ } else if (meridiem === 'ਸਵੇਰ') {
28831
+ return hour;
28832
+ } else if (meridiem === 'ਦੁਪਹਿਰ') {
28833
+ return hour >= 10 ? hour : hour + 12;
28834
+ } else if (meridiem === 'ਸ਼ਾਮ') {
28835
+ return hour + 12;
28836
+ }
28837
+ },
28838
+ meridiem : function (hour, minute, isLower) {
28839
+ if (hour < 4) {
28840
+ return 'ਰਾਤ';
28841
+ } else if (hour < 10) {
28842
+ return 'ਸਵੇਰ';
28843
+ } else if (hour < 17) {
28844
+ return 'ਦੁਪਹਿਰ';
28845
+ } else if (hour < 20) {
28846
+ return 'ਸ਼ਾਮ';
28847
+ } else {
28848
+ return 'ਰਾਤ';
28849
+ }
28850
+ },
28851
+ week : {
28852
+ dow : 0, // Sunday is the first day of the week.
28853
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
28854
+ }
28855
+ });
28856
+
28857
+ return paIn;
28858
+
28859
+ })));
28860
+
28861
+
28862
+ /***/ }),
28863
+ /* 164 */
28864
+ /***/ (function(module, exports, __webpack_require__) {
28865
+
28866
+ //! moment.js locale configuration
28867
+
28868
+ ;(function (global, factory) {
28869
+ true ? factory(__webpack_require__(0)) :
28870
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
28871
+ factory(global.moment)
28872
+ }(this, (function (moment) { 'use strict';
28873
+
28874
+
28875
+ var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
28876
+ monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
28877
+ function plural(n) {
28878
+ return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
28879
+ }
28880
+ function translate(number, withoutSuffix, key) {
28881
+ var result = number + ' ';
28882
+ switch (key) {
28883
+ case 'ss':
28884
+ return result + (plural(number) ? 'sekundy' : 'sekund');
28885
+ case 'm':
28886
+ return withoutSuffix ? 'minuta' : 'minutę';
28887
+ case 'mm':
28888
+ return result + (plural(number) ? 'minuty' : 'minut');
28889
+ case 'h':
28890
+ return withoutSuffix ? 'godzina' : 'godzinę';
28891
+ case 'hh':
28892
+ return result + (plural(number) ? 'godziny' : 'godzin');
28893
+ case 'MM':
28894
+ return result + (plural(number) ? 'miesiące' : 'miesięcy');
28895
+ case 'yy':
28896
+ return result + (plural(number) ? 'lata' : 'lat');
28897
+ }
28898
+ }
28899
+
28900
+ var pl = moment.defineLocale('pl', {
28901
+ months : function (momentToFormat, format) {
28902
+ if (!momentToFormat) {
28903
+ return monthsNominative;
28904
+ } else if (format === '') {
28905
+ // Hack: if format empty we know this is used to generate
28906
+ // RegExp by moment. Give then back both valid forms of months
28907
+ // in RegExp ready format.
28908
+ return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
28909
+ } else if (/D MMMM/.test(format)) {
28910
+ return monthsSubjective[momentToFormat.month()];
28911
+ } else {
28912
+ return monthsNominative[momentToFormat.month()];
28913
+ }
28914
+ },
28915
+ monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
28916
+ weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
28917
+ weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
28918
+ weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
28919
+ longDateFormat : {
28920
+ LT : 'HH:mm',
28921
+ LTS : 'HH:mm:ss',
28922
+ L : 'DD.MM.YYYY',
28923
+ LL : 'D MMMM YYYY',
28924
+ LLL : 'D MMMM YYYY HH:mm',
28925
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
28926
+ },
28927
+ calendar : {
28928
+ sameDay: '[Dziś o] LT',
28929
+ nextDay: '[Jutro o] LT',
28930
+ nextWeek: function () {
28931
+ switch (this.day()) {
28932
+ case 0:
28933
+ return '[W niedzielę o] LT';
28934
+
28935
+ case 2:
28936
+ return '[We wtorek o] LT';
28937
+
28938
+ case 3:
28939
+ return '[W środę o] LT';
28940
+
28941
+ case 6:
28942
+ return '[W sobotę o] LT';
28943
+
28944
+ default:
28945
+ return '[W] dddd [o] LT';
28946
+ }
28947
+ },
28948
+ lastDay: '[Wczoraj o] LT',
28949
+ lastWeek: function () {
28950
+ switch (this.day()) {
28951
+ case 0:
28952
+ return '[W zeszłą niedzielę o] LT';
28953
+ case 3:
28954
+ return '[W zeszłą środę o] LT';
28955
+ case 6:
28956
+ return '[W zeszłą sobotę o] LT';
28957
+ default:
28958
+ return '[W zeszły] dddd [o] LT';
28959
+ }
28960
+ },
28961
+ sameElse: 'L'
28962
+ },
28963
+ relativeTime : {
28964
+ future : 'za %s',
28965
+ past : '%s temu',
28966
+ s : 'kilka sekund',
28967
+ ss : translate,
28968
+ m : translate,
28969
+ mm : translate,
28970
+ h : translate,
28971
+ hh : translate,
28972
+ d : '1 dzień',
28973
+ dd : '%d dni',
28974
+ M : 'miesiąc',
28975
+ MM : translate,
28976
+ y : 'rok',
28977
+ yy : translate
28978
+ },
28979
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
28980
+ ordinal : '%d.',
28981
+ week : {
28982
+ dow : 1, // Monday is the first day of the week.
28983
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
28984
+ }
28985
+ });
28986
+
28987
+ return pl;
28988
+
28989
+ })));
28990
+
28991
+
28992
+ /***/ }),
28993
+ /* 165 */
28994
+ /***/ (function(module, exports, __webpack_require__) {
28995
+
28996
+ //! moment.js locale configuration
28997
+
28998
+ ;(function (global, factory) {
28999
+ true ? factory(__webpack_require__(0)) :
29000
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29001
+ factory(global.moment)
29002
+ }(this, (function (moment) { 'use strict';
29003
+
29004
+
29005
+ var pt = moment.defineLocale('pt', {
29006
+ months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
29007
+ monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
29008
+ weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
29009
+ weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
29010
+ weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
29011
+ weekdaysParseExact : true,
29012
+ longDateFormat : {
29013
+ LT : 'HH:mm',
29014
+ LTS : 'HH:mm:ss',
29015
+ L : 'DD/MM/YYYY',
29016
+ LL : 'D [de] MMMM [de] YYYY',
29017
+ LLL : 'D [de] MMMM [de] YYYY HH:mm',
29018
+ LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
29019
+ },
29020
+ calendar : {
29021
+ sameDay: '[Hoje às] LT',
29022
+ nextDay: '[Amanhã às] LT',
29023
+ nextWeek: 'dddd [às] LT',
29024
+ lastDay: '[Ontem às] LT',
29025
+ lastWeek: function () {
29026
+ return (this.day() === 0 || this.day() === 6) ?
29027
+ '[Último] dddd [às] LT' : // Saturday + Sunday
29028
+ '[Última] dddd [às] LT'; // Monday - Friday
29029
+ },
29030
+ sameElse: 'L'
29031
+ },
29032
+ relativeTime : {
29033
+ future : 'em %s',
29034
+ past : 'há %s',
29035
+ s : 'segundos',
29036
+ ss : '%d segundos',
29037
+ m : 'um minuto',
29038
+ mm : '%d minutos',
29039
+ h : 'uma hora',
29040
+ hh : '%d horas',
29041
+ d : 'um dia',
29042
+ dd : '%d dias',
29043
+ M : 'um mês',
29044
+ MM : '%d meses',
29045
+ y : 'um ano',
29046
+ yy : '%d anos'
29047
+ },
29048
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
29049
+ ordinal : '%dº',
29050
+ week : {
29051
+ dow : 1, // Monday is the first day of the week.
29052
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
29053
+ }
29054
+ });
29055
+
29056
+ return pt;
29057
+
29058
+ })));
29059
+
29060
+
29061
+ /***/ }),
29062
+ /* 166 */
29063
+ /***/ (function(module, exports, __webpack_require__) {
29064
+
29065
+ //! moment.js locale configuration
29066
+
29067
+ ;(function (global, factory) {
29068
+ true ? factory(__webpack_require__(0)) :
29069
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29070
+ factory(global.moment)
29071
+ }(this, (function (moment) { 'use strict';
29072
+
29073
+
29074
+ var ptBr = moment.defineLocale('pt-br', {
29075
+ months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
29076
+ monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
29077
+ weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
29078
+ weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
29079
+ weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
29080
+ weekdaysParseExact : true,
29081
+ longDateFormat : {
29082
+ LT : 'HH:mm',
29083
+ LTS : 'HH:mm:ss',
29084
+ L : 'DD/MM/YYYY',
29085
+ LL : 'D [de] MMMM [de] YYYY',
29086
+ LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
29087
+ LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
29088
+ },
29089
+ calendar : {
29090
+ sameDay: '[Hoje às] LT',
29091
+ nextDay: '[Amanhã às] LT',
29092
+ nextWeek: 'dddd [às] LT',
29093
+ lastDay: '[Ontem às] LT',
29094
+ lastWeek: function () {
29095
+ return (this.day() === 0 || this.day() === 6) ?
29096
+ '[Último] dddd [às] LT' : // Saturday + Sunday
29097
+ '[Última] dddd [às] LT'; // Monday - Friday
29098
+ },
29099
+ sameElse: 'L'
29100
+ },
29101
+ relativeTime : {
29102
+ future : 'em %s',
29103
+ past : 'há %s',
29104
+ s : 'poucos segundos',
29105
+ ss : '%d segundos',
29106
+ m : 'um minuto',
29107
+ mm : '%d minutos',
29108
+ h : 'uma hora',
29109
+ hh : '%d horas',
29110
+ d : 'um dia',
29111
+ dd : '%d dias',
29112
+ M : 'um mês',
29113
+ MM : '%d meses',
29114
+ y : 'um ano',
29115
+ yy : '%d anos'
29116
+ },
29117
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
29118
+ ordinal : '%dº'
29119
+ });
29120
+
29121
+ return ptBr;
29122
+
29123
+ })));
29124
+
29125
+
29126
+ /***/ }),
29127
+ /* 167 */
29128
+ /***/ (function(module, exports, __webpack_require__) {
29129
+
29130
+ //! moment.js locale configuration
29131
+
29132
+ ;(function (global, factory) {
29133
+ true ? factory(__webpack_require__(0)) :
29134
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29135
+ factory(global.moment)
29136
+ }(this, (function (moment) { 'use strict';
29137
+
29138
+
29139
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
29140
+ var format = {
29141
+ 'ss': 'secunde',
29142
+ 'mm': 'minute',
29143
+ 'hh': 'ore',
29144
+ 'dd': 'zile',
29145
+ 'MM': 'luni',
29146
+ 'yy': 'ani'
29147
+ },
29148
+ separator = ' ';
29149
+ if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
29150
+ separator = ' de ';
29151
+ }
29152
+ return number + separator + format[key];
29153
+ }
29154
+
29155
+ var ro = moment.defineLocale('ro', {
29156
+ months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
29157
+ monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
29158
+ monthsParseExact: true,
29159
+ weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
29160
+ weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
29161
+ weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
29162
+ longDateFormat : {
29163
+ LT : 'H:mm',
29164
+ LTS : 'H:mm:ss',
29165
+ L : 'DD.MM.YYYY',
29166
+ LL : 'D MMMM YYYY',
29167
+ LLL : 'D MMMM YYYY H:mm',
29168
+ LLLL : 'dddd, D MMMM YYYY H:mm'
29169
+ },
29170
+ calendar : {
29171
+ sameDay: '[azi la] LT',
29172
+ nextDay: '[mâine la] LT',
29173
+ nextWeek: 'dddd [la] LT',
29174
+ lastDay: '[ieri la] LT',
29175
+ lastWeek: '[fosta] dddd [la] LT',
29176
+ sameElse: 'L'
29177
+ },
29178
+ relativeTime : {
29179
+ future : 'peste %s',
29180
+ past : '%s în urmă',
29181
+ s : 'câteva secunde',
29182
+ ss : relativeTimeWithPlural,
29183
+ m : 'un minut',
29184
+ mm : relativeTimeWithPlural,
29185
+ h : 'o oră',
29186
+ hh : relativeTimeWithPlural,
29187
+ d : 'o zi',
29188
+ dd : relativeTimeWithPlural,
29189
+ M : 'o lună',
29190
+ MM : relativeTimeWithPlural,
29191
+ y : 'un an',
29192
+ yy : relativeTimeWithPlural
29193
+ },
29194
+ week : {
29195
+ dow : 1, // Monday is the first day of the week.
29196
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
29197
+ }
29198
+ });
29199
+
29200
+ return ro;
29201
+
29202
+ })));
29203
+
29204
+
29205
+ /***/ }),
29206
+ /* 168 */
29207
+ /***/ (function(module, exports, __webpack_require__) {
29208
+
29209
+ //! moment.js locale configuration
29210
+
29211
+ ;(function (global, factory) {
29212
+ true ? factory(__webpack_require__(0)) :
29213
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29214
+ factory(global.moment)
29215
+ }(this, (function (moment) { 'use strict';
29216
+
29217
+
29218
+ function plural(word, num) {
29219
+ var forms = word.split('_');
29220
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
29221
+ }
29222
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
29223
+ var format = {
29224
+ 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
29225
+ 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
29226
+ 'hh': 'час_часа_часов',
29227
+ 'dd': 'день_дня_дней',
29228
+ 'MM': 'месяц_месяца_месяцев',
29229
+ 'yy': 'год_года_лет'
29230
+ };
29231
+ if (key === 'm') {
29232
+ return withoutSuffix ? 'минута' : 'минуту';
29233
+ }
29234
+ else {
29235
+ return number + ' ' + plural(format[key], +number);
29236
+ }
29237
+ }
29238
+ var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
29239
+
29240
+ // http://new.gramota.ru/spravka/rules/139-prop : § 103
29241
+ // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
29242
+ // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
29243
+ var ru = moment.defineLocale('ru', {
29244
+ months : {
29245
+ format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
29246
+ standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
29247
+ },
29248
+ monthsShort : {
29249
+ // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
29250
+ format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
29251
+ standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
29252
+ },
29253
+ weekdays : {
29254
+ standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
29255
+ format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),
29256
+ isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
29257
+ },
29258
+ weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
29259
+ weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
29260
+ monthsParse : monthsParse,
29261
+ longMonthsParse : monthsParse,
29262
+ shortMonthsParse : monthsParse,
29263
+
29264
+ // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
29265
+ monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
29266
+
29267
+ // копия предыдущего
29268
+ monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
29269
+
29270
+ // полные названия с падежами
29271
+ monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
29272
+
29273
+ // Выражение, которое соотвествует только сокращённым формам
29274
+ monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
29275
+ longDateFormat : {
29276
+ LT : 'H:mm',
29277
+ LTS : 'H:mm:ss',
29278
+ L : 'DD.MM.YYYY',
29279
+ LL : 'D MMMM YYYY г.',
29280
+ LLL : 'D MMMM YYYY г., H:mm',
29281
+ LLLL : 'dddd, D MMMM YYYY г., H:mm'
29282
+ },
29283
+ calendar : {
29284
+ sameDay: '[Сегодня, в] LT',
29285
+ nextDay: '[Завтра, в] LT',
29286
+ lastDay: '[Вчера, в] LT',
29287
+ nextWeek: function (now) {
29288
+ if (now.week() !== this.week()) {
29289
+ switch (this.day()) {
29290
+ case 0:
29291
+ return '[В следующее] dddd, [в] LT';
29292
+ case 1:
29293
+ case 2:
29294
+ case 4:
29295
+ return '[В следующий] dddd, [в] LT';
29296
+ case 3:
29297
+ case 5:
29298
+ case 6:
29299
+ return '[В следующую] dddd, [в] LT';
29300
+ }
29301
+ } else {
29302
+ if (this.day() === 2) {
29303
+ return '[Во] dddd, [в] LT';
29304
+ } else {
29305
+ return '[В] dddd, [в] LT';
29306
+ }
29307
+ }
29308
+ },
29309
+ lastWeek: function (now) {
29310
+ if (now.week() !== this.week()) {
29311
+ switch (this.day()) {
29312
+ case 0:
29313
+ return '[В прошлое] dddd, [в] LT';
29314
+ case 1:
29315
+ case 2:
29316
+ case 4:
29317
+ return '[В прошлый] dddd, [в] LT';
29318
+ case 3:
29319
+ case 5:
29320
+ case 6:
29321
+ return '[В прошлую] dddd, [в] LT';
29322
+ }
29323
+ } else {
29324
+ if (this.day() === 2) {
29325
+ return '[Во] dddd, [в] LT';
29326
+ } else {
29327
+ return '[В] dddd, [в] LT';
29328
+ }
29329
+ }
29330
+ },
29331
+ sameElse: 'L'
29332
+ },
29333
+ relativeTime : {
29334
+ future : 'через %s',
29335
+ past : '%s назад',
29336
+ s : 'несколько секунд',
29337
+ ss : relativeTimeWithPlural,
29338
+ m : relativeTimeWithPlural,
29339
+ mm : relativeTimeWithPlural,
29340
+ h : 'час',
29341
+ hh : relativeTimeWithPlural,
29342
+ d : 'день',
29343
+ dd : relativeTimeWithPlural,
29344
+ M : 'месяц',
29345
+ MM : relativeTimeWithPlural,
29346
+ y : 'год',
29347
+ yy : relativeTimeWithPlural
29348
+ },
29349
+ meridiemParse: /ночи|утра|дня|вечера/i,
29350
+ isPM : function (input) {
29351
+ return /^(дня|вечера)$/.test(input);
29352
+ },
29353
+ meridiem : function (hour, minute, isLower) {
29354
+ if (hour < 4) {
29355
+ return 'ночи';
29356
+ } else if (hour < 12) {
29357
+ return 'утра';
29358
+ } else if (hour < 17) {
29359
+ return 'дня';
29360
+ } else {
29361
+ return 'вечера';
29362
+ }
29363
+ },
29364
+ dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
29365
+ ordinal: function (number, period) {
29366
+ switch (period) {
29367
+ case 'M':
29368
+ case 'd':
29369
+ case 'DDD':
29370
+ return number + '-й';
29371
+ case 'D':
29372
+ return number + '-го';
29373
+ case 'w':
29374
+ case 'W':
29375
+ return number + '-я';
29376
+ default:
29377
+ return number;
29378
+ }
29379
+ },
29380
+ week : {
29381
+ dow : 1, // Monday is the first day of the week.
29382
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
29383
+ }
29384
+ });
29385
+
29386
+ return ru;
29387
+
29388
+ })));
29389
+
29390
+
29391
+ /***/ }),
29392
+ /* 169 */
29393
+ /***/ (function(module, exports, __webpack_require__) {
29394
+
29395
+ //! moment.js locale configuration
29396
+
29397
+ ;(function (global, factory) {
29398
+ true ? factory(__webpack_require__(0)) :
29399
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29400
+ factory(global.moment)
29401
+ }(this, (function (moment) { 'use strict';
29402
+
29403
+
29404
+ var months = [
29405
+ 'جنوري',
29406
+ 'فيبروري',
29407
+ 'مارچ',
29408
+ 'اپريل',
29409
+ 'مئي',
29410
+ 'جون',
29411
+ 'جولاءِ',
29412
+ 'آگسٽ',
29413
+ 'سيپٽمبر',
29414
+ 'آڪٽوبر',
29415
+ 'نومبر',
29416
+ 'ڊسمبر'
29417
+ ];
29418
+ var days = [
29419
+ 'آچر',
29420
+ 'سومر',
29421
+ 'اڱارو',
29422
+ 'اربع',
29423
+ 'خميس',
29424
+ 'جمع',
29425
+ 'ڇنڇر'
29426
+ ];
29427
+
29428
+ var sd = moment.defineLocale('sd', {
29429
+ months : months,
29430
+ monthsShort : months,
29431
+ weekdays : days,
29432
+ weekdaysShort : days,
29433
+ weekdaysMin : days,
29434
+ longDateFormat : {
29435
+ LT : 'HH:mm',
29436
+ LTS : 'HH:mm:ss',
29437
+ L : 'DD/MM/YYYY',
29438
+ LL : 'D MMMM YYYY',
29439
+ LLL : 'D MMMM YYYY HH:mm',
29440
+ LLLL : 'dddd، D MMMM YYYY HH:mm'
29441
+ },
29442
+ meridiemParse: /صبح|شام/,
29443
+ isPM : function (input) {
29444
+ return 'شام' === input;
29445
+ },
29446
+ meridiem : function (hour, minute, isLower) {
29447
+ if (hour < 12) {
29448
+ return 'صبح';
29449
+ }
29450
+ return 'شام';
29451
+ },
29452
+ calendar : {
29453
+ sameDay : '[اڄ] LT',
29454
+ nextDay : '[سڀاڻي] LT',
29455
+ nextWeek : 'dddd [اڳين هفتي تي] LT',
29456
+ lastDay : '[ڪالهه] LT',
29457
+ lastWeek : '[گزريل هفتي] dddd [تي] LT',
29458
+ sameElse : 'L'
29459
+ },
29460
+ relativeTime : {
29461
+ future : '%s پوء',
29462
+ past : '%s اڳ',
29463
+ s : 'چند سيڪنڊ',
29464
+ ss : '%d سيڪنڊ',
29465
+ m : 'هڪ منٽ',
29466
+ mm : '%d منٽ',
29467
+ h : 'هڪ ڪلاڪ',
29468
+ hh : '%d ڪلاڪ',
29469
+ d : 'هڪ ڏينهن',
29470
+ dd : '%d ڏينهن',
29471
+ M : 'هڪ مهينو',
29472
+ MM : '%d مهينا',
29473
+ y : 'هڪ سال',
29474
+ yy : '%d سال'
29475
+ },
29476
+ preparse: function (string) {
29477
+ return string.replace(/،/g, ',');
29478
+ },
29479
+ postformat: function (string) {
29480
+ return string.replace(/,/g, '،');
29481
+ },
29482
+ week : {
29483
+ dow : 1, // Monday is the first day of the week.
29484
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
29485
+ }
29486
+ });
29487
+
29488
+ return sd;
29489
+
29490
+ })));
29491
+
29492
+
29493
+ /***/ }),
29494
+ /* 170 */
29495
+ /***/ (function(module, exports, __webpack_require__) {
29496
+
29497
+ //! moment.js locale configuration
29498
+
29499
+ ;(function (global, factory) {
29500
+ true ? factory(__webpack_require__(0)) :
29501
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29502
+ factory(global.moment)
29503
+ }(this, (function (moment) { 'use strict';
29504
+
29505
+
29506
+ var se = moment.defineLocale('se', {
29507
+ months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),
29508
+ monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
29509
+ weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
29510
+ weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
29511
+ weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
29512
+ longDateFormat : {
29513
+ LT : 'HH:mm',
29514
+ LTS : 'HH:mm:ss',
29515
+ L : 'DD.MM.YYYY',
29516
+ LL : 'MMMM D. [b.] YYYY',
29517
+ LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
29518
+ LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
29519
+ },
29520
+ calendar : {
29521
+ sameDay: '[otne ti] LT',
29522
+ nextDay: '[ihttin ti] LT',
29523
+ nextWeek: 'dddd [ti] LT',
29524
+ lastDay: '[ikte ti] LT',
29525
+ lastWeek: '[ovddit] dddd [ti] LT',
29526
+ sameElse: 'L'
29527
+ },
29528
+ relativeTime : {
29529
+ future : '%s geažes',
29530
+ past : 'maŋit %s',
29531
+ s : 'moadde sekunddat',
29532
+ ss: '%d sekunddat',
29533
+ m : 'okta minuhta',
29534
+ mm : '%d minuhtat',
29535
+ h : 'okta diimmu',
29536
+ hh : '%d diimmut',
29537
+ d : 'okta beaivi',
29538
+ dd : '%d beaivvit',
29539
+ M : 'okta mánnu',
29540
+ MM : '%d mánut',
29541
+ y : 'okta jahki',
29542
+ yy : '%d jagit'
29543
+ },
29544
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
29545
+ ordinal : '%d.',
29546
+ week : {
29547
+ dow : 1, // Monday is the first day of the week.
29548
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
29549
+ }
29550
+ });
29551
+
29552
+ return se;
29553
+
29554
+ })));
29555
+
29556
+
29557
+ /***/ }),
29558
+ /* 171 */
29559
+ /***/ (function(module, exports, __webpack_require__) {
29560
+
29561
+ //! moment.js locale configuration
29562
+
29563
+ ;(function (global, factory) {
29564
+ true ? factory(__webpack_require__(0)) :
29565
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29566
+ factory(global.moment)
29567
+ }(this, (function (moment) { 'use strict';
29568
+
29569
+
29570
+ /*jshint -W100*/
29571
+ var si = moment.defineLocale('si', {
29572
+ months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
29573
+ monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
29574
+ weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
29575
+ weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
29576
+ weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
29577
+ weekdaysParseExact : true,
29578
+ longDateFormat : {
29579
+ LT : 'a h:mm',
29580
+ LTS : 'a h:mm:ss',
29581
+ L : 'YYYY/MM/DD',
29582
+ LL : 'YYYY MMMM D',
29583
+ LLL : 'YYYY MMMM D, a h:mm',
29584
+ LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
29585
+ },
29586
+ calendar : {
29587
+ sameDay : '[අද] LT[ට]',
29588
+ nextDay : '[හෙට] LT[ට]',
29589
+ nextWeek : 'dddd LT[ට]',
29590
+ lastDay : '[ඊයේ] LT[ට]',
29591
+ lastWeek : '[පසුගිය] dddd LT[ට]',
29592
+ sameElse : 'L'
29593
+ },
29594
+ relativeTime : {
29595
+ future : '%sකින්',
29596
+ past : '%sකට පෙර',
29597
+ s : 'තත්පර කිහිපය',
29598
+ ss : 'තත්පර %d',
29599
+ m : 'මිනිත්තුව',
29600
+ mm : 'මිනිත්තු %d',
29601
+ h : 'පැය',
29602
+ hh : 'පැය %d',
29603
+ d : 'දිනය',
29604
+ dd : 'දින %d',
29605
+ M : 'මාසය',
29606
+ MM : 'මාස %d',
29607
+ y : 'වසර',
29608
+ yy : 'වසර %d'
29609
+ },
29610
+ dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
29611
+ ordinal : function (number) {
29612
+ return number + ' වැනි';
29613
+ },
29614
+ meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
29615
+ isPM : function (input) {
29616
+ return input === 'ප.ව.' || input === 'පස් වරු';
29617
+ },
29618
+ meridiem : function (hours, minutes, isLower) {
29619
+ if (hours > 11) {
29620
+ return isLower ? 'ප.ව.' : 'පස් වරු';
29621
+ } else {
29622
+ return isLower ? 'පෙ.ව.' : 'පෙර වරු';
29623
+ }
29624
+ }
29625
+ });
29626
+
29627
+ return si;
29628
+
29629
+ })));
29630
+
29631
+
29632
+ /***/ }),
29633
+ /* 172 */
29634
+ /***/ (function(module, exports, __webpack_require__) {
29635
+
29636
+ //! moment.js locale configuration
29637
+
29638
+ ;(function (global, factory) {
29639
+ true ? factory(__webpack_require__(0)) :
29640
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29641
+ factory(global.moment)
29642
+ }(this, (function (moment) { 'use strict';
29643
+
29644
+
29645
+ var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
29646
+ monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
29647
+ function plural(n) {
29648
+ return (n > 1) && (n < 5);
29649
+ }
29650
+ function translate(number, withoutSuffix, key, isFuture) {
29651
+ var result = number + ' ';
29652
+ switch (key) {
29653
+ case 's': // a few seconds / in a few seconds / a few seconds ago
29654
+ return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
29655
+ case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
29656
+ if (withoutSuffix || isFuture) {
29657
+ return result + (plural(number) ? 'sekundy' : 'sekúnd');
29658
+ } else {
29659
+ return result + 'sekundami';
29660
+ }
29661
+ break;
29662
+ case 'm': // a minute / in a minute / a minute ago
29663
+ return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
29664
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
29665
+ if (withoutSuffix || isFuture) {
29666
+ return result + (plural(number) ? 'minúty' : 'minút');
29667
+ } else {
29668
+ return result + 'minútami';
29669
+ }
29670
+ break;
29671
+ case 'h': // an hour / in an hour / an hour ago
29672
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
29673
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
29674
+ if (withoutSuffix || isFuture) {
29675
+ return result + (plural(number) ? 'hodiny' : 'hodín');
29676
+ } else {
29677
+ return result + 'hodinami';
29678
+ }
29679
+ break;
29680
+ case 'd': // a day / in a day / a day ago
29681
+ return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
29682
+ case 'dd': // 9 days / in 9 days / 9 days ago
29683
+ if (withoutSuffix || isFuture) {
29684
+ return result + (plural(number) ? 'dni' : 'dní');
29685
+ } else {
29686
+ return result + 'dňami';
29687
+ }
29688
+ break;
29689
+ case 'M': // a month / in a month / a month ago
29690
+ return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
29691
+ case 'MM': // 9 months / in 9 months / 9 months ago
29692
+ if (withoutSuffix || isFuture) {
29693
+ return result + (plural(number) ? 'mesiace' : 'mesiacov');
29694
+ } else {
29695
+ return result + 'mesiacmi';
29696
+ }
29697
+ break;
29698
+ case 'y': // a year / in a year / a year ago
29699
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
29700
+ case 'yy': // 9 years / in 9 years / 9 years ago
29701
+ if (withoutSuffix || isFuture) {
29702
+ return result + (plural(number) ? 'roky' : 'rokov');
29703
+ } else {
29704
+ return result + 'rokmi';
29705
+ }
29706
+ break;
29707
+ }
29708
+ }
29709
+
29710
+ var sk = moment.defineLocale('sk', {
29711
+ months : months,
29712
+ monthsShort : monthsShort,
29713
+ weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
29714
+ weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
29715
+ weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
29716
+ longDateFormat : {
29717
+ LT: 'H:mm',
29718
+ LTS : 'H:mm:ss',
29719
+ L : 'DD.MM.YYYY',
29720
+ LL : 'D. MMMM YYYY',
29721
+ LLL : 'D. MMMM YYYY H:mm',
29722
+ LLLL : 'dddd D. MMMM YYYY H:mm'
29723
+ },
29724
+ calendar : {
29725
+ sameDay: '[dnes o] LT',
29726
+ nextDay: '[zajtra o] LT',
29727
+ nextWeek: function () {
29728
+ switch (this.day()) {
29729
+ case 0:
29730
+ return '[v nedeľu o] LT';
29731
+ case 1:
29732
+ case 2:
29733
+ return '[v] dddd [o] LT';
29734
+ case 3:
29735
+ return '[v stredu o] LT';
29736
+ case 4:
29737
+ return '[vo štvrtok o] LT';
29738
+ case 5:
29739
+ return '[v piatok o] LT';
29740
+ case 6:
29741
+ return '[v sobotu o] LT';
29742
+ }
29743
+ },
29744
+ lastDay: '[včera o] LT',
29745
+ lastWeek: function () {
29746
+ switch (this.day()) {
29747
+ case 0:
29748
+ return '[minulú nedeľu o] LT';
29749
+ case 1:
29750
+ case 2:
29751
+ return '[minulý] dddd [o] LT';
29752
+ case 3:
29753
+ return '[minulú stredu o] LT';
29754
+ case 4:
29755
+ case 5:
29756
+ return '[minulý] dddd [o] LT';
29757
+ case 6:
29758
+ return '[minulú sobotu o] LT';
29759
+ }
29760
+ },
29761
+ sameElse: 'L'
29762
+ },
29763
+ relativeTime : {
29764
+ future : 'za %s',
29765
+ past : 'pred %s',
29766
+ s : translate,
29767
+ ss : translate,
29768
+ m : translate,
29769
+ mm : translate,
29770
+ h : translate,
29771
+ hh : translate,
29772
+ d : translate,
29773
+ dd : translate,
29774
+ M : translate,
29775
+ MM : translate,
29776
+ y : translate,
29777
+ yy : translate
29778
+ },
29779
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
29780
+ ordinal : '%d.',
29781
+ week : {
29782
+ dow : 1, // Monday is the first day of the week.
29783
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
29784
+ }
29785
+ });
29786
+
29787
+ return sk;
29788
+
29789
+ })));
29790
+
29791
+
29792
+ /***/ }),
29793
+ /* 173 */
29794
+ /***/ (function(module, exports, __webpack_require__) {
29795
+
29796
+ //! moment.js locale configuration
29797
+
29798
+ ;(function (global, factory) {
29799
+ true ? factory(__webpack_require__(0)) :
29800
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29801
+ factory(global.moment)
29802
+ }(this, (function (moment) { 'use strict';
29803
+
29804
+
29805
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
29806
+ var result = number + ' ';
29807
+ switch (key) {
29808
+ case 's':
29809
+ return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
29810
+ case 'ss':
29811
+ if (number === 1) {
29812
+ result += withoutSuffix ? 'sekundo' : 'sekundi';
29813
+ } else if (number === 2) {
29814
+ result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
29815
+ } else if (number < 5) {
29816
+ result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
29817
+ } else {
29818
+ result += withoutSuffix || isFuture ? 'sekund' : 'sekund';
29819
+ }
29820
+ return result;
29821
+ case 'm':
29822
+ return withoutSuffix ? 'ena minuta' : 'eno minuto';
29823
+ case 'mm':
29824
+ if (number === 1) {
29825
+ result += withoutSuffix ? 'minuta' : 'minuto';
29826
+ } else if (number === 2) {
29827
+ result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
29828
+ } else if (number < 5) {
29829
+ result += withoutSuffix || isFuture ? 'minute' : 'minutami';
29830
+ } else {
29831
+ result += withoutSuffix || isFuture ? 'minut' : 'minutami';
29832
+ }
29833
+ return result;
29834
+ case 'h':
29835
+ return withoutSuffix ? 'ena ura' : 'eno uro';
29836
+ case 'hh':
29837
+ if (number === 1) {
29838
+ result += withoutSuffix ? 'ura' : 'uro';
29839
+ } else if (number === 2) {
29840
+ result += withoutSuffix || isFuture ? 'uri' : 'urama';
29841
+ } else if (number < 5) {
29842
+ result += withoutSuffix || isFuture ? 'ure' : 'urami';
29843
+ } else {
29844
+ result += withoutSuffix || isFuture ? 'ur' : 'urami';
29845
+ }
29846
+ return result;
29847
+ case 'd':
29848
+ return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
29849
+ case 'dd':
29850
+ if (number === 1) {
29851
+ result += withoutSuffix || isFuture ? 'dan' : 'dnem';
29852
+ } else if (number === 2) {
29853
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
29854
+ } else {
29855
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
29856
+ }
29857
+ return result;
29858
+ case 'M':
29859
+ return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
29860
+ case 'MM':
29861
+ if (number === 1) {
29862
+ result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
29863
+ } else if (number === 2) {
29864
+ result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
29865
+ } else if (number < 5) {
29866
+ result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
29867
+ } else {
29868
+ result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
29869
+ }
29870
+ return result;
29871
+ case 'y':
29872
+ return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
29873
+ case 'yy':
29874
+ if (number === 1) {
29875
+ result += withoutSuffix || isFuture ? 'leto' : 'letom';
29876
+ } else if (number === 2) {
29877
+ result += withoutSuffix || isFuture ? 'leti' : 'letoma';
29878
+ } else if (number < 5) {
29879
+ result += withoutSuffix || isFuture ? 'leta' : 'leti';
29880
+ } else {
29881
+ result += withoutSuffix || isFuture ? 'let' : 'leti';
29882
+ }
29883
+ return result;
29884
+ }
29885
+ }
29886
+
29887
+ var sl = moment.defineLocale('sl', {
29888
+ months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
29889
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
29890
+ monthsParseExact: true,
29891
+ weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
29892
+ weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
29893
+ weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
29894
+ weekdaysParseExact : true,
29895
+ longDateFormat : {
29896
+ LT : 'H:mm',
29897
+ LTS : 'H:mm:ss',
29898
+ L : 'DD.MM.YYYY',
29899
+ LL : 'D. MMMM YYYY',
29900
+ LLL : 'D. MMMM YYYY H:mm',
29901
+ LLLL : 'dddd, D. MMMM YYYY H:mm'
29902
+ },
29903
+ calendar : {
29904
+ sameDay : '[danes ob] LT',
29905
+ nextDay : '[jutri ob] LT',
29906
+
29907
+ nextWeek : function () {
29908
+ switch (this.day()) {
29909
+ case 0:
29910
+ return '[v] [nedeljo] [ob] LT';
29911
+ case 3:
29912
+ return '[v] [sredo] [ob] LT';
29913
+ case 6:
29914
+ return '[v] [soboto] [ob] LT';
29915
+ case 1:
29916
+ case 2:
29917
+ case 4:
29918
+ case 5:
29919
+ return '[v] dddd [ob] LT';
29920
+ }
29921
+ },
29922
+ lastDay : '[včeraj ob] LT',
29923
+ lastWeek : function () {
29924
+ switch (this.day()) {
29925
+ case 0:
29926
+ return '[prejšnjo] [nedeljo] [ob] LT';
29927
+ case 3:
29928
+ return '[prejšnjo] [sredo] [ob] LT';
29929
+ case 6:
29930
+ return '[prejšnjo] [soboto] [ob] LT';
29931
+ case 1:
29932
+ case 2:
29933
+ case 4:
29934
+ case 5:
29935
+ return '[prejšnji] dddd [ob] LT';
29936
+ }
29937
+ },
29938
+ sameElse : 'L'
29939
+ },
29940
+ relativeTime : {
29941
+ future : 'čez %s',
29942
+ past : 'pred %s',
29943
+ s : processRelativeTime,
29944
+ ss : processRelativeTime,
29945
+ m : processRelativeTime,
29946
+ mm : processRelativeTime,
29947
+ h : processRelativeTime,
29948
+ hh : processRelativeTime,
29949
+ d : processRelativeTime,
29950
+ dd : processRelativeTime,
29951
+ M : processRelativeTime,
29952
+ MM : processRelativeTime,
29953
+ y : processRelativeTime,
29954
+ yy : processRelativeTime
29955
+ },
29956
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
29957
+ ordinal : '%d.',
29958
+ week : {
29959
+ dow : 1, // Monday is the first day of the week.
29960
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
29961
+ }
29962
+ });
29963
+
29964
+ return sl;
29965
+
29966
+ })));
29967
+
29968
+
29969
+ /***/ }),
29970
+ /* 174 */
29971
+ /***/ (function(module, exports, __webpack_require__) {
29972
+
29973
+ //! moment.js locale configuration
29974
+
29975
+ ;(function (global, factory) {
29976
+ true ? factory(__webpack_require__(0)) :
29977
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
29978
+ factory(global.moment)
29979
+ }(this, (function (moment) { 'use strict';
29980
+
29981
+
29982
+ var sq = moment.defineLocale('sq', {
29983
+ months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
29984
+ monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
29985
+ weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
29986
+ weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
29987
+ weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
29988
+ weekdaysParseExact : true,
29989
+ meridiemParse: /PD|MD/,
29990
+ isPM: function (input) {
29991
+ return input.charAt(0) === 'M';
29992
+ },
29993
+ meridiem : function (hours, minutes, isLower) {
29994
+ return hours < 12 ? 'PD' : 'MD';
29995
+ },
29996
+ longDateFormat : {
29997
+ LT : 'HH:mm',
29998
+ LTS : 'HH:mm:ss',
29999
+ L : 'DD/MM/YYYY',
30000
+ LL : 'D MMMM YYYY',
30001
+ LLL : 'D MMMM YYYY HH:mm',
30002
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
30003
+ },
30004
+ calendar : {
30005
+ sameDay : '[Sot në] LT',
30006
+ nextDay : '[Nesër në] LT',
30007
+ nextWeek : 'dddd [në] LT',
30008
+ lastDay : '[Dje në] LT',
30009
+ lastWeek : 'dddd [e kaluar në] LT',
30010
+ sameElse : 'L'
30011
+ },
30012
+ relativeTime : {
30013
+ future : 'në %s',
30014
+ past : '%s më parë',
30015
+ s : 'disa sekonda',
30016
+ ss : '%d sekonda',
30017
+ m : 'një minutë',
30018
+ mm : '%d minuta',
30019
+ h : 'një orë',
30020
+ hh : '%d orë',
30021
+ d : 'një ditë',
30022
+ dd : '%d ditë',
30023
+ M : 'një muaj',
30024
+ MM : '%d muaj',
30025
+ y : 'një vit',
30026
+ yy : '%d vite'
30027
+ },
30028
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
30029
+ ordinal : '%d.',
30030
+ week : {
30031
+ dow : 1, // Monday is the first day of the week.
30032
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
30033
+ }
30034
+ });
30035
+
30036
+ return sq;
30037
+
30038
+ })));
30039
+
30040
+
30041
+ /***/ }),
30042
+ /* 175 */
30043
+ /***/ (function(module, exports, __webpack_require__) {
30044
+
30045
+ //! moment.js locale configuration
30046
+
30047
+ ;(function (global, factory) {
30048
+ true ? factory(__webpack_require__(0)) :
30049
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30050
+ factory(global.moment)
30051
+ }(this, (function (moment) { 'use strict';
30052
+
30053
+
30054
+ var translator = {
30055
+ words: { //Different grammatical cases
30056
+ ss: ['sekunda', 'sekunde', 'sekundi'],
30057
+ m: ['jedan minut', 'jedne minute'],
30058
+ mm: ['minut', 'minute', 'minuta'],
30059
+ h: ['jedan sat', 'jednog sata'],
30060
+ hh: ['sat', 'sata', 'sati'],
30061
+ dd: ['dan', 'dana', 'dana'],
30062
+ MM: ['mesec', 'meseca', 'meseci'],
30063
+ yy: ['godina', 'godine', 'godina']
30064
+ },
30065
+ correctGrammaticalCase: function (number, wordKey) {
30066
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
30067
+ },
30068
+ translate: function (number, withoutSuffix, key) {
30069
+ var wordKey = translator.words[key];
30070
+ if (key.length === 1) {
30071
+ return withoutSuffix ? wordKey[0] : wordKey[1];
30072
+ } else {
30073
+ return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
30074
+ }
30075
+ }
30076
+ };
30077
+
30078
+ var sr = moment.defineLocale('sr', {
30079
+ months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
30080
+ monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
30081
+ monthsParseExact: true,
30082
+ weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
30083
+ weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
30084
+ weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
30085
+ weekdaysParseExact : true,
30086
+ longDateFormat: {
30087
+ LT: 'H:mm',
30088
+ LTS : 'H:mm:ss',
30089
+ L: 'DD.MM.YYYY',
30090
+ LL: 'D. MMMM YYYY',
30091
+ LLL: 'D. MMMM YYYY H:mm',
30092
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
30093
+ },
30094
+ calendar: {
30095
+ sameDay: '[danas u] LT',
30096
+ nextDay: '[sutra u] LT',
30097
+ nextWeek: function () {
30098
+ switch (this.day()) {
30099
+ case 0:
30100
+ return '[u] [nedelju] [u] LT';
30101
+ case 3:
30102
+ return '[u] [sredu] [u] LT';
30103
+ case 6:
30104
+ return '[u] [subotu] [u] LT';
30105
+ case 1:
30106
+ case 2:
30107
+ case 4:
30108
+ case 5:
30109
+ return '[u] dddd [u] LT';
30110
+ }
30111
+ },
30112
+ lastDay : '[juče u] LT',
30113
+ lastWeek : function () {
30114
+ var lastWeekDays = [
30115
+ '[prošle] [nedelje] [u] LT',
30116
+ '[prošlog] [ponedeljka] [u] LT',
30117
+ '[prošlog] [utorka] [u] LT',
30118
+ '[prošle] [srede] [u] LT',
30119
+ '[prošlog] [četvrtka] [u] LT',
30120
+ '[prošlog] [petka] [u] LT',
30121
+ '[prošle] [subote] [u] LT'
30122
+ ];
30123
+ return lastWeekDays[this.day()];
30124
+ },
30125
+ sameElse : 'L'
30126
+ },
30127
+ relativeTime : {
30128
+ future : 'za %s',
30129
+ past : 'pre %s',
30130
+ s : 'nekoliko sekundi',
30131
+ ss : translator.translate,
30132
+ m : translator.translate,
30133
+ mm : translator.translate,
30134
+ h : translator.translate,
30135
+ hh : translator.translate,
30136
+ d : 'dan',
30137
+ dd : translator.translate,
30138
+ M : 'mesec',
30139
+ MM : translator.translate,
30140
+ y : 'godinu',
30141
+ yy : translator.translate
30142
+ },
30143
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
30144
+ ordinal : '%d.',
30145
+ week : {
30146
+ dow : 1, // Monday is the first day of the week.
30147
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
30148
+ }
30149
+ });
30150
+
30151
+ return sr;
30152
+
30153
+ })));
30154
+
30155
+
30156
+ /***/ }),
30157
+ /* 176 */
30158
+ /***/ (function(module, exports, __webpack_require__) {
30159
+
30160
+ //! moment.js locale configuration
30161
+
30162
+ ;(function (global, factory) {
30163
+ true ? factory(__webpack_require__(0)) :
30164
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30165
+ factory(global.moment)
30166
+ }(this, (function (moment) { 'use strict';
30167
+
30168
+
30169
+ var translator = {
30170
+ words: { //Different grammatical cases
30171
+ ss: ['секунда', 'секунде', 'секунди'],
30172
+ m: ['један минут', 'једне минуте'],
30173
+ mm: ['минут', 'минуте', 'минута'],
30174
+ h: ['један сат', 'једног сата'],
30175
+ hh: ['сат', 'сата', 'сати'],
30176
+ dd: ['дан', 'дана', 'дана'],
30177
+ MM: ['месец', 'месеца', 'месеци'],
30178
+ yy: ['година', 'године', 'година']
30179
+ },
30180
+ correctGrammaticalCase: function (number, wordKey) {
30181
+ return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
30182
+ },
30183
+ translate: function (number, withoutSuffix, key) {
30184
+ var wordKey = translator.words[key];
30185
+ if (key.length === 1) {
30186
+ return withoutSuffix ? wordKey[0] : wordKey[1];
30187
+ } else {
30188
+ return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
30189
+ }
30190
+ }
30191
+ };
30192
+
30193
+ var srCyrl = moment.defineLocale('sr-cyrl', {
30194
+ months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),
30195
+ monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
30196
+ monthsParseExact: true,
30197
+ weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
30198
+ weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
30199
+ weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
30200
+ weekdaysParseExact : true,
30201
+ longDateFormat: {
30202
+ LT: 'H:mm',
30203
+ LTS : 'H:mm:ss',
30204
+ L: 'DD.MM.YYYY',
30205
+ LL: 'D. MMMM YYYY',
30206
+ LLL: 'D. MMMM YYYY H:mm',
30207
+ LLLL: 'dddd, D. MMMM YYYY H:mm'
30208
+ },
30209
+ calendar: {
30210
+ sameDay: '[данас у] LT',
30211
+ nextDay: '[сутра у] LT',
30212
+ nextWeek: function () {
30213
+ switch (this.day()) {
30214
+ case 0:
30215
+ return '[у] [недељу] [у] LT';
30216
+ case 3:
30217
+ return '[у] [среду] [у] LT';
30218
+ case 6:
30219
+ return '[у] [суботу] [у] LT';
30220
+ case 1:
30221
+ case 2:
30222
+ case 4:
30223
+ case 5:
30224
+ return '[у] dddd [у] LT';
30225
+ }
30226
+ },
30227
+ lastDay : '[јуче у] LT',
30228
+ lastWeek : function () {
30229
+ var lastWeekDays = [
30230
+ '[прошле] [недеље] [у] LT',
30231
+ '[прошлог] [понедељка] [у] LT',
30232
+ '[прошлог] [уторка] [у] LT',
30233
+ '[прошле] [среде] [у] LT',
30234
+ '[прошлог] [четвртка] [у] LT',
30235
+ '[прошлог] [петка] [у] LT',
30236
+ '[прошле] [суботе] [у] LT'
30237
+ ];
30238
+ return lastWeekDays[this.day()];
30239
+ },
30240
+ sameElse : 'L'
30241
+ },
30242
+ relativeTime : {
30243
+ future : 'за %s',
30244
+ past : 'пре %s',
30245
+ s : 'неколико секунди',
30246
+ ss : translator.translate,
30247
+ m : translator.translate,
30248
+ mm : translator.translate,
30249
+ h : translator.translate,
30250
+ hh : translator.translate,
30251
+ d : 'дан',
30252
+ dd : translator.translate,
30253
+ M : 'месец',
30254
+ MM : translator.translate,
30255
+ y : 'годину',
30256
+ yy : translator.translate
30257
+ },
30258
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
30259
+ ordinal : '%d.',
30260
+ week : {
30261
+ dow : 1, // Monday is the first day of the week.
30262
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
30263
+ }
30264
+ });
30265
+
30266
+ return srCyrl;
30267
+
30268
+ })));
30269
+
30270
+
30271
+ /***/ }),
30272
+ /* 177 */
30273
+ /***/ (function(module, exports, __webpack_require__) {
30274
+
30275
+ //! moment.js locale configuration
30276
+
30277
+ ;(function (global, factory) {
30278
+ true ? factory(__webpack_require__(0)) :
30279
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30280
+ factory(global.moment)
30281
+ }(this, (function (moment) { 'use strict';
30282
+
30283
+
30284
+ var ss = moment.defineLocale('ss', {
30285
+ months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'),
30286
+ monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
30287
+ weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),
30288
+ weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
30289
+ weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
30290
+ weekdaysParseExact : true,
30291
+ longDateFormat : {
30292
+ LT : 'h:mm A',
30293
+ LTS : 'h:mm:ss A',
30294
+ L : 'DD/MM/YYYY',
30295
+ LL : 'D MMMM YYYY',
30296
+ LLL : 'D MMMM YYYY h:mm A',
30297
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
30298
+ },
30299
+ calendar : {
30300
+ sameDay : '[Namuhla nga] LT',
30301
+ nextDay : '[Kusasa nga] LT',
30302
+ nextWeek : 'dddd [nga] LT',
30303
+ lastDay : '[Itolo nga] LT',
30304
+ lastWeek : 'dddd [leliphelile] [nga] LT',
30305
+ sameElse : 'L'
30306
+ },
30307
+ relativeTime : {
30308
+ future : 'nga %s',
30309
+ past : 'wenteka nga %s',
30310
+ s : 'emizuzwana lomcane',
30311
+ ss : '%d mzuzwana',
30312
+ m : 'umzuzu',
30313
+ mm : '%d emizuzu',
30314
+ h : 'lihora',
30315
+ hh : '%d emahora',
30316
+ d : 'lilanga',
30317
+ dd : '%d emalanga',
30318
+ M : 'inyanga',
30319
+ MM : '%d tinyanga',
30320
+ y : 'umnyaka',
30321
+ yy : '%d iminyaka'
30322
+ },
30323
+ meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
30324
+ meridiem : function (hours, minutes, isLower) {
30325
+ if (hours < 11) {
30326
+ return 'ekuseni';
30327
+ } else if (hours < 15) {
30328
+ return 'emini';
30329
+ } else if (hours < 19) {
30330
+ return 'entsambama';
30331
+ } else {
30332
+ return 'ebusuku';
30333
+ }
30334
+ },
30335
+ meridiemHour : function (hour, meridiem) {
30336
+ if (hour === 12) {
30337
+ hour = 0;
30338
+ }
30339
+ if (meridiem === 'ekuseni') {
30340
+ return hour;
30341
+ } else if (meridiem === 'emini') {
30342
+ return hour >= 11 ? hour : hour + 12;
30343
+ } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
30344
+ if (hour === 0) {
30345
+ return 0;
30346
+ }
30347
+ return hour + 12;
30348
+ }
30349
+ },
30350
+ dayOfMonthOrdinalParse: /\d{1,2}/,
30351
+ ordinal : '%d',
30352
+ week : {
30353
+ dow : 1, // Monday is the first day of the week.
30354
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
30355
+ }
30356
+ });
30357
+
30358
+ return ss;
30359
+
30360
+ })));
30361
+
30362
+
30363
+ /***/ }),
30364
+ /* 178 */
30365
+ /***/ (function(module, exports, __webpack_require__) {
30366
+
30367
+ //! moment.js locale configuration
30368
+
30369
+ ;(function (global, factory) {
30370
+ true ? factory(__webpack_require__(0)) :
30371
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30372
+ factory(global.moment)
30373
+ }(this, (function (moment) { 'use strict';
30374
+
30375
+
30376
+ var sv = moment.defineLocale('sv', {
30377
+ months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
30378
+ monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
30379
+ weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
30380
+ weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
30381
+ weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
30382
+ longDateFormat : {
30383
+ LT : 'HH:mm',
30384
+ LTS : 'HH:mm:ss',
30385
+ L : 'YYYY-MM-DD',
30386
+ LL : 'D MMMM YYYY',
30387
+ LLL : 'D MMMM YYYY [kl.] HH:mm',
30388
+ LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',
30389
+ lll : 'D MMM YYYY HH:mm',
30390
+ llll : 'ddd D MMM YYYY HH:mm'
30391
+ },
30392
+ calendar : {
30393
+ sameDay: '[Idag] LT',
30394
+ nextDay: '[Imorgon] LT',
30395
+ lastDay: '[Igår] LT',
30396
+ nextWeek: '[På] dddd LT',
30397
+ lastWeek: '[I] dddd[s] LT',
30398
+ sameElse: 'L'
30399
+ },
30400
+ relativeTime : {
30401
+ future : 'om %s',
30402
+ past : 'för %s sedan',
30403
+ s : 'några sekunder',
30404
+ ss : '%d sekunder',
30405
+ m : 'en minut',
30406
+ mm : '%d minuter',
30407
+ h : 'en timme',
30408
+ hh : '%d timmar',
30409
+ d : 'en dag',
30410
+ dd : '%d dagar',
30411
+ M : 'en månad',
30412
+ MM : '%d månader',
30413
+ y : 'ett år',
30414
+ yy : '%d år'
30415
+ },
30416
+ dayOfMonthOrdinalParse: /\d{1,2}(e|a)/,
30417
+ ordinal : function (number) {
30418
+ var b = number % 10,
30419
+ output = (~~(number % 100 / 10) === 1) ? 'e' :
30420
+ (b === 1) ? 'a' :
30421
+ (b === 2) ? 'a' :
30422
+ (b === 3) ? 'e' : 'e';
30423
+ return number + output;
30424
+ },
30425
+ week : {
30426
+ dow : 1, // Monday is the first day of the week.
30427
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
30428
+ }
30429
+ });
30430
+
30431
+ return sv;
30432
+
30433
+ })));
30434
+
30435
+
30436
+ /***/ }),
30437
+ /* 179 */
30438
+ /***/ (function(module, exports, __webpack_require__) {
30439
+
30440
+ //! moment.js locale configuration
30441
+
30442
+ ;(function (global, factory) {
30443
+ true ? factory(__webpack_require__(0)) :
30444
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30445
+ factory(global.moment)
30446
+ }(this, (function (moment) { 'use strict';
30447
+
30448
+
30449
+ var sw = moment.defineLocale('sw', {
30450
+ months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
30451
+ monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
30452
+ weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
30453
+ weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
30454
+ weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
30455
+ weekdaysParseExact : true,
30456
+ longDateFormat : {
30457
+ LT : 'HH:mm',
30458
+ LTS : 'HH:mm:ss',
30459
+ L : 'DD.MM.YYYY',
30460
+ LL : 'D MMMM YYYY',
30461
+ LLL : 'D MMMM YYYY HH:mm',
30462
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
30463
+ },
30464
+ calendar : {
30465
+ sameDay : '[leo saa] LT',
30466
+ nextDay : '[kesho saa] LT',
30467
+ nextWeek : '[wiki ijayo] dddd [saat] LT',
30468
+ lastDay : '[jana] LT',
30469
+ lastWeek : '[wiki iliyopita] dddd [saat] LT',
30470
+ sameElse : 'L'
30471
+ },
30472
+ relativeTime : {
30473
+ future : '%s baadaye',
30474
+ past : 'tokea %s',
30475
+ s : 'hivi punde',
30476
+ ss : 'sekunde %d',
30477
+ m : 'dakika moja',
30478
+ mm : 'dakika %d',
30479
+ h : 'saa limoja',
30480
+ hh : 'masaa %d',
30481
+ d : 'siku moja',
30482
+ dd : 'masiku %d',
30483
+ M : 'mwezi mmoja',
30484
+ MM : 'miezi %d',
30485
+ y : 'mwaka mmoja',
30486
+ yy : 'miaka %d'
30487
+ },
30488
+ week : {
30489
+ dow : 1, // Monday is the first day of the week.
30490
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
30491
+ }
30492
+ });
30493
+
30494
+ return sw;
30495
+
30496
+ })));
30497
+
30498
+
30499
+ /***/ }),
30500
+ /* 180 */
30501
+ /***/ (function(module, exports, __webpack_require__) {
30502
+
30503
+ //! moment.js locale configuration
30504
+
30505
+ ;(function (global, factory) {
30506
+ true ? factory(__webpack_require__(0)) :
30507
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30508
+ factory(global.moment)
30509
+ }(this, (function (moment) { 'use strict';
30510
+
30511
+
30512
+ var symbolMap = {
30513
+ '1': '௧',
30514
+ '2': '௨',
30515
+ '3': '௩',
30516
+ '4': '௪',
30517
+ '5': '௫',
30518
+ '6': '௬',
30519
+ '7': '௭',
30520
+ '8': '௮',
30521
+ '9': '௯',
30522
+ '0': '௦'
30523
+ }, numberMap = {
30524
+ '௧': '1',
30525
+ '௨': '2',
30526
+ '௩': '3',
30527
+ '௪': '4',
30528
+ '௫': '5',
30529
+ '௬': '6',
30530
+ '௭': '7',
30531
+ '௮': '8',
30532
+ '௯': '9',
30533
+ '௦': '0'
30534
+ };
30535
+
30536
+ var ta = moment.defineLocale('ta', {
30537
+ months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
30538
+ monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
30539
+ weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
30540
+ weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
30541
+ weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
30542
+ longDateFormat : {
30543
+ LT : 'HH:mm',
30544
+ LTS : 'HH:mm:ss',
30545
+ L : 'DD/MM/YYYY',
30546
+ LL : 'D MMMM YYYY',
30547
+ LLL : 'D MMMM YYYY, HH:mm',
30548
+ LLLL : 'dddd, D MMMM YYYY, HH:mm'
30549
+ },
30550
+ calendar : {
30551
+ sameDay : '[இன்று] LT',
30552
+ nextDay : '[நாளை] LT',
30553
+ nextWeek : 'dddd, LT',
30554
+ lastDay : '[நேற்று] LT',
30555
+ lastWeek : '[கடந்த வாரம்] dddd, LT',
30556
+ sameElse : 'L'
30557
+ },
30558
+ relativeTime : {
30559
+ future : '%s இல்',
30560
+ past : '%s முன்',
30561
+ s : 'ஒரு சில விநாடிகள்',
30562
+ ss : '%d விநாடிகள்',
30563
+ m : 'ஒரு நிமிடம்',
30564
+ mm : '%d நிமிடங்கள்',
30565
+ h : 'ஒரு மணி நேரம்',
30566
+ hh : '%d மணி நேரம்',
30567
+ d : 'ஒரு நாள்',
30568
+ dd : '%d நாட்கள்',
30569
+ M : 'ஒரு மாதம்',
30570
+ MM : '%d மாதங்கள்',
30571
+ y : 'ஒரு வருடம்',
30572
+ yy : '%d ஆண்டுகள்'
30573
+ },
30574
+ dayOfMonthOrdinalParse: /\d{1,2}வது/,
30575
+ ordinal : function (number) {
30576
+ return number + 'வது';
30577
+ },
30578
+ preparse: function (string) {
30579
+ return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
30580
+ return numberMap[match];
30581
+ });
30582
+ },
30583
+ postformat: function (string) {
30584
+ return string.replace(/\d/g, function (match) {
30585
+ return symbolMap[match];
30586
+ });
30587
+ },
30588
+ // refer http://ta.wikipedia.org/s/1er1
30589
+ meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
30590
+ meridiem : function (hour, minute, isLower) {
30591
+ if (hour < 2) {
30592
+ return ' யாமம்';
30593
+ } else if (hour < 6) {
30594
+ return ' வைகறை'; // வைகறை
30595
+ } else if (hour < 10) {
30596
+ return ' காலை'; // காலை
30597
+ } else if (hour < 14) {
30598
+ return ' நண்பகல்'; // நண்பகல்
30599
+ } else if (hour < 18) {
30600
+ return ' எற்பாடு'; // எற்பாடு
30601
+ } else if (hour < 22) {
30602
+ return ' மாலை'; // மாலை
30603
+ } else {
30604
+ return ' யாமம்';
30605
+ }
30606
+ },
30607
+ meridiemHour : function (hour, meridiem) {
30608
+ if (hour === 12) {
30609
+ hour = 0;
30610
+ }
30611
+ if (meridiem === 'யாமம்') {
30612
+ return hour < 2 ? hour : hour + 12;
30613
+ } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
30614
+ return hour;
30615
+ } else if (meridiem === 'நண்பகல்') {
30616
+ return hour >= 10 ? hour : hour + 12;
30617
+ } else {
30618
+ return hour + 12;
30619
+ }
30620
+ },
30621
+ week : {
30622
+ dow : 0, // Sunday is the first day of the week.
30623
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
30624
+ }
30625
+ });
30626
+
30627
+ return ta;
30628
+
30629
+ })));
30630
+
30631
+
30632
+ /***/ }),
30633
+ /* 181 */
30634
+ /***/ (function(module, exports, __webpack_require__) {
30635
+
30636
+ //! moment.js locale configuration
30637
+
30638
+ ;(function (global, factory) {
30639
+ true ? factory(__webpack_require__(0)) :
30640
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30641
+ factory(global.moment)
30642
+ }(this, (function (moment) { 'use strict';
30643
+
30644
+
30645
+ var te = moment.defineLocale('te', {
30646
+ months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
30647
+ monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
30648
+ monthsParseExact : true,
30649
+ weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
30650
+ weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
30651
+ weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
30652
+ longDateFormat : {
30653
+ LT : 'A h:mm',
30654
+ LTS : 'A h:mm:ss',
30655
+ L : 'DD/MM/YYYY',
30656
+ LL : 'D MMMM YYYY',
30657
+ LLL : 'D MMMM YYYY, A h:mm',
30658
+ LLLL : 'dddd, D MMMM YYYY, A h:mm'
30659
+ },
30660
+ calendar : {
30661
+ sameDay : '[నేడు] LT',
30662
+ nextDay : '[రేపు] LT',
30663
+ nextWeek : 'dddd, LT',
30664
+ lastDay : '[నిన్న] LT',
30665
+ lastWeek : '[గత] dddd, LT',
30666
+ sameElse : 'L'
30667
+ },
30668
+ relativeTime : {
30669
+ future : '%s లో',
30670
+ past : '%s క్రితం',
30671
+ s : 'కొన్ని క్షణాలు',
30672
+ ss : '%d సెకన్లు',
30673
+ m : 'ఒక నిమిషం',
30674
+ mm : '%d నిమిషాలు',
30675
+ h : 'ఒక గంట',
30676
+ hh : '%d గంటలు',
30677
+ d : 'ఒక రోజు',
30678
+ dd : '%d రోజులు',
30679
+ M : 'ఒక నెల',
30680
+ MM : '%d నెలలు',
30681
+ y : 'ఒక సంవత్సరం',
30682
+ yy : '%d సంవత్సరాలు'
30683
+ },
30684
+ dayOfMonthOrdinalParse : /\d{1,2}వ/,
30685
+ ordinal : '%dవ',
30686
+ meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
30687
+ meridiemHour : function (hour, meridiem) {
30688
+ if (hour === 12) {
30689
+ hour = 0;
30690
+ }
30691
+ if (meridiem === 'రాత్రి') {
30692
+ return hour < 4 ? hour : hour + 12;
30693
+ } else if (meridiem === 'ఉదయం') {
30694
+ return hour;
30695
+ } else if (meridiem === 'మధ్యాహ్నం') {
30696
+ return hour >= 10 ? hour : hour + 12;
30697
+ } else if (meridiem === 'సాయంత్రం') {
30698
+ return hour + 12;
30699
+ }
30700
+ },
30701
+ meridiem : function (hour, minute, isLower) {
30702
+ if (hour < 4) {
30703
+ return 'రాత్రి';
30704
+ } else if (hour < 10) {
30705
+ return 'ఉదయం';
30706
+ } else if (hour < 17) {
30707
+ return 'మధ్యాహ్నం';
30708
+ } else if (hour < 20) {
30709
+ return 'సాయంత్రం';
30710
+ } else {
30711
+ return 'రాత్రి';
30712
+ }
30713
+ },
30714
+ week : {
30715
+ dow : 0, // Sunday is the first day of the week.
30716
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
30717
+ }
30718
+ });
30719
+
30720
+ return te;
30721
+
30722
+ })));
30723
+
30724
+
30725
+ /***/ }),
30726
+ /* 182 */
30727
+ /***/ (function(module, exports, __webpack_require__) {
30728
+
30729
+ //! moment.js locale configuration
30730
+
30731
+ ;(function (global, factory) {
30732
+ true ? factory(__webpack_require__(0)) :
30733
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30734
+ factory(global.moment)
30735
+ }(this, (function (moment) { 'use strict';
30736
+
30737
+
30738
+ var tet = moment.defineLocale('tet', {
30739
+ months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),
30740
+ monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
30741
+ weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
30742
+ weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
30743
+ weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
30744
+ longDateFormat : {
30745
+ LT : 'HH:mm',
30746
+ LTS : 'HH:mm:ss',
30747
+ L : 'DD/MM/YYYY',
30748
+ LL : 'D MMMM YYYY',
30749
+ LLL : 'D MMMM YYYY HH:mm',
30750
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
30751
+ },
30752
+ calendar : {
30753
+ sameDay: '[Ohin iha] LT',
30754
+ nextDay: '[Aban iha] LT',
30755
+ nextWeek: 'dddd [iha] LT',
30756
+ lastDay: '[Horiseik iha] LT',
30757
+ lastWeek: 'dddd [semana kotuk] [iha] LT',
30758
+ sameElse: 'L'
30759
+ },
30760
+ relativeTime : {
30761
+ future : 'iha %s',
30762
+ past : '%s liuba',
30763
+ s : 'minutu balun',
30764
+ ss : 'minutu %d',
30765
+ m : 'minutu ida',
30766
+ mm : 'minutu %d',
30767
+ h : 'oras ida',
30768
+ hh : 'oras %d',
30769
+ d : 'loron ida',
30770
+ dd : 'loron %d',
30771
+ M : 'fulan ida',
30772
+ MM : 'fulan %d',
30773
+ y : 'tinan ida',
30774
+ yy : 'tinan %d'
30775
+ },
30776
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
30777
+ ordinal : function (number) {
30778
+ var b = number % 10,
30779
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
30780
+ (b === 1) ? 'st' :
30781
+ (b === 2) ? 'nd' :
30782
+ (b === 3) ? 'rd' : 'th';
30783
+ return number + output;
30784
+ },
30785
+ week : {
30786
+ dow : 1, // Monday is the first day of the week.
30787
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
30788
+ }
30789
+ });
30790
+
30791
+ return tet;
30792
+
30793
+ })));
30794
+
30795
+
30796
+ /***/ }),
30797
+ /* 183 */
30798
+ /***/ (function(module, exports, __webpack_require__) {
30799
+
30800
+ //! moment.js locale configuration
30801
+
30802
+ ;(function (global, factory) {
30803
+ true ? factory(__webpack_require__(0)) :
30804
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30805
+ factory(global.moment)
30806
+ }(this, (function (moment) { 'use strict';
30807
+
30808
+
30809
+ var suffixes = {
30810
+ 0: '-ум',
30811
+ 1: '-ум',
30812
+ 2: '-юм',
30813
+ 3: '-юм',
30814
+ 4: '-ум',
30815
+ 5: '-ум',
30816
+ 6: '-ум',
30817
+ 7: '-ум',
30818
+ 8: '-ум',
30819
+ 9: '-ум',
30820
+ 10: '-ум',
30821
+ 12: '-ум',
30822
+ 13: '-ум',
30823
+ 20: '-ум',
30824
+ 30: '-юм',
30825
+ 40: '-ум',
30826
+ 50: '-ум',
30827
+ 60: '-ум',
30828
+ 70: '-ум',
30829
+ 80: '-ум',
30830
+ 90: '-ум',
30831
+ 100: '-ум'
30832
+ };
30833
+
30834
+ var tg = moment.defineLocale('tg', {
30835
+ months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
30836
+ monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
30837
+ weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),
30838
+ weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
30839
+ weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
30840
+ longDateFormat : {
30841
+ LT : 'HH:mm',
30842
+ LTS : 'HH:mm:ss',
30843
+ L : 'DD/MM/YYYY',
30844
+ LL : 'D MMMM YYYY',
30845
+ LLL : 'D MMMM YYYY HH:mm',
30846
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
30847
+ },
30848
+ calendar : {
30849
+ sameDay : '[Имрӯз соати] LT',
30850
+ nextDay : '[Пагоҳ соати] LT',
30851
+ lastDay : '[Дирӯз соати] LT',
30852
+ nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',
30853
+ lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',
30854
+ sameElse : 'L'
30855
+ },
30856
+ relativeTime : {
30857
+ future : 'баъди %s',
30858
+ past : '%s пеш',
30859
+ s : 'якчанд сония',
30860
+ m : 'як дақиқа',
30861
+ mm : '%d дақиқа',
30862
+ h : 'як соат',
30863
+ hh : '%d соат',
30864
+ d : 'як рӯз',
30865
+ dd : '%d рӯз',
30866
+ M : 'як моҳ',
30867
+ MM : '%d моҳ',
30868
+ y : 'як сол',
30869
+ yy : '%d сол'
30870
+ },
30871
+ meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
30872
+ meridiemHour: function (hour, meridiem) {
30873
+ if (hour === 12) {
30874
+ hour = 0;
30875
+ }
30876
+ if (meridiem === 'шаб') {
30877
+ return hour < 4 ? hour : hour + 12;
30878
+ } else if (meridiem === 'субҳ') {
30879
+ return hour;
30880
+ } else if (meridiem === 'рӯз') {
30881
+ return hour >= 11 ? hour : hour + 12;
30882
+ } else if (meridiem === 'бегоҳ') {
30883
+ return hour + 12;
30884
+ }
30885
+ },
30886
+ meridiem: function (hour, minute, isLower) {
30887
+ if (hour < 4) {
30888
+ return 'шаб';
30889
+ } else if (hour < 11) {
30890
+ return 'субҳ';
30891
+ } else if (hour < 16) {
30892
+ return 'рӯз';
30893
+ } else if (hour < 19) {
30894
+ return 'бегоҳ';
30895
+ } else {
30896
+ return 'шаб';
30897
+ }
30898
+ },
30899
+ dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
30900
+ ordinal: function (number) {
30901
+ var a = number % 10,
30902
+ b = number >= 100 ? 100 : null;
30903
+ return number + (suffixes[number] || suffixes[a] || suffixes[b]);
30904
+ },
30905
+ week : {
30906
+ dow : 1, // Monday is the first day of the week.
30907
+ doy : 7 // The week that contains Jan 1th is the first week of the year.
30908
+ }
30909
+ });
30910
+
30911
+ return tg;
30912
+
30913
+ })));
30914
+
30915
+
30916
+ /***/ }),
30917
+ /* 184 */
30918
+ /***/ (function(module, exports, __webpack_require__) {
30919
+
30920
+ //! moment.js locale configuration
30921
+
30922
+ ;(function (global, factory) {
30923
+ true ? factory(__webpack_require__(0)) :
30924
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30925
+ factory(global.moment)
30926
+ }(this, (function (moment) { 'use strict';
30927
+
30928
+
30929
+ var th = moment.defineLocale('th', {
30930
+ months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
30931
+ monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),
30932
+ monthsParseExact: true,
30933
+ weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
30934
+ weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
30935
+ weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
30936
+ weekdaysParseExact : true,
30937
+ longDateFormat : {
30938
+ LT : 'H:mm',
30939
+ LTS : 'H:mm:ss',
30940
+ L : 'DD/MM/YYYY',
30941
+ LL : 'D MMMM YYYY',
30942
+ LLL : 'D MMMM YYYY เวลา H:mm',
30943
+ LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'
30944
+ },
30945
+ meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
30946
+ isPM: function (input) {
30947
+ return input === 'หลังเที่ยง';
30948
+ },
30949
+ meridiem : function (hour, minute, isLower) {
30950
+ if (hour < 12) {
30951
+ return 'ก่อนเที่ยง';
30952
+ } else {
30953
+ return 'หลังเที่ยง';
30954
+ }
30955
+ },
30956
+ calendar : {
30957
+ sameDay : '[วันนี้ เวลา] LT',
30958
+ nextDay : '[พรุ่งนี้ เวลา] LT',
30959
+ nextWeek : 'dddd[หน้า เวลา] LT',
30960
+ lastDay : '[เมื่อวานนี้ เวลา] LT',
30961
+ lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
30962
+ sameElse : 'L'
30963
+ },
30964
+ relativeTime : {
30965
+ future : 'อีก %s',
30966
+ past : '%sที่แล้ว',
30967
+ s : 'ไม่กี่วินาที',
30968
+ ss : '%d วินาที',
30969
+ m : '1 นาที',
30970
+ mm : '%d นาที',
30971
+ h : '1 ชั่วโมง',
30972
+ hh : '%d ชั่วโมง',
30973
+ d : '1 วัน',
30974
+ dd : '%d วัน',
30975
+ M : '1 เดือน',
30976
+ MM : '%d เดือน',
30977
+ y : '1 ปี',
30978
+ yy : '%d ปี'
30979
+ }
30980
+ });
30981
+
30982
+ return th;
30983
+
30984
+ })));
30985
+
30986
+
30987
+ /***/ }),
30988
+ /* 185 */
30989
+ /***/ (function(module, exports, __webpack_require__) {
30990
+
30991
+ //! moment.js locale configuration
30992
+
30993
+ ;(function (global, factory) {
30994
+ true ? factory(__webpack_require__(0)) :
30995
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
30996
+ factory(global.moment)
30997
+ }(this, (function (moment) { 'use strict';
30998
+
30999
+
31000
+ var tlPh = moment.defineLocale('tl-ph', {
31001
+ months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
31002
+ monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
31003
+ weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
31004
+ weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
31005
+ weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
31006
+ longDateFormat : {
31007
+ LT : 'HH:mm',
31008
+ LTS : 'HH:mm:ss',
31009
+ L : 'MM/D/YYYY',
31010
+ LL : 'MMMM D, YYYY',
31011
+ LLL : 'MMMM D, YYYY HH:mm',
31012
+ LLLL : 'dddd, MMMM DD, YYYY HH:mm'
31013
+ },
31014
+ calendar : {
31015
+ sameDay: 'LT [ngayong araw]',
31016
+ nextDay: '[Bukas ng] LT',
31017
+ nextWeek: 'LT [sa susunod na] dddd',
31018
+ lastDay: 'LT [kahapon]',
31019
+ lastWeek: 'LT [noong nakaraang] dddd',
31020
+ sameElse: 'L'
31021
+ },
31022
+ relativeTime : {
31023
+ future : 'sa loob ng %s',
31024
+ past : '%s ang nakalipas',
31025
+ s : 'ilang segundo',
31026
+ ss : '%d segundo',
31027
+ m : 'isang minuto',
31028
+ mm : '%d minuto',
31029
+ h : 'isang oras',
31030
+ hh : '%d oras',
31031
+ d : 'isang araw',
31032
+ dd : '%d araw',
31033
+ M : 'isang buwan',
31034
+ MM : '%d buwan',
31035
+ y : 'isang taon',
31036
+ yy : '%d taon'
31037
+ },
31038
+ dayOfMonthOrdinalParse: /\d{1,2}/,
31039
+ ordinal : function (number) {
31040
+ return number;
31041
+ },
31042
+ week : {
31043
+ dow : 1, // Monday is the first day of the week.
31044
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
31045
+ }
31046
+ });
31047
+
31048
+ return tlPh;
31049
+
31050
+ })));
31051
+
31052
+
31053
+ /***/ }),
31054
+ /* 186 */
31055
+ /***/ (function(module, exports, __webpack_require__) {
31056
+
31057
+ //! moment.js locale configuration
31058
+
31059
+ ;(function (global, factory) {
31060
+ true ? factory(__webpack_require__(0)) :
31061
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31062
+ factory(global.moment)
31063
+ }(this, (function (moment) { 'use strict';
31064
+
31065
+
31066
+ var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
31067
+
31068
+ function translateFuture(output) {
31069
+ var time = output;
31070
+ time = (output.indexOf('jaj') !== -1) ?
31071
+ time.slice(0, -3) + 'leS' :
31072
+ (output.indexOf('jar') !== -1) ?
31073
+ time.slice(0, -3) + 'waQ' :
31074
+ (output.indexOf('DIS') !== -1) ?
31075
+ time.slice(0, -3) + 'nem' :
31076
+ time + ' pIq';
31077
+ return time;
31078
+ }
31079
+
31080
+ function translatePast(output) {
31081
+ var time = output;
31082
+ time = (output.indexOf('jaj') !== -1) ?
31083
+ time.slice(0, -3) + 'Hu’' :
31084
+ (output.indexOf('jar') !== -1) ?
31085
+ time.slice(0, -3) + 'wen' :
31086
+ (output.indexOf('DIS') !== -1) ?
31087
+ time.slice(0, -3) + 'ben' :
31088
+ time + ' ret';
31089
+ return time;
31090
+ }
31091
+
31092
+ function translate(number, withoutSuffix, string, isFuture) {
31093
+ var numberNoun = numberAsNoun(number);
31094
+ switch (string) {
31095
+ case 'ss':
31096
+ return numberNoun + ' lup';
31097
+ case 'mm':
31098
+ return numberNoun + ' tup';
31099
+ case 'hh':
31100
+ return numberNoun + ' rep';
31101
+ case 'dd':
31102
+ return numberNoun + ' jaj';
31103
+ case 'MM':
31104
+ return numberNoun + ' jar';
31105
+ case 'yy':
31106
+ return numberNoun + ' DIS';
31107
+ }
31108
+ }
31109
+
31110
+ function numberAsNoun(number) {
31111
+ var hundred = Math.floor((number % 1000) / 100),
31112
+ ten = Math.floor((number % 100) / 10),
31113
+ one = number % 10,
31114
+ word = '';
31115
+ if (hundred > 0) {
31116
+ word += numbersNouns[hundred] + 'vatlh';
31117
+ }
31118
+ if (ten > 0) {
31119
+ word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
31120
+ }
31121
+ if (one > 0) {
31122
+ word += ((word !== '') ? ' ' : '') + numbersNouns[one];
31123
+ }
31124
+ return (word === '') ? 'pagh' : word;
31125
+ }
31126
+
31127
+ var tlh = moment.defineLocale('tlh', {
31128
+ months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),
31129
+ monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
31130
+ monthsParseExact : true,
31131
+ weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
31132
+ weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
31133
+ weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
31134
+ longDateFormat : {
31135
+ LT : 'HH:mm',
31136
+ LTS : 'HH:mm:ss',
31137
+ L : 'DD.MM.YYYY',
31138
+ LL : 'D MMMM YYYY',
31139
+ LLL : 'D MMMM YYYY HH:mm',
31140
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
31141
+ },
31142
+ calendar : {
31143
+ sameDay: '[DaHjaj] LT',
31144
+ nextDay: '[wa’leS] LT',
31145
+ nextWeek: 'LLL',
31146
+ lastDay: '[wa’Hu’] LT',
31147
+ lastWeek: 'LLL',
31148
+ sameElse: 'L'
31149
+ },
31150
+ relativeTime : {
31151
+ future : translateFuture,
31152
+ past : translatePast,
31153
+ s : 'puS lup',
31154
+ ss : translate,
31155
+ m : 'wa’ tup',
31156
+ mm : translate,
31157
+ h : 'wa’ rep',
31158
+ hh : translate,
31159
+ d : 'wa’ jaj',
31160
+ dd : translate,
31161
+ M : 'wa’ jar',
31162
+ MM : translate,
31163
+ y : 'wa’ DIS',
31164
+ yy : translate
31165
+ },
31166
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
31167
+ ordinal : '%d.',
31168
+ week : {
31169
+ dow : 1, // Monday is the first day of the week.
31170
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
31171
+ }
31172
+ });
31173
+
31174
+ return tlh;
31175
+
31176
+ })));
31177
+
31178
+
31179
+ /***/ }),
31180
+ /* 187 */
31181
+ /***/ (function(module, exports, __webpack_require__) {
31182
+
31183
+
31184
+ ;(function (global, factory) {
31185
+ true ? factory(__webpack_require__(0)) :
31186
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31187
+ factory(global.moment)
31188
+ }(this, (function (moment) { 'use strict';
31189
+
31190
+ var suffixes = {
31191
+ 1: '\'inci',
31192
+ 5: '\'inci',
31193
+ 8: '\'inci',
31194
+ 70: '\'inci',
31195
+ 80: '\'inci',
31196
+ 2: '\'nci',
31197
+ 7: '\'nci',
31198
+ 20: '\'nci',
31199
+ 50: '\'nci',
31200
+ 3: '\'üncü',
31201
+ 4: '\'üncü',
31202
+ 100: '\'üncü',
31203
+ 6: '\'ncı',
31204
+ 9: '\'uncu',
31205
+ 10: '\'uncu',
31206
+ 30: '\'uncu',
31207
+ 60: '\'ıncı',
31208
+ 90: '\'ıncı'
31209
+ };
31210
+
31211
+ var tr = moment.defineLocale('tr', {
31212
+ months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
31213
+ monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
31214
+ weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
31215
+ weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
31216
+ weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
31217
+ longDateFormat : {
31218
+ LT : 'HH:mm',
31219
+ LTS : 'HH:mm:ss',
31220
+ L : 'DD.MM.YYYY',
31221
+ LL : 'D MMMM YYYY',
31222
+ LLL : 'D MMMM YYYY HH:mm',
31223
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
31224
+ },
31225
+ calendar : {
31226
+ sameDay : '[bugün saat] LT',
31227
+ nextDay : '[yarın saat] LT',
31228
+ nextWeek : '[gelecek] dddd [saat] LT',
31229
+ lastDay : '[dün] LT',
31230
+ lastWeek : '[geçen] dddd [saat] LT',
31231
+ sameElse : 'L'
31232
+ },
31233
+ relativeTime : {
31234
+ future : '%s sonra',
31235
+ past : '%s önce',
31236
+ s : 'birkaç saniye',
31237
+ ss : '%d saniye',
31238
+ m : 'bir dakika',
31239
+ mm : '%d dakika',
31240
+ h : 'bir saat',
31241
+ hh : '%d saat',
31242
+ d : 'bir gün',
31243
+ dd : '%d gün',
31244
+ M : 'bir ay',
31245
+ MM : '%d ay',
31246
+ y : 'bir yıl',
31247
+ yy : '%d yıl'
31248
+ },
31249
+ ordinal: function (number, period) {
31250
+ switch (period) {
31251
+ case 'd':
31252
+ case 'D':
31253
+ case 'Do':
31254
+ case 'DD':
31255
+ return number;
31256
+ default:
31257
+ if (number === 0) { // special case for zero
31258
+ return number + '\'ıncı';
31259
+ }
31260
+ var a = number % 10,
31261
+ b = number % 100 - a,
31262
+ c = number >= 100 ? 100 : null;
31263
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
31264
+ }
31265
+ },
31266
+ week : {
31267
+ dow : 1, // Monday is the first day of the week.
31268
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
31269
+ }
31270
+ });
31271
+
31272
+ return tr;
31273
+
31274
+ })));
31275
+
31276
+
31277
+ /***/ }),
31278
+ /* 188 */
31279
+ /***/ (function(module, exports, __webpack_require__) {
31280
+
31281
+ //! moment.js locale configuration
31282
+
31283
+ ;(function (global, factory) {
31284
+ true ? factory(__webpack_require__(0)) :
31285
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31286
+ factory(global.moment)
31287
+ }(this, (function (moment) { 'use strict';
31288
+
31289
+
31290
+ // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
31291
+ // This is currently too difficult (maybe even impossible) to add.
31292
+ var tzl = moment.defineLocale('tzl', {
31293
+ months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
31294
+ monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
31295
+ weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
31296
+ weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
31297
+ weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
31298
+ longDateFormat : {
31299
+ LT : 'HH.mm',
31300
+ LTS : 'HH.mm.ss',
31301
+ L : 'DD.MM.YYYY',
31302
+ LL : 'D. MMMM [dallas] YYYY',
31303
+ LLL : 'D. MMMM [dallas] YYYY HH.mm',
31304
+ LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
31305
+ },
31306
+ meridiemParse: /d\'o|d\'a/i,
31307
+ isPM : function (input) {
31308
+ return 'd\'o' === input.toLowerCase();
31309
+ },
31310
+ meridiem : function (hours, minutes, isLower) {
31311
+ if (hours > 11) {
31312
+ return isLower ? 'd\'o' : 'D\'O';
31313
+ } else {
31314
+ return isLower ? 'd\'a' : 'D\'A';
31315
+ }
31316
+ },
31317
+ calendar : {
31318
+ sameDay : '[oxhi à] LT',
31319
+ nextDay : '[demà à] LT',
31320
+ nextWeek : 'dddd [à] LT',
31321
+ lastDay : '[ieiri à] LT',
31322
+ lastWeek : '[sür el] dddd [lasteu à] LT',
31323
+ sameElse : 'L'
31324
+ },
31325
+ relativeTime : {
31326
+ future : 'osprei %s',
31327
+ past : 'ja%s',
31328
+ s : processRelativeTime,
31329
+ ss : processRelativeTime,
31330
+ m : processRelativeTime,
31331
+ mm : processRelativeTime,
31332
+ h : processRelativeTime,
31333
+ hh : processRelativeTime,
31334
+ d : processRelativeTime,
31335
+ dd : processRelativeTime,
31336
+ M : processRelativeTime,
31337
+ MM : processRelativeTime,
31338
+ y : processRelativeTime,
31339
+ yy : processRelativeTime
31340
+ },
31341
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
31342
+ ordinal : '%d.',
31343
+ week : {
31344
+ dow : 1, // Monday is the first day of the week.
31345
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
31346
+ }
31347
+ });
31348
+
31349
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
31350
+ var format = {
31351
+ 's': ['viensas secunds', '\'iensas secunds'],
31352
+ 'ss': [number + ' secunds', '' + number + ' secunds'],
31353
+ 'm': ['\'n míut', '\'iens míut'],
31354
+ 'mm': [number + ' míuts', '' + number + ' míuts'],
31355
+ 'h': ['\'n þora', '\'iensa þora'],
31356
+ 'hh': [number + ' þoras', '' + number + ' þoras'],
31357
+ 'd': ['\'n ziua', '\'iensa ziua'],
31358
+ 'dd': [number + ' ziuas', '' + number + ' ziuas'],
31359
+ 'M': ['\'n mes', '\'iens mes'],
31360
+ 'MM': [number + ' mesen', '' + number + ' mesen'],
31361
+ 'y': ['\'n ar', '\'iens ar'],
31362
+ 'yy': [number + ' ars', '' + number + ' ars']
31363
+ };
31364
+ return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
31365
+ }
31366
+
31367
+ return tzl;
31368
+
31369
+ })));
31370
+
31371
+
31372
+ /***/ }),
31373
+ /* 189 */
31374
+ /***/ (function(module, exports, __webpack_require__) {
31375
+
31376
+ //! moment.js locale configuration
31377
+
31378
+ ;(function (global, factory) {
31379
+ true ? factory(__webpack_require__(0)) :
31380
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31381
+ factory(global.moment)
31382
+ }(this, (function (moment) { 'use strict';
31383
+
31384
+
31385
+ var tzm = moment.defineLocale('tzm', {
31386
+ months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
31387
+ monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
31388
+ weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
31389
+ weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
31390
+ weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
31391
+ longDateFormat : {
31392
+ LT : 'HH:mm',
31393
+ LTS: 'HH:mm:ss',
31394
+ L : 'DD/MM/YYYY',
31395
+ LL : 'D MMMM YYYY',
31396
+ LLL : 'D MMMM YYYY HH:mm',
31397
+ LLLL : 'dddd D MMMM YYYY HH:mm'
31398
+ },
31399
+ calendar : {
31400
+ sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
31401
+ nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
31402
+ nextWeek: 'dddd [ⴴ] LT',
31403
+ lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
31404
+ lastWeek: 'dddd [ⴴ] LT',
31405
+ sameElse: 'L'
31406
+ },
31407
+ relativeTime : {
31408
+ future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
31409
+ past : 'ⵢⴰⵏ %s',
31410
+ s : 'ⵉⵎⵉⴽ',
31411
+ ss : '%d ⵉⵎⵉⴽ',
31412
+ m : 'ⵎⵉⵏⵓⴺ',
31413
+ mm : '%d ⵎⵉⵏⵓⴺ',
31414
+ h : 'ⵙⴰⵄⴰ',
31415
+ hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
31416
+ d : 'ⴰⵙⵙ',
31417
+ dd : '%d oⵙⵙⴰⵏ',
31418
+ M : 'ⴰⵢoⵓⵔ',
31419
+ MM : '%d ⵉⵢⵢⵉⵔⵏ',
31420
+ y : 'ⴰⵙⴳⴰⵙ',
31421
+ yy : '%d ⵉⵙⴳⴰⵙⵏ'
31422
+ },
31423
+ week : {
31424
+ dow : 6, // Saturday is the first day of the week.
31425
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
31426
+ }
31427
+ });
31428
+
31429
+ return tzm;
31430
+
31431
+ })));
31432
+
31433
+
31434
+ /***/ }),
31435
+ /* 190 */
31436
+ /***/ (function(module, exports, __webpack_require__) {
31437
+
31438
+ //! moment.js locale configuration
31439
+
31440
+ ;(function (global, factory) {
31441
+ true ? factory(__webpack_require__(0)) :
31442
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31443
+ factory(global.moment)
31444
+ }(this, (function (moment) { 'use strict';
31445
+
31446
+
31447
+ var tzmLatn = moment.defineLocale('tzm-latn', {
31448
+ months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
31449
+ monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
31450
+ weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
31451
+ weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
31452
+ weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
31453
+ longDateFormat : {
31454
+ LT : 'HH:mm',
31455
+ LTS : 'HH:mm:ss',
31456
+ L : 'DD/MM/YYYY',
31457
+ LL : 'D MMMM YYYY',
31458
+ LLL : 'D MMMM YYYY HH:mm',
31459
+ LLLL : 'dddd D MMMM YYYY HH:mm'
31460
+ },
31461
+ calendar : {
31462
+ sameDay: '[asdkh g] LT',
31463
+ nextDay: '[aska g] LT',
31464
+ nextWeek: 'dddd [g] LT',
31465
+ lastDay: '[assant g] LT',
31466
+ lastWeek: 'dddd [g] LT',
31467
+ sameElse: 'L'
31468
+ },
31469
+ relativeTime : {
31470
+ future : 'dadkh s yan %s',
31471
+ past : 'yan %s',
31472
+ s : 'imik',
31473
+ ss : '%d imik',
31474
+ m : 'minuḍ',
31475
+ mm : '%d minuḍ',
31476
+ h : 'saɛa',
31477
+ hh : '%d tassaɛin',
31478
+ d : 'ass',
31479
+ dd : '%d ossan',
31480
+ M : 'ayowr',
31481
+ MM : '%d iyyirn',
31482
+ y : 'asgas',
31483
+ yy : '%d isgasn'
31484
+ },
31485
+ week : {
31486
+ dow : 6, // Saturday is the first day of the week.
31487
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
31488
+ }
31489
+ });
31490
+
31491
+ return tzmLatn;
31492
+
31493
+ })));
31494
+
31495
+
31496
+ /***/ }),
31497
+ /* 191 */
31498
+ /***/ (function(module, exports, __webpack_require__) {
31499
+
31500
+ //! moment.js language configuration
31501
+
31502
+ ;(function (global, factory) {
31503
+ true ? factory(__webpack_require__(0)) :
31504
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31505
+ factory(global.moment)
31506
+ }(this, (function (moment) { 'use strict';
31507
+
31508
+
31509
+ var ugCn = moment.defineLocale('ug-cn', {
31510
+ months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
31511
+ '_'
31512
+ ),
31513
+ monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
31514
+ '_'
31515
+ ),
31516
+ weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
31517
+ '_'
31518
+ ),
31519
+ weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
31520
+ weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
31521
+ longDateFormat: {
31522
+ LT: 'HH:mm',
31523
+ LTS: 'HH:mm:ss',
31524
+ L: 'YYYY-MM-DD',
31525
+ LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
31526
+ LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
31527
+ LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'
31528
+ },
31529
+ meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
31530
+ meridiemHour: function (hour, meridiem) {
31531
+ if (hour === 12) {
31532
+ hour = 0;
31533
+ }
31534
+ if (
31535
+ meridiem === 'يېرىم كېچە' ||
31536
+ meridiem === 'سەھەر' ||
31537
+ meridiem === 'چۈشتىن بۇرۇن'
31538
+ ) {
31539
+ return hour;
31540
+ } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
31541
+ return hour + 12;
31542
+ } else {
31543
+ return hour >= 11 ? hour : hour + 12;
31544
+ }
31545
+ },
31546
+ meridiem: function (hour, minute, isLower) {
31547
+ var hm = hour * 100 + minute;
31548
+ if (hm < 600) {
31549
+ return 'يېرىم كېچە';
31550
+ } else if (hm < 900) {
31551
+ return 'سەھەر';
31552
+ } else if (hm < 1130) {
31553
+ return 'چۈشتىن بۇرۇن';
31554
+ } else if (hm < 1230) {
31555
+ return 'چۈش';
31556
+ } else if (hm < 1800) {
31557
+ return 'چۈشتىن كېيىن';
31558
+ } else {
31559
+ return 'كەچ';
31560
+ }
31561
+ },
31562
+ calendar: {
31563
+ sameDay: '[بۈگۈن سائەت] LT',
31564
+ nextDay: '[ئەتە سائەت] LT',
31565
+ nextWeek: '[كېلەركى] dddd [سائەت] LT',
31566
+ lastDay: '[تۆنۈگۈن] LT',
31567
+ lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
31568
+ sameElse: 'L'
31569
+ },
31570
+ relativeTime: {
31571
+ future: '%s كېيىن',
31572
+ past: '%s بۇرۇن',
31573
+ s: 'نەچچە سېكونت',
31574
+ ss: '%d سېكونت',
31575
+ m: 'بىر مىنۇت',
31576
+ mm: '%d مىنۇت',
31577
+ h: 'بىر سائەت',
31578
+ hh: '%d سائەت',
31579
+ d: 'بىر كۈن',
31580
+ dd: '%d كۈن',
31581
+ M: 'بىر ئاي',
31582
+ MM: '%d ئاي',
31583
+ y: 'بىر يىل',
31584
+ yy: '%d يىل'
31585
+ },
31586
+
31587
+ dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
31588
+ ordinal: function (number, period) {
31589
+ switch (period) {
31590
+ case 'd':
31591
+ case 'D':
31592
+ case 'DDD':
31593
+ return number + '-كۈنى';
31594
+ case 'w':
31595
+ case 'W':
31596
+ return number + '-ھەپتە';
31597
+ default:
31598
+ return number;
31599
+ }
31600
+ },
31601
+ preparse: function (string) {
31602
+ return string.replace(/،/g, ',');
31603
+ },
31604
+ postformat: function (string) {
31605
+ return string.replace(/,/g, '،');
31606
+ },
31607
+ week: {
31608
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
31609
+ dow: 1, // Monday is the first day of the week.
31610
+ doy: 7 // The week that contains Jan 1st is the first week of the year.
31611
+ }
31612
+ });
31613
+
31614
+ return ugCn;
31615
+
31616
+ })));
31617
+
31618
+
31619
+ /***/ }),
31620
+ /* 192 */
31621
+ /***/ (function(module, exports, __webpack_require__) {
31622
+
31623
+ //! moment.js locale configuration
31624
+
31625
+ ;(function (global, factory) {
31626
+ true ? factory(__webpack_require__(0)) :
31627
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31628
+ factory(global.moment)
31629
+ }(this, (function (moment) { 'use strict';
31630
+
31631
+
31632
+ function plural(word, num) {
31633
+ var forms = word.split('_');
31634
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
31635
+ }
31636
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
31637
+ var format = {
31638
+ 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
31639
+ 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
31640
+ 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
31641
+ 'dd': 'день_дні_днів',
31642
+ 'MM': 'місяць_місяці_місяців',
31643
+ 'yy': 'рік_роки_років'
31644
+ };
31645
+ if (key === 'm') {
31646
+ return withoutSuffix ? 'хвилина' : 'хвилину';
31647
+ }
31648
+ else if (key === 'h') {
31649
+ return withoutSuffix ? 'година' : 'годину';
31650
+ }
31651
+ else {
31652
+ return number + ' ' + plural(format[key], +number);
31653
+ }
31654
+ }
31655
+ function weekdaysCaseReplace(m, format) {
31656
+ var weekdays = {
31657
+ 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
31658
+ 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
31659
+ 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
31660
+ };
31661
+
31662
+ if (!m) {
31663
+ return weekdays['nominative'];
31664
+ }
31665
+
31666
+ var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
31667
+ 'accusative' :
31668
+ ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
31669
+ 'genitive' :
31670
+ 'nominative');
31671
+ return weekdays[nounCase][m.day()];
31672
+ }
31673
+ function processHoursFunction(str) {
31674
+ return function () {
31675
+ return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
31676
+ };
31677
+ }
31678
+
31679
+ var uk = moment.defineLocale('uk', {
31680
+ months : {
31681
+ 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
31682
+ 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
31683
+ },
31684
+ monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
31685
+ weekdays : weekdaysCaseReplace,
31686
+ weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
31687
+ weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
31688
+ longDateFormat : {
31689
+ LT : 'HH:mm',
31690
+ LTS : 'HH:mm:ss',
31691
+ L : 'DD.MM.YYYY',
31692
+ LL : 'D MMMM YYYY р.',
31693
+ LLL : 'D MMMM YYYY р., HH:mm',
31694
+ LLLL : 'dddd, D MMMM YYYY р., HH:mm'
31695
+ },
31696
+ calendar : {
31697
+ sameDay: processHoursFunction('[Сьогодні '),
31698
+ nextDay: processHoursFunction('[Завтра '),
31699
+ lastDay: processHoursFunction('[Вчора '),
31700
+ nextWeek: processHoursFunction('[У] dddd ['),
31701
+ lastWeek: function () {
31702
+ switch (this.day()) {
31703
+ case 0:
31704
+ case 3:
31705
+ case 5:
31706
+ case 6:
31707
+ return processHoursFunction('[Минулої] dddd [').call(this);
31708
+ case 1:
31709
+ case 2:
31710
+ case 4:
31711
+ return processHoursFunction('[Минулого] dddd [').call(this);
31712
+ }
31713
+ },
31714
+ sameElse: 'L'
31715
+ },
31716
+ relativeTime : {
31717
+ future : 'за %s',
31718
+ past : '%s тому',
31719
+ s : 'декілька секунд',
31720
+ ss : relativeTimeWithPlural,
31721
+ m : relativeTimeWithPlural,
31722
+ mm : relativeTimeWithPlural,
31723
+ h : 'годину',
31724
+ hh : relativeTimeWithPlural,
31725
+ d : 'день',
31726
+ dd : relativeTimeWithPlural,
31727
+ M : 'місяць',
31728
+ MM : relativeTimeWithPlural,
31729
+ y : 'рік',
31730
+ yy : relativeTimeWithPlural
31731
+ },
31732
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
31733
+ meridiemParse: /ночі|ранку|дня|вечора/,
31734
+ isPM: function (input) {
31735
+ return /^(дня|вечора)$/.test(input);
31736
+ },
31737
+ meridiem : function (hour, minute, isLower) {
31738
+ if (hour < 4) {
31739
+ return 'ночі';
31740
+ } else if (hour < 12) {
31741
+ return 'ранку';
31742
+ } else if (hour < 17) {
31743
+ return 'дня';
31744
+ } else {
31745
+ return 'вечора';
31746
+ }
31747
+ },
31748
+ dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
31749
+ ordinal: function (number, period) {
31750
+ switch (period) {
31751
+ case 'M':
31752
+ case 'd':
31753
+ case 'DDD':
31754
+ case 'w':
31755
+ case 'W':
31756
+ return number + '-й';
31757
+ case 'D':
31758
+ return number + '-го';
31759
+ default:
31760
+ return number;
31761
+ }
31762
+ },
31763
+ week : {
31764
+ dow : 1, // Monday is the first day of the week.
31765
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
31766
+ }
31767
+ });
31768
+
31769
+ return uk;
31770
+
31771
+ })));
31772
+
31773
+
31774
+ /***/ }),
31775
+ /* 193 */
31776
+ /***/ (function(module, exports, __webpack_require__) {
31777
+
31778
+ //! moment.js locale configuration
31779
+
31780
+ ;(function (global, factory) {
31781
+ true ? factory(__webpack_require__(0)) :
31782
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31783
+ factory(global.moment)
31784
+ }(this, (function (moment) { 'use strict';
31785
+
31786
+
31787
+ var months = [
31788
+ 'جنوری',
31789
+ 'فروری',
31790
+ 'مارچ',
31791
+ 'اپریل',
31792
+ 'مئی',
31793
+ 'جون',
31794
+ 'جولائی',
31795
+ 'اگست',
31796
+ 'ستمبر',
31797
+ 'اکتوبر',
31798
+ 'نومبر',
31799
+ 'دسمبر'
31800
+ ];
31801
+ var days = [
31802
+ 'اتوار',
31803
+ 'پیر',
31804
+ 'منگل',
31805
+ 'بدھ',
31806
+ 'جمعرات',
31807
+ 'جمعہ',
31808
+ 'ہفتہ'
31809
+ ];
31810
+
31811
+ var ur = moment.defineLocale('ur', {
31812
+ months : months,
31813
+ monthsShort : months,
31814
+ weekdays : days,
31815
+ weekdaysShort : days,
31816
+ weekdaysMin : days,
31817
+ longDateFormat : {
31818
+ LT : 'HH:mm',
31819
+ LTS : 'HH:mm:ss',
31820
+ L : 'DD/MM/YYYY',
31821
+ LL : 'D MMMM YYYY',
31822
+ LLL : 'D MMMM YYYY HH:mm',
31823
+ LLLL : 'dddd، D MMMM YYYY HH:mm'
31824
+ },
31825
+ meridiemParse: /صبح|شام/,
31826
+ isPM : function (input) {
31827
+ return 'شام' === input;
31828
+ },
31829
+ meridiem : function (hour, minute, isLower) {
31830
+ if (hour < 12) {
31831
+ return 'صبح';
31832
+ }
31833
+ return 'شام';
31834
+ },
31835
+ calendar : {
31836
+ sameDay : '[آج بوقت] LT',
31837
+ nextDay : '[کل بوقت] LT',
31838
+ nextWeek : 'dddd [بوقت] LT',
31839
+ lastDay : '[گذشتہ روز بوقت] LT',
31840
+ lastWeek : '[گذشتہ] dddd [بوقت] LT',
31841
+ sameElse : 'L'
31842
+ },
31843
+ relativeTime : {
31844
+ future : '%s بعد',
31845
+ past : '%s قبل',
31846
+ s : 'چند سیکنڈ',
31847
+ ss : '%d سیکنڈ',
31848
+ m : 'ایک منٹ',
31849
+ mm : '%d منٹ',
31850
+ h : 'ایک گھنٹہ',
31851
+ hh : '%d گھنٹے',
31852
+ d : 'ایک دن',
31853
+ dd : '%d دن',
31854
+ M : 'ایک ماہ',
31855
+ MM : '%d ماہ',
31856
+ y : 'ایک سال',
31857
+ yy : '%d سال'
31858
+ },
31859
+ preparse: function (string) {
31860
+ return string.replace(/،/g, ',');
31861
+ },
31862
+ postformat: function (string) {
31863
+ return string.replace(/,/g, '،');
31864
+ },
31865
+ week : {
31866
+ dow : 1, // Monday is the first day of the week.
31867
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
31868
+ }
31869
+ });
31870
+
31871
+ return ur;
31872
+
31873
+ })));
31874
+
31875
+
31876
+ /***/ }),
31877
+ /* 194 */
31878
+ /***/ (function(module, exports, __webpack_require__) {
31879
+
31880
+ //! moment.js locale configuration
31881
+
31882
+ ;(function (global, factory) {
31883
+ true ? factory(__webpack_require__(0)) :
31884
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31885
+ factory(global.moment)
31886
+ }(this, (function (moment) { 'use strict';
31887
+
31888
+
31889
+ var uz = moment.defineLocale('uz', {
31890
+ months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
31891
+ monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
31892
+ weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
31893
+ weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
31894
+ weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
31895
+ longDateFormat : {
31896
+ LT : 'HH:mm',
31897
+ LTS : 'HH:mm:ss',
31898
+ L : 'DD/MM/YYYY',
31899
+ LL : 'D MMMM YYYY',
31900
+ LLL : 'D MMMM YYYY HH:mm',
31901
+ LLLL : 'D MMMM YYYY, dddd HH:mm'
31902
+ },
31903
+ calendar : {
31904
+ sameDay : '[Бугун соат] LT [да]',
31905
+ nextDay : '[Эртага] LT [да]',
31906
+ nextWeek : 'dddd [куни соат] LT [да]',
31907
+ lastDay : '[Кеча соат] LT [да]',
31908
+ lastWeek : '[Утган] dddd [куни соат] LT [да]',
31909
+ sameElse : 'L'
31910
+ },
31911
+ relativeTime : {
31912
+ future : 'Якин %s ичида',
31913
+ past : 'Бир неча %s олдин',
31914
+ s : 'фурсат',
31915
+ ss : '%d фурсат',
31916
+ m : 'бир дакика',
31917
+ mm : '%d дакика',
31918
+ h : 'бир соат',
31919
+ hh : '%d соат',
31920
+ d : 'бир кун',
31921
+ dd : '%d кун',
31922
+ M : 'бир ой',
31923
+ MM : '%d ой',
31924
+ y : 'бир йил',
31925
+ yy : '%d йил'
31926
+ },
31927
+ week : {
31928
+ dow : 1, // Monday is the first day of the week.
31929
+ doy : 7 // The week that contains Jan 4th is the first week of the year.
31930
+ }
31931
+ });
31932
+
31933
+ return uz;
31934
+
31935
+ })));
31936
+
31937
+
31938
+ /***/ }),
31939
+ /* 195 */
31940
+ /***/ (function(module, exports, __webpack_require__) {
31941
+
31942
+ //! moment.js locale configuration
31943
+
31944
+ ;(function (global, factory) {
31945
+ true ? factory(__webpack_require__(0)) :
31946
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
31947
+ factory(global.moment)
31948
+ }(this, (function (moment) { 'use strict';
31949
+
31950
+
31951
+ var uzLatn = moment.defineLocale('uz-latn', {
31952
+ months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),
31953
+ monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
31954
+ weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),
31955
+ weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
31956
+ weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
31957
+ longDateFormat : {
31958
+ LT : 'HH:mm',
31959
+ LTS : 'HH:mm:ss',
31960
+ L : 'DD/MM/YYYY',
31961
+ LL : 'D MMMM YYYY',
31962
+ LLL : 'D MMMM YYYY HH:mm',
31963
+ LLLL : 'D MMMM YYYY, dddd HH:mm'
31964
+ },
31965
+ calendar : {
31966
+ sameDay : '[Bugun soat] LT [da]',
31967
+ nextDay : '[Ertaga] LT [da]',
31968
+ nextWeek : 'dddd [kuni soat] LT [da]',
31969
+ lastDay : '[Kecha soat] LT [da]',
31970
+ lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]',
31971
+ sameElse : 'L'
31972
+ },
31973
+ relativeTime : {
31974
+ future : 'Yaqin %s ichida',
31975
+ past : 'Bir necha %s oldin',
31976
+ s : 'soniya',
31977
+ ss : '%d soniya',
31978
+ m : 'bir daqiqa',
31979
+ mm : '%d daqiqa',
31980
+ h : 'bir soat',
31981
+ hh : '%d soat',
31982
+ d : 'bir kun',
31983
+ dd : '%d kun',
31984
+ M : 'bir oy',
31985
+ MM : '%d oy',
31986
+ y : 'bir yil',
31987
+ yy : '%d yil'
31988
+ },
31989
+ week : {
31990
+ dow : 1, // Monday is the first day of the week.
31991
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
31992
+ }
31993
+ });
31994
+
31995
+ return uzLatn;
31996
+
31997
+ })));
31998
+
31999
+
32000
+ /***/ }),
32001
+ /* 196 */
32002
+ /***/ (function(module, exports, __webpack_require__) {
32003
+
32004
+ //! moment.js locale configuration
32005
+
32006
+ ;(function (global, factory) {
32007
+ true ? factory(__webpack_require__(0)) :
32008
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
32009
+ factory(global.moment)
32010
+ }(this, (function (moment) { 'use strict';
32011
+
32012
+
32013
+ var vi = moment.defineLocale('vi', {
32014
+ months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
32015
+ monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
32016
+ monthsParseExact : true,
32017
+ weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
32018
+ weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
32019
+ weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
32020
+ weekdaysParseExact : true,
32021
+ meridiemParse: /sa|ch/i,
32022
+ isPM : function (input) {
32023
+ return /^ch$/i.test(input);
32024
+ },
32025
+ meridiem : function (hours, minutes, isLower) {
32026
+ if (hours < 12) {
32027
+ return isLower ? 'sa' : 'SA';
32028
+ } else {
32029
+ return isLower ? 'ch' : 'CH';
32030
+ }
32031
+ },
32032
+ longDateFormat : {
32033
+ LT : 'HH:mm',
32034
+ LTS : 'HH:mm:ss',
32035
+ L : 'DD/MM/YYYY',
32036
+ LL : 'D MMMM [năm] YYYY',
32037
+ LLL : 'D MMMM [năm] YYYY HH:mm',
32038
+ LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
32039
+ l : 'DD/M/YYYY',
32040
+ ll : 'D MMM YYYY',
32041
+ lll : 'D MMM YYYY HH:mm',
32042
+ llll : 'ddd, D MMM YYYY HH:mm'
32043
+ },
32044
+ calendar : {
32045
+ sameDay: '[Hôm nay lúc] LT',
32046
+ nextDay: '[Ngày mai lúc] LT',
32047
+ nextWeek: 'dddd [tuần tới lúc] LT',
32048
+ lastDay: '[Hôm qua lúc] LT',
32049
+ lastWeek: 'dddd [tuần rồi lúc] LT',
32050
+ sameElse: 'L'
32051
+ },
32052
+ relativeTime : {
32053
+ future : '%s tới',
32054
+ past : '%s trước',
32055
+ s : 'vài giây',
32056
+ ss : '%d giây' ,
32057
+ m : 'một phút',
32058
+ mm : '%d phút',
32059
+ h : 'một giờ',
32060
+ hh : '%d giờ',
32061
+ d : 'một ngày',
32062
+ dd : '%d ngày',
32063
+ M : 'một tháng',
32064
+ MM : '%d tháng',
32065
+ y : 'một năm',
32066
+ yy : '%d năm'
32067
+ },
32068
+ dayOfMonthOrdinalParse: /\d{1,2}/,
32069
+ ordinal : function (number) {
32070
+ return number;
32071
+ },
32072
+ week : {
32073
+ dow : 1, // Monday is the first day of the week.
32074
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
32075
+ }
32076
+ });
32077
+
32078
+ return vi;
32079
+
32080
+ })));
32081
+
32082
+
32083
+ /***/ }),
32084
+ /* 197 */
32085
+ /***/ (function(module, exports, __webpack_require__) {
32086
+
32087
+ //! moment.js locale configuration
32088
+
32089
+ ;(function (global, factory) {
32090
+ true ? factory(__webpack_require__(0)) :
32091
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
32092
+ factory(global.moment)
32093
+ }(this, (function (moment) { 'use strict';
32094
+
32095
+
32096
+ var xPseudo = moment.defineLocale('x-pseudo', {
32097
+ months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),
32098
+ monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),
32099
+ monthsParseExact : true,
32100
+ weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),
32101
+ weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
32102
+ weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
32103
+ weekdaysParseExact : true,
32104
+ longDateFormat : {
32105
+ LT : 'HH:mm',
32106
+ L : 'DD/MM/YYYY',
32107
+ LL : 'D MMMM YYYY',
32108
+ LLL : 'D MMMM YYYY HH:mm',
32109
+ LLLL : 'dddd, D MMMM YYYY HH:mm'
32110
+ },
32111
+ calendar : {
32112
+ sameDay : '[T~ódá~ý át] LT',
32113
+ nextDay : '[T~ómó~rró~w át] LT',
32114
+ nextWeek : 'dddd [át] LT',
32115
+ lastDay : '[Ý~ést~érdá~ý át] LT',
32116
+ lastWeek : '[L~ást] dddd [át] LT',
32117
+ sameElse : 'L'
32118
+ },
32119
+ relativeTime : {
32120
+ future : 'í~ñ %s',
32121
+ past : '%s á~gó',
32122
+ s : 'á ~féw ~sécó~ñds',
32123
+ ss : '%d s~écóñ~ds',
32124
+ m : 'á ~míñ~úté',
32125
+ mm : '%d m~íñú~tés',
32126
+ h : 'á~ñ hó~úr',
32127
+ hh : '%d h~óúrs',
32128
+ d : 'á ~dáý',
32129
+ dd : '%d d~áýs',
32130
+ M : 'á ~móñ~th',
32131
+ MM : '%d m~óñt~hs',
32132
+ y : 'á ~ýéár',
32133
+ yy : '%d ý~éárs'
32134
+ },
32135
+ dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
32136
+ ordinal : function (number) {
32137
+ var b = number % 10,
32138
+ output = (~~(number % 100 / 10) === 1) ? 'th' :
32139
+ (b === 1) ? 'st' :
32140
+ (b === 2) ? 'nd' :
32141
+ (b === 3) ? 'rd' : 'th';
32142
+ return number + output;
32143
+ },
32144
+ week : {
32145
+ dow : 1, // Monday is the first day of the week.
32146
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
32147
+ }
32148
+ });
32149
+
32150
+ return xPseudo;
32151
+
32152
+ })));
32153
+
32154
+
32155
+ /***/ }),
32156
+ /* 198 */
32157
+ /***/ (function(module, exports, __webpack_require__) {
32158
+
32159
+ //! moment.js locale configuration
32160
+
32161
+ ;(function (global, factory) {
32162
+ true ? factory(__webpack_require__(0)) :
32163
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
32164
+ factory(global.moment)
32165
+ }(this, (function (moment) { 'use strict';
32166
+
32167
+
32168
+ var yo = moment.defineLocale('yo', {
32169
+ months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),
32170
+ monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
32171
+ weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
32172
+ weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
32173
+ weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
32174
+ longDateFormat : {
32175
+ LT : 'h:mm A',
32176
+ LTS : 'h:mm:ss A',
32177
+ L : 'DD/MM/YYYY',
32178
+ LL : 'D MMMM YYYY',
32179
+ LLL : 'D MMMM YYYY h:mm A',
32180
+ LLLL : 'dddd, D MMMM YYYY h:mm A'
32181
+ },
32182
+ calendar : {
32183
+ sameDay : '[Ònì ni] LT',
32184
+ nextDay : '[Ọ̀la ni] LT',
32185
+ nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT',
32186
+ lastDay : '[Àna ni] LT',
32187
+ lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
32188
+ sameElse : 'L'
32189
+ },
32190
+ relativeTime : {
32191
+ future : 'ní %s',
32192
+ past : '%s kọjá',
32193
+ s : 'ìsẹjú aayá die',
32194
+ ss :'aayá %d',
32195
+ m : 'ìsẹjú kan',
32196
+ mm : 'ìsẹjú %d',
32197
+ h : 'wákati kan',
32198
+ hh : 'wákati %d',
32199
+ d : 'ọjọ́ kan',
32200
+ dd : 'ọjọ́ %d',
32201
+ M : 'osù kan',
32202
+ MM : 'osù %d',
32203
+ y : 'ọdún kan',
32204
+ yy : 'ọdún %d'
32205
+ },
32206
+ dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/,
32207
+ ordinal : 'ọjọ́ %d',
32208
+ week : {
32209
+ dow : 1, // Monday is the first day of the week.
32210
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
32211
+ }
32212
+ });
32213
+
32214
+ return yo;
32215
+
32216
+ })));
32217
+
32218
+
32219
+ /***/ }),
32220
+ /* 199 */
32221
+ /***/ (function(module, exports, __webpack_require__) {
32222
+
32223
+ //! moment.js locale configuration
32224
+
32225
+ ;(function (global, factory) {
32226
+ true ? factory(__webpack_require__(0)) :
32227
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
32228
+ factory(global.moment)
32229
+ }(this, (function (moment) { 'use strict';
32230
+
32231
+
32232
+ var zhCn = moment.defineLocale('zh-cn', {
32233
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
32234
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
32235
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
32236
+ weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
32237
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
32238
+ longDateFormat : {
32239
+ LT : 'HH:mm',
32240
+ LTS : 'HH:mm:ss',
32241
+ L : 'YYYY/MM/DD',
32242
+ LL : 'YYYY年M月D日',
32243
+ LLL : 'YYYY年M月D日Ah点mm分',
32244
+ LLLL : 'YYYY年M月D日ddddAh点mm分',
32245
+ l : 'YYYY/M/D',
32246
+ ll : 'YYYY年M月D日',
32247
+ lll : 'YYYY年M月D日 HH:mm',
32248
+ llll : 'YYYY年M月D日dddd HH:mm'
32249
+ },
32250
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
32251
+ meridiemHour: function (hour, meridiem) {
32252
+ if (hour === 12) {
32253
+ hour = 0;
32254
+ }
32255
+ if (meridiem === '凌晨' || meridiem === '早上' ||
32256
+ meridiem === '上午') {
32257
+ return hour;
32258
+ } else if (meridiem === '下午' || meridiem === '晚上') {
32259
+ return hour + 12;
32260
+ } else {
32261
+ // '中午'
32262
+ return hour >= 11 ? hour : hour + 12;
32263
+ }
32264
+ },
32265
+ meridiem : function (hour, minute, isLower) {
32266
+ var hm = hour * 100 + minute;
32267
+ if (hm < 600) {
32268
+ return '凌晨';
32269
+ } else if (hm < 900) {
32270
+ return '早上';
32271
+ } else if (hm < 1130) {
32272
+ return '上午';
32273
+ } else if (hm < 1230) {
32274
+ return '中午';
32275
+ } else if (hm < 1800) {
32276
+ return '下午';
32277
+ } else {
32278
+ return '晚上';
32279
+ }
32280
+ },
32281
+ calendar : {
32282
+ sameDay : '[今天]LT',
32283
+ nextDay : '[明天]LT',
32284
+ nextWeek : '[下]ddddLT',
32285
+ lastDay : '[昨天]LT',
32286
+ lastWeek : '[上]ddddLT',
32287
+ sameElse : 'L'
32288
+ },
32289
+ dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
32290
+ ordinal : function (number, period) {
32291
+ switch (period) {
32292
+ case 'd':
32293
+ case 'D':
32294
+ case 'DDD':
32295
+ return number + '日';
32296
+ case 'M':
32297
+ return number + '月';
32298
+ case 'w':
32299
+ case 'W':
32300
+ return number + '周';
32301
+ default:
32302
+ return number;
32303
+ }
32304
+ },
32305
+ relativeTime : {
32306
+ future : '%s内',
32307
+ past : '%s前',
32308
+ s : '几秒',
32309
+ ss : '%d 秒',
32310
+ m : '1 分钟',
32311
+ mm : '%d 分钟',
32312
+ h : '1 小时',
32313
+ hh : '%d 小时',
32314
+ d : '1 天',
32315
+ dd : '%d 天',
32316
+ M : '1 个月',
32317
+ MM : '%d 个月',
32318
+ y : '1 年',
32319
+ yy : '%d 年'
32320
+ },
32321
+ week : {
32322
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
32323
+ dow : 1, // Monday is the first day of the week.
32324
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
32325
+ }
32326
+ });
32327
+
32328
+ return zhCn;
32329
+
32330
+ })));
32331
+
32332
+
32333
+ /***/ }),
32334
+ /* 200 */
32335
+ /***/ (function(module, exports, __webpack_require__) {
32336
+
32337
+ //! moment.js locale configuration
32338
+
32339
+ ;(function (global, factory) {
32340
+ true ? factory(__webpack_require__(0)) :
32341
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
32342
+ factory(global.moment)
32343
+ }(this, (function (moment) { 'use strict';
32344
+
32345
+
32346
+ var zhHk = moment.defineLocale('zh-hk', {
32347
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
32348
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
32349
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
32350
+ weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
32351
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
32352
+ longDateFormat : {
32353
+ LT : 'HH:mm',
32354
+ LTS : 'HH:mm:ss',
32355
+ L : 'YYYY/MM/DD',
32356
+ LL : 'YYYY年M月D日',
32357
+ LLL : 'YYYY年M月D日 HH:mm',
32358
+ LLLL : 'YYYY年M月D日dddd HH:mm',
32359
+ l : 'YYYY/M/D',
32360
+ ll : 'YYYY年M月D日',
32361
+ lll : 'YYYY年M月D日 HH:mm',
32362
+ llll : 'YYYY年M月D日dddd HH:mm'
32363
+ },
32364
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
32365
+ meridiemHour : function (hour, meridiem) {
32366
+ if (hour === 12) {
32367
+ hour = 0;
32368
+ }
32369
+ if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
32370
+ return hour;
32371
+ } else if (meridiem === '中午') {
32372
+ return hour >= 11 ? hour : hour + 12;
32373
+ } else if (meridiem === '下午' || meridiem === '晚上') {
32374
+ return hour + 12;
32375
+ }
32376
+ },
32377
+ meridiem : function (hour, minute, isLower) {
32378
+ var hm = hour * 100 + minute;
32379
+ if (hm < 600) {
32380
+ return '凌晨';
32381
+ } else if (hm < 900) {
32382
+ return '早上';
32383
+ } else if (hm < 1130) {
32384
+ return '上午';
32385
+ } else if (hm < 1230) {
32386
+ return '中午';
32387
+ } else if (hm < 1800) {
32388
+ return '下午';
32389
+ } else {
32390
+ return '晚上';
32391
+ }
32392
+ },
32393
+ calendar : {
32394
+ sameDay : '[今天]LT',
32395
+ nextDay : '[明天]LT',
32396
+ nextWeek : '[下]ddddLT',
32397
+ lastDay : '[昨天]LT',
32398
+ lastWeek : '[上]ddddLT',
32399
+ sameElse : 'L'
32400
+ },
32401
+ dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
32402
+ ordinal : function (number, period) {
32403
+ switch (period) {
32404
+ case 'd' :
32405
+ case 'D' :
32406
+ case 'DDD' :
32407
+ return number + '日';
32408
+ case 'M' :
32409
+ return number + '月';
32410
+ case 'w' :
32411
+ case 'W' :
32412
+ return number + '週';
32413
+ default :
32414
+ return number;
32415
+ }
32416
+ },
32417
+ relativeTime : {
32418
+ future : '%s內',
32419
+ past : '%s前',
32420
+ s : '幾秒',
32421
+ ss : '%d 秒',
32422
+ m : '1 分鐘',
32423
+ mm : '%d 分鐘',
32424
+ h : '1 小時',
32425
+ hh : '%d 小時',
32426
+ d : '1 天',
32427
+ dd : '%d 天',
32428
+ M : '1 個月',
32429
+ MM : '%d 個月',
32430
+ y : '1 年',
32431
+ yy : '%d 年'
32432
+ }
32433
+ });
32434
+
32435
+ return zhHk;
32436
+
32437
+ })));
32438
+
32439
+
32440
+ /***/ }),
32441
+ /* 201 */
32442
+ /***/ (function(module, exports, __webpack_require__) {
32443
+
32444
+ //! moment.js locale configuration
32445
+
32446
+ ;(function (global, factory) {
32447
+ true ? factory(__webpack_require__(0)) :
32448
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
32449
+ factory(global.moment)
32450
+ }(this, (function (moment) { 'use strict';
32451
+
32452
+
32453
+ var zhTw = moment.defineLocale('zh-tw', {
32454
+ months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
32455
+ monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
32456
+ weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
32457
+ weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
32458
+ weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
32459
+ longDateFormat : {
32460
+ LT : 'HH:mm',
32461
+ LTS : 'HH:mm:ss',
32462
+ L : 'YYYY/MM/DD',
32463
+ LL : 'YYYY年M月D日',
32464
+ LLL : 'YYYY年M月D日 HH:mm',
32465
+ LLLL : 'YYYY年M月D日dddd HH:mm',
32466
+ l : 'YYYY/M/D',
32467
+ ll : 'YYYY年M月D日',
32468
+ lll : 'YYYY年M月D日 HH:mm',
32469
+ llll : 'YYYY年M月D日dddd HH:mm'
32470
+ },
32471
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
32472
+ meridiemHour : function (hour, meridiem) {
32473
+ if (hour === 12) {
32474
+ hour = 0;
32475
+ }
32476
+ if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
32477
+ return hour;
32478
+ } else if (meridiem === '中午') {
32479
+ return hour >= 11 ? hour : hour + 12;
32480
+ } else if (meridiem === '下午' || meridiem === '晚上') {
32481
+ return hour + 12;
32482
+ }
32483
+ },
32484
+ meridiem : function (hour, minute, isLower) {
32485
+ var hm = hour * 100 + minute;
32486
+ if (hm < 600) {
32487
+ return '凌晨';
32488
+ } else if (hm < 900) {
32489
+ return '早上';
32490
+ } else if (hm < 1130) {
32491
+ return '上午';
32492
+ } else if (hm < 1230) {
32493
+ return '中午';
32494
+ } else if (hm < 1800) {
32495
+ return '下午';
32496
+ } else {
32497
+ return '晚上';
32498
+ }
32499
+ },
32500
+ calendar : {
32501
+ sameDay : '[今天] LT',
32502
+ nextDay : '[明天] LT',
32503
+ nextWeek : '[下]dddd LT',
32504
+ lastDay : '[昨天] LT',
32505
+ lastWeek : '[上]dddd LT',
32506
+ sameElse : 'L'
32507
+ },
32508
+ dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
32509
+ ordinal : function (number, period) {
32510
+ switch (period) {
32511
+ case 'd' :
32512
+ case 'D' :
32513
+ case 'DDD' :
32514
+ return number + '日';
32515
+ case 'M' :
32516
+ return number + '月';
32517
+ case 'w' :
32518
+ case 'W' :
32519
+ return number + '週';
32520
+ default :
32521
+ return number;
32522
+ }
32523
+ },
32524
+ relativeTime : {
32525
+ future : '%s內',
32526
+ past : '%s前',
32527
+ s : '幾秒',
32528
+ ss : '%d 秒',
32529
+ m : '1 分鐘',
32530
+ mm : '%d 分鐘',
32531
+ h : '1 小時',
32532
+ hh : '%d 小時',
32533
+ d : '1 天',
32534
+ dd : '%d 天',
32535
+ M : '1 個月',
32536
+ MM : '%d 個月',
32537
+ y : '1 年',
32538
+ yy : '%d 年'
32539
+ }
32540
+ });
32541
+
32542
+ return zhTw;
32543
+
32544
+ })));
32545
+
32546
+
32547
+ /***/ }),
32548
+ /* 202 */
32549
+ /***/ (function(module, exports, __webpack_require__) {
32550
+
32551
+ "use strict";
32552
+
32553
+
32554
+ var _vue = __webpack_require__(7);
32555
+
32556
+ var _vue2 = _interopRequireDefault(_vue);
32557
+
32558
+ var _rop_store = __webpack_require__(36);
32559
+
32560
+ var _rop_store2 = _interopRequireDefault(_rop_store);
32561
+
32562
+ var _mainPagePanel = __webpack_require__(203);
32563
+
32564
+ var _mainPagePanel2 = _interopRequireDefault(_mainPagePanel);
32565
+
32566
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32567
+
32568
+ window.onload = function () {
32569
+ var RopApp = new _vue2.default({
32570
+ el: '#rop_core',
32571
+ store: _rop_store2.default,
32572
+ components: {
32573
+ MainPagePanel: _mainPagePanel2.default
32574
+ },
32575
+ created: function created() {
32576
+ _rop_store2.default.dispatch('fetchAJAX', { req: 'manage_cron', data: { action: 'status' } });
32577
+ _rop_store2.default.dispatch('fetchAJAXPromise', { req: 'get_available_services' });
32578
+ _rop_store2.default.dispatch('fetchAJAXPromise', { req: 'get_authenticated_services' });
32579
+ _rop_store2.default.dispatch('fetchAJAXPromise', { req: 'get_active_accounts' });
32580
+ }
32581
+ });
32582
+ }; // jshint ignore: start
32583
+ /* eslint no-unused-vars: 0 */
32584
+ /* exported RopApp */
32585
+
32586
+ /***/ }),
32587
+ /* 203 */
32588
+ /***/ (function(module, exports, __webpack_require__) {
32589
+
32590
+ var __vue_script__, __vue_template__
32591
+ __webpack_require__(204)
32592
+ __vue_script__ = __webpack_require__(206)
32593
+ __vue_template__ = __webpack_require__(295)
32594
+ module.exports = __vue_script__ || {}
32595
+ if (module.exports.__esModule) module.exports = module.exports.default
32596
+ if (__vue_template__) { (typeof module.exports === "function" ? module.exports.options : module.exports).template = __vue_template__ }
32597
+ if (false) {(function () { module.hot.accept()
32598
+ var hotAPI = require("vue-hot-reload-api")
32599
+ hotAPI.install(require("vue"), true)
32600
+ if (!hotAPI.compatible) return
32601
+ var id = "C:\\Users\\mariu\\Local Sites\\rop\\app\\public\\wp-content\\plugins\\tweet-old-post\\vue\\src\\vue-elements\\main-page-panel.vue"
32602
+ if (!module.hot.data) {
32603
+ hotAPI.createRecord(id, module.exports)
32604
+ } else {
32605
+ hotAPI.update(id, module.exports, __vue_template__)
32606
+ }
32607
+ })()}
32608
+
32609
+ /***/ }),
32610
+ /* 204 */
32611
+ /***/ (function(module, exports, __webpack_require__) {
32612
+
32613
+ // style-loader: Adds some css to the DOM by adding a <style> tag
32614
+
32615
+ // load the styles
32616
+ var content = __webpack_require__(205);
32617
+ if(typeof content === 'string') content = [[module.i, content, '']];
32618
+ // add the styles to the DOM
32619
+ var update = __webpack_require__(2)(content, {});
32620
+ if(content.locals) module.exports = content.locals;
32621
+ // Hot Module Replacement
32622
+ if(false) {
32623
+ // When the styles change, update the <style> tags
32624
+ if(!content.locals) {
32625
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-047202de&file=main-page-panel.vue!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./main-page-panel.vue", function() {
32626
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-047202de&file=main-page-panel.vue!../../../node_modules/vue-loader/lib/selector.js?type=style&index=0!../../../node_modules/eslint-loader/index.js!../../../node_modules/eslint-loader/index.js!./main-page-panel.vue");
32627
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
32628
+ update(newContent);
32629
+ });
32630
+ }
32631
+ // When the module is disposed, remove the <style> tags
32632
+ module.hot.dispose(function() { update(); });
32633
+ }
32634
+
32635
+ /***/ }),
32636
+ /* 205 */
32637
+ /***/ (function(module, exports, __webpack_require__) {
32638
+
32639
+ exports = module.exports = __webpack_require__(1)();
32640
+ // imports
32641
+
32642
+
32643
+ // module
32644
+ exports.push([module.i, "\n\t#rop_core .badge[data-badge]::after {\n\t\tposition: absolute;\n\t\tbottom: -16px;\n\t\tright: 0px;\n\t}\n\t\n\t#rop_core .badge.badge-logs::after {\n\t\tright: auto;\n\t\ttop: 0px;\n\t}\n\t\n\t#rop_core .badge.badge-logs {\n\t\tpadding-right: 10px;\n\t}\n", ""]);
32645
+
32646
+ // exports
32647
+
32648
+
32649
+ /***/ }),
32650
+ /* 206 */
32651
+ /***/ (function(module, exports, __webpack_require__) {
32652
+
32653
+ "use strict";
32654
+
32655
+
32656
+ var _keys = __webpack_require__(14);
32657
+
32658
+ var _keys2 = _interopRequireDefault(_keys);
32659
+
32660
+ var _accountsTabPanel = __webpack_require__(210);
32661
+
32662
+ var _accountsTabPanel2 = _interopRequireDefault(_accountsTabPanel);
32663
+
32664
+ var _settingsTabPanel = __webpack_require__(227);
32665
+
32666
+ var _settingsTabPanel2 = _interopRequireDefault(_settingsTabPanel);
32667
+
32668
+ var _accountsSelectorPanel = __webpack_require__(236);
32669
+
32670
+ var _accountsSelectorPanel2 = _interopRequireDefault(_accountsSelectorPanel);
32671
+
32672
+ var _queueTabPanel = __webpack_require__(268);
32673
+
32674
+ var _queueTabPanel2 = _interopRequireDefault(_queueTabPanel);
32675
+
32676
+ var _logsTabPanel = __webpack_require__(276);
32677
+
32678
+ var _logsTabPanel2 = _interopRequireDefault(_logsTabPanel);
32679
+
32680
+ var _toast = __webpack_require__(283);
32681
+
32682
+ var _toast2 = _interopRequireDefault(_toast);
32683
+
32684
+ var _countdown = __webpack_require__(288);
32685
+
32686
+ var _countdown2 = _interopRequireDefault(_countdown);
32687
+
32688
+ var _moment = __webpack_require__(0);
32689
+
32690
+ var _moment2 = _interopRequireDefault(_moment);
32691
+
32692
+ var _upsellSidebar = __webpack_require__(72);
32693
+
32694
+ var _upsellSidebar2 = _interopRequireDefault(_upsellSidebar);
32695
+
32696
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32697
+
32698
+ module.exports = {
32699
+ name: 'main-page-panel',
32700
+ computed: {
32701
+ /**
32702
+ * Display the clicked tab.
32703
+ *
32704
+ * @returns {module.exports.computed.displayTabs|*[]}
32705
+ */
32706
+ displayTabs: function displayTabs() {
32707
+ return this.$store.state.displayTabs;
32708
+ },
32709
+ /**
32710
+ * Get active page.
32711
+ */
32712
+ page: function page() {
32713
+ return this.$store.state.page;
32714
+ },
32715
+ current_time: {
32716
+ get: function get() {
32717
+ return this.$store.state.cron_status.current_time;
32718
+ },
32719
+ set: function set(value) {
32720
+ this.$store.state.cron_status.current_time = value;
32721
+ }
32722
+ },
32723
+ date_format: function date_format() {
32724
+
32725
+ return this.$store.state.cron_status.date_format;
32726
+ },
32727
+ logs_no: function logs_no() {
32728
+
32729
+ return this.$store.state.cron_status.logs_number;
32730
+ },
32731
+ /**
32732
+ * Get btn start class.
32733
+ */
32734
+ btn_class: function btn_class() {
32735
+ var btn_class = 'btn-' + (this.start_status ? 'danger' : 'success');
32736
+ if (this.haveAccounts) {
32737
+ btn_class += ' tooltip button-disabled ';
32738
+ }
32739
+ return btn_class;
32740
+ },
32741
+ /**
32742
+ * Check if we have accounts active.
32743
+ *
32744
+ * @returns {boolean}
32745
+ */
32746
+ haveAccounts: function haveAccounts() {
32747
+ return !((0, _keys2.default)(this.$store.state.activeAccounts).length > 0);
32748
+ },
32749
+ /*
32750
+ * Check if the sharing is started.
32751
+ */
32752
+ start_status: function start_status() {
32753
+ return this.$store.state.cron_status.current_status;
32754
+ },
32755
+
32756
+ /**
32757
+ * Get general settings.
32758
+ * @returns {module.exports.computed.generalSettings|Array|*}
32759
+ */
32760
+ generalSettings: function generalSettings() {
32761
+ return this.$store.state.generalSettings;
32762
+ },
32763
+ /**
32764
+ * Get general settings.
32765
+ * @returns {module.exports.computed.generalSettings|Array|*}
32766
+ */
32767
+ formatedDate: function formatedDate() {
32768
+ if (typeof this.date_format === 'undefined') {
32769
+ return '';
32770
+ }
32771
+ return _moment2.default.utc(this.current_time, 'X').format(this.date_format.replace('mm', 'mm:ss'));
32772
+ }
32773
+ },
32774
+ mounted: function mounted() {
32775
+ var _this = this;
32776
+
32777
+ setInterval(function () {
32778
+ //this.$log.info('counting');
32779
+ if (_this.current_time > 0) {
32780
+ _this.current_time += 1;
32781
+ }
32782
+ }, 1000);
32783
+ },
32784
+ created: function created() {},
32785
+
32786
+ data: function data() {
32787
+ return {
32788
+ to_pro_upsell: ROP_ASSETS_URL + 'img/to_pro.png',
32789
+ to_business_upsell: ROP_ASSETS_URL + 'img/to_business.png',
32790
+ plugin_logo: ROP_ASSETS_URL + 'img/logo_rop.png',
32791
+ license: this.$store.state.licence,
32792
+ labels: this.$store.state.labels.general,
32793
+ upsell_link: ropApiSettings.upsell_link,
32794
+ is_loading: false
32795
+ };
32796
+ },
32797
+ methods: {
32798
+ /**
32799
+ * Toggle sharing.
32800
+ */
32801
+ togglePosting: function togglePosting() {
32802
+ var _this2 = this;
32803
+
32804
+ if (this.is_loading) {
32805
+ this.$log.warn('Request in progress...Bail');
32806
+ return;
32807
+ }
32808
+ this.is_loading = true;
32809
+ this.$store.dispatch('fetchAJAXPromise', {
32810
+ req: 'manage_cron',
32811
+ data: {
32812
+ 'action': this.start_status === false ? 'start' : 'stop'
32813
+ }
32814
+ }).then(function (response) {
32815
+ _this2.is_loading = false;
32816
+ }, function (error) {
32817
+ _this2.is_loading = false;
32818
+ Vue.$log.error('Got nothing from server. Prompt user to check internet connection and try again', error);
32819
+ });
32820
+ },
32821
+
32822
+ /**
32823
+ * Toggle tab active.
32824
+ * @param slug
32825
+ */
32826
+ switchTab: function switchTab(slug) {
32827
+ this.$store.commit('setTabView', slug);
32828
+ }
32829
+ },
32830
+ components: {
32831
+ 'accounts': _accountsTabPanel2.default,
32832
+ 'settings': _settingsTabPanel2.default,
32833
+ 'accounts-selector': _accountsSelectorPanel2.default,
32834
+ 'queue': _queueTabPanel2.default,
32835
+ 'logs': _logsTabPanel2.default,
32836
+ 'upsell-sidebar': _upsellSidebar2.default,
32837
+ 'toast': _toast2.default,
32838
+ 'countdown': _countdown2.default
32839
+ }
32840
+ // </script>
32841
+ //
32842
+ // <style>
32843
+ // #rop_core .badge[data-badge]::after {
32844
+ // position: absolute;
32845
+ // bottom: -16px;
32846
+ // right: 0px;
32847
+ // }
32848
+ //
32849
+ // #rop_core .badge.badge-logs::after {
32850
+ // right: auto;
32851
+ // top: 0px;
32852
+ // }
32853
+ //
32854
+ // #rop_core .badge.badge-logs {
32855
+ // padding-right: 10px;
32856
+ // }
32857
+ // </style>
32858
+
32859
+ }; // <template>
32860
+ // <div>
32861
+ // <div class="columns panel-header">
32862
+ // <div class="column header-logo vertical-align">
32863
+ // <div>
32864
+ // <img :src="plugin_logo" class="plugin-logo avatar avatar-lg"/>
32865
+ // <h1 class="plugin-title d-inline-block">Revive Old Posts</h1><span class="powered d-inline-block"> {{labels.by}} <a
32866
+ // href="https://revive.social" target="_blank"><b>Revive.Social</b></a></span>
32867
+ // </div>
32868
+ // </div>
32869
+ // <div class="sidebar sidebar-top card rop-container-start">
32870
+ // <div class="toast rop-current-time" v-if="formatedDate">
32871
+ // {{labels.now}}: {{ formatedDate }}
32872
+ // </div>
32873
+ // <countdown :current_time="current_time"/>
32874
+ // <button class="btn btn-sm" :class="btn_class"
32875
+ // :data-tooltip="labels.active_account_warning"
32876
+ // @click="togglePosting()" :disabled="haveAccounts">
32877
+ // <i class="fa fa-play" v-if="!is_loading && !start_status"></i>
32878
+ // <i class="fa fa-stop" v-else-if="!is_loading && start_status"></i>
32879
+ // <i class="fa fa-spinner fa-spin" v-else></i>
32880
+ // {{( start_status ? labels.stop : labels.start )}} {{labels.sharing}}
32881
+ // </button>
32882
+ // </div>
32883
+ // </div>
32884
+ //
32885
+ // <div class="columns">
32886
+ // <div class="panel column col-9 col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
32887
+ // <div class="panel-nav" style="padding: 8px;">
32888
+ // <ul class="tab ">
32889
+ // <li class="tab-item c-hand" v-for="tab in displayTabs"
32890
+ // :class="{ active: tab.isActive }">
32891
+ // <a :class=" ( tab.slug === 'logs' && logs_no > 0 ) ? ' badge-logs badge' : '' "
32892
+ // :data-badge="logs_no"
32893
+ // @click="switchTab( tab.slug )">{{ tab.name }}</a>
32894
+ // </li>
32895
+ // </ul>
32896
+ // </div>
32897
+ // <component :is="page.template" :type="page.view"></component>
32898
+ // </div>
32899
+ //
32900
+ // <div class="sidebar column col-3 col-xs-12 col-sm-12 col-md-12 col-lg-12"
32901
+ // :class="'rop-license-plan-'+license">
32902
+ //
32903
+ // <div class="card rop-container-start">
32904
+ // <div class="toast rop-current-time" v-if="formatedDate">
32905
+ // {{labels.now}}: {{ formatedDate }}
32906
+ // </div>
32907
+ // <countdown :current_time="current_time"/>
32908
+ // <button class="btn" :class="btn_class"
32909
+ // :data-tooltip="labels.active_account_warning"
32910
+ // @click="togglePosting()" :disabled="haveAccounts">
32911
+ // <i class="fa fa-play" v-if="!is_loading && !start_status"></i>
32912
+ // <i class="fa fa-stop" v-else-if="!is_loading && start_status"></i>
32913
+ // <i class="fa fa-spinner fa-spin" v-else></i>
32914
+ // {{( start_status ? labels.stop : labels.start )}} {{labels.sharing}}
32915
+ // </button>
32916
+ // <upsell-sidebar></upsell-sidebar>
32917
+ // </div>
32918
+ //
32919
+ //