Addons for WPBakery Page Builder - Version 2.5.2

Version Description

  • Updated - Freemius library with a security fix. Recommended to update immediately.
  • Fixed - Some themes can raise JS error due to jQuery $ being unavailable.
Download this release

Release Info

Developer livemesh
Plugin Icon 128x128 Addons for WPBakery Page Builder
Version 2.5.2
Comparing to
See all releases

Code changes from version 2.5.1 to 2.5.2

Files changed (159) hide show
  1. addons-for-visual-composer.php +102 -0
  2. admin-ajax.php → admin/admin-ajax.php +0 -0
  3. admin-init.php → admin/admin-init.php +0 -0
  4. {assets → admin/assets}/css/documentation.css +0 -0
  5. {assets → admin/assets}/css/documentation.css.map +0 -0
  6. {assets → admin/assets}/css/documentation.scss +0 -0
  7. {assets → admin/assets}/css/lvca-admin-page.css +0 -0
  8. {assets → admin/assets}/css/lvca-admin-page.css.map +0 -0
  9. {assets → admin/assets}/css/lvca-admin-page.scss +0 -0
  10. {assets → admin/assets}/css/lvca-admin.css +0 -0
  11. admin/assets/css/lvca-admin.css.map +1 -0
  12. admin/assets/css/lvca-admin.scss +196 -0
  13. {assets → admin/assets}/css/lvca-elements.css +0 -0
  14. {assets → admin/assets}/css/lvca-elements.css.map +0 -0
  15. {assets → admin/assets}/css/lvca-elements.scss +0 -0
  16. {assets → admin/assets}/css/premium-upgrade.css.map +0 -0
  17. {assets → admin/assets}/css/premium-upgrade.scss +0 -0
  18. {assets → admin/assets}/images/admin/accordion-add.png +0 -0
  19. {assets → admin/assets}/images/admin/accordion.png +0 -0
  20. {assets → admin/assets}/images/admin/button.png +0 -0
  21. {assets → admin/assets}/images/admin/carousel-add.png +0 -0
  22. {assets → admin/assets}/images/admin/carousel.png +0 -0
  23. {assets → admin/assets}/images/admin/client-add.png +0 -0
  24. {assets → admin/assets}/images/admin/clients.png +0 -0
  25. {assets → admin/assets}/images/admin/countdown.png +0 -0
  26. {assets → admin/assets}/images/admin/faq-add.png +0 -0
  27. {assets → admin/assets}/images/admin/faq.png +0 -0
  28. {assets → admin/assets}/images/admin/feature-add.png +0 -0
  29. {assets → admin/assets}/images/admin/features.png +0 -0
  30. {assets → admin/assets}/images/admin/gallery-add.png +0 -0
  31. {assets → admin/assets}/images/admin/gallery.png +0 -0
  32. {assets → admin/assets}/images/admin/generic-carousel.png +0 -0
  33. {assets → admin/assets}/images/admin/grid-alt.png +0 -0
  34. {assets → admin/assets}/images/admin/grid.png +0 -0
  35. {assets → admin/assets}/images/admin/heading.png +0 -0
  36. {assets → admin/assets}/images/admin/icon-add.png +0 -0
  37. {assets → admin/assets}/images/admin/icons.png +0 -0
  38. {assets → admin/assets}/images/admin/odometer-add.png +0 -0
  39. {assets → admin/assets}/images/admin/odometers.png +0 -0
  40. {assets → admin/assets}/images/admin/piechart-add.png +0 -0
  41. {assets → admin/assets}/images/admin/piecharts.png +0 -0
  42. {assets → admin/assets}/images/admin/portfolio-add.png +0 -0
  43. {assets → admin/assets}/images/admin/portfolio.png +0 -0
  44. {assets → admin/assets}/images/admin/posts-carousel.png +0 -0
  45. {assets → admin/assets}/images/admin/pricing-plan.png +0 -0
  46. {assets → admin/assets}/images/admin/pricing-table.png +0 -0
  47. {assets → admin/assets}/images/admin/service-add.png +0 -0
  48. {assets → admin/assets}/images/admin/services.png +0 -0
  49. {assets → admin/assets}/images/admin/slider-add.png +0 -0
  50. {assets → admin/assets}/images/admin/slider-add2.png +0 -0
  51. {assets → admin/assets}/images/admin/sliders.png +0 -0
  52. {assets → admin/assets}/images/admin/sliders2.png +0 -0
  53. {assets → admin/assets}/images/admin/spacer.png +0 -0
  54. {assets → admin/assets}/images/admin/stats-bar.png +0 -0
  55. {assets → admin/assets}/images/admin/tab-add.png +0 -0
  56. {assets → admin/assets}/images/admin/tabs.png +0 -0
  57. {assets → admin/assets}/images/admin/team-member-add.png +0 -0
  58. {assets → admin/assets}/images/admin/team.png +0 -0
  59. {assets → admin/assets}/images/admin/testimonial-add.png +0 -0
  60. {assets → admin/assets}/images/admin/testimonials-slider-add.png +0 -0
  61. {assets → admin/assets}/images/admin/testimonials-slider.png +0 -0
  62. {assets → admin/assets}/images/admin/testimonials.png +0 -0
  63. {assets → admin/assets}/images/logo-dark.png +0 -0
  64. {assets → admin/assets}/images/logo-light.png +0 -0
  65. {assets → admin/assets}/images/logo-shape.png +0 -0
  66. {assets → admin/assets}/images/logo-shape16.png +0 -0
  67. {assets → admin/assets}/js/documentation.js +0 -0
  68. {assets → admin/assets}/js/documentation.min.js +0 -0
  69. {assets → admin/assets}/js/lvca-admin-ajax.js +0 -0
  70. {assets → admin/assets}/js/lvca-admin-ajax.min.js +0 -0
  71. {assets → admin/assets}/js/lvca-admin.js +0 -0
  72. {assets → admin/assets}/js/lvca-admin.min.js +0 -0
  73. {assets → admin/assets}/js/premium-upgrade.min.js +0 -0
  74. {notices → admin/notices}/admin-notice-rate.php +0 -0
  75. {notices → admin/notices}/admin-notice.php +0 -0
  76. {notices → admin/notices}/templates/rate.php +0 -0
  77. {views → admin/views}/admin-banner1.php +0 -0
  78. {views → admin/views}/admin-banner2.php +0 -0
  79. {views → admin/views}/admin-footer.php +0 -0
  80. {views → admin/views}/admin-header.php +0 -0
  81. {views → admin/views}/documentation.php +5 -0
  82. {views → admin/views}/settings.php +0 -0
  83. assets/css/_grid-settings.scss +34 -0
  84. assets/css/_lvca-lib.scss +138 -0
  85. assets/css/ajax-loader.gif +0 -0
  86. assets/css/animate.css +3341 -0
  87. assets/css/flexslider.css +225 -0
  88. assets/css/fonts/icomoon/icomoon.eot +0 -0
  89. assets/css/fonts/icomoon/icomoon.svg +40 -0
  90. assets/css/fonts/icomoon/icomoon.ttf +0 -0
  91. assets/css/fonts/icomoon/icomoon.woff +0 -0
  92. assets/css/icomoon.css +116 -0
  93. assets/css/lvca-admin.css.map +7 -1
  94. assets/css/lvca-admin.scss +40 -114
  95. assets/css/lvca-frontend.css +663 -0
  96. assets/css/lvca-frontend.css.map +1 -0
  97. assets/css/lvca-frontend.scss +878 -0
  98. assets/css/slick.css +116 -0
  99. assets/css/slider.css +426 -0
  100. assets/images/bricks-loader.gif +0 -0
  101. assets/images/loader.gif +0 -0
  102. assets/images/loading.gif +0 -0
  103. assets/img/admin/accordion-add.png +0 -0
  104. assets/img/admin/accordion.png +0 -0
  105. assets/img/admin/carousel-add.png +0 -0
  106. assets/img/admin/client-add.png +0 -0
  107. assets/img/admin/clients.png +0 -0
  108. assets/img/admin/generic-carousel.png +0 -0
  109. assets/img/admin/heading.png +0 -0
  110. assets/img/admin/odometer-add.png +0 -0
  111. assets/img/admin/odometers.png +0 -0
  112. assets/img/admin/piechart-add.png +0 -0
  113. assets/img/admin/piecharts.png +0 -0
  114. assets/img/admin/portfolio-add.png +0 -0
  115. assets/img/admin/portfolio.png +0 -0
  116. assets/img/admin/posts-carousel.png +0 -0
  117. assets/img/admin/pricing-plan.png +0 -0
  118. assets/img/admin/pricing-table.png +0 -0
  119. assets/img/admin/service-add.png +0 -0
  120. assets/img/admin/services.png +0 -0
  121. assets/img/admin/spacer.png +0 -0
  122. assets/img/admin/stats-bar.png +0 -0
  123. assets/img/admin/tab-add.png +0 -0
  124. assets/img/admin/tabs.png +0 -0
  125. assets/img/admin/team-member-add.png +0 -0
  126. assets/img/admin/team.png +0 -0
  127. assets/img/admin/testimonial-add.png +0 -0
  128. assets/img/admin/testimonials-slider-add.png +0 -0
  129. assets/img/admin/testimonials-slider.png +0 -0
  130. assets/img/admin/testimonials.png +0 -0
  131. assets/js/imagesloaded.pkgd.js +487 -0
  132. assets/js/imagesloaded.pkgd.min.js +1 -0
  133. assets/js/isotope.pkgd.js +3524 -0
  134. assets/js/isotope.pkgd.min.js +2 -0
  135. assets/js/jquery.flexslider.js +1195 -0
  136. assets/js/jquery.flexslider.min.js +1 -0
  137. assets/js/jquery.stats.js +64 -0
  138. assets/js/jquery.stats.min.js +57 -0
  139. assets/js/jquery.waypoints.js +662 -0
  140. assets/js/jquery.waypoints.min.js +7 -0
  141. assets/js/lvca-frontend.js +153 -0
  142. assets/js/lvca-frontend.min.js +1 -0
  143. assets/js/modernizr-custom.js +1384 -0
  144. assets/js/modernizr-custom.min.js +1 -0
  145. assets/js/slick.js +2670 -0
  146. assets/js/slick.min.js +2 -0
  147. freemius/.codeclimate.yml +19 -0
  148. freemius/.travis.yml +11 -0
  149. freemius/LICENSE.txt +674 -0
  150. freemius/README.md +253 -0
  151. freemius/assets/css/admin/account.css +1 -0
  152. freemius/assets/css/admin/add-ons.css +2 -0
  153. freemius/assets/css/admin/affiliation.css +1 -0
  154. freemius/assets/css/admin/checkout.css +1 -0
  155. freemius/assets/css/admin/common.css +2 -0
  156. freemius/assets/css/admin/connect.css +1 -0
  157. freemius/assets/css/admin/deactivation-feedback.css +2 -0
  158. freemius/assets/css/admin/debug.css +1 -0
  159. freemius/assets/css/admin/dialog-boxes.css +2 -0
addons-for-visual-composer.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Plugin Name: Livemesh Addons for WPBakery Page Builder
5
+ * Plugin URI: https://www.livemeshthemes.com/wpbakery-page-builder-addons
6
+ * Description: A collection of premium quality addons or extensions for use in WPBakery Page Builder. WPBakery Page Builder must be installed and activated.
7
+ * Author: Livemesh
8
+ * Author URI: https://www.livemeshthemes.com/
9
+ * License: GPL3
10
+ * License URI: https://www.gnu.org/licenses/gpl-3.0.txt
11
+ * Version: 2.5.2
12
+ * Text Domain: livemesh-vc-addons
13
+ * Domain Path: languages
14
+ *
15
+ * Livemesh Addons for WPBakery Page Builder is free software: you can redistribute it and/or modify
16
+ * it under the terms of the GNU General Public License as published by
17
+ * the Free Software Foundation, either version 2 of the License, or
18
+ * any later version.
19
+ *
20
+ * Livemesh Addons for WPBakery Page Builder is distributed in the hope that it will be useful,
21
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ * GNU General Public License for more details.
24
+ *
25
+ * You should have received a copy of the GNU General Public License
26
+ * along with Livemesh Addons for WPBakery Page Builder. If not, see <http://www.gnu.org/licenses/>.
27
+ *
28
+ *
29
+ *
30
+ */
31
+ // Exit if accessed directly
32
+ if ( !defined( 'ABSPATH' ) ) {
33
+ exit;
34
+ }
35
+ // Ensure the free version is deactivated if premium is running
36
+
37
+ if ( !function_exists( 'lvca_fs' ) ) {
38
+ // Plugin version
39
+ define( 'LVCA_VERSION', '2.5.2' );
40
+ // Plugin Root File
41
+ define( 'LVCA_PLUGIN_FILE', __FILE__ );
42
+ // Plugin Folder Path
43
+ define( 'LVCA_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
44
+ // Plugin Folder URL
45
+ define( 'LVCA_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
46
+ // Plugin Addons Folder Path
47
+ define( 'LVCA_ADDONS_DIR', plugin_dir_path( __FILE__ ) . 'includes/addons/' );
48
+ // Plugin Premium Addons Folder Path
49
+ define( 'LVCA_PREMIUM_ADDONS_DIR', plugin_dir_path( __FILE__ ) . 'includes/addons/premium/' );
50
+ // Plugin Folder URL
51
+ define( 'LVCA_ADDONS_URL', plugin_dir_url( __FILE__ ) . 'includes/addons/' );
52
+ // Plugin Folder URL
53
+ define( 'LVCA_PREMIUM_ADDONS_URL', plugin_dir_url( __FILE__ ) . 'includes/addons/premium/' );
54
+ // Plugin Help Page URL
55
+ define( 'LVCA_PLUGIN_HELP_URL', admin_url() . 'admin.php?page=livemesh_vc_addons_documentation' );
56
+ // Create a helper function for easy SDK access.
57
+ function lvca_fs()
58
+ {
59
+ global $lvca_fs ;
60
+
61
+ if ( !isset( $lvca_fs ) ) {
62
+ // Include Freemius SDK.
63
+ require_once dirname( __FILE__ ) . '/freemius/start.php';
64
+ $lvca_fs = fs_dynamic_init( array(
65
+ 'id' => '2182',
66
+ 'slug' => 'addons-for-visual-composer',
67
+ 'type' => 'plugin',
68
+ 'public_key' => 'pk_1322c3f34412e56dc2d697e80ef14',
69
+ 'is_premium' => false,
70
+ 'has_addons' => false,
71
+ 'has_paid_plans' => true,
72
+ 'menu' => array(
73
+ 'slug' => 'livemesh_vc_addons',
74
+ 'support' => false,
75
+ ),
76
+ 'is_live' => true,
77
+ ) );
78
+ }
79
+
80
+ return $lvca_fs;
81
+ }
82
+
83
+ // Init Freemius.
84
+ lvca_fs();
85
+ // Signal that SDK was initiated.
86
+ do_action( 'lvca_fs_loaded' );
87
+ function lvca_fs_add_licensing_helper()
88
+ {
89
+ ?>
90
+ <script type="text/javascript">
91
+ (function () {
92
+ window.lvca_fs = {can_use_premium_code: <?php
93
+ echo json_encode( lvca_fs()->can_use_premium_code() ) ;
94
+ ?>};
95
+ })();
96
+ </script>
97
+ <?php
98
+ }
99
+
100
+ add_action( 'wp_head', 'lvca_fs_add_licensing_helper' );
101
+ require_once dirname( __FILE__ ) . '/plugin.php';
102
+ }
admin-ajax.php → admin/admin-ajax.php RENAMED
File without changes
admin-init.php → admin/admin-init.php RENAMED
File without changes
{assets → admin/assets}/css/documentation.css RENAMED
File without changes
{assets → admin/assets}/css/documentation.css.map RENAMED
File without changes
{assets → admin/assets}/css/documentation.scss RENAMED
File without changes
{assets → admin/assets}/css/lvca-admin-page.css RENAMED
File without changes
{assets → admin/assets}/css/lvca-admin-page.css.map RENAMED
File without changes
{assets → admin/assets}/css/lvca-admin-page.scss RENAMED
File without changes
{assets → admin/assets}/css/lvca-admin.css RENAMED
File without changes
admin/assets/css/lvca-admin.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["lvca-admin.scss"],"names":[],"mappings":"AACA;EACE,iBAAgB;EAChB,kBAAiB;EACjB,eAAc;EACd,mBAAkB,EAAA;;AAGpB,yEAAyE;AAGzE;EACE,oCAAmC;EACnC,yBAAwB,EAAA;;AAG1B;EACE,iBAAgB;EAChB,mBAAkB,EAAA;;AAGpB;EACE,oDAAmD,EAAA;;AAGrD;EACE,uDAAsD,EAAA;;AAGxD;EACE,qDAAoD,EAAA;;AAGtD;EACE,qDAAoD,EAAA;;AAGtD;EACE,qDAAoD,EAAA;;AAGtD;EACE,wDAAuD,EAAA;;AAGzD;EACE,qDAAoD,EAAA;;AAGtD;EACE,wDAAuD,EAAA;;AAGzD;EACE,mDAAkD,EAAA;;AAGpD;EACE,sDAAqD,EAAA;;AAGvD;EACE,mDAAkD,EAAA;;AAGpD;EACE,gDAA+C,EAAA;;AAGjD;EACE,2DAA0D,EAAA;;AAG5D;EACE,wDAAuD,EAAA;;AAGzD;EACE,2DAA0D,EAAA;;AAG5D;EACE,+DAA8D,EAAA;;AAGhE;EACE,mEAAkE,EAAA;;AAGpE;EACE,4DAA2D,EAAA;;AAG7D;EACE,wDAAuD,EAAA;;AAGzD;EACE,0DAAyD,EAAA;;AAG3D;EACE,oDAAmD,EAAA;;AAGrD;EACE,gDAA+C,EAAA;;AAGjD;EACE,yDAAwD,EAAA;;AAG1D;EACE,wDAAuD,EAAA;;AAGzD;EACE,kDAAiD,EAAA;;AAGnD;EACE,qDAAoD,EAAA;;AAGtD;EACE,yDAAwD,EAAA;;AAG1D;EACE,gDAA+C,EAAA;;AAGjD;EACE,mDAAkD,EAAA;;AAGpD;EACE,qDAAoD,EAAA;;AAGtD;EACE,oDAAmD,EAAA;;AAGrD;EACE,uDAAsD,EAAA;;AAGxD;EACE,+CAA8C,EAAA;;AAGhD;EACE,mDAAkD,EAAA;;AAGpD;EACE,kDAAiD,EAAA;;AAGnD;EACE,mDAAkD,EAAA;;AAGpD;EACE,uDAAsD,EAAA;;AAGxD;EACE,oDAAmD,EAAA;;AAGrD;EACE,oDAAmD,EAAA;;AAGrD;EACE,uDAAsD,EAAA;;AAGxD;EACE,mDAAkD,EAAA;;AAGpD;EACE,sDAAqD,EAAA;;AAGvD;EACE,iDAAgD,EAAA;;AAGlD;EACE,oDAAmD,EAAA","file":"lvca-admin.css"}
admin/assets/css/lvca-admin.scss ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ .wrap.lvca-license-wrap form.lvca-license-box {
3
+ max-width: 700px;
4
+ background: white;
5
+ margin: 20px 0;
6
+ padding: 20px 30px;
7
+ }
8
+
9
+ /* =============== WPBakery Page Builder Elements ==================== */
10
+
11
+
12
+ [class*=vc_element-icon][class*=icon-lvca-] {
13
+ background-position: 0 0 !important;
14
+ background-size: contain;
15
+ }
16
+
17
+ input[type=number].wpb_vc_param_value.lvca_number {
18
+ max-width: 100px;
19
+ margin-right: 10px;
20
+ }
21
+
22
+ .icon-lvca-services.vc_element-icon[data-is-container=true] {
23
+ background-image: url(../images/admin/services.png);
24
+ }
25
+
26
+ .icon-lvca-service.vc_element-icon {
27
+ background-image: url(../images/admin/service-add.png);
28
+ }
29
+
30
+ .icon-lvca-statsbars.vc_element-icon[data-is-container=true] {
31
+ background-image: url(../images/admin/stats-bar.png);
32
+ }
33
+
34
+ .icon-lvca-statsbar.vc_element-icon {
35
+ background-image: url(../images/admin/stats-bar.png);
36
+ }
37
+
38
+ .icon-lvca-piecharts.vc_element-icon[data-is-container=true] {
39
+ background-image: url(../images/admin/piecharts.png);
40
+ }
41
+
42
+ .icon-lvca-piechart.vc_element-icon {
43
+ background-image: url(../images/admin/piechart-add.png);
44
+ }
45
+
46
+ .icon-lvca-odometers.vc_element-icon[data-is-container=true] {
47
+ background-image: url(../images/admin/odometers.png);
48
+ }
49
+
50
+ .icon-lvca-odometer.vc_element-icon {
51
+ background-image: url(../images/admin/odometer-add.png);
52
+ }
53
+
54
+ .icon-lvca-clients.vc_element-icon[data-is-container=true] {
55
+ background-image: url(../images/admin/clients.png);
56
+ }
57
+
58
+ .icon-lvca-client.vc_element-icon {
59
+ background-image: url(../images/admin/client-add.png);
60
+ }
61
+
62
+ .icon-lvca-heading.vc_element-icon {
63
+ background-image: url(../images/admin/heading.png);
64
+ }
65
+
66
+ .icon-lvca-team.vc_element-icon[data-is-container=true] {
67
+ background-image: url(../images/admin/team.png);
68
+ }
69
+
70
+ .icon-lvca-team-member.vc_element-icon {
71
+ background-image: url(../images/admin/team-member-add.png);
72
+ }
73
+
74
+ .icon-lvca-testimonials.vc_element-icon[data-is-container=true] {
75
+ background-image: url(../images/admin/testimonials.png);
76
+ }
77
+
78
+ .icon-lvca-testimonial.vc_element-icon {
79
+ background-image: url(../images/admin/testimonial-add.png);
80
+ }
81
+
82
+ .icon-lvca-testimonials-slider.vc_element-icon[data-is-container=true] {
83
+ background-image: url(../images/admin/testimonials-slider.png);
84
+ }
85
+
86
+ .icon-lvca-testimonials-slide.vc_element-icon {
87
+ background-image: url(../images/admin/testimonials-slider-add.png);
88
+ }
89
+
90
+ .icon-lvca-carousel.vc_element-icon[data-is-container=true] {
91
+ background-image: url(../images/admin/generic-carousel.png);
92
+ }
93
+
94
+ .icon-lvca-carousel-item.vc_element-icon {
95
+ background-image: url(../images/admin/carousel-add.png);
96
+ }
97
+
98
+ .icon-lvca-posts-carousel.vc_element-icon {
99
+ background-image: url(../images/admin/posts-carousel.png);
100
+ }
101
+
102
+ .icon-lvca-portfolio.vc_element-icon {
103
+ background-image: url(../images/admin/grid-alt.png);
104
+ }
105
+
106
+ .icon-lvca-posts-block.vc_element-icon {
107
+ background-image: url(../images/admin/grid.png);
108
+ }
109
+
110
+ .icon-lvca-pricing-table.vc_element-icon[data-is-container=true] {
111
+ background-image: url(../images/admin/pricing-table.png);
112
+ }
113
+
114
+ .icon-lvca-pricing.vc_element-icon {
115
+ background-image: url(../images/admin/pricing-plan.png);
116
+ }
117
+
118
+ .icon-lvca-spacer.vc_element-icon {
119
+ background-image: url(../images/admin/spacer.png);
120
+ }
121
+
122
+ .icon-lvca-accordion.vc_element-icon[data-is-container=true] {
123
+ background-image: url(../images/admin/accordion.png);
124
+ }
125
+
126
+ .icon-lvca-panel.vc_element-icon {
127
+ background-image: url(../images/admin/accordion-add.png);
128
+ }
129
+
130
+ .icon-lvca-tabs.vc_element-icon[data-is-container=true] {
131
+ background-image: url(../images/admin/tabs.png);
132
+ }
133
+
134
+ .icon-lvca-tab.vc_element-icon {
135
+ background-image: url(../images/admin/tab-add.png);
136
+ }
137
+
138
+ .icon-lvca-countdown.vc_element-icon {
139
+ background-image: url(../images/admin/countdown.png);
140
+ }
141
+
142
+ .icon-lvca-features.vc_element-icon[data-is-container=true] {
143
+ background-image: url(../images/admin/features.png);
144
+ }
145
+
146
+ .icon-lvca-feature-add.vc_element-icon {
147
+ background-image: url(../images/admin/feature-add.png);
148
+ }
149
+
150
+ .icon-lvca-faq.vc_element-icon[data-is-container=true] {
151
+ background-image: url(../images/admin/faq.png);
152
+ }
153
+
154
+ .icon-lvca-faq-add.vc_element-icon {
155
+ background-image: url(../images/admin/faq-add.png);
156
+ }
157
+
158
+ .icon-lvca-button.vc_element-icon {
159
+ background-image: url(../images/admin/button.png);
160
+ }
161
+
162
+ .icon-lvca-gallery.vc_element-icon[data-is-container=true] {
163
+ background-image: url(../images/admin/gallery.png);
164
+ }
165
+
166
+ .icon-lvca-gallery-add.vc_element-icon {
167
+ background-image: url(../images/admin/gallery-add.png);
168
+ }
169
+
170
+ .icon-lvca-gallery-carousel.vc_element-icon[data-is-container=true] {
171
+ background-image: url(../images/admin/carousel.png);
172
+ }
173
+
174
+ .icon-lvca-image-slider.vc_element-icon[data-is-container=true] {
175
+ background-image: url(../images/admin/sliders2.png);
176
+ }
177
+
178
+ .icon-lvca-image-slider-add.vc_element-icon {
179
+ background-image: url(../images/admin/slider-add2.png);
180
+ }
181
+
182
+ .icon-lvca-slider.vc_element-icon[data-is-container=true] {
183
+ background-image: url(../images/admin/sliders.png);
184
+ }
185
+
186
+ .icon-lvca-slider-add.vc_element-icon {
187
+ background-image: url(../images/admin/slider-add.png);
188
+ }
189
+
190
+ .icon-lvca-icons.vc_element-icon[data-is-container=true] {
191
+ background-image: url(../images/admin/icons.png);
192
+ }
193
+
194
+ .icon-lvca-icon-add.vc_element-icon {
195
+ background-image: url(../images/admin/icon-add.png);
196
+ }
{assets → admin/assets}/css/lvca-elements.css RENAMED
File without changes
{assets → admin/assets}/css/lvca-elements.css.map RENAMED
File without changes
{assets → admin/assets}/css/lvca-elements.scss RENAMED
File without changes
{assets → admin/assets}/css/premium-upgrade.css.map RENAMED
File without changes
{assets → admin/assets}/css/premium-upgrade.scss RENAMED
File without changes
{assets → admin/assets}/images/admin/accordion-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/accordion.png RENAMED
File without changes
{assets → admin/assets}/images/admin/button.png RENAMED
File without changes
{assets → admin/assets}/images/admin/carousel-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/carousel.png RENAMED
File without changes
{assets → admin/assets}/images/admin/client-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/clients.png RENAMED
File without changes
{assets → admin/assets}/images/admin/countdown.png RENAMED
File without changes
{assets → admin/assets}/images/admin/faq-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/faq.png RENAMED
File without changes
{assets → admin/assets}/images/admin/feature-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/features.png RENAMED
File without changes
{assets → admin/assets}/images/admin/gallery-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/gallery.png RENAMED
File without changes
{assets → admin/assets}/images/admin/generic-carousel.png RENAMED
File without changes
{assets → admin/assets}/images/admin/grid-alt.png RENAMED
File without changes
{assets → admin/assets}/images/admin/grid.png RENAMED
File without changes
{assets → admin/assets}/images/admin/heading.png RENAMED
File without changes
{assets → admin/assets}/images/admin/icon-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/icons.png RENAMED
File without changes
{assets → admin/assets}/images/admin/odometer-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/odometers.png RENAMED
File without changes
{assets → admin/assets}/images/admin/piechart-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/piecharts.png RENAMED
File without changes
{assets → admin/assets}/images/admin/portfolio-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/portfolio.png RENAMED
File without changes
{assets → admin/assets}/images/admin/posts-carousel.png RENAMED
File without changes
{assets → admin/assets}/images/admin/pricing-plan.png RENAMED
File without changes
{assets → admin/assets}/images/admin/pricing-table.png RENAMED
File without changes
{assets → admin/assets}/images/admin/service-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/services.png RENAMED
File without changes
{assets → admin/assets}/images/admin/slider-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/slider-add2.png RENAMED
File without changes
{assets → admin/assets}/images/admin/sliders.png RENAMED
File without changes
{assets → admin/assets}/images/admin/sliders2.png RENAMED
File without changes
{assets → admin/assets}/images/admin/spacer.png RENAMED
File without changes
{assets → admin/assets}/images/admin/stats-bar.png RENAMED
File without changes
{assets → admin/assets}/images/admin/tab-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/tabs.png RENAMED
File without changes
{assets → admin/assets}/images/admin/team-member-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/team.png RENAMED
File without changes
{assets → admin/assets}/images/admin/testimonial-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/testimonials-slider-add.png RENAMED
File without changes
{assets → admin/assets}/images/admin/testimonials-slider.png RENAMED
File without changes
{assets → admin/assets}/images/admin/testimonials.png RENAMED
File without changes
{assets → admin/assets}/images/logo-dark.png RENAMED
File without changes
{assets → admin/assets}/images/logo-light.png RENAMED
File without changes
{assets → admin/assets}/images/logo-shape.png RENAMED
File without changes
{assets → admin/assets}/images/logo-shape16.png RENAMED
File without changes
{assets → admin/assets}/js/documentation.js RENAMED
File without changes
{assets → admin/assets}/js/documentation.min.js RENAMED
File without changes
{assets → admin/assets}/js/lvca-admin-ajax.js RENAMED
File without changes
{assets → admin/assets}/js/lvca-admin-ajax.min.js RENAMED
File without changes
{assets → admin/assets}/js/lvca-admin.js RENAMED
File without changes
{assets → admin/assets}/js/lvca-admin.min.js RENAMED
File without changes
{assets → admin/assets}/js/premium-upgrade.min.js RENAMED
File without changes
{notices → admin/notices}/admin-notice-rate.php RENAMED
File without changes
{notices → admin/notices}/admin-notice.php RENAMED
File without changes
{notices → admin/notices}/templates/rate.php RENAMED
File without changes
{views → admin/views}/admin-banner1.php RENAMED
File without changes
{views → admin/views}/admin-banner2.php RENAMED
File without changes
{views → admin/views}/admin-footer.php RENAMED
File without changes
{views → admin/views}/admin-header.php RENAMED
File without changes
{views → admin/views}/documentation.php RENAMED
@@ -1236,6 +1236,11 @@ else {
1236
 
1237
  <h2>Change Log for the Premium Version</h2>
1238
  <br>
 
 
 
 
 
1239
  <h3>2.5.1</h3>
1240
  <ul>
1241
  <li>Fixed - The Posts Carousel was being rendered early on the page ignoring the order of widgets specified in the builder.</li>
1236
 
1237
  <h2>Change Log for the Premium Version</h2>
1238
  <br>
1239
+ <h3>2.5.2</h3>
1240
+ <ul>
1241
+ <li>Updated - Freemius library to address security vulnerability reported. Recommended to update immediately.</li>
1242
+ <li>Fixed - Some themes can raise JS error due to jQuery $ being unavailable.</li>
1243
+ </ul>
1244
  <h3>2.5.1</h3>
1245
  <ul>
1246
  <li>Fixed - The Posts Carousel was being rendered early on the page ignoring the order of widgets specified in the builder.</li>
{views → admin/views}/settings.php RENAMED
File without changes
assets/css/_grid-settings.scss ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ $neat-grid: (
2
+ columns: 12,
3
+ gutter: 20px,
4
+ direction: ltr,
5
+ );
6
+
7
+ $lvca-tablet-grid: (
8
+ media: 480px,
9
+ );
10
+
11
+ $lvca-desktop-grid: (
12
+ media: 801px,
13
+ );
14
+
15
+ $lvca-gapless-grid: (
16
+ gutter: 0px,
17
+ );
18
+
19
+ $lvca-five-col-grid: (
20
+ columns: 5,
21
+ );
22
+
23
+ $lvca-gapless-five-col-grid: (
24
+ columns: 5,
25
+ gutter: 0px,
26
+ );
27
+
28
+ $lvca-mobile-only-grid: (
29
+ media: "(max-width: 479px)",
30
+ );
31
+
32
+ $lvca-tablet-only-grid: (
33
+ media: "(min-width:480px) and (max-width: 800px)",
34
+ );
assets/css/_lvca-lib.scss ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "bourbon";
2
+ @import "neat";
3
+ @import "grid-settings";
4
+
5
+ /// Function reference - http://sass-lang.com/documentation/Sass/Script/Functions.html#nth-instance_method
6
+
7
+ @mixin omega($query) {
8
+
9
+ @if length($query) == 1 {
10
+
11
+ @include nth-child($query);
12
+
13
+ } @else if length($query) == 2 {
14
+
15
+ @include nth-child(nth($query, 1));
16
+
17
+ } @else {
18
+
19
+ @include -neat-warn("Too many arguments passed to the omega() mixin.");
20
+
21
+ }
22
+
23
+ }
24
+
25
+ @mixin nth-child($query) {
26
+
27
+ @if type-of($query) == number and unit($query) == "n" {
28
+ &:nth-child(#{$query}+1) {
29
+ clear: left;
30
+ }
31
+ }
32
+
33
+ }
34
+
35
+ @mixin lvca-container() {
36
+
37
+ &::after {
38
+ clear: both;
39
+ content: "";
40
+ display: block;
41
+ }
42
+ }
43
+
44
+ // Custom Mixins for LiveMesh framework - utilizes other libs like Bourbon
45
+ $tablet_size: 767;
46
+ $mobile_size: 479;
47
+
48
+ @mixin center {
49
+ margin: 0 auto;
50
+ text-align: center;
51
+ }
52
+
53
+ @mixin clear() {
54
+ &:before, &:after {
55
+ content: "\0020";
56
+ display: block;
57
+ height: 0;
58
+ overflow: hidden;
59
+ }
60
+ &:after {
61
+ clear: both;
62
+ }
63
+ }
64
+
65
+ @mixin linkTextOffscreen() {
66
+ text-indent: -9999px;
67
+ overflow: hidden;
68
+ text-decoration: none;
69
+ display: block;
70
+ font-size: 0;
71
+ text-align: start;
72
+ }
73
+
74
+ @mixin hoverActiveFocus($property, $value) {
75
+ &:hover, &:active, &:focus {
76
+ #{$property}: $value;
77
+ }
78
+ }
79
+
80
+ @mixin respond-to-max($point) {
81
+ @media only screen and (max-width: $point+px) { @content; }
82
+ }
83
+
84
+ @mixin respond-between($point1, $point2) {
85
+ @media only screen and (min-width: $point1+px) and (max-width: $point2+px) { @content; }
86
+ }
87
+
88
+ @mixin respond-to-min($point) {
89
+ @media only screen and (min-width: $point+px) { @content; }
90
+ }
91
+ @mixin respond-to-retina() {
92
+ @media only screen and (-webkit-min-device-pixel-ratio: 2) { @content; }
93
+ }
94
+
95
+ @mixin bottom-line($width: 35, $height: 2, $color: $theme_color) {
96
+ &:after {
97
+ width: $width + px;
98
+ height: $height + px;
99
+ background: $color;
100
+ display: block;
101
+ content: "";
102
+ @content;
103
+ }
104
+ }
105
+
106
+ @mixin lvca-icon-font() {
107
+ font-family: 'lvca-icomoon' !important;
108
+ speak: none;
109
+ font-style: normal;
110
+ font-weight: normal;
111
+ font-variant: normal;
112
+ text-transform: none;
113
+ line-height: 1;
114
+ -webkit-font-smoothing: antialiased;
115
+ -moz-osx-font-smoothing: grayscale;
116
+ }
117
+
118
+ @mixin lvca-heading-style() {
119
+ font-size: 18px;
120
+ line-height: 26px;
121
+ letter-spacing: 1px;
122
+ font-weight: bold;
123
+ color: #333;
124
+ text-transform: uppercase;
125
+ clear: none;
126
+ margin-top: 0;
127
+ margin-bottom: 10px;
128
+ }
129
+
130
+ @mixin lvca-body-font() {
131
+ font-size: 15px;
132
+ line-height: 24px;
133
+ }
134
+
135
+ @mixin meta-font() {
136
+ font-style: italic;
137
+ color: #888;
138
+ }
assets/css/ajax-loader.gif ADDED
Binary file
assets/css/animate.css ADDED
@@ -0,0 +1,3341 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+
3
+ /*!
4
+ * animate.css -http://daneden.me/animate
5
+ * Version - 3.5.1
6
+ * Licensed under the MIT license - http://opensource.org/licenses/MIT
7
+ *
8
+ * Copyright (c) 2016 Daniel Eden
9
+ */
10
+
11
+ .animated {
12
+ -webkit-animation-duration: 1s;
13
+ animation-duration: 1s;
14
+ -webkit-animation-fill-mode: both;
15
+ animation-fill-mode: both;
16
+ }
17
+
18
+ .animated.infinite {
19
+ -webkit-animation-iteration-count: infinite;
20
+ animation-iteration-count: infinite;
21
+ }
22
+
23
+ .animated.hinge {
24
+ -webkit-animation-duration: 2s;
25
+ animation-duration: 2s;
26
+ }
27
+
28
+ .animated.flipOutX,
29
+ .animated.flipOutY,
30
+ .animated.bounceIn,
31
+ .animated.bounceOut {
32
+ -webkit-animation-duration: .75s;
33
+ animation-duration: .75s;
34
+ }
35
+
36
+ @-webkit-keyframes bounce {
37
+ from, 20%, 53%, 80%, to {
38
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
39
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
40
+ -webkit-transform: translate3d(0,0,0);
41
+ transform: translate3d(0,0,0);
42
+ }
43
+
44
+ 40%, 43% {
45
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
46
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
47
+ -webkit-transform: translate3d(0, -30px, 0);
48
+ transform: translate3d(0, -30px, 0);
49
+ }
50
+
51
+ 70% {
52
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
53
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
54
+ -webkit-transform: translate3d(0, -15px, 0);
55
+ transform: translate3d(0, -15px, 0);
56
+ }
57
+
58
+ 90% {
59
+ -webkit-transform: translate3d(0,-4px,0);
60
+ transform: translate3d(0,-4px,0);
61
+ }
62
+ }
63
+
64
+ @keyframes bounce {
65
+ from, 20%, 53%, 80%, to {
66
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
67
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
68
+ -webkit-transform: translate3d(0,0,0);
69
+ transform: translate3d(0,0,0);
70
+ }
71
+
72
+ 40%, 43% {
73
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
74
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
75
+ -webkit-transform: translate3d(0, -30px, 0);
76
+ transform: translate3d(0, -30px, 0);
77
+ }
78
+
79
+ 70% {
80
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
81
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
82
+ -webkit-transform: translate3d(0, -15px, 0);
83
+ transform: translate3d(0, -15px, 0);
84
+ }
85
+
86
+ 90% {
87
+ -webkit-transform: translate3d(0,-4px,0);
88
+ transform: translate3d(0,-4px,0);
89
+ }
90
+ }
91
+
92
+ .bounce {
93
+ -webkit-animation-name: bounce;
94
+ animation-name: bounce;
95
+ -webkit-transform-origin: center bottom;
96
+ transform-origin: center bottom;
97
+ }
98
+
99
+ @-webkit-keyframes flash {
100
+ from, 50%, to {
101
+ opacity: 1;
102
+ }
103
+
104
+ 25%, 75% {
105
+ opacity: 0;
106
+ }
107
+ }
108
+
109
+ @keyframes flash {
110
+ from, 50%, to {
111
+ opacity: 1;
112
+ }
113
+
114
+ 25%, 75% {
115
+ opacity: 0;
116
+ }
117
+ }
118
+
119
+ .flash {
120
+ -webkit-animation-name: flash;
121
+ animation-name: flash;
122
+ }
123
+
124
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
125
+
126
+ @-webkit-keyframes pulse {
127
+ from {
128
+ -webkit-transform: scale3d(1, 1, 1);
129
+ transform: scale3d(1, 1, 1);
130
+ }
131
+
132
+ 50% {
133
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
134
+ transform: scale3d(1.05, 1.05, 1.05);
135
+ }
136
+
137
+ to {
138
+ -webkit-transform: scale3d(1, 1, 1);
139
+ transform: scale3d(1, 1, 1);
140
+ }
141
+ }
142
+
143
+ @keyframes pulse {
144
+ from {
145
+ -webkit-transform: scale3d(1, 1, 1);
146
+ transform: scale3d(1, 1, 1);
147
+ }
148
+
149
+ 50% {
150
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
151
+ transform: scale3d(1.05, 1.05, 1.05);
152
+ }
153
+
154
+ to {
155
+ -webkit-transform: scale3d(1, 1, 1);
156
+ transform: scale3d(1, 1, 1);
157
+ }
158
+ }
159
+
160
+ .pulse {
161
+ -webkit-animation-name: pulse;
162
+ animation-name: pulse;
163
+ }
164
+
165
+ @-webkit-keyframes rubberBand {
166
+ from {
167
+ -webkit-transform: scale3d(1, 1, 1);
168
+ transform: scale3d(1, 1, 1);
169
+ }
170
+
171
+ 30% {
172
+ -webkit-transform: scale3d(1.25, 0.75, 1);
173
+ transform: scale3d(1.25, 0.75, 1);
174
+ }
175
+
176
+ 40% {
177
+ -webkit-transform: scale3d(0.75, 1.25, 1);
178
+ transform: scale3d(0.75, 1.25, 1);
179
+ }
180
+
181
+ 50% {
182
+ -webkit-transform: scale3d(1.15, 0.85, 1);
183
+ transform: scale3d(1.15, 0.85, 1);
184
+ }
185
+
186
+ 65% {
187
+ -webkit-transform: scale3d(.95, 1.05, 1);
188
+ transform: scale3d(.95, 1.05, 1);
189
+ }
190
+
191
+ 75% {
192
+ -webkit-transform: scale3d(1.05, .95, 1);
193
+ transform: scale3d(1.05, .95, 1);
194
+ }
195
+
196
+ to {
197
+ -webkit-transform: scale3d(1, 1, 1);
198
+ transform: scale3d(1, 1, 1);
199
+ }
200
+ }
201
+
202
+ @keyframes rubberBand {
203
+ from {
204
+ -webkit-transform: scale3d(1, 1, 1);
205
+ transform: scale3d(1, 1, 1);
206
+ }
207
+
208
+ 30% {
209
+ -webkit-transform: scale3d(1.25, 0.75, 1);
210
+ transform: scale3d(1.25, 0.75, 1);
211
+ }
212
+
213
+ 40% {
214
+ -webkit-transform: scale3d(0.75, 1.25, 1);
215
+ transform: scale3d(0.75, 1.25, 1);
216
+ }
217
+
218
+ 50% {
219
+ -webkit-transform: scale3d(1.15, 0.85, 1);
220
+ transform: scale3d(1.15, 0.85, 1);
221
+ }
222
+
223
+ 65% {
224
+ -webkit-transform: scale3d(.95, 1.05, 1);
225
+ transform: scale3d(.95, 1.05, 1);
226
+ }
227
+
228
+ 75% {
229
+ -webkit-transform: scale3d(1.05, .95, 1);
230
+ transform: scale3d(1.05, .95, 1);
231
+ }
232
+
233
+ to {
234
+ -webkit-transform: scale3d(1, 1, 1);
235
+ transform: scale3d(1, 1, 1);
236
+ }
237
+ }
238
+
239
+ .rubberBand {
240
+ -webkit-animation-name: rubberBand;
241
+ animation-name: rubberBand;
242
+ }
243
+
244
+ @-webkit-keyframes shake {
245
+ from, to {
246
+ -webkit-transform: translate3d(0, 0, 0);
247
+ transform: translate3d(0, 0, 0);
248
+ }
249
+
250
+ 10%, 30%, 50%, 70%, 90% {
251
+ -webkit-transform: translate3d(-10px, 0, 0);
252
+ transform: translate3d(-10px, 0, 0);
253
+ }
254
+
255
+ 20%, 40%, 60%, 80% {
256
+ -webkit-transform: translate3d(10px, 0, 0);
257
+ transform: translate3d(10px, 0, 0);
258
+ }
259
+ }
260
+
261
+ @keyframes shake {
262
+ from, to {
263
+ -webkit-transform: translate3d(0, 0, 0);
264
+ transform: translate3d(0, 0, 0);
265
+ }
266
+
267
+ 10%, 30%, 50%, 70%, 90% {
268
+ -webkit-transform: translate3d(-10px, 0, 0);
269
+ transform: translate3d(-10px, 0, 0);
270
+ }
271
+
272
+ 20%, 40%, 60%, 80% {
273
+ -webkit-transform: translate3d(10px, 0, 0);
274
+ transform: translate3d(10px, 0, 0);
275
+ }
276
+ }
277
+
278
+ .shake {
279
+ -webkit-animation-name: shake;
280
+ animation-name: shake;
281
+ }
282
+
283
+ @-webkit-keyframes headShake {
284
+ 0% {
285
+ -webkit-transform: translateX(0);
286
+ transform: translateX(0);
287
+ }
288
+
289
+ 6.5% {
290
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
291
+ transform: translateX(-6px) rotateY(-9deg);
292
+ }
293
+
294
+ 18.5% {
295
+ -webkit-transform: translateX(5px) rotateY(7deg);
296
+ transform: translateX(5px) rotateY(7deg);
297
+ }
298
+
299
+ 31.5% {
300
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
301
+ transform: translateX(-3px) rotateY(-5deg);
302
+ }
303
+
304
+ 43.5% {
305
+ -webkit-transform: translateX(2px) rotateY(3deg);
306
+ transform: translateX(2px) rotateY(3deg);
307
+ }
308
+
309
+ 50% {
310
+ -webkit-transform: translateX(0);
311
+ transform: translateX(0);
312
+ }
313
+ }
314
+
315
+ @keyframes headShake {
316
+ 0% {
317
+ -webkit-transform: translateX(0);
318
+ transform: translateX(0);
319
+ }
320
+
321
+ 6.5% {
322
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
323
+ transform: translateX(-6px) rotateY(-9deg);
324
+ }
325
+
326
+ 18.5% {
327
+ -webkit-transform: translateX(5px) rotateY(7deg);
328
+ transform: translateX(5px) rotateY(7deg);
329
+ }
330
+
331
+ 31.5% {
332
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
333
+ transform: translateX(-3px) rotateY(-5deg);
334
+ }
335
+
336
+ 43.5% {
337
+ -webkit-transform: translateX(2px) rotateY(3deg);
338
+ transform: translateX(2px) rotateY(3deg);
339
+ }
340
+
341
+ 50% {
342
+ -webkit-transform: translateX(0);
343
+ transform: translateX(0);
344
+ }
345
+ }
346
+
347
+ .headShake {
348
+ -webkit-animation-timing-function: ease-in-out;
349
+ animation-timing-function: ease-in-out;
350
+ -webkit-animation-name: headShake;
351
+ animation-name: headShake;
352
+ }
353
+
354
+ @-webkit-keyframes swing {
355
+ 20% {
356
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
357
+ transform: rotate3d(0, 0, 1, 15deg);
358
+ }
359
+
360
+ 40% {
361
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
362
+ transform: rotate3d(0, 0, 1, -10deg);
363
+ }
364
+
365
+ 60% {
366
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
367
+ transform: rotate3d(0, 0, 1, 5deg);
368
+ }
369
+
370
+ 80% {
371
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
372
+ transform: rotate3d(0, 0, 1, -5deg);
373
+ }
374
+
375
+ to {
376
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
377
+ transform: rotate3d(0, 0, 1, 0deg);
378
+ }
379
+ }
380
+
381
+ @keyframes swing {
382
+ 20% {
383
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
384
+ transform: rotate3d(0, 0, 1, 15deg);
385
+ }
386
+
387
+ 40% {
388
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
389
+ transform: rotate3d(0, 0, 1, -10deg);
390
+ }
391
+
392
+ 60% {
393
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
394
+ transform: rotate3d(0, 0, 1, 5deg);
395
+ }
396
+
397
+ 80% {
398
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
399
+ transform: rotate3d(0, 0, 1, -5deg);
400
+ }
401
+
402
+ to {
403
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
404
+ transform: rotate3d(0, 0, 1, 0deg);
405
+ }
406
+ }
407
+
408
+ .swing {
409
+ -webkit-transform-origin: top center;
410
+ transform-origin: top center;
411
+ -webkit-animation-name: swing;
412
+ animation-name: swing;
413
+ }
414
+
415
+ @-webkit-keyframes tada {
416
+ from {
417
+ -webkit-transform: scale3d(1, 1, 1);
418
+ transform: scale3d(1, 1, 1);
419
+ }
420
+
421
+ 10%, 20% {
422
+ -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
423
+ transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
424
+ }
425
+
426
+ 30%, 50%, 70%, 90% {
427
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
428
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
429
+ }
430
+
431
+ 40%, 60%, 80% {
432
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
433
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
434
+ }
435
+
436
+ to {
437
+ -webkit-transform: scale3d(1, 1, 1);
438
+ transform: scale3d(1, 1, 1);
439
+ }
440
+ }
441
+
442
+ @keyframes tada {
443
+ from {
444
+ -webkit-transform: scale3d(1, 1, 1);
445
+ transform: scale3d(1, 1, 1);
446
+ }
447
+
448
+ 10%, 20% {
449
+ -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
450
+ transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
451
+ }
452
+
453
+ 30%, 50%, 70%, 90% {
454
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
455
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
456
+ }
457
+
458
+ 40%, 60%, 80% {
459
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
460
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
461
+ }
462
+
463
+ to {
464
+ -webkit-transform: scale3d(1, 1, 1);
465
+ transform: scale3d(1, 1, 1);
466
+ }
467
+ }
468
+
469
+ .tada {
470
+ -webkit-animation-name: tada;
471
+ animation-name: tada;
472
+ }
473
+
474
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
475
+
476
+ @-webkit-keyframes wobble {
477
+ from {
478
+ -webkit-transform: none;
479
+ transform: none;
480
+ }
481
+
482
+ 15% {
483
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
484
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
485
+ }
486
+
487
+ 30% {
488
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
489
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
490
+ }
491
+
492
+ 45% {
493
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
494
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
495
+ }
496
+
497
+ 60% {
498
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
499
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
500
+ }
501
+
502
+ 75% {
503
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
504
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
505
+ }
506
+
507
+ to {
508
+ -webkit-transform: none;
509
+ transform: none;
510
+ }
511
+ }
512
+
513
+ @keyframes wobble {
514
+ from {
515
+ -webkit-transform: none;
516
+ transform: none;
517
+ }
518
+
519
+ 15% {
520
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
521
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
522
+ }
523
+
524
+ 30% {
525
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
526
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
527
+ }
528
+
529
+ 45% {
530
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
531
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
532
+ }
533
+
534
+ 60% {
535
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
536
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
537
+ }
538
+
539
+ 75% {
540
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
541
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
542
+ }
543
+
544
+ to {
545
+ -webkit-transform: none;
546
+ transform: none;
547
+ }
548
+ }
549
+
550
+ .wobble {
551
+ -webkit-animation-name: wobble;
552
+ animation-name: wobble;
553
+ }
554
+
555
+ @-webkit-keyframes jello {
556
+ from, 11.1%, to {
557
+ -webkit-transform: none;
558
+ transform: none;
559
+ }
560
+
561
+ 22.2% {
562
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
563
+ transform: skewX(-12.5deg) skewY(-12.5deg);
564
+ }
565
+
566
+ 33.3% {
567
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
568
+ transform: skewX(6.25deg) skewY(6.25deg);
569
+ }
570
+
571
+ 44.4% {
572
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
573
+ transform: skewX(-3.125deg) skewY(-3.125deg);
574
+ }
575
+
576
+ 55.5% {
577
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
578
+ transform: skewX(1.5625deg) skewY(1.5625deg);
579
+ }
580
+
581
+ 66.6% {
582
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
583
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
584
+ }
585
+
586
+ 77.7% {
587
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
588
+ transform: skewX(0.390625deg) skewY(0.390625deg);
589
+ }
590
+
591
+ 88.8% {
592
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
593
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
594
+ }
595
+ }
596
+
597
+ @keyframes jello {
598
+ from, 11.1%, to {
599
+ -webkit-transform: none;
600
+ transform: none;
601
+ }
602
+
603
+ 22.2% {
604
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
605
+ transform: skewX(-12.5deg) skewY(-12.5deg);
606
+ }
607
+
608
+ 33.3% {
609
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
610
+ transform: skewX(6.25deg) skewY(6.25deg);
611
+ }
612
+
613
+ 44.4% {
614
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
615
+ transform: skewX(-3.125deg) skewY(-3.125deg);
616
+ }
617
+
618
+ 55.5% {
619
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
620
+ transform: skewX(1.5625deg) skewY(1.5625deg);
621
+ }
622
+
623
+ 66.6% {
624
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
625
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
626
+ }
627
+
628
+ 77.7% {
629
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
630
+ transform: skewX(0.390625deg) skewY(0.390625deg);
631
+ }
632
+
633
+ 88.8% {
634
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
635
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
636
+ }
637
+ }
638
+
639
+ .jello {
640
+ -webkit-animation-name: jello;
641
+ animation-name: jello;
642
+ -webkit-transform-origin: center;
643
+ transform-origin: center;
644
+ }
645
+
646
+ @-webkit-keyframes bounceIn {
647
+ from, 20%, 40%, 60%, 80%, to {
648
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
649
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
650
+ }
651
+
652
+ 0% {
653
+ opacity: 0;
654
+ -webkit-transform: scale3d(.3, .3, .3);
655
+ transform: scale3d(.3, .3, .3);
656
+ }
657
+
658
+ 20% {
659
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
660
+ transform: scale3d(1.1, 1.1, 1.1);
661
+ }
662
+
663
+ 40% {
664
+ -webkit-transform: scale3d(.9, .9, .9);
665
+ transform: scale3d(.9, .9, .9);
666
+ }
667
+
668
+ 60% {
669
+ opacity: 1;
670
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
671
+ transform: scale3d(1.03, 1.03, 1.03);
672
+ }
673
+
674
+ 80% {
675
+ -webkit-transform: scale3d(.97, .97, .97);
676
+ transform: scale3d(.97, .97, .97);
677
+ }
678
+
679
+ to {
680
+ opacity: 1;
681
+ -webkit-transform: scale3d(1, 1, 1);
682
+ transform: scale3d(1, 1, 1);
683
+ }
684
+ }
685
+
686
+ @keyframes bounceIn {
687
+ from, 20%, 40%, 60%, 80%, to {
688
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
689
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
690
+ }
691
+
692
+ 0% {
693
+ opacity: 0;
694
+ -webkit-transform: scale3d(.3, .3, .3);
695
+ transform: scale3d(.3, .3, .3);
696
+ }
697
+
698
+ 20% {
699
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
700
+ transform: scale3d(1.1, 1.1, 1.1);
701
+ }
702
+
703
+ 40% {
704
+ -webkit-transform: scale3d(.9, .9, .9);
705
+ transform: scale3d(.9, .9, .9);
706
+ }
707
+
708
+ 60% {
709
+ opacity: 1;
710
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
711
+ transform: scale3d(1.03, 1.03, 1.03);
712
+ }
713
+
714
+ 80% {
715
+ -webkit-transform: scale3d(.97, .97, .97);
716
+ transform: scale3d(.97, .97, .97);
717
+ }
718
+
719
+ to {
720
+ opacity: 1;
721
+ -webkit-transform: scale3d(1, 1, 1);
722
+ transform: scale3d(1, 1, 1);
723
+ }
724
+ }
725
+
726
+ .bounceIn {
727
+ -webkit-animation-name: bounceIn;
728
+ animation-name: bounceIn;
729
+ }
730
+
731
+ @-webkit-keyframes bounceInDown {
732
+ from, 60%, 75%, 90%, to {
733
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
734
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
735
+ }
736
+
737
+ 0% {
738
+ opacity: 0;
739
+ -webkit-transform: translate3d(0, -3000px, 0);
740
+ transform: translate3d(0, -3000px, 0);
741
+ }
742
+
743
+ 60% {
744
+ opacity: 1;
745
+ -webkit-transform: translate3d(0, 25px, 0);
746
+ transform: translate3d(0, 25px, 0);
747
+ }
748
+
749
+ 75% {
750
+ -webkit-transform: translate3d(0, -10px, 0);
751
+ transform: translate3d(0, -10px, 0);
752
+ }
753
+
754
+ 90% {
755
+ -webkit-transform: translate3d(0, 5px, 0);
756
+ transform: translate3d(0, 5px, 0);
757
+ }
758
+
759
+ to {
760
+ -webkit-transform: none;
761
+ transform: none;
762
+ }
763
+ }
764
+
765
+ @keyframes bounceInDown {
766
+ from, 60%, 75%, 90%, to {
767
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
768
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
769
+ }
770
+
771
+ 0% {
772
+ opacity: 0;
773
+ -webkit-transform: translate3d(0, -3000px, 0);
774
+ transform: translate3d(0, -3000px, 0);
775
+ }
776
+
777
+ 60% {
778
+ opacity: 1;
779
+ -webkit-transform: translate3d(0, 25px, 0);
780
+ transform: translate3d(0, 25px, 0);
781
+ }
782
+
783
+ 75% {
784
+ -webkit-transform: translate3d(0, -10px, 0);
785
+ transform: translate3d(0, -10px, 0);
786
+ }
787
+
788
+ 90% {
789
+ -webkit-transform: translate3d(0, 5px, 0);
790
+ transform: translate3d(0, 5px, 0);
791
+ }
792
+
793
+ to {
794
+ -webkit-transform: none;
795
+ transform: none;
796
+ }
797
+ }
798
+
799
+ .bounceInDown {
800
+ -webkit-animation-name: bounceInDown;
801
+ animation-name: bounceInDown;
802
+ }
803
+
804
+ @-webkit-keyframes bounceInLeft {
805
+ from, 60%, 75%, 90%, to {
806
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
807
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
808
+ }
809
+
810
+ 0% {
811
+ opacity: 0;
812
+ -webkit-transform: translate3d(-3000px, 0, 0);
813
+ transform: translate3d(-3000px, 0, 0);
814
+ }
815
+
816
+ 60% {
817
+ opacity: 1;
818
+ -webkit-transform: translate3d(25px, 0, 0);
819
+ transform: translate3d(25px, 0, 0);
820
+ }
821
+
822
+ 75% {
823
+ -webkit-transform: translate3d(-10px, 0, 0);
824
+ transform: translate3d(-10px, 0, 0);
825
+ }
826
+
827
+ 90% {
828
+ -webkit-transform: translate3d(5px, 0, 0);
829
+ transform: translate3d(5px, 0, 0);
830
+ }
831
+
832
+ to {
833
+ -webkit-transform: none;
834
+ transform: none;
835
+ }
836
+ }
837
+
838
+ @keyframes bounceInLeft {
839
+ from, 60%, 75%, 90%, to {
840
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
841
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
842
+ }
843
+
844
+ 0% {
845
+ opacity: 0;
846
+ -webkit-transform: translate3d(-3000px, 0, 0);
847
+ transform: translate3d(-3000px, 0, 0);
848
+ }
849
+
850
+ 60% {
851
+ opacity: 1;
852
+ -webkit-transform: translate3d(25px, 0, 0);
853
+ transform: translate3d(25px, 0, 0);
854
+ }
855
+
856
+ 75% {
857
+ -webkit-transform: translate3d(-10px, 0, 0);
858
+ transform: translate3d(-10px, 0, 0);
859
+ }
860
+
861
+ 90% {
862
+ -webkit-transform: translate3d(5px, 0, 0);
863
+ transform: translate3d(5px, 0, 0);
864
+ }
865
+
866
+ to {
867
+ -webkit-transform: none;
868
+ transform: none;
869
+ }
870
+ }
871
+
872
+ .bounceInLeft {
873
+ -webkit-animation-name: bounceInLeft;
874
+ animation-name: bounceInLeft;
875
+ }
876
+
877
+ @-webkit-keyframes bounceInRight {
878
+ from, 60%, 75%, 90%, to {
879
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
880
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
881
+ }
882
+
883
+ from {
884
+ opacity: 0;
885
+ -webkit-transform: translate3d(3000px, 0, 0);
886
+ transform: translate3d(3000px, 0, 0);
887
+ }
888
+
889
+ 60% {
890
+ opacity: 1;
891
+ -webkit-transform: translate3d(-25px, 0, 0);
892
+ transform: translate3d(-25px, 0, 0);
893
+ }
894
+
895
+ 75% {
896
+ -webkit-transform: translate3d(10px, 0, 0);
897
+ transform: translate3d(10px, 0, 0);
898
+ }
899
+
900
+ 90% {
901
+ -webkit-transform: translate3d(-5px, 0, 0);
902
+ transform: translate3d(-5px, 0, 0);
903
+ }
904
+
905
+ to {
906
+ -webkit-transform: none;
907
+ transform: none;
908
+ }
909
+ }
910
+
911
+ @keyframes bounceInRight {
912
+ from, 60%, 75%, 90%, to {
913
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
914
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
915
+ }
916
+
917
+ from {
918
+ opacity: 0;
919
+ -webkit-transform: translate3d(3000px, 0, 0);
920
+ transform: translate3d(3000px, 0, 0);
921
+ }
922
+
923
+ 60% {
924
+ opacity: 1;
925
+ -webkit-transform: translate3d(-25px, 0, 0);
926
+ transform: translate3d(-25px, 0, 0);
927
+ }
928
+
929
+ 75% {
930
+ -webkit-transform: translate3d(10px, 0, 0);
931
+ transform: translate3d(10px, 0, 0);
932
+ }
933
+
934
+ 90% {
935
+ -webkit-transform: translate3d(-5px, 0, 0);
936
+ transform: translate3d(-5px, 0, 0);
937
+ }
938
+
939
+ to {
940
+ -webkit-transform: none;
941
+ transform: none;
942
+ }
943
+ }
944
+
945
+ .bounceInRight {
946
+ -webkit-animation-name: bounceInRight;
947
+ animation-name: bounceInRight;
948
+ }
949
+
950
+ @-webkit-keyframes bounceInUp {
951
+ from, 60%, 75%, 90%, to {
952
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
953
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
954
+ }
955
+
956
+ from {
957
+ opacity: 0;
958
+ -webkit-transform: translate3d(0, 3000px, 0);
959
+ transform: translate3d(0, 3000px, 0);
960
+ }
961
+
962
+ 60% {
963
+ opacity: 1;
964
+ -webkit-transform: translate3d(0, -20px, 0);
965
+ transform: translate3d(0, -20px, 0);
966
+ }
967
+
968
+ 75% {
969
+ -webkit-transform: translate3d(0, 10px, 0);
970
+ transform: translate3d(0, 10px, 0);
971
+ }
972
+
973
+ 90% {
974
+ -webkit-transform: translate3d(0, -5px, 0);
975
+ transform: translate3d(0, -5px, 0);
976
+ }
977
+
978
+ to {
979
+ -webkit-transform: translate3d(0, 0, 0);
980
+ transform: translate3d(0, 0, 0);
981
+ }
982
+ }
983
+
984
+ @keyframes bounceInUp {
985
+ from, 60%, 75%, 90%, to {
986
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
987
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
988
+ }
989
+
990
+ from {
991
+ opacity: 0;
992
+ -webkit-transform: translate3d(0, 3000px, 0);
993
+ transform: translate3d(0, 3000px, 0);
994
+ }
995
+
996
+ 60% {
997
+ opacity: 1;
998
+ -webkit-transform: translate3d(0, -20px, 0);
999
+ transform: translate3d(0, -20px, 0);
1000
+ }
1001
+
1002
+ 75% {
1003
+ -webkit-transform: translate3d(0, 10px, 0);
1004
+ transform: translate3d(0, 10px, 0);
1005
+ }
1006
+
1007
+ 90% {
1008
+ -webkit-transform: translate3d(0, -5px, 0);
1009
+ transform: translate3d(0, -5px, 0);
1010
+ }
1011
+
1012
+ to {
1013
+ -webkit-transform: translate3d(0, 0, 0);
1014
+ transform: translate3d(0, 0, 0);
1015
+ }
1016
+ }
1017
+
1018
+ .bounceInUp {
1019
+ -webkit-animation-name: bounceInUp;
1020
+ animation-name: bounceInUp;
1021
+ }
1022
+
1023
+ @-webkit-keyframes bounceOut {
1024
+ 20% {
1025
+ -webkit-transform: scale3d(.9, .9, .9);
1026
+ transform: scale3d(.9, .9, .9);
1027
+ }
1028
+
1029
+ 50%, 55% {
1030
+ opacity: 1;
1031
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
1032
+ transform: scale3d(1.1, 1.1, 1.1);
1033
+ }
1034
+
1035
+ to {
1036
+ opacity: 0;
1037
+ -webkit-transform: scale3d(.3, .3, .3);
1038
+ transform: scale3d(.3, .3, .3);
1039
+ }
1040
+ }
1041
+
1042
+ @keyframes bounceOut {
1043
+ 20% {
1044
+ -webkit-transform: scale3d(.9, .9, .9);
1045
+ transform: scale3d(.9, .9, .9);
1046
+ }
1047
+
1048
+ 50%, 55% {
1049
+ opacity: 1;
1050
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
1051
+ transform: scale3d(1.1, 1.1, 1.1);
1052
+ }
1053
+
1054
+ to {
1055
+ opacity: 0;
1056
+ -webkit-transform: scale3d(.3, .3, .3);
1057
+ transform: scale3d(.3, .3, .3);
1058
+ }
1059
+ }
1060
+
1061
+ .bounceOut {
1062
+ -webkit-animation-name: bounceOut;
1063
+ animation-name: bounceOut;
1064
+ }
1065
+
1066
+ @-webkit-keyframes bounceOutDown {
1067
+ 20% {
1068
+ -webkit-transform: translate3d(0, 10px, 0);
1069
+ transform: translate3d(0, 10px, 0);
1070
+ }
1071
+
1072
+ 40%, 45% {
1073
+ opacity: 1;
1074
+ -webkit-transform: translate3d(0, -20px, 0);
1075
+ transform: translate3d(0, -20px, 0);
1076
+ }
1077
+
1078
+ to {
1079
+ opacity: 0;
1080
+ -webkit-transform: translate3d(0, 2000px, 0);
1081
+ transform: translate3d(0, 2000px, 0);
1082
+ }
1083
+ }
1084
+
1085
+ @keyframes bounceOutDown {
1086
+ 20% {
1087
+ -webkit-transform: translate3d(0, 10px, 0);
1088
+ transform: translate3d(0, 10px, 0);
1089
+ }
1090
+
1091
+ 40%, 45% {
1092
+ opacity: 1;
1093
+ -webkit-transform: translate3d(0, -20px, 0);
1094
+ transform: translate3d(0, -20px, 0);
1095
+ }
1096
+
1097
+ to {
1098
+ opacity: 0;
1099
+ -webkit-transform: translate3d(0, 2000px, 0);
1100
+ transform: translate3d(0, 2000px, 0);
1101
+ }
1102
+ }
1103
+
1104
+ .bounceOutDown {
1105
+ -webkit-animation-name: bounceOutDown;
1106
+ animation-name: bounceOutDown;
1107
+ }
1108
+
1109
+ @-webkit-keyframes bounceOutLeft {
1110
+ 20% {
1111
+ opacity: 1;
1112
+ -webkit-transform: translate3d(20px, 0, 0);
1113
+ transform: translate3d(20px, 0, 0);
1114
+ }
1115
+
1116
+ to {
1117
+ opacity: 0;
1118
+ -webkit-transform: translate3d(-2000px, 0, 0);
1119
+ transform: translate3d(-2000px, 0, 0);
1120
+ }
1121
+ }
1122
+
1123
+ @keyframes bounceOutLeft {
1124
+ 20% {
1125
+ opacity: 1;
1126
+ -webkit-transform: translate3d(20px, 0, 0);
1127
+ transform: translate3d(20px, 0, 0);
1128
+ }
1129
+
1130
+ to {
1131
+ opacity: 0;
1132
+ -webkit-transform: translate3d(-2000px, 0, 0);
1133
+ transform: translate3d(-2000px, 0, 0);
1134
+ }
1135
+ }
1136
+
1137
+ .bounceOutLeft {
1138
+ -webkit-animation-name: bounceOutLeft;
1139
+ animation-name: bounceOutLeft;
1140
+ }
1141
+
1142
+ @-webkit-keyframes bounceOutRight {
1143
+ 20% {
1144
+ opacity: 1;
1145
+ -webkit-transform: translate3d(-20px, 0, 0);
1146
+ transform: translate3d(-20px, 0, 0);
1147
+ }
1148
+
1149
+ to {
1150
+ opacity: 0;
1151
+ -webkit-transform: translate3d(2000px, 0, 0);
1152
+ transform: translate3d(2000px, 0, 0);
1153
+ }
1154
+ }
1155
+
1156
+ @keyframes bounceOutRight {
1157
+ 20% {
1158
+ opacity: 1;
1159
+ -webkit-transform: translate3d(-20px, 0, 0);
1160
+ transform: translate3d(-20px, 0, 0);
1161
+ }
1162
+
1163
+ to {
1164
+ opacity: 0;
1165
+ -webkit-transform: translate3d(2000px, 0, 0);
1166
+ transform: translate3d(2000px, 0, 0);
1167
+ }
1168
+ }
1169
+
1170
+ .bounceOutRight {
1171
+ -webkit-animation-name: bounceOutRight;
1172
+ animation-name: bounceOutRight;
1173
+ }
1174
+
1175
+ @-webkit-keyframes bounceOutUp {
1176
+ 20% {
1177
+ -webkit-transform: translate3d(0, -10px, 0);
1178
+ transform: translate3d(0, -10px, 0);
1179
+ }
1180
+
1181
+ 40%, 45% {
1182
+ opacity: 1;
1183
+ -webkit-transform: translate3d(0, 20px, 0);
1184
+ transform: translate3d(0, 20px, 0);
1185
+ }
1186
+
1187
+ to {
1188
+ opacity: 0;
1189
+ -webkit-transform: translate3d(0, -2000px, 0);
1190
+ transform: translate3d(0, -2000px, 0);
1191
+ }
1192
+ }
1193
+
1194
+ @keyframes bounceOutUp {
1195
+ 20% {
1196
+ -webkit-transform: translate3d(0, -10px, 0);
1197
+ transform: translate3d(0, -10px, 0);
1198
+ }
1199
+
1200
+ 40%, 45% {
1201
+ opacity: 1;
1202
+ -webkit-transform: translate3d(0, 20px, 0);
1203
+ transform: translate3d(0, 20px, 0);
1204
+ }
1205
+
1206
+ to {
1207
+ opacity: 0;
1208
+ -webkit-transform: translate3d(0, -2000px, 0);
1209
+ transform: translate3d(0, -2000px, 0);
1210
+ }
1211
+ }
1212
+
1213
+ .bounceOutUp {
1214
+ -webkit-animation-name: bounceOutUp;
1215
+ animation-name: bounceOutUp;
1216
+ }
1217
+
1218
+ @-webkit-keyframes fadeIn {
1219
+ from {
1220
+ opacity: 0;
1221
+ }
1222
+
1223
+ to {
1224
+ opacity: 1;
1225
+ }
1226
+ }
1227
+
1228
+ @keyframes fadeIn {
1229
+ from {
1230
+ opacity: 0;
1231
+ }
1232
+
1233
+ to {
1234
+ opacity: 1;
1235
+ }
1236
+ }
1237
+
1238
+ .fadeIn {
1239
+ -webkit-animation-name: fadeIn;
1240
+ animation-name: fadeIn;
1241
+ }
1242
+
1243
+ @-webkit-keyframes fadeInDown {
1244
+ from {
1245
+ opacity: 0;
1246
+ -webkit-transform: translate3d(0, -100%, 0);
1247
+ transform: translate3d(0, -100%, 0);
1248
+ }
1249
+
1250
+ to {
1251
+ opacity: 1;
1252
+ -webkit-transform: none;
1253
+ transform: none;
1254
+ }
1255
+ }
1256
+
1257
+ @keyframes fadeInDown {
1258
+ from {
1259
+ opacity: 0;
1260
+ -webkit-transform: translate3d(0, -100%, 0);
1261
+ transform: translate3d(0, -100%, 0);
1262
+ }
1263
+
1264
+ to {
1265
+ opacity: 1;
1266
+ -webkit-transform: none;
1267
+ transform: none;
1268
+ }
1269
+ }
1270
+
1271
+ .fadeInDown {
1272
+ -webkit-animation-name: fadeInDown;
1273
+ animation-name: fadeInDown;
1274
+ }
1275
+
1276
+ @-webkit-keyframes fadeInDownBig {
1277
+ from {
1278
+ opacity: 0;
1279
+ -webkit-transform: translate3d(0, -2000px, 0);
1280
+ transform: translate3d(0, -2000px, 0);
1281
+ }
1282
+
1283
+ to {
1284
+ opacity: 1;
1285
+ -webkit-transform: none;
1286
+ transform: none;
1287
+ }
1288
+ }
1289
+
1290
+ @keyframes fadeInDownBig {
1291
+ from {
1292
+ opacity: 0;
1293
+ -webkit-transform: translate3d(0, -2000px, 0);
1294
+ transform: translate3d(0, -2000px, 0);
1295
+ }
1296
+
1297
+ to {
1298
+ opacity: 1;
1299
+ -webkit-transform: none;
1300
+ transform: none;
1301
+ }
1302
+ }
1303
+
1304
+ .fadeInDownBig {
1305
+ -webkit-animation-name: fadeInDownBig;
1306
+ animation-name: fadeInDownBig;
1307
+ }
1308
+
1309
+ @-webkit-keyframes fadeInLeft {
1310
+ from {
1311
+ opacity: 0;
1312
+ -webkit-transform: translate3d(-100%, 0, 0);
1313
+ transform: translate3d(-100%, 0, 0);
1314
+ }
1315
+
1316
+ to {
1317
+ opacity: 1;
1318
+ -webkit-transform: none;
1319
+ transform: none;
1320
+ }
1321
+ }
1322
+
1323
+ @keyframes fadeInLeft {
1324
+ from {
1325
+ opacity: 0;
1326
+ -webkit-transform: translate3d(-100%, 0, 0);
1327
+ transform: translate3d(-100%, 0, 0);
1328
+ }
1329
+
1330
+ to {
1331
+ opacity: 1;
1332
+ -webkit-transform: none;
1333
+ transform: none;
1334
+ }
1335
+ }
1336
+
1337
+ .fadeInLeft {
1338
+ -webkit-animation-name: fadeInLeft;
1339
+ animation-name: fadeInLeft;
1340
+ }
1341
+
1342
+ @-webkit-keyframes fadeInLeftBig {
1343
+ from {
1344
+ opacity: 0;
1345
+ -webkit-transform: translate3d(-2000px, 0, 0);
1346
+ transform: translate3d(-2000px, 0, 0);
1347
+ }
1348
+
1349
+ to {
1350
+ opacity: 1;
1351
+ -webkit-transform: none;
1352
+ transform: none;
1353
+ }
1354
+ }
1355
+
1356
+ @keyframes fadeInLeftBig {
1357
+ from {
1358
+ opacity: 0;
1359
+ -webkit-transform: translate3d(-2000px, 0, 0);
1360
+ transform: translate3d(-2000px, 0, 0);
1361
+ }
1362
+
1363
+ to {
1364
+ opacity: 1;
1365
+ -webkit-transform: none;
1366
+ transform: none;
1367
+ }
1368
+ }
1369
+
1370
+ .fadeInLeftBig {
1371
+ -webkit-animation-name: fadeInLeftBig;
1372
+ animation-name: fadeInLeftBig;
1373
+ }
1374
+
1375
+ @-webkit-keyframes fadeInRight {
1376
+ from {
1377
+ opacity: 0;
1378
+ -webkit-transform: translate3d(100%, 0, 0);
1379
+ transform: translate3d(100%, 0, 0);
1380
+ }
1381
+
1382
+ to {
1383
+ opacity: 1;
1384
+ -webkit-transform: none;
1385
+ transform: none;
1386
+ }
1387
+ }
1388
+
1389
+ @keyframes fadeInRight {
1390
+ from {
1391
+ opacity: 0;
1392
+ -webkit-transform: translate3d(100%, 0, 0);
1393
+ transform: translate3d(100%, 0, 0);
1394
+ }
1395
+
1396
+ to {
1397
+ opacity: 1;
1398
+ -webkit-transform: none;
1399
+ transform: none;
1400
+ }
1401
+ }
1402
+
1403
+ .fadeInRight {
1404
+ -webkit-animation-name: fadeInRight;
1405
+ animation-name: fadeInRight;
1406
+ }
1407
+
1408
+ @-webkit-keyframes fadeInRightBig {
1409
+ from {
1410
+ opacity: 0;
1411
+ -webkit-transform: translate3d(2000px, 0, 0);
1412
+ transform: translate3d(2000px, 0, 0);
1413
+ }
1414
+
1415
+ to {
1416
+ opacity: 1;
1417
+ -webkit-transform: none;
1418
+ transform: none;
1419
+ }
1420
+ }
1421
+
1422
+ @keyframes fadeInRightBig {
1423
+ from {
1424
+ opacity: 0;
1425
+ -webkit-transform: translate3d(2000px, 0, 0);
1426
+ transform: translate3d(2000px, 0, 0);
1427
+ }
1428
+
1429
+ to {
1430
+ opacity: 1;
1431
+ -webkit-transform: none;
1432
+ transform: none;
1433
+ }
1434
+ }
1435
+
1436
+ .fadeInRightBig {
1437
+ -webkit-animation-name: fadeInRightBig;
1438
+ animation-name: fadeInRightBig;
1439
+ }
1440
+
1441
+ @-webkit-keyframes fadeInUp {
1442
+ from {
1443
+ opacity: 0;
1444
+ -webkit-transform: translate3d(0, 100%, 0);
1445
+ transform: translate3d(0, 100%, 0);
1446
+ }
1447
+
1448
+ to {
1449
+ opacity: 1;
1450
+ -webkit-transform: none;
1451
+ transform: none;
1452
+ }
1453
+ }
1454
+
1455
+ @keyframes fadeInUp {
1456
+ from {
1457
+ opacity: 0;
1458
+ -webkit-transform: translate3d(0, 100%, 0);
1459
+ transform: translate3d(0, 100%, 0);
1460
+ }
1461
+
1462
+ to {
1463
+ opacity: 1;
1464
+ -webkit-transform: none;
1465
+ transform: none;
1466
+ }
1467
+ }
1468
+
1469
+ .fadeInUp {
1470
+ -webkit-animation-name: fadeInUp;
1471
+ animation-name: fadeInUp;
1472
+ }
1473
+
1474
+ @-webkit-keyframes fadeInUpBig {
1475
+ from {
1476
+ opacity: 0;
1477
+ -webkit-transform: translate3d(0, 2000px, 0);
1478
+ transform: translate3d(0, 2000px, 0);
1479
+ }
1480
+
1481
+ to {
1482
+ opacity: 1;
1483
+ -webkit-transform: none;
1484
+ transform: none;
1485
+ }
1486
+ }
1487
+
1488
+ @keyframes fadeInUpBig {
1489
+ from {
1490
+ opacity: 0;
1491
+ -webkit-transform: translate3d(0, 2000px, 0);
1492
+ transform: translate3d(0, 2000px, 0);
1493
+ }
1494
+
1495
+ to {
1496
+ opacity: 1;
1497
+ -webkit-transform: none;
1498
+ transform: none;
1499
+ }
1500
+ }
1501
+
1502
+ .fadeInUpBig {
1503
+ -webkit-animation-name: fadeInUpBig;
1504
+ animation-name: fadeInUpBig;
1505
+ }
1506
+
1507
+ @-webkit-keyframes fadeOut {
1508
+ from {
1509
+ opacity: 1;
1510
+ }
1511
+
1512
+ to {
1513
+ opacity: 0;
1514
+ }
1515
+ }
1516
+
1517
+ @keyframes fadeOut {
1518
+ from {
1519
+ opacity: 1;
1520
+ }
1521
+
1522
+ to {
1523
+ opacity: 0;
1524
+ }
1525
+ }
1526
+
1527
+ .fadeOut {
1528
+ -webkit-animation-name: fadeOut;
1529
+ animation-name: fadeOut;
1530
+ }
1531
+
1532
+ @-webkit-keyframes fadeOutDown {
1533
+ from {
1534
+ opacity: 1;
1535
+ }
1536
+
1537
+ to {
1538
+ opacity: 0;
1539
+ -webkit-transform: translate3d(0, 100%, 0);
1540
+ transform: translate3d(0, 100%, 0);
1541
+ }
1542
+ }
1543
+
1544
+ @keyframes fadeOutDown {
1545
+ from {
1546
+ opacity: 1;
1547
+ }
1548
+
1549
+ to {
1550
+ opacity: 0;
1551
+ -webkit-transform: translate3d(0, 100%, 0);
1552
+ transform: translate3d(0, 100%, 0);
1553
+ }
1554
+ }
1555
+
1556
+ .fadeOutDown {
1557
+ -webkit-animation-name: fadeOutDown;
1558
+ animation-name: fadeOutDown;
1559
+ }
1560
+
1561
+ @-webkit-keyframes fadeOutDownBig {
1562
+ from {
1563
+ opacity: 1;
1564
+ }
1565
+
1566
+ to {
1567
+ opacity: 0;
1568
+ -webkit-transform: translate3d(0, 2000px, 0);
1569
+ transform: translate3d(0, 2000px, 0);
1570
+ }
1571
+ }
1572
+
1573
+ @keyframes fadeOutDownBig {
1574
+ from {
1575
+ opacity: 1;
1576
+ }
1577
+
1578
+ to {
1579
+ opacity: 0;
1580
+ -webkit-transform: translate3d(0, 2000px, 0);
1581
+ transform: translate3d(0, 2000px, 0);
1582
+ }
1583
+ }
1584
+
1585
+ .fadeOutDownBig {
1586
+ -webkit-animation-name: fadeOutDownBig;
1587
+ animation-name: fadeOutDownBig;
1588
+ }
1589
+
1590
+ @-webkit-keyframes fadeOutLeft {
1591
+ from {
1592
+ opacity: 1;
1593
+ }
1594
+
1595
+ to {
1596
+ opacity: 0;
1597
+ -webkit-transform: translate3d(-100%, 0, 0);
1598
+ transform: translate3d(-100%, 0, 0);
1599
+ }
1600
+ }
1601
+
1602
+ @keyframes fadeOutLeft {
1603
+ from {
1604
+ opacity: 1;
1605
+ }
1606
+
1607
+ to {
1608
+ opacity: 0;
1609
+ -webkit-transform: translate3d(-100%, 0, 0);
1610
+ transform: translate3d(-100%, 0, 0);
1611
+ }
1612
+ }
1613
+
1614
+ .fadeOutLeft {
1615
+ -webkit-animation-name: fadeOutLeft;
1616
+ animation-name: fadeOutLeft;
1617
+ }
1618
+
1619
+ @-webkit-keyframes fadeOutLeftBig {
1620
+ from {
1621
+ opacity: 1;
1622
+ }
1623
+
1624
+ to {
1625
+ opacity: 0;
1626
+ -webkit-transform: translate3d(-2000px, 0, 0);
1627
+ transform: translate3d(-2000px, 0, 0);
1628
+ }
1629
+ }
1630
+
1631
+ @keyframes fadeOutLeftBig {
1632
+ from {
1633
+ opacity: 1;
1634
+ }
1635
+
1636
+ to {
1637
+ opacity: 0;
1638
+ -webkit-transform: translate3d(-2000px, 0, 0);
1639
+ transform: translate3d(-2000px, 0, 0);
1640
+ }
1641
+ }
1642
+
1643
+ .fadeOutLeftBig {
1644
+ -webkit-animation-name: fadeOutLeftBig;
1645
+ animation-name: fadeOutLeftBig;
1646
+ }
1647
+
1648
+ @-webkit-keyframes fadeOutRight {
1649
+ from {
1650
+ opacity: 1;
1651
+ }
1652
+
1653
+ to {
1654
+ opacity: 0;
1655
+ -webkit-transform: translate3d(100%, 0, 0);
1656
+ transform: translate3d(100%, 0, 0);
1657
+ }
1658
+ }
1659
+
1660
+ @keyframes fadeOutRight {
1661
+ from {
1662
+ opacity: 1;
1663
+ }
1664
+
1665
+ to {
1666
+ opacity: 0;
1667
+ -webkit-transform: translate3d(100%, 0, 0);
1668
+ transform: translate3d(100%, 0, 0);
1669
+ }
1670
+ }
1671
+
1672
+ .fadeOutRight {
1673
+ -webkit-animation-name: fadeOutRight;
1674
+ animation-name: fadeOutRight;
1675
+ }
1676
+
1677
+ @-webkit-keyframes fadeOutRightBig {
1678
+ from {
1679
+ opacity: 1;
1680
+ }
1681
+
1682
+ to {
1683
+ opacity: 0;
1684
+ -webkit-transform: translate3d(2000px, 0, 0);
1685
+ transform: translate3d(2000px, 0, 0);
1686
+ }
1687
+ }
1688
+
1689
+ @keyframes fadeOutRightBig {
1690
+ from {
1691
+ opacity: 1;
1692
+ }
1693
+
1694
+ to {
1695
+ opacity: 0;
1696
+ -webkit-transform: translate3d(2000px, 0, 0);
1697
+ transform: translate3d(2000px, 0, 0);
1698
+ }
1699
+ }
1700
+
1701
+ .fadeOutRightBig {
1702
+ -webkit-animation-name: fadeOutRightBig;
1703
+ animation-name: fadeOutRightBig;
1704
+ }
1705
+
1706
+ @-webkit-keyframes fadeOutUp {
1707
+ from {
1708
+ opacity: 1;
1709
+ }
1710
+
1711
+ to {
1712
+ opacity: 0;
1713
+ -webkit-transform: translate3d(0, -100%, 0);
1714
+ transform: translate3d(0, -100%, 0);
1715
+ }
1716
+ }
1717
+
1718
+ @keyframes fadeOutUp {
1719
+ from {
1720
+ opacity: 1;
1721
+ }
1722
+
1723
+ to {
1724
+ opacity: 0;
1725
+ -webkit-transform: translate3d(0, -100%, 0);
1726
+ transform: translate3d(0, -100%, 0);
1727
+ }
1728
+ }
1729
+
1730
+ .fadeOutUp {
1731
+ -webkit-animation-name: fadeOutUp;
1732
+ animation-name: fadeOutUp;
1733
+ }
1734
+
1735
+ @-webkit-keyframes fadeOutUpBig {
1736
+ from {
1737
+ opacity: 1;
1738
+ }
1739
+
1740
+ to {
1741
+ opacity: 0;
1742
+ -webkit-transform: translate3d(0, -2000px, 0);
1743
+ transform: translate3d(0, -2000px, 0);
1744
+ }
1745
+ }
1746
+
1747
+ @keyframes fadeOutUpBig {
1748
+ from {
1749
+ opacity: 1;
1750
+ }
1751
+
1752
+ to {
1753
+ opacity: 0;
1754
+ -webkit-transform: translate3d(0, -2000px, 0);
1755
+ transform: translate3d(0, -2000px, 0);
1756
+ }
1757
+ }
1758
+
1759
+ .fadeOutUpBig {
1760
+ -webkit-animation-name: fadeOutUpBig;
1761
+ animation-name: fadeOutUpBig;
1762
+ }
1763
+
1764
+ @-webkit-keyframes flip {
1765
+ from {
1766
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1767
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1768
+ -webkit-animation-timing-function: ease-out;
1769
+ animation-timing-function: ease-out;
1770
+ }
1771
+
1772
+ 40% {
1773
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1774
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1775
+ -webkit-animation-timing-function: ease-out;
1776
+ animation-timing-function: ease-out;
1777
+ }
1778
+
1779
+ 50% {
1780
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1781
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1782
+ -webkit-animation-timing-function: ease-in;
1783
+ animation-timing-function: ease-in;
1784
+ }
1785
+
1786
+ 80% {
1787
+ -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1788
+ transform: perspective(400px) scale3d(.95, .95, .95);
1789
+ -webkit-animation-timing-function: ease-in;
1790
+ animation-timing-function: ease-in;
1791
+ }
1792
+
1793
+ to {
1794
+ -webkit-transform: perspective(400px);
1795
+ transform: perspective(400px);
1796
+ -webkit-animation-timing-function: ease-in;
1797
+ animation-timing-function: ease-in;
1798
+ }
1799
+ }
1800
+
1801
+ @keyframes flip {
1802
+ from {
1803
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1804
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1805
+ -webkit-animation-timing-function: ease-out;
1806
+ animation-timing-function: ease-out;
1807
+ }
1808
+
1809
+ 40% {
1810
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1811
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1812
+ -webkit-animation-timing-function: ease-out;
1813
+ animation-timing-function: ease-out;
1814
+ }
1815
+
1816
+ 50% {
1817
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1818
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1819
+ -webkit-animation-timing-function: ease-in;
1820
+ animation-timing-function: ease-in;
1821
+ }
1822
+
1823
+ 80% {
1824
+ -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1825
+ transform: perspective(400px) scale3d(.95, .95, .95);
1826
+ -webkit-animation-timing-function: ease-in;
1827
+ animation-timing-function: ease-in;
1828
+ }
1829
+
1830
+ to {
1831
+ -webkit-transform: perspective(400px);
1832
+ transform: perspective(400px);
1833
+ -webkit-animation-timing-function: ease-in;
1834
+ animation-timing-function: ease-in;
1835
+ }
1836
+ }
1837
+
1838
+ .animated.flip {
1839
+ -webkit-backface-visibility: visible;
1840
+ backface-visibility: visible;
1841
+ -webkit-animation-name: flip;
1842
+ animation-name: flip;
1843
+ }
1844
+
1845
+ @-webkit-keyframes flipInX {
1846
+ from {
1847
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1848
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1849
+ -webkit-animation-timing-function: ease-in;
1850
+ animation-timing-function: ease-in;
1851
+ opacity: 0;
1852
+ }
1853
+
1854
+ 40% {
1855
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1856
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1857
+ -webkit-animation-timing-function: ease-in;
1858
+ animation-timing-function: ease-in;
1859
+ }
1860
+
1861
+ 60% {
1862
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1863
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1864
+ opacity: 1;
1865
+ }
1866
+
1867
+ 80% {
1868
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1869
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1870
+ }
1871
+
1872
+ to {
1873
+ -webkit-transform: perspective(400px);
1874
+ transform: perspective(400px);
1875
+ }
1876
+ }
1877
+
1878
+ @keyframes flipInX {
1879
+ from {
1880
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1881
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1882
+ -webkit-animation-timing-function: ease-in;
1883
+ animation-timing-function: ease-in;
1884
+ opacity: 0;
1885
+ }
1886
+
1887
+ 40% {
1888
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1889
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1890
+ -webkit-animation-timing-function: ease-in;
1891
+ animation-timing-function: ease-in;
1892
+ }
1893
+
1894
+ 60% {
1895
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1896
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1897
+ opacity: 1;
1898
+ }
1899
+
1900
+ 80% {
1901
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1902
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1903
+ }
1904
+
1905
+ to {
1906
+ -webkit-transform: perspective(400px);
1907
+ transform: perspective(400px);
1908
+ }
1909
+ }
1910
+
1911
+ .flipInX {
1912
+ -webkit-backface-visibility: visible !important;
1913
+ backface-visibility: visible !important;
1914
+ -webkit-animation-name: flipInX;
1915
+ animation-name: flipInX;
1916
+ }
1917
+
1918
+ @-webkit-keyframes flipInY {
1919
+ from {
1920
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1921
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1922
+ -webkit-animation-timing-function: ease-in;
1923
+ animation-timing-function: ease-in;
1924
+ opacity: 0;
1925
+ }
1926
+
1927
+ 40% {
1928
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1929
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1930
+ -webkit-animation-timing-function: ease-in;
1931
+ animation-timing-function: ease-in;
1932
+ }
1933
+
1934
+ 60% {
1935
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1936
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1937
+ opacity: 1;
1938
+ }
1939
+
1940
+ 80% {
1941
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1942
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1943
+ }
1944
+
1945
+ to {
1946
+ -webkit-transform: perspective(400px);
1947
+ transform: perspective(400px);
1948
+ }
1949
+ }
1950
+
1951
+ @keyframes flipInY {
1952
+ from {
1953
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1954
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1955
+ -webkit-animation-timing-function: ease-in;
1956
+ animation-timing-function: ease-in;
1957
+ opacity: 0;
1958
+ }
1959
+
1960
+ 40% {
1961
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1962
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1963
+ -webkit-animation-timing-function: ease-in;
1964
+ animation-timing-function: ease-in;
1965
+ }
1966
+
1967
+ 60% {
1968
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1969
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1970
+ opacity: 1;
1971
+ }
1972
+
1973
+ 80% {
1974
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1975
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1976
+ }
1977
+
1978
+ to {
1979
+ -webkit-transform: perspective(400px);
1980
+ transform: perspective(400px);
1981
+ }
1982
+ }
1983
+
1984
+ .flipInY {
1985
+ -webkit-backface-visibility: visible !important;
1986
+ backface-visibility: visible !important;
1987
+ -webkit-animation-name: flipInY;
1988
+ animation-name: flipInY;
1989
+ }
1990
+
1991
+ @-webkit-keyframes flipOutX {
1992
+ from {
1993
+ -webkit-transform: perspective(400px);
1994
+ transform: perspective(400px);
1995
+ }
1996
+
1997
+ 30% {
1998
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1999
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2000
+ opacity: 1;
2001
+ }
2002
+
2003
+ to {
2004
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2005
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2006
+ opacity: 0;
2007
+ }
2008
+ }
2009
+
2010
+ @keyframes flipOutX {
2011
+ from {
2012
+ -webkit-transform: perspective(400px);
2013
+ transform: perspective(400px);
2014
+ }
2015
+
2016
+ 30% {
2017
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2018
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2019
+ opacity: 1;
2020
+ }
2021
+
2022
+ to {
2023
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2024
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2025
+ opacity: 0;
2026
+ }
2027
+ }
2028
+
2029
+ .flipOutX {
2030
+ -webkit-animation-name: flipOutX;
2031
+ animation-name: flipOutX;
2032
+ -webkit-backface-visibility: visible !important;
2033
+ backface-visibility: visible !important;
2034
+ }
2035
+
2036
+ @-webkit-keyframes flipOutY {
2037
+ from {
2038
+ -webkit-transform: perspective(400px);
2039
+ transform: perspective(400px);
2040
+ }
2041
+
2042
+ 30% {
2043
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2044
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2045
+ opacity: 1;
2046
+ }
2047
+
2048
+ to {
2049
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2050
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2051
+ opacity: 0;
2052
+ }
2053
+ }
2054
+
2055
+ @keyframes flipOutY {
2056
+ from {
2057
+ -webkit-transform: perspective(400px);
2058
+ transform: perspective(400px);
2059
+ }
2060
+
2061
+ 30% {
2062
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2063
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2064
+ opacity: 1;
2065
+ }
2066
+
2067
+ to {
2068
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2069
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2070
+ opacity: 0;
2071
+ }
2072
+ }
2073
+
2074
+ .flipOutY {
2075
+ -webkit-backface-visibility: visible !important;
2076
+ backface-visibility: visible !important;
2077
+ -webkit-animation-name: flipOutY;
2078
+ animation-name: flipOutY;
2079
+ }
2080
+
2081
+ @-webkit-keyframes lightSpeedIn {
2082
+ from {
2083
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
2084
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
2085
+ opacity: 0;
2086
+ }
2087
+
2088
+ 60% {
2089
+ -webkit-transform: skewX(20deg);
2090
+ transform: skewX(20deg);
2091
+ opacity: 1;
2092
+ }
2093
+
2094
+ 80% {
2095
+ -webkit-transform: skewX(-5deg);
2096
+ transform: skewX(-5deg);
2097
+ opacity: 1;
2098
+ }
2099
+
2100
+ to {
2101
+ -webkit-transform: none;
2102
+ transform: none;
2103
+ opacity: 1;
2104
+ }
2105
+ }
2106
+
2107
+ @keyframes lightSpeedIn {
2108
+ from {
2109
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
2110
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
2111
+ opacity: 0;
2112
+ }
2113
+
2114
+ 60% {
2115
+ -webkit-transform: skewX(20deg);
2116
+ transform: skewX(20deg);
2117
+ opacity: 1;
2118
+ }
2119
+
2120
+ 80% {
2121
+ -webkit-transform: skewX(-5deg);
2122
+ transform: skewX(-5deg);
2123
+ opacity: 1;
2124
+ }
2125
+
2126
+ to {
2127
+ -webkit-transform: none;
2128
+ transform: none;
2129
+ opacity: 1;
2130
+ }
2131
+ }
2132
+
2133
+ .lightSpeedIn {
2134
+ -webkit-animation-name: lightSpeedIn;
2135
+ animation-name: lightSpeedIn;
2136
+ -webkit-animation-timing-function: ease-out;
2137
+ animation-timing-function: ease-out;
2138
+ }
2139
+
2140
+ @-webkit-keyframes lightSpeedOut {
2141
+ from {
2142
+ opacity: 1;
2143
+ }
2144
+
2145
+ to {
2146
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
2147
+ transform: translate3d(100%, 0, 0) skewX(30deg);
2148
+ opacity: 0;
2149
+ }
2150
+ }
2151
+
2152
+ @keyframes lightSpeedOut {
2153
+ from {
2154
+ opacity: 1;
2155
+ }
2156
+
2157
+ to {
2158
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
2159
+ transform: translate3d(100%, 0, 0) skewX(30deg);
2160
+ opacity: 0;
2161
+ }
2162
+ }
2163
+
2164
+ .lightSpeedOut {
2165
+ -webkit-animation-name: lightSpeedOut;
2166
+ animation-name: lightSpeedOut;
2167
+ -webkit-animation-timing-function: ease-in;
2168
+ animation-timing-function: ease-in;
2169
+ }
2170
+
2171
+ @-webkit-keyframes rotateIn {
2172
+ from {
2173
+ -webkit-transform-origin: center;
2174
+ transform-origin: center;
2175
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
2176
+ transform: rotate3d(0, 0, 1, -200deg);
2177
+ opacity: 0;
2178
+ }
2179
+
2180
+ to {
2181
+ -webkit-transform-origin: center;
2182
+ transform-origin: center;
2183
+ -webkit-transform: none;
2184
+ transform: none;
2185
+ opacity: 1;
2186
+ }
2187
+ }
2188
+
2189
+ @keyframes rotateIn {
2190
+ from {
2191
+ -webkit-transform-origin: center;
2192
+ transform-origin: center;
2193
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
2194
+ transform: rotate3d(0, 0, 1, -200deg);
2195
+ opacity: 0;
2196
+ }
2197
+
2198
+ to {
2199
+ -webkit-transform-origin: center;
2200
+ transform-origin: center;
2201
+ -webkit-transform: none;
2202
+ transform: none;
2203
+ opacity: 1;
2204
+ }
2205
+ }
2206
+
2207
+ .rotateIn {
2208
+ -webkit-animation-name: rotateIn;
2209
+ animation-name: rotateIn;
2210
+ }
2211
+
2212
+ @-webkit-keyframes rotateInDownLeft {
2213
+ from {
2214
+ -webkit-transform-origin: left bottom;
2215
+ transform-origin: left bottom;
2216
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2217
+ transform: rotate3d(0, 0, 1, -45deg);
2218
+ opacity: 0;
2219
+ }
2220
+
2221
+ to {
2222
+ -webkit-transform-origin: left bottom;
2223
+ transform-origin: left bottom;
2224
+ -webkit-transform: none;
2225
+ transform: none;
2226
+ opacity: 1;
2227
+ }
2228
+ }
2229
+
2230
+ @keyframes rotateInDownLeft {
2231
+ from {
2232
+ -webkit-transform-origin: left bottom;
2233
+ transform-origin: left bottom;
2234
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2235
+ transform: rotate3d(0, 0, 1, -45deg);
2236
+ opacity: 0;
2237
+ }
2238
+
2239
+ to {
2240
+ -webkit-transform-origin: left bottom;
2241
+ transform-origin: left bottom;
2242
+ -webkit-transform: none;
2243
+ transform: none;
2244
+ opacity: 1;
2245
+ }
2246
+ }
2247
+
2248
+ .rotateInDownLeft {
2249
+ -webkit-animation-name: rotateInDownLeft;
2250
+ animation-name: rotateInDownLeft;
2251
+ }
2252
+
2253
+ @-webkit-keyframes rotateInDownRight {
2254
+ from {
2255
+ -webkit-transform-origin: right bottom;
2256
+ transform-origin: right bottom;
2257
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2258
+ transform: rotate3d(0, 0, 1, 45deg);
2259
+ opacity: 0;
2260
+ }
2261
+
2262
+ to {
2263
+ -webkit-transform-origin: right bottom;
2264
+ transform-origin: right bottom;
2265
+ -webkit-transform: none;
2266
+ transform: none;
2267
+ opacity: 1;
2268
+ }
2269
+ }
2270
+
2271
+ @keyframes rotateInDownRight {
2272
+ from {
2273
+ -webkit-transform-origin: right bottom;
2274
+ transform-origin: right bottom;
2275
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2276
+ transform: rotate3d(0, 0, 1, 45deg);
2277
+ opacity: 0;
2278
+ }
2279
+
2280
+ to {
2281
+ -webkit-transform-origin: right bottom;
2282
+ transform-origin: right bottom;
2283
+ -webkit-transform: none;
2284
+ transform: none;
2285
+ opacity: 1;
2286
+ }
2287
+ }
2288
+
2289
+ .rotateInDownRight {
2290
+ -webkit-animation-name: rotateInDownRight;
2291
+ animation-name: rotateInDownRight;
2292
+ }
2293
+
2294
+ @-webkit-keyframes rotateInUpLeft {
2295
+ from {
2296
+ -webkit-transform-origin: left bottom;
2297
+ transform-origin: left bottom;
2298
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2299
+ transform: rotate3d(0, 0, 1, 45deg);
2300
+ opacity: 0;
2301
+ }
2302
+
2303
+ to {
2304
+ -webkit-transform-origin: left bottom;
2305
+ transform-origin: left bottom;
2306
+ -webkit-transform: none;
2307
+ transform: none;
2308
+ opacity: 1;
2309
+ }
2310
+ }
2311
+
2312
+ @keyframes rotateInUpLeft {
2313
+ from {
2314
+ -webkit-transform-origin: left bottom;
2315
+ transform-origin: left bottom;
2316
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2317
+ transform: rotate3d(0, 0, 1, 45deg);
2318
+ opacity: 0;
2319
+ }
2320
+
2321
+ to {
2322
+ -webkit-transform-origin: left bottom;
2323
+ transform-origin: left bottom;
2324
+ -webkit-transform: none;
2325
+ transform: none;
2326
+ opacity: 1;
2327
+ }
2328
+ }
2329
+
2330
+ .rotateInUpLeft {
2331
+ -webkit-animation-name: rotateInUpLeft;
2332
+ animation-name: rotateInUpLeft;
2333
+ }
2334
+
2335
+ @-webkit-keyframes rotateInUpRight {
2336
+ from {
2337
+ -webkit-transform-origin: right bottom;
2338
+ transform-origin: right bottom;
2339
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
2340
+ transform: rotate3d(0, 0, 1, -90deg);
2341
+ opacity: 0;
2342
+ }
2343
+
2344
+ to {
2345
+ -webkit-transform-origin: right bottom;
2346
+ transform-origin: right bottom;
2347
+ -webkit-transform: none;
2348
+ transform: none;
2349
+ opacity: 1;
2350
+ }
2351
+ }
2352
+
2353
+ @keyframes rotateInUpRight {
2354
+ from {
2355
+ -webkit-transform-origin: right bottom;
2356
+ transform-origin: right bottom;
2357
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
2358
+ transform: rotate3d(0, 0, 1, -90deg);
2359
+ opacity: 0;
2360
+ }
2361
+
2362
+ to {
2363
+ -webkit-transform-origin: right bottom;
2364
+ transform-origin: right bottom;
2365
+ -webkit-transform: none;
2366
+ transform: none;
2367
+ opacity: 1;
2368
+ }
2369
+ }
2370
+
2371
+ .rotateInUpRight {
2372
+ -webkit-animation-name: rotateInUpRight;
2373
+ animation-name: rotateInUpRight;
2374
+ }
2375
+
2376
+ @-webkit-keyframes rotateOut {
2377
+ from {
2378
+ -webkit-transform-origin: center;
2379
+ transform-origin: center;
2380
+ opacity: 1;
2381
+ }
2382
+
2383
+ to {
2384
+ -webkit-transform-origin: center;
2385
+ transform-origin: center;
2386
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
2387
+ transform: rotate3d(0, 0, 1, 200deg);
2388
+ opacity: 0;
2389
+ }
2390
+ }
2391
+
2392
+ @keyframes rotateOut {
2393
+ from {
2394
+ -webkit-transform-origin: center;
2395
+ transform-origin: center;
2396
+ opacity: 1;
2397
+ }
2398
+
2399
+ to {
2400
+ -webkit-transform-origin: center;
2401
+ transform-origin: center;
2402
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
2403
+ transform: rotate3d(0, 0, 1, 200deg);
2404
+ opacity: 0;
2405
+ }
2406
+ }
2407
+
2408
+ .rotateOut {
2409
+ -webkit-animation-name: rotateOut;
2410
+ animation-name: rotateOut;
2411
+ }
2412
+
2413
+ @-webkit-keyframes rotateOutDownLeft {
2414
+ from {
2415
+ -webkit-transform-origin: left bottom;
2416
+ transform-origin: left bottom;
2417
+ opacity: 1;
2418
+ }
2419
+
2420
+ to {
2421
+ -webkit-transform-origin: left bottom;
2422
+ transform-origin: left bottom;
2423
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2424
+ transform: rotate3d(0, 0, 1, 45deg);
2425
+ opacity: 0;
2426
+ }
2427
+ }
2428
+
2429
+ @keyframes rotateOutDownLeft {
2430
+ from {
2431
+ -webkit-transform-origin: left bottom;
2432
+ transform-origin: left bottom;
2433
+ opacity: 1;
2434
+ }
2435
+
2436
+ to {
2437
+ -webkit-transform-origin: left bottom;
2438
+ transform-origin: left bottom;
2439
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2440
+ transform: rotate3d(0, 0, 1, 45deg);
2441
+ opacity: 0;
2442
+ }
2443
+ }
2444
+
2445
+ .rotateOutDownLeft {
2446
+ -webkit-animation-name: rotateOutDownLeft;
2447
+ animation-name: rotateOutDownLeft;
2448
+ }
2449
+
2450
+ @-webkit-keyframes rotateOutDownRight {
2451
+ from {
2452
+ -webkit-transform-origin: right bottom;
2453
+ transform-origin: right bottom;
2454
+ opacity: 1;
2455
+ }
2456
+
2457
+ to {
2458
+ -webkit-transform-origin: right bottom;
2459
+ transform-origin: right bottom;
2460
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2461
+ transform: rotate3d(0, 0, 1, -45deg);
2462
+ opacity: 0;
2463
+ }
2464
+ }
2465
+
2466
+ @keyframes rotateOutDownRight {
2467
+ from {
2468
+ -webkit-transform-origin: right bottom;
2469
+ transform-origin: right bottom;
2470
+ opacity: 1;
2471
+ }
2472
+
2473
+ to {
2474
+ -webkit-transform-origin: right bottom;
2475
+ transform-origin: right bottom;
2476
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2477
+ transform: rotate3d(0, 0, 1, -45deg);
2478
+ opacity: 0;
2479
+ }
2480
+ }
2481
+
2482
+ .rotateOutDownRight {
2483
+ -webkit-animation-name: rotateOutDownRight;
2484
+ animation-name: rotateOutDownRight;
2485
+ }
2486
+
2487
+ @-webkit-keyframes rotateOutUpLeft {
2488
+ from {
2489
+ -webkit-transform-origin: left bottom;
2490
+ transform-origin: left bottom;
2491
+ opacity: 1;
2492
+ }
2493
+
2494
+ to {
2495
+ -webkit-transform-origin: left bottom;
2496
+ transform-origin: left bottom;
2497
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2498
+ transform: rotate3d(0, 0, 1, -45deg);
2499
+ opacity: 0;
2500
+ }
2501
+ }
2502
+
2503
+ @keyframes rotateOutUpLeft {
2504
+ from {
2505
+ -webkit-transform-origin: left bottom;
2506
+ transform-origin: left bottom;
2507
+ opacity: 1;
2508
+ }
2509
+
2510
+ to {
2511
+ -webkit-transform-origin: left bottom;
2512
+ transform-origin: left bottom;
2513
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2514
+ transform: rotate3d(0, 0, 1, -45deg);
2515
+ opacity: 0;
2516
+ }
2517
+ }
2518
+
2519
+ .rotateOutUpLeft {
2520
+ -webkit-animation-name: rotateOutUpLeft;
2521
+ animation-name: rotateOutUpLeft;
2522
+ }
2523
+
2524
+ @-webkit-keyframes rotateOutUpRight {
2525
+ from {
2526
+ -webkit-transform-origin: right bottom;
2527
+ transform-origin: right bottom;
2528
+ opacity: 1;
2529
+ }
2530
+
2531
+ to {
2532
+ -webkit-transform-origin: right bottom;
2533
+ transform-origin: right bottom;
2534
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2535
+ transform: rotate3d(0, 0, 1, 90deg);
2536
+ opacity: 0;
2537
+ }
2538
+ }
2539
+
2540
+ @keyframes rotateOutUpRight {
2541
+ from {
2542
+ -webkit-transform-origin: right bottom;
2543
+ transform-origin: right bottom;
2544
+ opacity: 1;
2545
+ }
2546
+
2547
+ to {
2548
+ -webkit-transform-origin: right bottom;
2549
+ transform-origin: right bottom;
2550
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2551
+ transform: rotate3d(0, 0, 1, 90deg);
2552
+ opacity: 0;
2553
+ }
2554
+ }
2555
+
2556
+ .rotateOutUpRight {
2557
+ -webkit-animation-name: rotateOutUpRight;
2558
+ animation-name: rotateOutUpRight;
2559
+ }
2560
+
2561
+ @-webkit-keyframes hinge {
2562
+ 0% {
2563
+ -webkit-transform-origin: top left;
2564
+ transform-origin: top left;
2565
+ -webkit-animation-timing-function: ease-in-out;
2566
+ animation-timing-function: ease-in-out;
2567
+ }
2568
+
2569
+ 20%, 60% {
2570
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2571
+ transform: rotate3d(0, 0, 1, 80deg);
2572
+ -webkit-transform-origin: top left;
2573
+ transform-origin: top left;
2574
+ -webkit-animation-timing-function: ease-in-out;
2575
+ animation-timing-function: ease-in-out;
2576
+ }
2577
+
2578
+ 40%, 80% {
2579
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2580
+ transform: rotate3d(0, 0, 1, 60deg);
2581
+ -webkit-transform-origin: top left;
2582
+ transform-origin: top left;
2583
+ -webkit-animation-timing-function: ease-in-out;
2584
+ animation-timing-function: ease-in-out;
2585
+ opacity: 1;
2586
+ }
2587
+
2588
+ to {
2589
+ -webkit-transform: translate3d(0, 700px, 0);
2590
+ transform: translate3d(0, 700px, 0);
2591
+ opacity: 0;
2592
+ }
2593
+ }
2594
+
2595
+ @keyframes hinge {
2596
+ 0% {
2597
+ -webkit-transform-origin: top left;
2598
+ transform-origin: top left;
2599
+ -webkit-animation-timing-function: ease-in-out;
2600
+ animation-timing-function: ease-in-out;
2601
+ }
2602
+
2603
+ 20%, 60% {
2604
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2605
+ transform: rotate3d(0, 0, 1, 80deg);
2606
+ -webkit-transform-origin: top left;
2607
+ transform-origin: top left;
2608
+ -webkit-animation-timing-function: ease-in-out;
2609
+ animation-timing-function: ease-in-out;
2610
+ }
2611
+
2612
+ 40%, 80% {
2613
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2614
+ transform: rotate3d(0, 0, 1, 60deg);
2615
+ -webkit-transform-origin: top left;
2616
+ transform-origin: top left;
2617
+ -webkit-animation-timing-function: ease-in-out;
2618
+ animation-timing-function: ease-in-out;
2619
+ opacity: 1;
2620
+ }
2621
+
2622
+ to {
2623
+ -webkit-transform: translate3d(0, 700px, 0);
2624
+ transform: translate3d(0, 700px, 0);
2625
+ opacity: 0;
2626
+ }
2627
+ }
2628
+
2629
+ .hinge {
2630
+ -webkit-animation-name: hinge;
2631
+ animation-name: hinge;
2632
+ }
2633
+
2634
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
2635
+
2636
+ @-webkit-keyframes rollIn {
2637
+ from {
2638
+ opacity: 0;
2639
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2640
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2641
+ }
2642
+
2643
+ to {
2644
+ opacity: 1;
2645
+ -webkit-transform: none;
2646
+ transform: none;
2647
+ }
2648
+ }
2649
+
2650
+ @keyframes rollIn {
2651
+ from {
2652
+ opacity: 0;
2653
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2654
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2655
+ }
2656
+
2657
+ to {
2658
+ opacity: 1;
2659
+ -webkit-transform: none;
2660
+ transform: none;
2661
+ }
2662
+ }
2663
+
2664
+ .rollIn {
2665
+ -webkit-animation-name: rollIn;
2666
+ animation-name: rollIn;
2667
+ }
2668
+
2669
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
2670
+
2671
+ @-webkit-keyframes rollOut {
2672
+ from {
2673
+ opacity: 1;
2674
+ }
2675
+
2676
+ to {
2677
+ opacity: 0;
2678
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2679
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2680
+ }
2681
+ }
2682
+
2683
+ @keyframes rollOut {
2684
+ from {
2685
+ opacity: 1;
2686
+ }
2687
+
2688
+ to {
2689
+ opacity: 0;
2690
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2691
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2692
+ }
2693
+ }
2694
+
2695
+ .rollOut {
2696
+ -webkit-animation-name: rollOut;
2697
+ animation-name: rollOut;
2698
+ }
2699
+
2700
+ @-webkit-keyframes zoomIn {
2701
+ from {
2702
+ opacity: 0;
2703
+ -webkit-transform: scale3d(.3, .3, .3);
2704
+ transform: scale3d(.3, .3, .3);
2705
+ }
2706
+
2707
+ 50% {
2708
+ opacity: 1;
2709
+ }
2710
+ }
2711
+
2712
+ @keyframes zoomIn {
2713
+ from {
2714
+ opacity: 0;
2715
+ -webkit-transform: scale3d(.3, .3, .3);
2716
+ transform: scale3d(.3, .3, .3);
2717
+ }
2718
+
2719
+ 50% {
2720
+ opacity: 1;
2721
+ }
2722
+ }
2723
+
2724
+ .zoomIn {
2725
+ -webkit-animation-name: zoomIn;
2726
+ animation-name: zoomIn;
2727
+ }
2728
+
2729
+ @-webkit-keyframes zoomInDown {
2730
+ from {
2731
+ opacity: 0;
2732
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2733
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2734
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2735
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2736
+ }
2737
+
2738
+ 60% {
2739
+ opacity: 1;
2740
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2741
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2742
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2743
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2744
+ }
2745
+ }
2746
+
2747
+ @keyframes zoomInDown {
2748
+ from {
2749
+ opacity: 0;
2750
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2751
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2752
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2753
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2754
+ }
2755
+
2756
+ 60% {
2757
+ opacity: 1;
2758
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2759
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2760
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2761
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2762
+ }
2763
+ }
2764
+
2765
+ .zoomInDown {
2766
+ -webkit-animation-name: zoomInDown;
2767
+ animation-name: zoomInDown;
2768
+ }
2769
+
2770
+ @-webkit-keyframes zoomInLeft {
2771
+ from {
2772
+ opacity: 0;
2773
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2774
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2775
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2776
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2777
+ }
2778
+
2779
+ 60% {
2780
+ opacity: 1;
2781
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2782
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2783
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2784
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2785
+ }
2786
+ }
2787
+
2788
+ @keyframes zoomInLeft {
2789
+ from {
2790
+ opacity: 0;
2791
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2792
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2793
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2794
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2795
+ }
2796
+
2797
+ 60% {
2798
+ opacity: 1;
2799
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2800
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2801
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2802
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2803
+ }
2804
+ }
2805
+
2806
+ .zoomInLeft {
2807
+ -webkit-animation-name: zoomInLeft;
2808
+ animation-name: zoomInLeft;
2809
+ }
2810
+
2811
+ @-webkit-keyframes zoomInRight {
2812
+ from {
2813
+ opacity: 0;
2814
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2815
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2816
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2817
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2818
+ }
2819
+
2820
+ 60% {
2821
+ opacity: 1;
2822
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2823
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2824
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2825
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2826
+ }
2827
+ }
2828
+
2829
+ @keyframes zoomInRight {
2830
+ from {
2831
+ opacity: 0;
2832
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2833
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2834
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2835
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2836
+ }
2837
+
2838
+ 60% {
2839
+ opacity: 1;
2840
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2841
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2842
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2843
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2844
+ }
2845
+ }
2846
+
2847
+ .zoomInRight {
2848
+ -webkit-animation-name: zoomInRight;
2849
+ animation-name: zoomInRight;
2850
+ }
2851
+
2852
+ @-webkit-keyframes zoomInUp {
2853
+ from {
2854
+ opacity: 0;
2855
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2856
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2857
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2858
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2859
+ }
2860
+
2861
+ 60% {
2862
+ opacity: 1;
2863
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2864
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2865
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2866
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2867
+ }
2868
+ }
2869
+
2870
+ @keyframes zoomInUp {
2871
+ from {
2872
+ opacity: 0;
2873
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2874
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2875
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2876
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2877
+ }
2878
+
2879
+ 60% {
2880
+ opacity: 1;
2881
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2882
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2883
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2884
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2885
+ }
2886
+ }
2887
+
2888
+ .zoomInUp {
2889
+ -webkit-animation-name: zoomInUp;
2890
+ animation-name: zoomInUp;
2891
+ }
2892
+
2893
+ @-webkit-keyframes zoomOut {
2894
+ from {
2895
+ opacity: 1;
2896
+ }
2897
+
2898
+ 50% {
2899
+ opacity: 0;
2900
+ -webkit-transform: scale3d(.3, .3, .3);
2901
+ transform: scale3d(.3, .3, .3);
2902
+ }
2903
+
2904
+ to {
2905
+ opacity: 0;
2906
+ }
2907
+ }
2908
+
2909
+ @keyframes zoomOut {
2910
+ from {
2911
+ opacity: 1;
2912
+ }
2913
+
2914
+ 50% {
2915
+ opacity: 0;
2916
+ -webkit-transform: scale3d(.3, .3, .3);
2917
+ transform: scale3d(.3, .3, .3);
2918
+ }
2919
+
2920
+ to {
2921
+ opacity: 0;
2922
+ }
2923
+ }
2924
+
2925
+ .zoomOut {
2926
+ -webkit-animation-name: zoomOut;
2927
+ animation-name: zoomOut;
2928
+ }
2929
+
2930
+ @-webkit-keyframes zoomOutDown {
2931
+ 40% {
2932
+ opacity: 1;
2933
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2934
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2935
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2936
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2937
+ }
2938
+
2939
+ to {
2940
+ opacity: 0;
2941
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2942
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2943
+ -webkit-transform-origin: center bottom;
2944
+ transform-origin: center bottom;
2945
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2946
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2947
+ }
2948
+ }
2949
+
2950
+ @keyframes zoomOutDown {
2951
+ 40% {
2952
+ opacity: 1;
2953
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2954
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2955
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2956
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
2957
+ }
2958
+
2959
+ to {
2960
+ opacity: 0;
2961
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2962
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2963
+ -webkit-transform-origin: center bottom;
2964
+ transform-origin: center bottom;
2965
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2966
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
2967
+ }
2968
+ }
2969
+
2970
+ .zoomOutDown {
2971
+ -webkit-animation-name: zoomOutDown;
2972
+ animation-name: zoomOutDown;
2973
+ }
2974
+
2975
+ @-webkit-keyframes zoomOutLeft {
2976
+ 40% {
2977
+ opacity: 1;
2978
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2979
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2980
+ }
2981
+
2982
+ to {
2983
+ opacity: 0;
2984
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2985
+ transform: scale(.1) translate3d(-2000px, 0, 0);
2986
+ -webkit-transform-origin: left center;
2987
+ transform-origin: left center;
2988
+ }
2989
+ }
2990
+
2991
+ @keyframes zoomOutLeft {
2992
+ 40% {
2993
+ opacity: 1;
2994
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2995
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2996
+ }
2997
+
2998
+ to {
2999
+ opacity: 0;
3000
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
3001
+ transform: scale(.1) translate3d(-2000px, 0, 0);
3002
+ -webkit-transform-origin: left center;
3003
+ transform-origin: left center;
3004
+ }
3005
+ }
3006
+
3007
+ .zoomOutLeft {
3008
+ -webkit-animation-name: zoomOutLeft;
3009
+ animation-name: zoomOutLeft;
3010
+ }
3011
+
3012
+ @-webkit-keyframes zoomOutRight {
3013
+ 40% {
3014
+ opacity: 1;
3015
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
3016
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
3017
+ }
3018
+
3019
+ to {
3020
+ opacity: 0;
3021
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
3022
+ transform: scale(.1) translate3d(2000px, 0, 0);
3023
+ -webkit-transform-origin: right center;
3024
+ transform-origin: right center;
3025
+ }
3026
+ }
3027
+
3028
+ @keyframes zoomOutRight {
3029
+ 40% {
3030
+ opacity: 1;
3031
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
3032
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
3033
+ }
3034
+
3035
+ to {
3036
+ opacity: 0;
3037
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
3038
+ transform: scale(.1) translate3d(2000px, 0, 0);
3039
+ -webkit-transform-origin: right center;
3040
+ transform-origin: right center;
3041
+ }
3042
+ }
3043
+
3044
+ .zoomOutRight {
3045
+ -webkit-animation-name: zoomOutRight;
3046
+ animation-name: zoomOutRight;
3047
+ }
3048
+
3049
+ @-webkit-keyframes zoomOutUp {
3050
+ 40% {
3051
+ opacity: 1;
3052
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
3053
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
3054
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
3055
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
3056
+ }
3057
+
3058
+ to {
3059
+ opacity: 0;
3060
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
3061
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
3062
+ -webkit-transform-origin: center bottom;
3063
+ transform-origin: center bottom;
3064
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
3065
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
3066
+ }
3067
+ }
3068
+
3069
+ @keyframes zoomOutUp {
3070
+ 40% {
3071
+ opacity: 1;
3072
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
3073
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
3074
+ -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
3075
+ animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
3076
+ }
3077
+
3078
+ to {
3079
+ opacity: 0;
3080
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
3081
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
3082
+ -webkit-transform-origin: center bottom;
3083
+ transform-origin: center bottom;
3084
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
3085
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
3086
+ }
3087
+ }
3088
+
3089
+ .zoomOutUp {
3090
+ -webkit-animation-name: zoomOutUp;
3091
+ animation-name: zoomOutUp;
3092
+ }
3093
+
3094
+ @-webkit-keyframes slideInDown {
3095
+ from {
3096
+ -webkit-transform: translate3d(0, -100%, 0);
3097
+ transform: translate3d(0, -100%, 0);
3098
+ visibility: visible;
3099
+ }
3100
+
3101
+ to {
3102
+ -webkit-transform: translate3d(0, 0, 0);
3103
+ transform: translate3d(0, 0, 0);
3104
+ }
3105
+ }
3106
+
3107
+ @keyframes slideInDown {
3108
+ from {
3109
+ -webkit-transform: translate3d(0, -100%, 0);
3110
+ transform: translate3d(0, -100%, 0);
3111
+ visibility: visible;
3112
+ }
3113
+
3114
+ to {
3115
+ -webkit-transform: translate3d(0, 0, 0);
3116
+ transform: translate3d(0, 0, 0);
3117
+ }
3118
+ }
3119
+
3120
+ .slideInDown {
3121
+ -webkit-animation-name: slideInDown;
3122
+ animation-name: slideInDown;
3123
+ }
3124
+
3125
+ @-webkit-keyframes slideInLeft {
3126
+ from {
3127
+ -webkit-transform: translate3d(-100%, 0, 0);
3128
+ transform: translate3d(-100%, 0, 0);
3129
+ visibility: visible;
3130
+ }
3131
+
3132
+ to {
3133
+ -webkit-transform: translate3d(0, 0, 0);
3134
+ transform: translate3d(0, 0, 0);
3135
+ }
3136
+ }
3137
+
3138
+ @keyframes slideInLeft {
3139
+ from {
3140
+ -webkit-transform: translate3d(-100%, 0, 0);
3141
+ transform: translate3d(-100%, 0, 0);
3142
+ visibility: visible;
3143
+ }
3144
+
3145
+ to {
3146
+ -webkit-transform: translate3d(0, 0, 0);
3147
+ transform: translate3d(0, 0, 0);
3148
+ }
3149
+ }
3150
+
3151
+ .slideInLeft {
3152
+ -webkit-animation-name: slideInLeft;
3153
+ animation-name: slideInLeft;
3154
+ }
3155
+
3156
+ @-webkit-keyframes slideInRight {
3157
+ from {
3158
+ -webkit-transform: translate3d(100%, 0, 0);
3159
+ transform: translate3d(100%, 0, 0);
3160
+ visibility: visible;
3161
+ }
3162
+
3163
+ to {
3164
+ -webkit-transform: translate3d(0, 0, 0);
3165
+ transform: translate3d(0, 0, 0);
3166
+ }
3167
+ }
3168
+
3169
+ @keyframes slideInRight {
3170
+ from {
3171
+ -webkit-transform: translate3d(100%, 0, 0);
3172
+ transform: translate3d(100%, 0, 0);
3173
+ visibility: visible;
3174
+ }
3175
+
3176
+ to {
3177
+ -webkit-transform: translate3d(0, 0, 0);
3178
+ transform: translate3d(0, 0, 0);
3179
+ }
3180
+ }
3181
+
3182
+ .slideInRight {
3183
+ -webkit-animation-name: slideInRight;
3184
+ animation-name: slideInRight;
3185
+ }
3186
+
3187
+ @-webkit-keyframes slideInUp {
3188
+ from {
3189
+ -webkit-transform: translate3d(0, 100%, 0);
3190
+ transform: translate3d(0, 100%, 0);
3191
+ visibility: visible;
3192
+ }
3193
+
3194
+ to {
3195
+ -webkit-transform: translate3d(0, 0, 0);
3196
+ transform: translate3d(0, 0, 0);
3197
+ }
3198
+ }
3199
+
3200
+ @keyframes slideInUp {
3201
+ from {
3202
+ -webkit-transform: translate3d(0, 100%, 0);
3203
+ transform: translate3d(0, 100%, 0);
3204
+ visibility: visible;
3205
+ }
3206
+
3207
+ to {
3208
+ -webkit-transform: translate3d(0, 0, 0);
3209
+ transform: translate3d(0, 0, 0);
3210
+ }
3211
+ }
3212
+
3213
+ .slideInUp {
3214
+ -webkit-animation-name: slideInUp;
3215
+ animation-name: slideInUp;
3216
+ }
3217
+
3218
+ @-webkit-keyframes slideOutDown {
3219
+ from {
3220
+ -webkit-transform: translate3d(0, 0, 0);
3221
+ transform: translate3d(0, 0, 0);
3222
+ }
3223
+
3224
+ to {
3225
+ visibility: hidden;
3226
+ -webkit-transform: translate3d(0, 100%, 0);
3227
+ transform: translate3d(0, 100%, 0);
3228
+ }
3229
+ }
3230
+
3231
+ @keyframes slideOutDown {
3232
+ from {
3233
+ -webkit-transform: translate3d(0, 0, 0);
3234
+ transform: translate3d(0, 0, 0);
3235
+ }
3236
+
3237
+ to {
3238
+ visibility: hidden;
3239
+ -webkit-transform: translate3d(0, 100%, 0);
3240
+ transform: translate3d(0, 100%, 0);
3241
+ }
3242
+ }
3243
+
3244
+ .slideOutDown {
3245
+ -webkit-animation-name: slideOutDown;
3246
+ animation-name: slideOutDown;
3247
+ }
3248
+
3249
+ @-webkit-keyframes slideOutLeft {
3250
+ from {
3251
+ -webkit-transform: translate3d(0, 0, 0);
3252
+ transform: translate3d(0, 0, 0);
3253
+ }
3254
+
3255
+ to {
3256
+ visibility: hidden;
3257
+ -webkit-transform: translate3d(-100%, 0, 0);
3258
+ transform: translate3d(-100%, 0, 0);
3259
+ }
3260
+ }
3261
+
3262
+ @keyframes slideOutLeft {
3263
+ from {
3264
+ -webkit-transform: translate3d(0, 0, 0);
3265
+ transform: translate3d(0, 0, 0);
3266
+ }
3267
+
3268
+ to {
3269
+ visibility: hidden;
3270
+ -webkit-transform: translate3d(-100%, 0, 0);
3271
+ transform: translate3d(-100%, 0, 0);
3272
+ }
3273
+ }
3274
+
3275
+ .slideOutLeft {
3276
+ -webkit-animation-name: slideOutLeft;
3277
+ animation-name: slideOutLeft;
3278
+ }
3279
+
3280
+ @-webkit-keyframes slideOutRight {
3281
+ from {
3282
+ -webkit-transform: translate3d(0, 0, 0);
3283
+ transform: translate3d(0, 0, 0);
3284
+ }
3285
+
3286
+ to {
3287
+ visibility: hidden;
3288
+ -webkit-transform: translate3d(100%, 0, 0);
3289
+ transform: translate3d(100%, 0, 0);
3290
+ }
3291
+ }
3292
+
3293
+ @keyframes slideOutRight {
3294
+ from {
3295
+ -webkit-transform: translate3d(0, 0, 0);
3296
+ transform: translate3d(0, 0, 0);
3297
+ }
3298
+
3299
+ to {
3300
+ visibility: hidden;
3301
+ -webkit-transform: translate3d(100%, 0, 0);
3302
+ transform: translate3d(100%, 0, 0);
3303
+ }
3304
+ }
3305
+
3306
+ .slideOutRight {
3307
+ -webkit-animation-name: slideOutRight;
3308
+ animation-name: slideOutRight;
3309
+ }
3310
+
3311
+ @-webkit-keyframes slideOutUp {
3312
+ from {
3313
+ -webkit-transform: translate3d(0, 0, 0);
3314
+ transform: translate3d(0, 0, 0);
3315
+ }
3316
+
3317
+ to {
3318
+ visibility: hidden;
3319
+ -webkit-transform: translate3d(0, -100%, 0);
3320
+ transform: translate3d(0, -100%, 0);
3321
+ }
3322
+ }
3323
+
3324
+ @keyframes slideOutUp {
3325
+ from {
3326
+ -webkit-transform: translate3d(0, 0, 0);
3327
+ transform: translate3d(0, 0, 0);
3328
+ }
3329
+
3330
+ to {
3331
+ visibility: hidden;
3332
+ -webkit-transform: translate3d(0, -100%, 0);
3333
+ transform: translate3d(0, -100%, 0);
3334
+ }
3335
+ }
3336
+
3337
+ .slideOutUp {
3338
+ -webkit-animation-name: slideOutUp;
3339
+ animation-name: slideOutUp;
3340
+ }
3341
+ /*# sourceMappingURL=data:application/json;base64,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bUNBQW1DO0dBQ3BDO0NBQ0Y7O0FBRUQ7RUFDRSxzQ0FBc0M7RUFDdEMsOEJBQThCO0NBQy9COztBQUVEO0VBQ0U7SUFDRSx3Q0FBd0M7SUFDeEMsZ0NBQWdDO0dBQ2pDOztFQUVEO0lBQ0UsbUJBQW1CO0lBQ25CLDRDQUE0QztJQUM1QyxvQ0FBb0M7R0FDckM7Q0FDRjs7QUFFRDtFQUNFO0lBQ0Usd0NBQXdDO0lBQ3hDLGdDQUFnQztHQUNqQzs7RUFFRDtJQUNFLG1CQUFtQjtJQUNuQiw0Q0FBNEM7SUFDNUMsb0NBQW9DO0dBQ3JDO0NBQ0Y7O0FBRUQ7RUFDRSxtQ0FBbUM7RUFDbkMsMkJBQTJCO0NBQzVCIiwiZmlsZSI6ImFuaW1hdGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiFcbiAqIGFuaW1hdGUuY3NzIC1odHRwOi8vZGFuZWRlbi5tZS9hbmltYXRlXG4gKiBWZXJzaW9uIC0gMy41LjFcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSAtIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgRGFuaWVsIEVkZW5cbiAqL1xuXG4uYW5pbWF0ZWQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLmFuaW1hdGVkLmluZmluaXRlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG59XG5cbi5hbmltYXRlZC5oaW5nZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbn1cblxuLmFuaW1hdGVkLmZsaXBPdXRYLFxuLmFuaW1hdGVkLmZsaXBPdXRZLFxuLmFuaW1hdGVkLmJvdW5jZUluLFxuLmFuaW1hdGVkLmJvdW5jZU91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xuICBhbmltYXRpb24tZHVyYXRpb246IC43NXM7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2Uge1xuICBmcm9tLCAyMCUsIDUzJSwgODAlLCB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgfVxuXG4gIDQwJSwgNDMlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwcHgsIDApO1xuICB9XG5cbiAgNzAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgZnJvbSwgMjAlLCA1MyUsIDgwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gIH1cblxuICA0MCUsIDQzJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgfVxufVxuXG4uYm91bmNlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGFzaCB7XG4gIGZyb20sIDUwJSwgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAyNSUsIDc1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsYXNoIHtcbiAgZnJvbSwgNTAlLCB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDI1JSwgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mbGFzaCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xuICBhbmltYXRpb24tbmFtZTogZmxhc2g7XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ucHVsc2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcnViYmVyQmFuZCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuXG4gIDY1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBydWJiZXJCYW5kIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICB9XG5cbiAgNjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAuOTUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAuOTUsIDEpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ucnViYmVyQmFuZCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJ1YmJlckJhbmQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBydWJiZXJCYW5kO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2Uge1xuICBmcm9tLCB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDIwJSwgNDAlLCA2MCUsIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzaGFrZSB7XG4gIGZyb20sIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwJSwgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgMjAlLCA0MCUsIDYwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uc2hha2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgaGVhZFNoYWtlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gIDYuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTtcbiAgfVxuXG4gIDE4LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKTtcbiAgfVxuXG4gIDMxLjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyk7XG4gIH1cblxuICA0My41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSByb3RhdGVZKDNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGhlYWRTaGFrZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICA2LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyk7XG4gIH1cblxuICAxOC41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7XG4gIH1cblxuICAzMS41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO1xuICB9XG5cbiAgNDMuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSByb3RhdGVZKDNkZWcpO1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuLmhlYWRTaGFrZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBoZWFkU2hha2U7XG4gIGFuaW1hdGlvbi1uYW1lOiBoZWFkU2hha2U7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzd2luZyB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTBkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHN3aW5nIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICB9XG59XG5cbi5zd2luZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc3dpbmc7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHRhZGEge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAxMCUsIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQwJSwgNjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHRhZGEge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAxMCUsIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQwJSwgNjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4udGFkYSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHRhZGE7XG4gIGFuaW1hdGlvbi1uYW1lOiB0YWRhO1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHdvYmJsZSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHdvYmJsZSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ud29iYmxlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd29iYmxlO1xuICBhbmltYXRpb24tbmFtZTogd29iYmxlO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgamVsbG8ge1xuICBmcm9tLCAxMS4xJSwgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIDIyLjIlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7XG4gIH1cblxuICAzMy4zJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7XG4gIH1cblxuICA0NC40JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTtcbiAgfVxuXG4gIDU1LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICB9XG5cbiAgNjYuNiUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgfVxuXG4gIDc3LjclIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gIH1cblxuICA4OC44JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBqZWxsbyB7XG4gIGZyb20sIDExLjElLCB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgMjIuMiUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgfVxuXG4gIDMzLjMlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcbiAgfVxuXG4gIDQ0LjQlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuICB9XG5cbiAgNTUuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7XG4gIH1cblxuICA2Ni42JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO1xuICB9XG5cbiAgNzcuNyUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgwLjM5MDYyNWRlZykgc2tld1koMC4zOTA2MjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTtcbiAgfVxuXG4gIDg4LjglIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKTtcbiAgfVxufVxuXG4uamVsbG8ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBqZWxsbztcbiAgYW5pbWF0aW9uLW5hbWU6IGplbGxvO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW4ge1xuICBmcm9tLCAyMCUsIDQwJSwgNjAlLCA4MCUsIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbiB7XG4gIGZyb20sIDIwJSwgNDAlLCA2MCUsIDgwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4uYm91bmNlSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5Eb3duIHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwMDBweCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5Eb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkxlZnQge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMzAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJblJpZ2h0IHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5SaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5VcCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDMwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluVXAge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZUluVXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblVwO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG5cbiAgNTAlLCA1NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0IHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gIH1cblxuICA1MCUsIDU1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cbn1cblxuLmJvdW5jZU91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0RG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXREb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0TGVmdCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0TGVmdCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0UmlnaHQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0UmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0VXAge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gIH1cblxuICA0MCUsIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0VXAge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gIH1cblxuICA0MCUsIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRVcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFVwO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0VXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmZhZGVJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5Eb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd25CaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5Eb3duQmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bkJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd25CaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluTGVmdEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluTGVmdEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0QmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5SaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluUmlnaHRCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluVXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluVXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluVXBCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluVXBCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZhZGVPdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXREb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXREb3duQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXREb3duQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dERvd25CaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bkJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRMZWZ0QmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRSaWdodEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRVcEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRVcEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFVwQmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFVwQmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LCAuOTUsIC45NSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE3MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsIC45NSwgLjk1KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cbn1cblxuLmFuaW1hdGVkLmZsaXAge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluWCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG59XG5cbi5mbGlwSW5YIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcEluWDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5ZIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwSW5ZIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuLmZsaXBJblkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwSW5ZO1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBPdXRYIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRYIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uZmxpcE91dFgge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFkge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcE91dFkge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mbGlwT3V0WSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRZO1xuICBhbmltYXRpb24tbmFtZTogZmxpcE91dFk7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkSW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkSW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbjtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRPdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0O1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dDtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbiB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5Eb3duTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93bkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluRG93bkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbkRvd25SaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93blJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluVXBMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5VcExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBSaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAyMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAyMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dERvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dERvd25MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dERvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dERvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93blJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBMZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXRVcExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0VXBMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0VXBSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgaGluZ2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgMjAlLCA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgNDAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaGluZ2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgMjAlLCA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgNDAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5oaW5nZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGhpbmdlO1xuICBhbmltYXRpb24tbmFtZTogaGluZ2U7XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbEluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5yb2xsSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb2xsSW47XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsSW47XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAxMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgfVxufVxuXG4ucm9sbE91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsT3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uem9vbUluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluO1xuICBhbmltYXRpb24tbmFtZTogem9vbUluO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluRG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5Eb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JbkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5SaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogem9vbUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21JblVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluVXA7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5VcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnpvb21PdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tT3V0O1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXREb3duIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0RG93biB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tT3V0RG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXREb3duO1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0TGVmdCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0TGVmdCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0TGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgfVxufVxuXG4uem9vbU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dFVwIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0VXAge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbU91dFVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dFVwO1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dFVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJbkRvd24ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluRG93biB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJbkRvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5Eb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJbkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJbkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5SaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5SaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5VcCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluVXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluVXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dERvd24ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dERvd24ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gIH1cbn1cblxuLnNsaWRlT3V0RG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXRMZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlT3V0TGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0TGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0TGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0UmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0UmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dFVwIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dFVwIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cblxuLnNsaWRlT3V0VXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwO1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRVcDtcbn1cbiJdfQ== */
assets/css/flexslider.css ADDED
@@ -0,0 +1,225 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery FlexSlider v2.6.0
3
+ * http://www.woothemes.com/flexslider/
4
+ *
5
+ * Copyright 2012 WooThemes
6
+ * Free to use under the GPLv2 and later license.
7
+ * http://www.gnu.org/licenses/gpl-2.0.html
8
+ *
9
+ * Contributing author: Tyler Smith (@mbmufffin)
10
+ *
11
+ */
12
+
13
+ /* ====================================================================================================================
14
+ * RESETS
15
+ * ====================================================================================================================*/
16
+ .lvca-flex-container a:hover,
17
+ .lvca-flex-slider a:hover {
18
+ outline: none;
19
+ }
20
+ .lvca-slides,
21
+ .lvca-slides > li,
22
+ .lvca-flex-control-nav,
23
+ .lvca-flex-direction-nav {
24
+ margin: 0;
25
+ padding: 0;
26
+ list-style: none;
27
+ }
28
+ .lvca-flex-pauseplay span {
29
+ text-transform: capitalize;
30
+ }
31
+ /* ====================================================================================================================
32
+ * BASE STYLES
33
+ * ====================================================================================================================*/
34
+ .lvca-flexslider {
35
+ margin: 0;
36
+ padding: 0;
37
+ }
38
+ .lvca-flexslider .lvca-slides > li {
39
+ display: none;
40
+ -webkit-backface-visibility: hidden;
41
+ }
42
+ .lvca-flexslider .lvca-slides img {
43
+ width: 100%;
44
+ display: block;
45
+ }
46
+ html[xmlns] .lvca-flexslider .lvca-slides {
47
+ display: block;
48
+ }
49
+ * html .lvca-flexslider .lvca-slides {
50
+ height: 1%;
51
+ }
52
+ .no-js .lvca-flexslider .lvca-slides > li:first-child {
53
+ display: block;
54
+ }
55
+ /* ====================================================================================================================
56
+ * DEFAULT THEME
57
+ * ====================================================================================================================*/
58
+ .lvca-flexslider {
59
+ margin: 0;
60
+ position: relative;
61
+ zoom: 1;
62
+ }
63
+ .lvca-flexslider .lvca-slides {
64
+ zoom: 1;
65
+ overflow: hidden;
66
+ }
67
+ .lvca-flexslider .lvca-slides img {
68
+ height: auto;
69
+ -moz-user-select: none;
70
+ }
71
+ .lvca-flex-viewport {
72
+ max-height: 2000px;
73
+ -webkit-transition: all 1s ease;
74
+ transition: all 1s ease;
75
+ }
76
+ .loading .lvca-flex-viewport {
77
+ max-height: 300px;
78
+ }
79
+ .carousel li {
80
+ margin-right: 5px;
81
+ }
82
+ .lvca-flex-direction-nav {
83
+ *height: 0;
84
+ }
85
+ .lvca-flex-direction-nav a {
86
+ text-decoration: none;
87
+ display: block;
88
+ width: 40px;
89
+ height: 40px;
90
+ margin: -20px 0 0;
91
+ position: absolute;
92
+ top: 50%;
93
+ z-index: 10;
94
+ overflow: hidden;
95
+ opacity: 0;
96
+ cursor: pointer;
97
+ color: rgba(0, 0, 0, 0.8);
98
+ text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
99
+ -webkit-transition: all 0.3s ease-in-out;
100
+ transition: all 0.3s ease-in-out;
101
+ }
102
+ a.lvca-flex-prev {
103
+ /* font-family: "flexslider-icon"; */
104
+ font-size: 40px;
105
+ /* display: inline-block; */
106
+ /* content: '\f001'; */
107
+ color: rgba(0, 0, 0, 0.8);
108
+ text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
109
+ }
110
+ .lvca-flex-direction-nav a.lvca-flex-next:before {
111
+ content: '\f002';
112
+ }
113
+ .lvca-flex-direction-nav .lvca-flex-prev {
114
+ left: -50px;
115
+ }
116
+ .lvca-flex-direction-nav .lvca-flex-next {
117
+ right: -50px;
118
+ text-align: right;
119
+ }
120
+ .lvca-flex-direction-nav .lvca-flex-disabled {
121
+ opacity: 0!important;
122
+ filter: alpha(opacity=0);
123
+ cursor: default;
124
+ z-index: -1;
125
+ }
126
+ .lvca-flex-pauseplay a {
127
+ display: block;
128
+ width: 20px;
129
+ height: 20px;
130
+ position: absolute;
131
+ bottom: 5px;
132
+ left: 10px;
133
+ opacity: 0.8;
134
+ z-index: 10;
135
+ overflow: hidden;
136
+ cursor: pointer;
137
+ color: #000;
138
+ }
139
+ .lvca-flex-pauseplay a:before {
140
+ font-family: "flexslider-icon";
141
+ font-size: 20px;
142
+ display: inline-block;
143
+ content: '\f004';
144
+ }
145
+ .lvca-flex-pauseplay a:hover {
146
+ opacity: 1;
147
+ }
148
+ .lvca-flex-pauseplay a.lvca-flex-play:before {
149
+ content: '\f003';
150
+ }
151
+ .lvca-flex-control-nav {
152
+ width: 100%;
153
+ position: absolute;
154
+ bottom: -40px;
155
+ text-align: center;
156
+ }
157
+ .lvca-flex-control-nav li {
158
+ margin: 0 6px;
159
+ display: inline-block;
160
+ zoom: 1;
161
+ *display: inline;
162
+ }
163
+ .lvca-flex-control-paging li a {
164
+ width: 11px;
165
+ height: 11px;
166
+ display: block;
167
+ background: #666;
168
+ background: rgba(0, 0, 0, 0.5);
169
+ cursor: pointer;
170
+ text-indent: -9999px;
171
+ -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
172
+ -o-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
173
+ box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
174
+ border-radius: 20px;
175
+ }
176
+ .lvca-flex-control-paging li a:hover {
177
+ background: #333;
178
+ background: rgba(0, 0, 0, 0.7);
179
+ }
180
+ .lvca-flex-control-paging li a.lvca-flex-active {
181
+ background: #000;
182
+ background: rgba(0, 0, 0, 0.9);
183
+ cursor: default;
184
+ }
185
+ .lvca-flex-control-thumbs {
186
+ margin: 5px 0 0;
187
+ position: static;
188
+ overflow: hidden;
189
+ }
190
+ .lvca-flex-control-thumbs li {
191
+ width: 25%;
192
+ float: left;
193
+ margin: 0;
194
+ }
195
+ .lvca-flex-control-thumbs img {
196
+ width: 100%;
197
+ height: auto;
198
+ display: block;
199
+ opacity: .7;
200
+ cursor: pointer;
201
+ -moz-user-select: none;
202
+ -webkit-transition: all 1s ease;
203
+ transition: all 1s ease;
204
+ }
205
+ .lvca-flex-control-thumbs img:hover {
206
+ opacity: 1;
207
+ }
208
+ .lvca-flex-control-thumbs .lvca-flex-active {
209
+ opacity: 1;
210
+ cursor: default;
211
+ }
212
+ /* ====================================================================================================================
213
+ * RESPONSIVE
214
+ * ====================================================================================================================*/
215
+ @media screen and (max-width: 860px) {
216
+ .lvca-flex-direction-nav .lvca-flex-prev {
217
+ opacity: 1;
218
+ left: 10px;
219
+ }
220
+ .lvca-flex-direction-nav .lvca-flex-next {
221
+ opacity: 1;
222
+ right: 10px;
223
+ }
224
+ }
225
+ /*# sourceMappingURL=data:application/json;base64,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Q0UsV0FBVztFQUNYLGdCQUFnQjtDQUNqQjtBQUNEOzt5SEFFeUg7QUFDekg7RUFDRTtJQUNFLFdBQVc7SUFDWCxXQUFXO0dBQ1o7RUFDRDtJQUNFLFdBQVc7SUFDWCxZQUFZO0dBQ2I7Q0FDRiIsImZpbGUiOiJmbGV4c2xpZGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBqUXVlcnkgRmxleFNsaWRlciB2Mi42LjBcbiAqIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9mbGV4c2xpZGVyL1xuICpcbiAqIENvcHlyaWdodCAyMDEyIFdvb1RoZW1lc1xuICogRnJlZSB0byB1c2UgdW5kZXIgdGhlIEdQTHYyIGFuZCBsYXRlciBsaWNlbnNlLlxuICogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbFxuICpcbiAqIENvbnRyaWJ1dGluZyBhdXRob3I6IFR5bGVyIFNtaXRoIChAbWJtdWZmZmluKVxuICpcbiAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogUkVTRVRTXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG4ubHZjYS1mbGV4LWNvbnRhaW5lciBhOmhvdmVyLFxuLmx2Y2EtZmxleC1zbGlkZXIgYTpob3ZlciB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ubHZjYS1zbGlkZXMsXG4ubHZjYS1zbGlkZXMgPiBsaSxcbi5sdmNhLWZsZXgtY29udHJvbC1uYXYsXG4ubHZjYS1mbGV4LWRpcmVjdGlvbi1uYXYge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ubHZjYS1mbGV4LXBhdXNlcGxheSBzcGFuIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQkFTRSBTVFlMRVNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbi5sdmNhLWZsZXhzbGlkZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4ubHZjYS1mbGV4c2xpZGVyIC5sdmNhLXNsaWRlcyA+IGxpIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4ubHZjYS1mbGV4c2xpZGVyIC5sdmNhLXNsaWRlcyBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5odG1sW3htbG5zXSAubHZjYS1mbGV4c2xpZGVyIC5sdmNhLXNsaWRlcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuKiBodG1sIC5sdmNhLWZsZXhzbGlkZXIgLmx2Y2Etc2xpZGVzIHtcbiAgaGVpZ2h0OiAxJTtcbn1cbi5uby1qcyAubHZjYS1mbGV4c2xpZGVyIC5sdmNhLXNsaWRlcyA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogREVGQVVMVCBUSEVNRVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuLmx2Y2EtZmxleHNsaWRlciB7XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6b29tOiAxO1xufVxuLmx2Y2EtZmxleHNsaWRlciAubHZjYS1zbGlkZXMge1xuICB6b29tOiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmx2Y2EtZmxleHNsaWRlciAubHZjYS1zbGlkZXMgaW1nIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xufVxuLmx2Y2EtZmxleC12aWV3cG9ydCB7XG4gIG1heC1oZWlnaHQ6IDIwMDBweDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG59XG4ubG9hZGluZyAubHZjYS1mbGV4LXZpZXdwb3J0IHtcbiAgbWF4LWhlaWdodDogMzAwcHg7XG59XG4uY2Fyb3VzZWwgbGkge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5sdmNhLWZsZXgtZGlyZWN0aW9uLW5hdiB7XG4gICpoZWlnaHQ6IDA7XG59XG4ubHZjYS1mbGV4LWRpcmVjdGlvbi1uYXYgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbjogLTIwcHggMCAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB6LWluZGV4OiAxMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG59XG5hLmx2Y2EtZmxleC1wcmV2IHtcbiAgLyogZm9udC1mYW1pbHk6IFwiZmxleHNsaWRlci1pY29uXCI7ICovXG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgLyogZGlzcGxheTogaW5saW5lLWJsb2NrOyAqL1xuICAvKiBjb250ZW50OiAnXFxmMDAxJzsgKi9cbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4ubHZjYS1mbGV4LWRpcmVjdGlvbi1uYXYgYS5sdmNhLWZsZXgtbmV4dDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDAyJztcbn1cbi5sdmNhLWZsZXgtZGlyZWN0aW9uLW5hdiAubHZjYS1mbGV4LXByZXYge1xuICBsZWZ0OiAtNTBweDtcbn1cbi5sdmNhLWZsZXgtZGlyZWN0aW9uLW5hdiAubHZjYS1mbGV4LW5leHQge1xuICByaWdodDogLTUwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmx2Y2EtZmxleC1kaXJlY3Rpb24tbmF2IC5sdmNhLWZsZXgtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwIWltcG9ydGFudDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHotaW5kZXg6IC0xO1xufVxuLmx2Y2EtZmxleC1wYXVzZXBsYXkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNXB4O1xuICBsZWZ0OiAxMHB4O1xuICBvcGFjaXR5OiAwLjg7XG4gIHotaW5kZXg6IDEwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmx2Y2EtZmxleC1wYXVzZXBsYXkgYTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJmbGV4c2xpZGVyLWljb25cIjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbnRlbnQ6ICdcXGYwMDQnO1xufVxuLmx2Y2EtZmxleC1wYXVzZXBsYXkgYTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4ubHZjYS1mbGV4LXBhdXNlcGxheSBhLmx2Y2EtZmxleC1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDMnO1xufVxuLmx2Y2EtZmxleC1jb250cm9sLW5hdiB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTQwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5sdmNhLWZsZXgtY29udHJvbC1uYXYgbGkge1xuICBtYXJnaW46IDAgNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHpvb206IDE7XG4gICpkaXNwbGF5OiBpbmxpbmU7XG59XG4ubHZjYS1mbGV4LWNvbnRyb2wtcGFnaW5nIGxpIGEge1xuICB3aWR0aDogMTFweDtcbiAgaGVpZ2h0OiAxMXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogIzY2NjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAtby1ib3gtc2hhZG93OiBpbnNldCAwIDAgM3B4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMjBweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xufVxuLmx2Y2EtZmxleC1jb250cm9sLXBhZ2luZyBsaSBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuLmx2Y2EtZmxleC1jb250cm9sLXBhZ2luZyBsaSBhLmx2Y2EtZmxleC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5sdmNhLWZsZXgtY29udHJvbC10aHVtYnMge1xuICBtYXJnaW46IDVweCAwIDA7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubHZjYS1mbGV4LWNvbnRyb2wtdGh1bWJzIGxpIHtcbiAgd2lkdGg6IDI1JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMDtcbn1cbi5sdmNhLWZsZXgtY29udHJvbC10aHVtYnMgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IC43O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAxcyBlYXNlO1xufVxuLmx2Y2EtZmxleC1jb250cm9sLXRodW1icyBpbWc6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmx2Y2EtZmxleC1jb250cm9sLXRodW1icyAubHZjYS1mbGV4LWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBSRVNQT05TSVZFXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NjBweCkge1xuICAubHZjYS1mbGV4LWRpcmVjdGlvbi1uYXYgLmx2Y2EtZmxleC1wcmV2IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cbiAgLmx2Y2EtZmxleC1kaXJlY3Rpb24tbmF2IC5sdmNhLWZsZXgtbmV4dCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICByaWdodDogMTBweDtcbiAgfVxufVxuIl19 */
assets/css/fonts/icomoon/icomoon.eot ADDED
Binary file
assets/css/fonts/icomoon/icomoon.svg ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="icomoon" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" glyph-name="arrow-left" d="M592 672c-12.512 0-23.776-4.896-32.352-12.736l-0.096 0.16-192-176.032c-9.888-9.12-15.552-21.952-15.552-35.424 0-13.44 5.664-26.24 15.552-35.328l192-176 0.096 0.128c8.576-7.904 19.84-12.768 32.352-12.768 26.496 0 48 21.504 48 48 0 14.016-6.080 26.496-15.648 35.264l0.096 0.064-153.408 140.64 153.408 140.64-0.096 0.16c9.568 8.704 15.648 21.216 15.648 35.232 0 26.496-21.504 48-48 48zM512 960c-282.752 0-512-229.28-512-512.032 0-282.72 229.248-511.968 512-511.968s512 229.248 512 511.968c0 282.752-229.248 512.032-512 512.032zM512 32c-229.376 0-416 186.624-416 415.968 0 229.376 186.624 416.032 416 416.032s416-186.656 416-416.064c0-229.312-186.624-415.936-416-415.936z" />
11
+ <glyph unicode="&#xe901;" glyph-name="arrow-right" d="M464.448 659.392l-0.096-0.16c-8.576 7.84-19.84 12.768-32.352 12.768-26.496 0-48-21.504-48-48 0-14.016 6.080-26.496 15.648-35.264l-0.096-0.16 153.408-140.64-153.312-140.704c-9.568-8.736-15.648-21.248-15.648-35.232 0-26.496 21.504-48 48-48 12.512 0 23.776 4.864 32.352 12.736l0.096-0.128 192 176c9.888 9.088 15.552 21.92 15.552 35.36 0 13.504-5.664 26.304-15.552 35.392l-192 176.032zM512 960c-282.752 0-512-229.28-512-512.032 0-282.72 229.248-511.968 512-511.968s512 229.248 512 511.968c0 282.752-229.248 512.032-512 512.032zM512 32c-229.376 0-416 186.624-416 415.968 0 229.376 186.624 416.032 416 416.032s416-186.656 416-416.064c0-229.312-186.624-415.936-416-415.936z" />
12
+ <glyph unicode="&#xe902;" glyph-name="icon-aim" d="M865.472 104.341c-55.723 144.341-230.571 247.552-238.677 252.245-14.549 7.787-28.011 18.581-35.307 24.875-0.384 9.579 1.408 13.504 2.069 14.080 0 0 0.939 0.576 3.776 0.576 6.187 0 13.461-2.709 17.259-4.373 18.965-7.083 46.187-8.533 65.707-8.533 5.717 0 9.515 0.128 9.6 0.128 100.907 0.043 163.755 61.675 166.379 64.299 6.528 6.549 8.128 16.491 3.968 24.747l-40.512 80.085c-2.603 5.163-7.211 9.045-12.757 10.752s-11.52 1.088-16.576-1.707c-51.179-28.203-95.893-43.157-129.301-43.157-29.909 0-41.387 11.755-43.627 14.464-7.744 15.424-28.373 55.829-28.373 55.829-0.789 1.536-1.749 3.008-2.88 4.288-12.885 14.912-30.571 22.784-51.115 22.784-26.837 0-50.005-13.419-52.096-14.699-102.997-58.283-103.275-223.744-103.168-229.163-12.011-172.992-198.72-222.613-206.677-224.661-9.451-2.411-16.085-10.923-16.085-20.672 0-4.629 0-13.248 46.677-120.341 3.435-7.872 11.2-12.8 19.541-12.8 1.301 0 2.581 0.085 3.883 0.341 159.189 29.248 268.864 166.208 302.635 213.717 162.411-82.496 207.616-185.003 208.043-185.963 2.539-6.080 7.765-10.667 14.144-12.416 6.4-1.621 13.205-0.384 18.475 3.627l88.043 66.965c7.531 5.76 10.389 15.808 6.955 24.683zM764.459 61.76c-24.768 40.427-89.856 124.245-232.704 192.299-9.771 4.629-21.504 1.259-27.264-7.915-1.088-1.707-106.816-167.659-268.523-206.869-12.011 27.84-23.744 56-30.592 73.621 56.725 20.672 205.547 90.581 217.067 257.621-0.021 1.451 0.107 147.243 81.963 193.621 4.245 2.453 18.048 8.917 30.699 8.917 7.275 0 12.843-2.048 17.323-6.421 4.885-9.621 21.781-42.709 28.416-55.829 2.133-3.584 22.635-35.115 80.256-35.115 36.501 0 80.277 12.843 130.347 38.165l23.061-45.632c-20.011-14.997-64.704-42.219-125.589-42.219-0.192 0-3.499-0.128-8.619-0.128-21.973 0-40.981 2.176-49.195 5.163-1.685 0.789-16.939 7.744-33.771 7.744-18.624 0-29.781-8.213-35.84-15.125-11.029-12.501-14.827-30.549-11.669-55.168 0.597-4.843 2.88-9.301 6.379-12.672 0.96-0.917 23.552-22.464 49.792-36.459 1.621-0.96 156.885-92.587 213.504-215.787l-55.040-41.813zM621.611 622.912c77.099 0 139.861 62.699 139.861 139.84 0 77.077-62.741 139.84-139.861 139.84s-139.819-62.741-139.819-139.84c0-77.12 62.699-139.84 139.819-139.84zM621.611 859.925c53.611 0 97.195-43.584 97.195-97.173s-43.584-97.173-97.195-97.173c-53.589 0-97.152 43.584-97.152 97.173s43.563 97.173 97.152 97.173z" />
13
+ <glyph unicode="&#xe903;" glyph-name="icon-behance" d="M168.661 484.16h152.811c47.787 0 71.019 28.8 71.019 88 0 62.933-39.851 79.552-60.907 79.552h-162.923c-11.797 0-21.333-9.557-21.333-21.333v-124.885c0-11.776 9.557-21.333 21.333-21.333zM189.995 609.067h141.589c0.192 0 18.24-0.427 18.24-36.885 0-45.333-13.12-45.333-28.352-45.333h-131.477v82.219zM468.459 478.976c23.552 19.499 42.837 51.605 42.837 101.867 0 103.509-70.549 170.368-179.712 170.368h-291.243c-11.776 0-21.333-9.557-21.333-21.333v-559.701c0-11.776 9.557-21.312 21.333-21.312h290.56c0.235 0 2.432-0.043 2.645-0.043 0 0 0 0 0.021 0 13.227 0 59.883 1.813 104.896 24.853 42.091 21.568 92.245 67.115 92.203 160.491 0.192 3.243 3.947 80.149-40.235 126.848-6.656 7.083-13.995 13.077-21.973 17.963zM488.043 335.381c0-58.624-23.211-100.245-69.013-123.712-37.483-19.179-77.781-20.16-85.461-20.16h-0.021l-1.963 0.021h-269.909v517.035h269.909c85.824 0 137.045-47.744 137.045-127.701 0-77.099-59.093-84.672-65.643-85.248-11.456-0.853-20.16-10.603-19.755-22.059 0.448-11.477 9.856-20.544 21.333-20.544 23.36 0 41.259-6.912 54.763-21.141 31.552-33.237 28.779-94.741 28.715-96.491zM331.584 440.555h-162.923c-11.797 0-21.333-9.557-21.333-21.333v-149.611c0-11.776 9.536-21.333 21.333-21.333l155.179 0.021c55.979 1.259 88.085 35.52 88.085 94.037 0 77.696-52.501 98.219-80.341 98.219zM322.944 290.965h-132.949v106.944h141.547c6.293-0.128 37.717-3.328 37.717-55.552 0-44.245-22.293-50.859-46.315-51.392zM789.461 547.2c-83.093 0-114.581-68.459-119.616-104.64-0.853-6.123 0.981-12.288 5.035-16.96 4.032-4.651 9.899-7.339 16.085-7.339h183.851c11.691 0 21.163 9.387 21.333 21.056 0.021 1.92 0.256 47.552-30.891 79.104-18.837 19.115-44.352 28.779-75.797 28.779zM719.765 460.928c9.216 19.499 28.864 43.605 69.696 43.605 19.797 0 34.581-5.184 45.248-15.872 8.192-8.213 12.821-18.624 15.424-27.733h-130.368zM1003.221 362.155c0.661 5.013 15.317 124.075-53.333 202.283-37.739 42.965-92.437 64.747-162.624 64.747-122.091 0-180.117-64.875-207.317-119.317-28.779-57.621-29.056-114.688-28.992-115.733-0.32-4.693-6.443-115.712 64.235-190.997 41.109-43.755 98.923-65.963 170.688-65.963h0.171c0 0 3.243-0.192 8.939-0.192 99.179 0 205.163 44.736 205.163 170.304 0 11.776-9.536 21.333-21.333 21.333h-98.517c-5.717 0-11.179-2.475-15.211-6.549-4.011-4.053-6.208-9.749-6.123-15.467 0.021-0.576 0.107-14.016-10.176-24.448-10.752-10.944-29.547-15.701-56.747-13.781-34.56 2.389-71.211 10.752-77.675 75.157h267.712c10.709 0.043 19.755 8 21.141 18.624zM962.112 386.24h-270.080c-11.776 0-21.333-9.557-21.333-21.333 0-130.837 89.088-137.024 118.379-139.072 41.749-2.944 71.040 6.443 90.944 27.264 10.368 10.859 15.787 22.805 18.603 32.853h57.493c-5.397-40.043-26.795-68.48-64.939-86.592-37.568-17.813-79.765-19.733-96.213-19.733-3.904 0-6.229 0.107-7.701 0.149-60.693 0-108.032 17.6-140.779 52.331-58.048 61.611-53.013 158.4-52.928 160.619 0.043 7.915 2.859 193.749 193.707 193.749 57.28 0 101.141-16.832 130.432-50.069 41.621-47.232 45.312-117.12 44.416-150.165zM666.88 647.424h230.891c11.776 0 21.333 9.536 21.333 21.333v68.907c0 11.797-9.557 21.333-21.333 21.333h-230.891c-11.797 0-21.333-9.536-21.333-21.333v-68.907c0-11.797 9.536-21.333 21.333-21.333zM688.213 716.331h188.224v-26.24h-188.224v26.24z" />
14
+ <glyph unicode="&#xe904;" glyph-name="icon-dribbble" d="M804.715 756.992l-19.456 18.432-0.661-1.109c-76.672 64.235-172.331 99.669-272.597 99.669-54.464 0-107.456-10.795-158.059-31.125l-0.555 0.576-13.504-5.952c-125.419-55.531-216.96-168.469-244.843-302.187l-3.456-16.597 0.811-0.384c-3.904-23.317-6.4-46.848-6.4-70.315 0-124.736 53.909-241.323 148.309-322.517l-0.192-0.448 12.843-10.219c76.245-60.715 167.915-92.8 265.045-92.8 51.285 0 101.909 9.429 150.955 28.096l13.461 5.227v0.363c139.968 56.747 236.011 181.419 256.704 332.565l1.131-0.405 2.133 27.648c0.832 10.752 1.621 21.525 1.621 32.469 0 117.824-47.339 227.563-133.291 309.013zM889.749 448v-2.155c-42.667 14.549-98.411 21.888-150.464 21.888-45.205 0-89.493-5.632-133.376-16.683-8.491 22.677-16.939 44.821-26.624 66.24l1.408 0.619-0.469 1.003c86.4 43.221 157.675 107.691 210.816 188.395 65.664-70.976 98.709-162.091 98.709-259.307zM762.069 737.451c-49.472-77.675-118.187-139.499-200.491-180.501-46.229 92.032-105.152 176.768-175.616 252.523 40.597 14.272 82.816 21.845 126.037 21.845 92.331 0 180.309-33.451 250.069-93.867zM343.787 792.256c72.299-75.349 132.459-160.32 179.157-252.949-59.328-23.637-121.877-35.627-186.219-35.627-68.011 0-133.867 13.333-196.075 39.616 27.776 108.224 102.272 199.595 203.136 248.96zM128.661 448c0 17.493 1.664 35.029 4.075 52.459 64.896-26.176 133.376-39.467 204.011-39.467s139.2 13.461 204.288 39.701c9.088-20.053 17.643-40.747 25.664-61.973-136.683-46.144-249.003-143.787-313.749-272.789-79.232 72.661-124.288 173.973-124.288 282.069zM286.741 138.133c59.093 123.541 164.949 217.216 294.464 260.629 33.621-101.291 51.456-206.677 52.992-313.707-39.872-13.525-80.917-20.352-122.219-20.352-81.813-0.021-159.36 25.323-225.237 73.429zM675.755 101.675c-3.008 105.216-21.035 208.725-53.931 308.48 89.003 21.781 182.677 18.901 269.888-8.149-15.637-133.803-96.299-245.653-215.957-300.331z" />
15
+ <glyph unicode="&#xe905;" glyph-name="icon-facebook" d="M766.101 908.203l-139.947-0.064c0 0-2.859 0.213-7.957 0.213-28.715 0-173.909-7.979-213.44-163.691-0.619-1.728-13.888-40.704-14.123-131.371h-132.757c-11.776 0-21.333-9.536-21.333-21.333v-122.304c0-11.776 9.557-21.333 21.333-21.333h145.195v-439.339c0-11.776 9.557-21.333 21.333-21.333h166.251c11.797 0 21.333 9.557 21.333 21.333v438.891h145.664c11.797 0 21.333 9.536 21.333 21.333v122.752c0 11.797-9.536 21.333-21.333 21.333h-145.344v52.523c0 34.965 22.187 72.32 84.48 72.32h69.312c11.776 0 21.333 9.557 21.333 21.333v127.403c0 11.776-9.557 21.333-21.333 21.333zM744.768 780.8h-47.979c-87.829 0-127.147-57.749-127.147-114.987v-73.856c0-11.776 9.536-21.333 21.333-21.333h145.344v-80.085h-145.664c-11.776 0-21.333-9.557-21.333-21.333v-438.891h-123.584v439.339c0 11.797-9.536 21.333-21.333 21.333h-145.195v79.637h132.928c5.739 0 11.2 2.304 15.232 6.421 4.011 4.075 6.208 9.621 6.101 15.36-1.92 97.024 11.435 137.877 12.053 139.947 31.488 123.755 140.096 133.355 172.651 133.355 2.965 0 4.757-0.107 6.485-0.149h120.085v-84.757z" />
16
+ <glyph unicode="&#xe906;" glyph-name="icon-flickr" d="M358.379 588.523c-76.928 0-139.52-63.040-139.52-140.523 0-77.525 62.592-140.565 139.52-140.565s139.52 63.040 139.52 140.565c0 77.483-62.592 140.523-139.52 140.523zM358.379 350.101c-53.419 0-96.853 43.925-96.853 97.899 0 53.952 43.435 97.856 96.853 97.856 53.397 0 96.853-43.904 96.853-97.856 0-53.973-43.456-97.899-96.853-97.899zM673.536 588.523c-76.928 0-139.52-63.040-139.52-140.523 0-77.525 62.592-140.565 139.52-140.565 76.907 0 139.499 63.040 139.499 140.565 0 77.483-62.571 140.523-139.499 140.523zM673.536 350.101c-53.419 0-96.853 43.925-96.853 97.899 0 53.952 43.435 97.856 96.853 97.856 53.397 0 96.832-43.904 96.832-97.856 0-53.973-43.435-97.899-96.832-97.899zM515.968 906.603c-255.168 0-462.741-205.739-462.741-458.624s207.573-458.581 462.741-458.581c250.795 0 454.827 205.717 454.827 458.581 0 252.907-204.053 458.624-454.827 458.624zM515.968 32.064c-231.616 0-420.075 186.581-420.075 415.915 0 229.355 188.459 415.957 420.075 415.957 227.264 0 412.16-186.603 412.16-415.957 0-229.333-184.896-415.915-412.16-415.915z" />
17
+ <glyph unicode="&#xe907;" glyph-name="icon-googleplus" d="M498.581 564.864c8 12.053 13.227 24.725 15.808 39.189 1.173 10.816 1.771 20.181 1.771 27.883 0 33.173-8.491 66.859-25.173 99.947-8.555 17.451-20.117 31.957-35.029 43.563-15.467 11.136-33.344 17.109-53.056 17.728-0.405 0.021-0.789 0.021-1.195 0-26.816-0.619-49.387-11.52-67.115-32.384-0.469-0.576-0.939-1.173-1.344-1.792-13.995-20.544-20.8-43.733-20.203-68.416 0-30.912 8.981-63.189 26.859-96.213 9.195-16.299 21.141-30.272 35.541-41.536 16.085-12.608 34.667-19.029 56.085-19.029h0.085c25.515 0.96 47.211 10.347 64.427 27.947 0.939 0.939 1.792 1.984 2.539 3.115zM472.192 610.155c-1.195-6.613-3.904-13.333-8.043-19.968-9.195-8.725-20.331-13.227-33.344-13.739-11.029 0-20.501 3.243-29.035 9.941-9.963 7.808-18.261 17.515-24.491 28.587-14.293 26.389-21.547 51.84-21.547 76.075-0.384 15.936 3.605 29.995 12.16 42.944 9.429 10.773 20.373 16.021 34.261 16.469 11.008-0.448 20.437-3.605 28.224-9.216 9.237-7.189 16.512-16.427 22.4-28.395 13.739-27.285 20.715-54.528 20.715-80.96 0-6.293-0.533-14.037-1.301-21.739zM462.827 320.256c-2.944 2.069-6.336 3.328-9.92 3.733-5.483 0.576-11.883 0.875-19.221 0.896-5.525 0.448-15.637 0.107-35.413-1.749-17.472-2.475-35.648-6.549-55.531-12.544-4.245-1.621-10.219-4.053-18.475-7.552-8.896-4.096-18.048-9.92-27.84-17.899-9.301-8.235-17.195-18.389-23.083-29.547-7.723-13.419-11.648-29.355-11.648-47.403 0-35.285 15.872-64.533 46.741-86.613 27.84-20.949 65.515-31.872 112.597-32.448 42.496 0.576 76.011 10.603 99.733 29.845 24.448 20.053 36.885 46.251 36.885 77.824 0 25.6-8.491 48.235-25.984 68.053-15.083 15.488-37.611 33.6-68.843 55.403zM493.803 152.064c-16-12.992-40.661-19.819-72.768-20.245-37.248 0.448-66.496 8.469-87.339 24.171-20.011 14.293-29.333 30.891-29.333 52.203 0 10.453 2.005 19.221 6.315 26.731 3.883 7.317 8.597 13.461 13.333 17.685 6.293 5.099 12.373 9.024 17.472 11.371 7.083 3.008 12.587 5.248 14.976 6.251 16.341 4.885 32.427 8.448 46.741 10.517 11.733 1.088 20.117 1.643 25.173 1.643l1.579-0.021c4.629-0.619 9.237-0.192 13.141-0.405 26.219-18.539 45.696-34.261 57.301-46.080 9.813-11.157 14.592-23.936 14.592-39.061 0.021-18.667-6.741-32.917-21.184-44.757zM581.781 407.168l-35.904 29.269c-4.971 4.971-10.048 10.709-15.893 18.005-2.005 2.24-4.672 6.165-4.672 14.315 0 7.36 1.835 13.269 6.421 19.627 4.885 7.509 10.176 14.229 14.379 18.709 11.755 10.24 22.827 20.309 34.027 30.976 9.877 10.389 19.307 21.845 28.075 34.155 19.243 27.157 29.376 63.083 30.080 107.093l0.021 7.147c0.085 16.683 0.128 25.877-5.44 44.288-6.891 18.88-13.483 33.877-23.040 45.163h13.696c6.656 0 12.907 3.115 16.939 8.384l54.293 71.040c4.928 6.464 5.781 15.147 2.197 22.421-3.627 7.232-11.029 11.84-19.157 11.84h-220.757c-30.528 0-63.616-3.584-99.008-10.795-36.928-8.597-72.789-27.093-107.84-56.043-49.792-48.149-75.051-102.933-75.051-162.859 0-50.368 18.261-94.997 53.44-131.755 34.816-40.981 85.397-62.144 150.656-62.976 1.664 0 3.371 0.021 5.099 0.064-1.259-6.037-1.877-12.629-1.877-19.883 0-20.309 4.8-38.187 13.333-51.563 0.811-1.557 1.643-3.115 2.496-4.693-18.752-1.685-39.787-4.245-63.040-7.659-41.621-7.189-81.877-21.781-119.957-43.563-35.371-21.077-60.352-46.357-74.155-74.88-13.952-27.968-21.013-54.144-21.013-77.803 0-48.619 22.165-90.624 65.28-124.309 41.856-35.392 104.704-53.739 186.795-54.507h0.533c97.131 1.515 173.056 25.579 225.728 71.509 51.84 45.312 78.123 98.56 78.123 158.613-0.747 41.92-10.752 76.757-30.165 104.107-18.411 24.171-40.192 46.549-64.64 66.56zM570.411 110.037c-44.8-39.061-111.445-59.584-198.059-60.971-71.744 0.704-125.376 15.637-160.021 44.928-33.344 26.069-49.515 55.893-49.515 91.2 0 17.003 5.568 36.779 16.64 59.008 10.219 21.099 29.632 40.299 57.365 56.853 33.408 19.115 68.971 32 105.173 38.272 37.909 5.589 69.739 8.747 94.592 9.451 8 0.213 15.211 4.885 18.645 12.096 3.456 7.232 2.581 15.765-2.261 22.123-7.168 9.429-13.675 19.712-20.203 32.064-5.099 8.085-7.595 18.005-7.595 30.293 0 8.469 1.344 13.355 2.965 17.301 2.368 6.784 4.629 13.056 6.677 18.731 2.496 6.933 1.259 14.677-3.307 20.48-4.053 5.163-10.261 8.128-16.747 8.128-0.789 0-1.579-0.043-2.368-0.128-11.947-1.344-23.061-2.027-32.832-2.027-52.843 0.661-91.563 16.363-119.232 48.853-28.565 29.888-42.453 63.637-42.453 103.211 0 48.576 20.288 91.819 60.779 131.072 28.651 23.595 58.645 39.189 88.533 46.144 31.979 6.528 62.229 9.813 89.899 9.813h177.6l-21.675-28.373h-57.557c-9.387 0-17.429-6.336-20.16-15.339-2.709-9.003 1.045-18.901 8.896-24.107 4.331-2.88 20.203-18.219 26.987-24.768l5.696-5.461c6.464-6.677 13.355-25.643 15.573-31.595 3.328-11.136 3.307-15.296 3.243-30.677l-0.021-6.976c-0.555-34.901-8.043-62.741-22.165-82.709-7.573-10.603-15.744-20.523-23.509-28.715-9.984-9.493-20.629-19.157-33.237-30.272-7.424-7.68-14.4-16.533-20.075-25.344-9.301-12.693-13.995-27.435-13.995-43.861 0-16.853 5.227-31.253 14.741-41.813 6.037-7.595 12.181-14.549 19.883-22.080l37.483-30.677c21.888-17.92 41.344-37.909 57.344-58.859 13.909-19.627 21.269-46.4 21.845-79.189-0.043-47.467-20.843-88.725-63.573-126.080zM882.517 767.232h-64v64c0 11.797-9.557 21.333-21.333 21.333s-21.333-9.536-21.333-21.333v-64h-64c-11.776 0-21.333-9.536-21.333-21.333 0-11.776 9.557-21.333 21.333-21.333h64v-64c0-11.776 9.557-21.333 21.333-21.333s21.333 9.557 21.333 21.333v64h64c11.776 0 21.333 9.557 21.333 21.333 0 11.797-9.557 21.333-21.333 21.333z" />
18
+ <glyph unicode="&#xe908;" glyph-name="icon-linkedin" d="M255.915 646.272h-172.181c-11.797 0-21.333-9.536-21.333-21.333v-601.899c0-11.797 9.536-21.333 21.333-21.333h172.181c11.797 0 21.333 9.536 21.333 21.333v601.899c0 11.797-9.536 21.333-21.333 21.333zM234.581 44.373h-129.515v559.232h129.515v-559.232zM736 653.589c-83.605 0-138.304-36.053-170.069-67.435l-3.947 40.832c-1.067 10.965-10.261 19.285-21.227 19.285h-0.427l-156.971-3.008c-5.76-0.107-11.2-2.539-15.147-6.741-3.947-4.181-6.016-9.792-5.76-15.552 1.963-43.947 1.899-95.317 1.813-154.795l-0.021-446.165c0-11.797 9.536-21.333 21.333-21.333h172.203c11.776 0 21.333 9.536 21.333 21.333v347.947c0 17.792 1.515 30.635 4.587 38.293 10.731 27.307 46.123 55.573 86.784 55.573 52.672 0 84.096-40.064 84.096-107.2v-334.592c0-11.797 9.557-21.333 21.333-21.333h169.173c11.797 0 21.333 9.536 21.333 21.333v356.416c0.043 173.568-86.101 277.141-230.421 277.141zM923.797 41.365h-126.507v313.259c0 91.029-49.749 149.867-126.763 149.867-61.077 0-110.763-42.581-126.464-82.581-5.184-12.949-7.573-30.080-7.573-53.952v-326.592h-129.536l0.021 424.747c0.085 50.539 0.128 95.253-1.045 134.912l115.499 2.219 6.635-68.821c1.067-10.944 10.24-19.264 21.248-19.264h3.627c7.36 0 14.187 3.776 18.091 10.027 12.587 20.096 61.675 85.739 164.992 85.739 119.36 0 187.797-85.44 187.797-234.475v-335.083zM177.067 897.301c-69.269 0-119.531-47.723-119.531-113.493 0-65.728 49.259-113.429 117.12-113.429 69.952 0 120.704 47.701 120.704 113.941-1.557 66.496-50.197 112.981-118.293 112.981zM174.677 713.024c-43.84 0-74.453 29.099-74.453 70.763 0 42.368 30.869 70.827 76.864 70.827 44.928 0 74.645-28.011 75.648-70.827-0.021-42.325-31.403-70.763-78.059-70.763z" />
19
+ <glyph unicode="&#xe909;" glyph-name="icon-pinterest" d="M877.205 689.515c-14.592 49.472-38.037 91.136-71.723 127.403-32.939 35.435-70.784 62.293-115.776 82.112-32.384 14.272-84.715 31.275-150.123 31.275-5.717 0-11.477-0.149-17.259-0.427-19.712-0.896-40.597-2.027-60.587-4.885-55.851-8-105.003-24.704-150.251-51.072-57.856-33.664-102.997-79.488-134.165-136.149-16.235-29.483-32.192-81.429-38.955-115.349-8.043-40.171-0.939-109.781 15.189-148.971 19.947-48.384 37.269-71.019 77.269-100.949 0.256-0.171 24.683-18.304 43.029-18.304h0.021c31.915 0.597 38.123 30.677 41.109 45.12 0.512 2.581 1.067 5.141 1.685 7.531 0.533 2.133 1.259 4.395 1.984 6.763 4.352 14.165 10.304 33.557 0.235 51.115-3.712 6.485-8.064 11.435-11.925 15.808-1.963 2.24-3.968 4.437-5.568 6.827-14.016 20.928-21.141 47.168-21.141 77.952 0 40.619 9.173 77.419 28.011 112.448 34.155 63.531 90.88 103.616 164.011 115.989 40.981 6.891 91.157 3.797 126.677-7.616 33.131-10.645 61.333-29.525 81.557-54.571 21.419-26.475 33.664-60.139 36.395-100.053 1.344-19.627 0.576-41.387-2.432-68.523-7.403-65.899-26.453-118.912-56.704-157.589-24.555-31.424-50.944-47.189-80.661-48.192l-4.011-0.085c-17.152 0-30.123 3.84-42.112 12.437-12.011 8.619-19.2 19.243-22.592 33.429-3.861 16.235 0.875 33.365 5.909 51.541l0.789 2.944c4.459 16.149 9.088 30.912 13.632 45.44 7.211 23.040 14.677 46.848 20.843 74.496 6.976 31.381 7.893 56.789 2.816 77.675-6.336 26.091-20.309 45.632-41.557 58.112-21.845 12.8-54.528 15.595-81.003 6.507-39.573-13.568-69.76-49.536-82.795-98.731-6.613-24.832-8.491-50.944-5.675-77.525 2.176-20.651 6.72-39.36 15.125-61.803-0.235-0.768-0.448-1.536-0.704-2.304-0.597-2.069-1.195-4.032-1.6-5.781-9.237-38.677-18.219-76.843-27.179-114.944-8.341-35.413-16.661-70.784-25.173-106.517l-1.92-7.957c-8.832-36.907-18.005-75.093-20.117-120.768l-0.939-18.88c-1.856-35.413-3.776-72.021 0.981-106.112 0.917-6.336 3.2-22.293 18.581-28.011 2.795-2.027 7.509-4.629 14.037-4.629 12.416 0 20.416 8.448 33.408 23.339 30.080 34.325 55.659 77.675 78.251 132.501 10.091 24.533 16.768 50.901 23.232 76.373l3.861 15.104c4.501 17.344 8.917 34.88 13.269 52.267 7.851-6.592 16.811-12.608 27.008-18.261 24.235-13.504 51.563-21.355 81.259-23.36 28.864-2.048 56.939 1.643 89.152 10.944 24.448 6.997 47.893 17.643 69.696 31.616 77.888 50.069 130.987 137.557 149.525 246.4 5.525 32.512 7.872 58.624 7.872 87.275-0.021 33.131-3.989 63.296-11.776 89.579zM838.997 519.787c-16.469-96.875-62.827-174.165-130.496-217.664-18.261-11.733-37.909-20.651-58.389-26.496-27.413-7.893-50.56-11.008-74.453-9.387-23.701 1.6-44.48 7.531-63.424 18.069-19.029 10.581-31.317 21.909-39.915 36.757-4.331 7.531-12.8 11.691-21.376 10.453-8.576-1.195-15.595-7.445-17.749-15.851l-9.6-38.037c-4.501-17.899-9.024-36.011-13.675-53.867l-3.947-15.339c-6.357-25.152-12.352-48.896-21.312-70.613-19.115-46.464-40.299-83.584-64.555-113.195-1.429 24.427-0.021 51.371 1.344 77.632l0.96 19.115c1.941 41.643 10.603 77.824 19.008 112.789l1.92 8.021c8.512 35.755 16.853 71.189 25.216 106.645 8.96 38.037 17.92 76.139 27.115 114.731l1.024 3.563c2.283 7.68 4.885 16.405 1.387 25.173-8.085 20.864-12.373 37.483-14.293 55.637-2.261 21.397-0.768 42.283 4.501 62.080 9.323 35.179 29.504 60.437 55.403 69.312 6.080 2.091 12.651 3.136 19.499 3.136 9.813 0 19.541-2.261 26.048-6.080 11.072-6.507 18.155-16.768 21.717-31.403 3.477-14.208 2.453-33.813-3.008-58.304-5.781-25.899-12.651-47.808-19.904-71.019-4.715-14.976-9.451-30.208-14.059-46.869l-0.789-2.901c-5.931-21.504-12.672-45.867-6.272-72.768 5.803-24.448 18.645-43.477 39.211-58.219 19.136-13.76 41.045-20.437 66.987-20.437l5.461 0.107c42.496 1.429 80.469 23.168 112.811 64.533 35.179 44.971 57.237 105.259 65.493 179.115 3.328 29.76 4.139 53.973 2.624 76.203-3.371 48.811-18.773 90.517-45.781 123.947-25.472 31.552-60.629 55.168-101.717 68.373-41.899 13.483-99.157 17.109-146.816 9.088-86.635-14.656-153.877-62.315-194.496-137.856-22.272-41.408-33.109-84.821-33.109-132.672 0-39.403 9.536-73.6 28.352-101.696 2.603-3.925 5.739-7.552 8.96-11.243 2.773-3.136 5.397-6.144 6.72-8.363 0.789-3.115-2.176-12.715-3.755-17.877-0.917-2.965-1.792-5.803-2.496-8.469-0.789-3.093-1.493-6.4-2.176-9.728-0.576-2.752-1.408-6.741-2.283-9.685-4.48 2.069-10.88 5.717-14.528 8.427-33.899 25.344-46.336 41.643-63.381 83.051-12.821 31.104-19.136 92.715-12.821 124.373 7.125 35.605 22.272 80.917 34.496 103.147 27.392 49.792 67.157 90.112 118.251 119.829 40.427 23.552 84.523 38.507 134.848 45.717 18.133 2.603 37.035 3.627 56.469 4.501 64.277 2.901 117.099-13.568 148.224-27.264 39.552-17.408 72.811-41.003 101.717-72.107 29.077-31.317 49.365-67.435 62.059-110.443 6.635-22.4 10.005-48.469 10.005-77.547 0.043-26.133-2.155-50.112-7.253-80.128z" />
20
+ <glyph unicode="&#xe90a;" glyph-name="icon-skype" d="M942.699 369.941c6.699 37.888 32.192 230.229-111.232 371.264-10.901 12.672-118.507 131.733-316.651 131.733-22.315 0-45.184-1.557-68.139-4.651-18.176 9.557-69.653 33.216-133.995 33.216-69.376 0-131.008-26.773-183.445-79.829-1.216-1.28-118.997-127.061-39.893-289.152-5.931-27.243-19.669-116.011 21.675-224.149 2.261-8.149 57.984-200.341 268.309-263.019 2.859-1.109 70.912-26.667 164.864-26.667 14.613 0 29.227 0.619 43.541 1.877 16.192-7.296 63.467-26.069 121.621-26.069 69.525 0 131.563 27.392 178.859 78.613 4.885 4.885 117.845 120.576 54.485 296.832zM857.451 102.656c-40.171-43.456-89.984-65.493-148.096-65.493-59.947 0-107.584 23.915-108.011 24.149-3.029 1.557-6.4 2.368-9.771 2.368-0.704 0-1.408-0.043-2.133-0.107-14.784-1.472-30.016-2.219-45.248-2.219-85.653 0-149.013 23.616-151.125 24.384-188.715 56.277-240.448 232.341-241.536 235.968-44.096 115.605-19.328 206.677-19.093 207.509 1.515 5.269 0.939 10.923-1.6 15.765-71.893 137.963 25.109 242.816 28.992 246.933 43.904 44.395 95.317 66.923 152.853 66.923 66.56 0 118.4-30.613 118.869-30.891 4.224-2.581 9.323-3.584 14.144-2.859 23.317 3.435 46.571 5.184 69.12 5.184 184.064 0 283.648-116.096 284.608-117.227 0.469-0.555 0.981-1.109 1.472-1.621 140.053-137.024 99.285-336.768 98.859-338.795-0.853-4.011-0.555-8.213 0.896-12.032 57.963-153.045-38.528-253.184-43.2-257.941zM625.579 514.773c-0.704 0.213-1.408 0.384-2.133 0.491-104.363 18.624-165.611 46.571-165.781 46.571-13.547 7.68-21.355 15.829-22.016 22.955-0.704 7.616 6.421 16.811 10.923 21.163 26.133 13.248 50.624 19.968 72.789 19.968 48.491 0 71.296-32.235 72.277-33.6 31.723-46.933 64.32-70.72 96.811-70.72 21.781 0 34.773 10.944 36.779 12.8 21.419 18.795 32.747 41.771 32.811 66.453 0.085 47.339-39.979 84.053-44.096 87.701-48.085 44.843-112.107 67.584-190.229 67.584-72.875 0-131.157-20.309-133.312-21.056-125.44-42.155-135.765-150.293-123.733-201.579 0.192-0.811 0.448-1.6 0.704-2.368 46.293-128.107 240.448-144.683 248.683-145.344 88.832-7.019 92.971-48.448 93.12-50.837 3.093-43.243-74.432-56.576-86.443-58.389-77.525 4.373-96.171 34.005-96.213 34.005 0 0 0 0 0-0.021-0.619 1.28-1.344 2.453-2.197 3.563-42.581 56.341-59.2 75.883-96.448 76.843l-2.88 0.043c-29.845 0-47.509-12.587-57.045-23.147-24.256-26.837-21.077-65.664-20.651-69.995 0.107-0.939 0.277-1.877 0.469-2.816 34.475-144.299 218.56-148.459 239.467-148.459h0.491c11.221-0.661 22.037-0.981 32.427-0.981 245.867 0 262.72 179.627 262.805 181.035 10.731 110.059-98.24 171.2-157.376 188.139zM740.544 330.411c-0.533-6.059-17.579-155.2-250.901-141.248-0.448 0.043-1.941 0.043-2.347 0.043-17.344 0-169.536 3.221-197.547 114.048-0.213 4.907-0.341 24.597 9.899 35.968 5.547 6.123 14.72 9.387 27.157 9.067 15.424-0.405 22.101-5.184 62.656-58.773 6.635-11.157 36.8-50.837 133.099-55.659 1.195-0.064 2.325-0.021 3.477 0.107 49.045 5.589 130.731 33.771 125.781 102.869-0.064 3.307-2.816 81.259-132.416 91.499-1.728 0.149-173.461 14.677-211.435 116.053-2.56 12.373-19.157 111.552 96.341 150.357 0.533 0.192 53.781 18.731 119.424 18.731 66.987 0 121.195-18.901 161.493-56.448 8.427-7.552 30.272-32.363 30.165-56.213-0.085-12.373-6.037-23.595-18.027-34.133-0.128-0.085-3.264-2.411-8.896-2.411-7.915 0-29.76 5.056-61.376 51.819-1.408 2.155-35.669 52.523-107.712 52.523-29.76 0-61.632-8.725-94.763-25.963-1.301-0.683-2.496-1.472-3.627-2.389-3.136-2.56-30.613-25.984-27.84-58.944 1.877-22.229 16.512-41.259 44.971-57.344 2.667-1.259 66.091-30.613 176.619-50.475 13.269-4.032 135.381-44.011 125.803-143.083z" />
21
+ <glyph unicode="&#xe90b;" glyph-name="icon-twitter" d="M973.397 743.083c-7.552 5.163-17.515 4.971-24.832-0.491-5.056-3.776-12.587-7.125-21.376-10.069 28.949 35.925 29.376 59.925 28.949 65.813-0.576 7.68-5.248 14.485-12.224 17.749-6.976 3.285-15.168 2.56-21.461-1.963-39.467-28.267-78.955-34.389-101.973-35.2-37.504 34.859-86.016 53.952-137.536 53.952-111.509 0-202.24-90.709-202.24-202.219 0-8.064 0.491-16.107 1.429-24.085-186.112 4.608-337.024 180.011-338.539 181.824-4.48 5.269-11.179 8.085-18.133 7.445-6.891-0.576-13.056-4.501-16.555-10.453-47.36-80.981-28.032-157.696 4.437-211.328-6.037 3.243-13.333 3.456-19.584 0.341-7.147-3.541-11.712-10.795-11.861-18.752-1.387-85.056 37.461-136.064 76.672-165.76-2.88-1.173-5.504-2.987-7.68-5.355-5.099-5.589-6.869-13.483-4.629-20.715 27.243-87.851 91.243-120.789 136.149-133.141-51.477-36.288-115.2-44.821-163.605-44.821-30.891 0-52.203 3.669-52.416 3.712-9.643 1.707-19.349-3.456-23.275-12.523-3.904-9.045-1.152-19.627 6.741-25.536 97.152-73.024 214.421-88.384 295.744-88.384 64.256 0 108.907 9.387 111.168 9.877 417.323 97.472 433.195 471.659 432.512 539.819 78.229 71.893 90.688 99.947 92.651 106.944 2.411 8.768-1.003 18.155-8.533 23.317zM853.333 637.781c-4.843-4.373-7.403-10.731-6.955-17.28 0.277-4.053 23.083-407.317-398.955-505.877-0.427-0.085-42.453-8.853-101.867-8.853-55.381 0-128.704 7.595-198.635 38.293 64.021 4.096 142.571 23.744 199.061 86.229 5.653 6.272 7.040 15.275 3.605 22.976-3.435 7.68-11.115 12.672-19.563 12.672-3.968 0-87.936 1.024-129.963 79.061 19.456-0.619 37.077 2.261 50.176 8.235 8.405 3.819 13.333 12.565 12.352 21.717-0.981 9.173-7.765 16.64-16.768 18.581-4.544 0.981-101.205 22.976-118.635 124.928 15.147-5.781 33.579-9.792 51.413-7.168 8.277 1.237 15.083 7.189 17.365 15.253 2.304 8.043-0.299 16.704-6.677 22.123-4.267 3.627-96.448 83.733-56.427 188.565 53.696-54.528 199.808-182.805 376-172.885 6.357 0.363 12.224 3.563 16 8.704s5.035 11.712 3.456 17.877c-3.307 12.928-4.971 26.283-4.971 39.723 0 87.979 71.595 159.552 159.573 159.552 43.115 0 83.499-16.939 113.749-47.659 3.925-3.989 9.259-6.272 14.848-6.379l3.285-0.021c15.68 0 40.256 1.899 68.437 10.987-9.024-9.536-20.757-20.288-35.989-32.043-7.467-5.781-10.24-15.765-6.848-24.576 3.413-8.789 12.267-14.336 21.589-13.589 3.456 0.299 18.645 1.6 37.44 4.971-11.797-12.117-26.88-26.688-46.101-44.117z" />
22
+ <glyph unicode="&#xe90c;" glyph-name="icon-vimeo" d="M924.011 765.44c-41.131 61.333-114.411 63.872-117.504 63.957l-7.467 0.107c-200.555 0-249.429-210.581-249.92-212.715-1.621-7.339 0.747-14.997 6.251-20.16 5.504-5.141 13.248-7.019 20.501-4.928 43.2 12.459 73.792 11.435 84.8-2.624 8.448-10.795 6.699-29.248 5.12-36.629-64.299-162.603-104.256-182.016-111.573-184.256-22.037 15.275-55.36 143.381-72.299 279.36-19.563 140.715-80.427 170.24-128 170.24-31.147 0-55.915-13.184-62.272-16.917-80.341-37.205-206.507-169.003-211.861-174.635-7.509-7.851-7.893-20.096-0.917-28.416l40.171-47.915c3.925-4.693 9.707-7.488 15.829-7.616 5.803-0.299 12.011 2.325 16.171 6.827 27.328 29.525 43.179 32.704 48.725 32.704 8.149 0 12.16-7.061 13.013-8.704 46.528-93.525 78.315-227.904 78.656-229.397 60.544-250.219 142.336-277.227 174.699-277.227 3.861 0 6.229 0.427 6.187 0.448 231.829 29.696 437.099 439.488 446.549 458.773 39.872 104.683 41.621 185.323 5.141 239.723zM879.787 542.763c-2.027-4.053-203.733-407.040-413.376-433.6l-0.299-21.333v21.333c-3.029 0-74.709 2.795-133.184 244.437-1.344 5.696-33.216 140.501-81.664 237.867-5.611 12.245-22.763 33.024-51.52 33.024-19.925 0-40.64-9.664-62.891-29.483l-12.907 15.403c34.432 34.688 127.68 125.44 186.432 152.128 0.853 0.405 1.664 0.832 2.453 1.344 0.171 0.107 18.688 11.243 41.045 11.243 55.531 0 77.291-72.555 85.717-133.163 10.816-87.019 42.24-291.392 100.48-314.347 2.624-1.109 6.976-2.368 12.864-2.368 45.867 0 97.365 71.637 153.088 212.971 0.341 0.789 0.576 1.6 0.811 2.411 1.173 4.48 10.731 44.544-12.331 74.389-18.112 23.467-48.811 32.469-92.587 26.069 21.035 51.904 75.883 145.749 197.099 145.749l6.357-0.085c0.533-0.021 54.208-1.877 83.179-45.056 27.947-41.664 24.619-111.061-8.768-198.933z" />
23
+ <glyph unicode="&#xe90d;" glyph-name="icon-zerply" d="M871.915 200.555c-1.728 6.805-6.677 12.352-13.291 14.763-6.592 2.411-13.909 1.472-19.712-2.581-28.096-19.861-57.344-29.525-89.387-29.525-60.715 0-123.264 33.963-189.525 69.867-52.544 28.523-106.539 57.792-162.133 70.485 45.525 49.707 94.123 100.843 141.419 150.571 56.789 59.691 115.499 121.429 170.411 182.336 8.021 8.875 16.448 17.664 24.917 26.475 49.344 51.413 105.259 109.717 93.291 203.285-0.704 5.781-3.797 11.029-8.469 14.485s-10.581 4.821-16.341 3.84c-44.693-7.787-134.251-20.885-232.277-20.885-88.747 0-160.213 11.264-206.677 32.555-8.277 3.861-18.027 1.941-24.299-4.608-40.619-42.347-85.44-97.664-71.253-150.037 17.045-62.869 129.301-57.813 224.619-55.36 2.752 0.085 5.419 0.149 8.128 0.213-66.795-86.955-146.411-181.184-237.099-280.64-8.512-9.344-17.429-18.368-26.325-27.435-50.645-51.435-108.011-109.781-88.363-220.075 2.005-11.264 12.416-18.923 23.936-17.365 99.968 13.909 194.432-6.4 279.851-60.053 17.92-11.264 35.264-23.936 53.675-37.312 42.816-31.211 87.104-63.488 140.075-78.251 17.877-4.992 36.096-7.531 54.165-7.531 56.832 0 108.501 24.469 141.717 67.136 33.259 42.688 43.541 97.963 28.949 155.648zM809.344 71.125c-33.259-42.688-93.077-60.779-150.741-44.757-45.547 12.715-86.677 42.667-126.443 71.637-18.155 13.205-36.885 26.901-56.064 38.933-74.88 47.040-156.203 70.891-241.792 70.891-14.912 0-30.101-0.725-45.355-2.197-6.443 75.541 33.6 116.224 79.403 162.795 9.301 9.429 18.581 18.88 27.456 28.629 103.872 113.899 193.408 221.12 266.133 318.677 4.843 6.485 5.589 15.104 1.963 22.315-3.605 7.211-10.987 11.776-19.072 11.776-16.149 0-34.069-0.469-52.672-0.939-19.776-0.533-40.405-1.067-60.565-1.067-100.075 0-119.296 15.616-121.792 24.917-5.952 21.973 11.157 55.147 50.88 98.667 51.755-20.181 122.325-30.421 210.176-30.421 86.123 0 165.781 9.771 216 17.6-1.173-60.843-41.045-102.4-83.008-146.133-8.789-9.152-17.493-18.219-25.792-27.435-54.571-60.48-113.067-122.027-169.664-181.525-56.875-59.84-115.712-121.664-168.96-180.928-5.483-6.059-6.976-14.741-3.883-22.336 3.093-7.552 10.24-12.715 18.411-13.205 60.821-3.733 124.288-38.144 185.707-71.467 68.011-36.885 138.304-75.051 209.856-75.051 30.421 0 58.731 6.677 85.781 20.288 2.347-33.557-6.528-64.683-25.963-89.664z" />
24
+ <glyph unicode="&#xe90e;" glyph-name="quote" d="M861.576 486.852h-155.377c0 128.663 104.358 233.020 233.050 233.020 42.918 0 77.673 34.786 77.673 77.704 0 42.857-34.756 77.673-77.673 77.673-214.528 0-388.397-173.899-388.397-388.397v-310.724c0-85.835 69.572-155.347 155.347-155.347h155.377c85.805 0 155.347 69.542 155.347 155.347v155.347c0.030 85.805-69.542 155.377-155.347 155.377zM395.475 719.872c42.918 0 77.704 34.786 77.704 77.704 0 42.857-34.786 77.673-77.704 77.673-214.498 0-388.397-173.899-388.397-388.397v-310.724c0-85.835 69.572-155.347 155.377-155.347h155.347c85.805 0 155.377 69.542 155.377 155.347v155.347c0 85.835-69.602 155.377-155.377 155.377h-155.347c0 128.663 104.297 233.020 233.020 233.020z" />
25
+ <glyph unicode="&#xe90f;" glyph-name="video-play" d="M511 960c-267.568 0-487.158-205.256-510-466.896v-90.208c22.842-261.64 242.432-466.896 510-466.896 282.77 0 512 229.23 512 512s-229.23 512-512 512zM513-20c-259.574 0-470 210.426-470 470s210.426 469 470 469 470-209.426 470-469-210.426-470-470-470zM372 688.5c0 0-30 10.5-29-14.5-1-25 0.5-421 0-452 0-27 7.2-29.4 29-14 29 16 398.6 231 398.6 231l-1.2 19.8-397.4 229.7zM704 447l-319-184.5v370.5l319-183.5v-2.5z" />
26
+ <glyph unicode="&#xe910;" glyph-name="icon-email" d="M960 108.885h-896c-35.285 0-64 28.715-64 64v550.229c0 35.285 28.715 64 64 64h896c35.285 0 64-28.715 64-64v-550.229c0-35.307-28.715-64-64-64zM64 744.448c-11.755 0-21.333-9.579-21.333-21.333v-550.229c0-11.776 9.579-21.333 21.333-21.333h896c11.776 0 21.333 9.557 21.333 21.333v550.229c0 11.755-9.557 21.333-21.333 21.333h-896zM512.064 303.125c-0.021 0-0.043 0-0.085 0-42.069 0.043-81.408 17.536-110.784 49.344l-342.144 369.195c-8 8.64-7.509 22.144 1.152 30.144 8.619 8 22.144 7.509 30.144-1.152l342.144-369.216c21.227-22.976 49.451-35.627 79.509-35.648 0.021 0 0.043 0 0.064 0 30.080 0 58.368 12.672 79.659 35.648l341.909 369.216c7.979 8.661 21.483 9.173 30.144 1.173 8.64-8 9.173-21.504 1.152-30.144l-341.909-369.237c-29.461-31.808-68.843-49.323-110.955-49.323zM61.696 151.381c-5.099 0-10.197 1.813-14.272 5.504-8.747 7.893-9.429 21.376-1.536 30.123l262.229 290.603c7.872 8.768 21.355 9.451 30.123 1.536 8.747-7.893 9.429-21.376 1.536-30.123l-262.251-290.603c-4.203-4.672-10.005-7.040-15.829-7.040zM962.325 151.381c-5.803 0-11.627 2.368-15.829 7.040l-262.251 290.603c-7.893 8.747-7.211 22.229 1.536 30.123 8.725 7.893 22.229 7.232 30.123-1.536l262.251-290.603c7.893-8.747 7.211-22.229-1.536-30.123-4.075-3.691-9.173-5.504-14.293-5.504z" />
27
+ <glyph unicode="&#xe911;" glyph-name="close" d="M36.447 953.748l981.311-981.311-30.17-30.17-981.311 981.311 30.17 30.17zM987.576 953.748l30.17-30.17-981.311-981.311-30.17 30.17 981.311 981.311z" />
28
+ <glyph unicode="&#xe912;" glyph-name="icon-plus" d="M0.021 469.333h1023.957v-42.667h-1023.957v42.667zM490.688 960h42.667v-1024h-42.667v1024z" />
29
+ <glyph unicode="&#xe913;" glyph-name="arrow-right-toggle" d="M777.312 503.168l-306.752 306.752c-28.096 28.096-74.144 28.096-102.24 0l-25.6-25.6c-28.096-28.064-28.096-74.112 0-102.208l234.048-234.112-234.080-234.080c-28.096-28.096-28.096-74.144 0-102.208l25.6-25.6c28.096-28.128 74.144-28.128 102.24 0l306.752 306.784c15.104 15.072 21.824 35.296 20.704 55.136 1.152 19.808-5.568 40.032-20.672 55.136z" />
30
+ <glyph unicode="&#xe914;" glyph-name="menu" d="M0 783.275h1024v-42.667h-1024v42.667zM0 469.312h1024v-42.667h-1024v42.667zM0 155.392h1024v-42.667h-1024v42.667z" />
31
+ <glyph unicode="&#xe915;" glyph-name="menu-2" d="M916.523-64h-809.003c-59.285 0-107.52 48.256-107.52 107.541v26.283c0 59.264 48.235 107.499 107.52 107.499h809.003c59.264 0 107.477-48.235 107.477-107.499v-26.283c0-59.285-48.213-107.541-107.477-107.541zM107.52 134.656c-35.755 0-64.853-29.077-64.853-64.832v-26.283c0-35.776 29.099-64.875 64.853-64.875h809.003c35.733 0 64.811 29.099 64.811 64.875v26.283c0 35.755-29.077 64.832-64.811 64.832h-809.003zM916.523 327.317h-809.003c-59.285 0-107.52 48.256-107.52 107.541v26.325c0 59.264 48.235 107.499 107.52 107.499h809.003c59.264 0 107.477-48.235 107.477-107.499v-26.325c0-59.307-48.213-107.541-107.477-107.541zM107.52 526.016c-35.755 0-64.853-29.077-64.853-64.832v-26.325c0-35.776 29.099-64.875 64.853-64.875h809.003c35.733 0 64.811 29.099 64.811 64.875v26.325c0 35.755-29.077 64.832-64.811 64.832h-809.003zM916.523 718.677h-809.003c-59.285 0-107.52 48.213-107.52 107.477v26.347c0 59.264 48.235 107.499 107.52 107.499h809.003c59.264 0 107.477-48.235 107.477-107.499v-26.304c0-59.285-48.213-107.52-107.477-107.52zM107.52 917.333c-35.755 0-64.853-29.077-64.853-64.832v-26.347c0-35.733 29.099-64.811 64.853-64.811h809.003c35.733 0 64.811 29.099 64.811 64.853v26.304c0 35.755-29.077 64.832-64.811 64.832h-809.003z" />
32
+ <glyph unicode="&#xe916;" glyph-name="Fit-To" d="M17.067-64c-4.403 0-8.772 1.673-12.117 5.052-6.622 6.656-6.554 17.51 0.102 24.132l331.503 328.533c6.69 6.588 17.476 6.554 24.132-0.068 6.622-6.69 6.588-17.545-0.102-24.201l-331.503-328.533c-3.345-3.277-7.68-4.915-12.015-4.915zM691.746 607.642c-4.335 0-8.67 1.638-12.049 4.949-6.69 6.622-6.758 17.442-0.137 24.132l315.221 318.191c6.588 6.724 17.476 6.758 24.132 0.137s6.724-17.442 0.137-24.132l-315.221-318.225c-3.379-3.345-7.68-5.052-12.083-5.052zM1006.933 738.133c-9.387 0-17.067 7.646-17.067 17.067v170.667h-170.667c-9.387 0-17.067 7.646-17.067 17.067s7.68 17.067 17.067 17.067h187.733c9.387 0 17.067-7.646 17.067-17.067v-187.733c0-9.421-7.68-17.067-17.067-17.067zM204.8-64h-187.733c-9.421 0-17.067 7.68-17.067 17.067v187.733c0 9.387 7.646 17.067 17.067 17.067s17.067-7.68 17.067-17.067v-170.667h170.667c9.421 0 17.067-7.68 17.067-17.067s-7.646-17.067-17.067-17.067z" />
33
+ <glyph unicode="&#xe917;" glyph-name="Full-Screen2" d="M17.067-64c-4.403 0-8.772 1.673-12.117 5.052-6.622 6.656-6.554 17.51 0.102 24.132l331.503 328.533c6.69 6.588 17.476 6.554 24.132-0.068 6.622-6.69 6.588-17.545-0.102-24.201l-331.503-328.533c-3.345-3.277-7.68-4.915-12.015-4.915zM691.746 607.642c-4.335 0-8.67 1.638-12.049 4.949-6.69 6.622-6.758 17.442-0.137 24.132l315.221 318.191c6.588 6.724 17.476 6.758 24.132 0.137s6.724-17.442 0.137-24.132l-315.221-318.225c-3.379-3.345-7.68-5.052-12.083-5.052zM1006.933-64c-4.471 0-9.011 1.775-12.322 5.257l-315.187 328.533c-6.519 6.793-6.349 17.613 0.546 24.132 6.793 6.485 17.613 6.315 24.132-0.546l315.187-328.533c6.519-6.793 6.349-17.613-0.546-24.132-3.311-3.14-7.543-4.71-11.81-4.71zM348.604 607.642c-4.267 0-8.533 1.57-11.81 4.745l-331.537 318.225c-6.793 6.519-7.031 17.34-0.512 24.132 6.554 6.793 17.34 7.031 24.132 0.512l331.537-318.225c6.793-6.519 7.031-17.34 0.512-24.132-3.345-3.482-7.817-5.257-12.322-5.257zM1006.933 738.133c-9.387 0-17.067 7.646-17.067 17.067v170.667h-170.667c-9.387 0-17.067 7.646-17.067 17.067s7.68 17.067 17.067 17.067h187.733c9.387 0 17.067-7.646 17.067-17.067v-187.733c0-9.421-7.68-17.067-17.067-17.067zM1006.933-64h-187.733c-9.387 0-17.067 7.68-17.067 17.067s7.68 17.067 17.067 17.067h170.667v170.667c0 9.387 7.68 17.067 17.067 17.067s17.067-7.68 17.067-17.067v-187.733c0-9.387-7.68-17.067-17.067-17.067zM17.067 738.133c-9.421 0-17.067 7.646-17.067 17.067v187.733c0 9.421 7.646 17.067 17.067 17.067h187.733c9.421 0 17.067-7.646 17.067-17.067s-7.646-17.067-17.067-17.067h-170.667v-170.667c0-9.421-7.646-17.067-17.067-17.067zM204.8-64h-187.733c-9.421 0-17.067 7.68-17.067 17.067v187.733c0 9.387 7.646 17.067 17.067 17.067s17.067-7.68 17.067-17.067v-170.667h170.667c9.421 0 17.067-7.68 17.067-17.067s-7.646-17.067-17.067-17.067z" />
34
+ <glyph unicode="&#xe918;" glyph-name="arrow-left2" d="M167.488 448.043l-1.643 1.664 241.344 241.344 30.165-30.165-188.075-188.096h-7.957v-42.667h0.896l195.008-195.008-30.165-30.165-241.323 241.344z" />
35
+ <glyph unicode="&#xe919;" glyph-name="arrow-left22" d="M241.003 426.603c-5.781 0-11.584 2.368-15.787 7.040-7.872 8.704-7.211 22.165 1.493 30.037l541.995 490.816c8.704 7.915 22.208 7.253 30.037-1.493 7.915-8.704 7.253-22.165-1.493-30.080l-541.952-490.773c-4.075-3.712-9.195-5.547-14.293-5.547zM782.997-64.021c-5.12 0-10.24 1.835-14.293 5.547l-541.995 490.624c-8.704 7.872-9.365 21.333-1.493 30.037 7.872 8.747 21.333 9.451 30.080 1.493l541.952-490.581c8.747-7.872 9.408-21.376 1.493-30.080-4.203-4.629-9.941-7.040-15.744-7.040z" />
36
+ <glyph unicode="&#xe91a;" glyph-name="arrow-right2" d="M856.512 447.957l1.643-1.621-241.387-241.387-30.165 30.165 188.075 188.096h7.979v42.667h-0.875l-195.051 195.008 30.165 30.165 241.365-241.344z" />
37
+ <glyph unicode="&#xe91b;" glyph-name="arrow-right22" d="M782.976 426.624c-5.077 0-10.219 1.792-14.251 5.504l-542.037 490.773c-8.704 7.893-9.365 21.355-1.493 30.059 7.915 8.747 21.376 9.408 30.080 1.493l541.995-490.752c8.747-7.915 9.408-21.376 1.493-30.080-4.203-4.672-9.941-6.997-15.787-6.997zM241.024-64c-5.824 0-11.627 2.368-15.829 6.997-7.872 8.704-7.168 22.208 1.493 30.080l542.037 490.624c8.661 7.915 22.165 7.211 30.037-1.493 7.915-8.704 7.211-22.208-1.493-30.080l-541.995-490.624c-4.075-3.669-9.195-5.504-14.251-5.504z" />
38
+ <glyph unicode="&#xe91c;" glyph-name="Start" d="M105.54-59.733c-2.867 0-5.769 0.717-8.397 2.15-5.359 3.038-8.67 8.738-8.67 14.916v981.333c0 6.144 3.311 11.844 8.67 14.848 5.359 3.038 11.947 2.935 17.203-0.239l812.954-490.598c5.086-3.072 8.226-8.602 8.226-14.609 0-5.973-3.14-11.537-8.226-14.609l-812.954-490.735c-2.697-1.673-5.769-2.458-8.806-2.458zM122.607 908.459v-920.883l762.88 460.493-762.88 460.39z" />
39
+ <glyph unicode="&#xea92;" glyph-name="instagram" d="M512 867.8c136.8 0 153-0.6 206.8-3 50-2.2 77-10.6 95-17.6 23.8-9.2 41-20.4 58.8-38.2 18-18 29-35 38.4-58.8 7-18 15.4-45.2 17.6-95 2.4-54 3-70.2 3-206.8s-0.6-153-3-206.8c-2.2-50-10.6-77-17.6-95-9.2-23.8-20.4-41-38.2-58.8-18-18-35-29-58.8-38.4-18-7-45.2-15.4-95-17.6-54-2.4-70.2-3-206.8-3s-153 0.6-206.8 3c-50 2.2-77 10.6-95 17.6-23.8 9.2-41 20.4-58.8 38.2-18 18-29 35-38.4 58.8-7 18-15.4 45.2-17.6 95-2.4 54-3 70.2-3 206.8s0.6 153 3 206.8c2.2 50 10.6 77 17.6 95 9.2 23.8 20.4 41 38.2 58.8 18 18 35 29 58.8 38.4 18 7 45.2 15.4 95 17.6 53.8 2.4 70 3 206.8 3zM512 960c-139 0-156.4-0.6-211-3-54.4-2.4-91.8-11.2-124.2-23.8-33.8-13.2-62.4-30.6-90.8-59.2-28.6-28.4-46-57-59.2-90.6-12.6-32.6-21.4-69.8-23.8-124.2-2.4-54.8-3-72.2-3-211.2s0.6-156.4 3-211c2.4-54.4 11.2-91.8 23.8-124.2 13.2-33.8 30.6-62.4 59.2-90.8 28.4-28.4 57-46 90.6-59 32.6-12.6 69.8-21.4 124.2-23.8 54.6-2.4 72-3 211-3s156.4 0.6 211 3c54.4 2.4 91.8 11.2 124.2 23.8 33.6 13 62.2 30.6 90.6 59s46 57 59 90.6c12.6 32.6 21.4 69.8 23.8 124.2 2.4 54.6 3 72 3 211s-0.6 156.4-3 211c-2.4 54.4-11.2 91.8-23.8 124.2-12.6 34-30 62.6-58.6 91-28.4 28.4-57 46-90.6 59-32.6 12.6-69.8 21.4-124.2 23.8-54.8 2.6-72.2 3.2-211.2 3.2v0zM512 711c-145.2 0-263-117.8-263-263s117.8-263 263-263 263 117.8 263 263c0 145.2-117.8 263-263 263zM512 277.4c-94.2 0-170.6 76.4-170.6 170.6s76.4 170.6 170.6 170.6c94.2 0 170.6-76.4 170.6-170.6s-76.4-170.6-170.6-170.6zM846.8 721.4c0-33.91-27.49-61.4-61.4-61.4s-61.4 27.49-61.4 61.4c0 33.91 27.49 61.4 61.4 61.4s61.4-27.49 61.4-61.4z" />
40
+ </font></defs></svg>
assets/css/fonts/icomoon/icomoon.ttf ADDED
Binary file
assets/css/fonts/icomoon/icomoon.woff ADDED
Binary file
assets/css/icomoon.css ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: 'lvca-icomoon';
3
+ src: url('fonts/icomoon/icomoon.eot?bh4obs');
4
+ src: url('fonts/icomoon/icomoon.eot?bh4obs#iefix') format('embedded-opentype'),
5
+ url('fonts/icomoon/icomoon.ttf?bh4obs') format('truetype'),
6
+ url('fonts/icomoon/icomoon.woff?bh4obs') format('woff'),
7
+ url('fonts/icomoon/icomoon.svg?bh4obs#icomoon') format('svg');
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }
11
+
12
+ [class^="lvca-icon-"], [class*=" lvca-icon-"] {
13
+ /* use !important to prevent issues with browser extensions that change fonts */
14
+ font-family: 'lvca-icomoon' !important;
15
+ speak: none;
16
+ font-style: normal;
17
+ font-weight: normal;
18
+ font-variant: normal;
19
+ text-transform: none;
20
+ line-height: 1;
21
+
22
+ /* Better Font Rendering =========== */
23
+ -webkit-font-smoothing: antialiased;
24
+ -moz-osx-font-smoothing: grayscale;
25
+ }
26
+ .lvca-icon-fit-to:before {
27
+ content: "\e916";
28
+ }
29
+ .lvca-icon-full-screen:before {
30
+ content: "\e917";
31
+ }
32
+ .lvca-icon-arrow-left2:before {
33
+ content: "\e918";
34
+ }
35
+ .lvca-icon-arrow-left3:before {
36
+ content: "\e919";
37
+ }
38
+ .lvca-icon-arrow-right2:before {
39
+ content: "\e91a";
40
+ }
41
+ .lvca-icon-arrow-right3:before {
42
+ content: "\e91b";
43
+ }
44
+ .lvca-icon-start:before {
45
+ content: "\e91c";
46
+ }
47
+ .lvca-icon-close:before {
48
+ content: "\e911";
49
+ }
50
+ .lvca-icon-menu:before {
51
+ content: "\e914";
52
+ }
53
+ .lvca-icon-menu-2:before {
54
+ content: "\e915";
55
+ }
56
+ .lvca-icon-email:before {
57
+ content: "\e910";
58
+ }
59
+ .lvca-icon-plus:before {
60
+ content: "\e912";
61
+ }
62
+ .lvca-icon-arrow-right-toggle:before {
63
+ content: "\e913";
64
+ }
65
+ .lvca-icon-arrow-left:before {
66
+ content: "\e900";
67
+ }
68
+ .lvca-icon-arrow-right:before {
69
+ content: "\e901";
70
+ }
71
+ .lvca-icon-aim:before {
72
+ content: "\e902";
73
+ }
74
+ .lvca-icon-behance:before {
75
+ content: "\e903";
76
+ }
77
+ .lvca-icon-dribbble:before {
78
+ content: "\e904";
79
+ }
80
+ .lvca-icon-facebook:before {
81
+ content: "\e905";
82
+ }
83
+ .lvca-icon-flickr:before {
84
+ content: "\e906";
85
+ }
86
+ .lvca-icon-googleplus:before {
87
+ content: "\e907";
88
+ }
89
+ .lvca-icon-linkedin:before {
90
+ content: "\e908";
91
+ }
92
+ .lvca-icon-pinterest:before {
93
+ content: "\e909";
94
+ }
95
+ .lvca-icon-skype:before {
96
+ content: "\e90a";
97
+ }
98
+ .lvca-icon-twitter:before {
99
+ content: "\e90b";
100
+ }
101
+ .lvca-icon-vimeo:before {
102
+ content: "\e90c";
103
+ }
104
+ .lvca-icon-zerply:before {
105
+ content: "\e90d";
106
+ }
107
+ .lvca-icon-quote:before {
108
+ content: "\e90e";
109
+ }
110
+ .lvca-icon-video-play:before {
111
+ content: "\e90f";
112
+ }
113
+ .lvca-icon-instagram:before {
114
+ content: "\ea92";
115
+ }
116
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImljb21vb24uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksNEJBQTRCO0lBQzVCLGdEQUFnRDtJQUNoRDs7O3NFQUdrRTtJQUNsRSxvQkFBb0I7SUFDcEIsbUJBQW1CO0NBQ3RCOztBQUVEO0lBQ0ksZ0ZBQWdGO0lBQ2hGLHVDQUF1QztJQUN2QyxZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLGVBQWU7O0lBRWYsdUNBQXVDO0lBQ3ZDLG9DQUFvQztJQUNwQyxtQ0FBbUM7Q0FDdEM7QUFDRDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEI7QUFDTDtJQUNJLGlCQUFpQjtLQUNoQjtBQUNMO0lBQ0ksaUJBQWlCO0tBQ2hCO0FBQ0w7SUFDSSxpQkFBaUI7S0FDaEIiLCJmaWxlIjoiaWNvbW9vbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ2x2Y2EtaWNvbW9vbic7XG4gICAgc3JjOiAgICB1cmwoJ2ZvbnRzL2ljb21vb24vaWNvbW9vbi5lb3Q/Ymg0b2JzJyk7XG4gICAgc3JjOiAgICB1cmwoJ2ZvbnRzL2ljb21vb24vaWNvbW9vbi5lb3Q/Ymg0b2JzI2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJ2ZvbnRzL2ljb21vb24vaWNvbW9vbi50dGY/Ymg0b2JzJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICB1cmwoJ2ZvbnRzL2ljb21vb24vaWNvbW9vbi53b2ZmP2JoNG9icycpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJ2ZvbnRzL2ljb21vb24vaWNvbW9vbi5zdmc/Ymg0b2JzI2ljb21vb24nKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5bY2xhc3NePVwibHZjYS1pY29uLVwiXSwgW2NsYXNzKj1cIiBsdmNhLWljb24tXCJdIHtcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAnbHZjYS1pY29tb29uJyAhaW1wb3J0YW50O1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5sdmNhLWljb24tZml0LXRvOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MTZcIjtcbiAgICB9XG4ubHZjYS1pY29uLWZ1bGwtc2NyZWVuOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MTdcIjtcbiAgICB9XG4ubHZjYS1pY29uLWFycm93LWxlZnQyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MThcIjtcbiAgICB9XG4ubHZjYS1pY29uLWFycm93LWxlZnQzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXGU5MTlcIjtcbiAgICB9XG4ubHZjYS1pY29uLWFycm93LXJpZ2h0MjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTFhXCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1hcnJvdy1yaWdodDM6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxYlwiO1xuICAgIH1cbi5sdmNhLWljb24tc3RhcnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxY1wiO1xuICAgIH1cbi5sdmNhLWljb24tY2xvc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxMVwiO1xuICAgIH1cbi5sdmNhLWljb24tbWVudTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTE0XCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1tZW51LTI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxNVwiO1xuICAgIH1cbi5sdmNhLWljb24tZW1haWw6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxMFwiO1xuICAgIH1cbi5sdmNhLWljb24tcGx1czpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTEyXCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1hcnJvdy1yaWdodC10b2dnbGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkxM1wiO1xuICAgIH1cbi5sdmNhLWljb24tYXJyb3ctbGVmdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTAwXCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1haW06YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwMlwiO1xuICAgIH1cbi5sdmNhLWljb24tYmVoYW5jZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTAzXCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1kcmliYmJsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTA0XCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTA1XCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1mbGlja3I6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwNlwiO1xuICAgIH1cbi5sdmNhLWljb24tZ29vZ2xlcGx1czpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTA3XCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1saW5rZWRpbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTA4XCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1waW50ZXJlc3Q6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwOVwiO1xuICAgIH1cbi5sdmNhLWljb24tc2t5cGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwYVwiO1xuICAgIH1cbi5sdmNhLWljb24tdHdpdHRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTBiXCI7XG4gICAgfVxuLmx2Y2EtaWNvbi12aW1lbzpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTBjXCI7XG4gICAgfVxuLmx2Y2EtaWNvbi16ZXJwbHk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwZFwiO1xuICAgIH1cbi5sdmNhLWljb24tcXVvdGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwZVwiO1xuICAgIH1cbi5sdmNhLWljb24tdmlkZW8tcGxheTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTBmXCI7XG4gICAgfVxuLmx2Y2EtaWNvbi1pbnN0YWdyYW06YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZWE5MlwiO1xuICAgIH1cblxuIl19 */
assets/css/lvca-admin.css.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"sources":["lvca-admin.scss"],"names":[],"mappings":"AACA;EACE,iBAAgB;EAChB,kBAAiB;EACjB,eAAc;EACd,mBAAkB,EAAA;;AAGpB,yEAAyE;AAGzE;EACE,oCAAmC;EACnC,yBAAwB,EAAA;;AAG1B;EACE,iBAAgB;EAChB,mBAAkB,EAAA;;AAGpB;EACE,oDAAmD,EAAA;;AAGrD;EACE,uDAAsD,EAAA;;AAGxD;EACE,qDAAoD,EAAA;;AAGtD;EACE,qDAAoD,EAAA;;AAGtD;EACE,qDAAoD,EAAA;;AAGtD;EACE,wDAAuD,EAAA;;AAGzD;EACE,qDAAoD,EAAA;;AAGtD;EACE,wDAAuD,EAAA;;AAGzD;EACE,mDAAkD,EAAA;;AAGpD;EACE,sDAAqD,EAAA;;AAGvD;EACE,mDAAkD,EAAA;;AAGpD;EACE,gDAA+C,EAAA;;AAGjD;EACE,2DAA0D,EAAA;;AAG5D;EACE,wDAAuD,EAAA;;AAGzD;EACE,2DAA0D,EAAA;;AAG5D;EACE,+DAA8D,EAAA;;AAGhE;EACE,mEAAkE,EAAA;;AAGpE;EACE,4DAA2D,EAAA;;AAG7D;EACE,wDAAuD,EAAA;;AAGzD;EACE,0DAAyD,EAAA;;AAG3D;EACE,oDAAmD,EAAA;;AAGrD;EACE,gDAA+C,EAAA;;AAGjD;EACE,yDAAwD,EAAA;;AAG1D;EACE,wDAAuD,EAAA;;AAGzD;EACE,kDAAiD,EAAA;;AAGnD;EACE,qDAAoD,EAAA;;AAGtD;EACE,yDAAwD,EAAA;;AAG1D;EACE,gDAA+C,EAAA;;AAGjD;EACE,mDAAkD,EAAA;;AAGpD;EACE,qDAAoD,EAAA;;AAGtD;EACE,oDAAmD,EAAA;;AAGrD;EACE,uDAAsD,EAAA;;AAGxD;EACE,+CAA8C,EAAA;;AAGhD;EACE,mDAAkD,EAAA;;AAGpD;EACE,kDAAiD,EAAA;;AAGnD;EACE,mDAAkD,EAAA;;AAGpD;EACE,uDAAsD,EAAA;;AAGxD;EACE,oDAAmD,EAAA;;AAGrD;EACE,oDAAmD,EAAA;;AAGrD;EACE,uDAAsD,EAAA;;AAGxD;EACE,mDAAkD,EAAA;;AAGpD;EACE,sDAAqD,EAAA;;AAGvD;EACE,iDAAgD,EAAA;;AAGlD;EACE,oDAAmD,EAAA","file":"lvca-admin.css"}
 
 
 
 
 
 
1
+ {
2
+ "version": 3,
3
+ "mappings": "AACA,2CAA4C;EAC1C,mBAAmB,EAAE,cAAc;EACnC,eAAe,EAAE,OAAO;;AAG1B,iDAAkD;EAChD,SAAS,EAAE,KAAK;EAChB,YAAY,EAAE,IAAI;;AAGpB,mCAAoC;EAClC,gBAAgB,EAAE,8BAA8B;;AAGlD,kCAAmC;EACjC,gBAAgB,EAAE,iCAAiC;;AAGrD,oCAAqC;EACnC,gBAAgB,EAAE,+BAA+B;;AAGnD,mCAAoC;EAClC,gBAAgB,EAAE,+BAA+B;;AAGnD,oCAAqC;EACnC,gBAAgB,EAAE,+BAA+B;;AAGnD,mCAAoC;EAClC,gBAAgB,EAAE,kCAAkC;;AAGtD,oCAAqC;EACnC,gBAAgB,EAAE,+BAA+B;;AAGnD,mCAAoC;EAClC,gBAAgB,EAAE,kCAAkC;;AAGtD,kCAAmC;EACjC,gBAAgB,EAAE,6BAA6B;;AAGjD,iCAAkC;EAChC,gBAAgB,EAAE,gCAAgC;;AAGpD,kCAAmC;EACjC,gBAAgB,EAAE,6BAA6B;;AAGjD,+BAAgC;EAC9B,gBAAgB,EAAE,0BAA0B;;AAG9C,sCAAuC;EACrC,gBAAgB,EAAE,qCAAqC;;AAGzD,uCAAwC;EACtC,gBAAgB,EAAE,kCAAkC;;AAGtD,sCAAuC;EACrC,gBAAgB,EAAE,qCAAqC;;AAGzD,8CAA+C;EAC7C,gBAAgB,EAAE,yCAAyC;;AAG7D,6CAA8C;EAC5C,gBAAgB,EAAE,6CAA6C;;AAGjE,mCAAoC;EAClC,gBAAgB,EAAE,sCAAsC;;AAG1D,wCAAyC;EACvC,gBAAgB,EAAE,kCAAkC;;AAGtD,yCAA0C;EACxC,gBAAgB,EAAE,oCAAoC;;AAGxD,oCAAqC;EACnC,gBAAgB,EAAE,+BAA+B;;AAGnD,wCAAyC;EACvC,gBAAgB,EAAE,mCAAmC;;AAGvD,kCAAmC;EACjC,gBAAgB,EAAE,kCAAkC;;AAGtD,iCAAkC;EAChC,gBAAgB,EAAE,4BAA4B;;AAGhD,oCAAqC;EACnC,gBAAgB,EAAE,+BAA+B;;AAGnD,gCAAiC;EAC/B,gBAAgB,EAAE,mCAAmC;;AAGvD,+BAAgC;EAC9B,gBAAgB,EAAE,0BAA0B;;AAG9C,8BAA+B;EAC7B,gBAAgB,EAAE,6BAA6B",
4
+ "sources": ["lvca-admin.scss"],
5
+ "names": [],
6
+ "file": "lvca-admin.css"
7
+ }
assets/css/lvca-admin.scss CHANGED
@@ -1,14 +1,4 @@
1
 
2
- .wrap.lvca-license-wrap form.lvca-license-box {
3
- max-width: 700px;
4
- background: white;
5
- margin: 20px 0;
6
- padding: 20px 30px;
7
- }
8
-
9
- /* =============== WPBakery Page Builder Elements ==================== */
10
-
11
-
12
  [class*=vc_element-icon][class*=icon-lvca-] {
13
  background-position: 0 0 !important;
14
  background-size: contain;
@@ -19,178 +9,114 @@ input[type=number].wpb_vc_param_value.lvca_number {
19
  margin-right: 10px;
20
  }
21
 
22
- .icon-lvca-services.vc_element-icon[data-is-container=true] {
23
- background-image: url(../images/admin/services.png);
24
  }
25
 
26
  .icon-lvca-service.vc_element-icon {
27
- background-image: url(../images/admin/service-add.png);
28
  }
29
 
30
- .icon-lvca-statsbars.vc_element-icon[data-is-container=true] {
31
- background-image: url(../images/admin/stats-bar.png);
32
  }
33
 
34
  .icon-lvca-statsbar.vc_element-icon {
35
- background-image: url(../images/admin/stats-bar.png);
36
  }
37
 
38
- .icon-lvca-piecharts.vc_element-icon[data-is-container=true] {
39
- background-image: url(../images/admin/piecharts.png);
40
  }
41
 
42
  .icon-lvca-piechart.vc_element-icon {
43
- background-image: url(../images/admin/piechart-add.png);
44
  }
45
 
46
- .icon-lvca-odometers.vc_element-icon[data-is-container=true] {
47
- background-image: url(../images/admin/odometers.png);
48
  }
49
 
50
  .icon-lvca-odometer.vc_element-icon {
51
- background-image: url(../images/admin/odometer-add.png);
52
  }
53
 
54
- .icon-lvca-clients.vc_element-icon[data-is-container=true] {
55
- background-image: url(../images/admin/clients.png);
56
  }
57
 
58
  .icon-lvca-client.vc_element-icon {
59
- background-image: url(../images/admin/client-add.png);
60
  }
61
 
62
  .icon-lvca-heading.vc_element-icon {
63
- background-image: url(../images/admin/heading.png);
64
  }
65
 
66
- .icon-lvca-team.vc_element-icon[data-is-container=true] {
67
- background-image: url(../images/admin/team.png);
68
  }
69
 
70
  .icon-lvca-team-member.vc_element-icon {
71
- background-image: url(../images/admin/team-member-add.png);
72
  }
73
 
74
- .icon-lvca-testimonials.vc_element-icon[data-is-container=true] {
75
- background-image: url(../images/admin/testimonials.png);
76
  }
77
 
78
  .icon-lvca-testimonial.vc_element-icon {
79
- background-image: url(../images/admin/testimonial-add.png);
80
  }
81
 
82
- .icon-lvca-testimonials-slider.vc_element-icon[data-is-container=true] {
83
- background-image: url(../images/admin/testimonials-slider.png);
84
  }
85
 
86
  .icon-lvca-testimonials-slide.vc_element-icon {
87
- background-image: url(../images/admin/testimonials-slider-add.png);
88
  }
89
 
90
- .icon-lvca-carousel.vc_element-icon[data-is-container=true] {
91
- background-image: url(../images/admin/generic-carousel.png);
92
  }
93
 
94
  .icon-lvca-carousel-item.vc_element-icon {
95
- background-image: url(../images/admin/carousel-add.png);
96
  }
97
 
98
  .icon-lvca-posts-carousel.vc_element-icon {
99
- background-image: url(../images/admin/posts-carousel.png);
100
  }
101
 
102
  .icon-lvca-portfolio.vc_element-icon {
103
- background-image: url(../images/admin/grid-alt.png);
104
  }
105
 
106
- .icon-lvca-posts-block.vc_element-icon {
107
- background-image: url(../images/admin/grid.png);
108
- }
109
-
110
- .icon-lvca-pricing-table.vc_element-icon[data-is-container=true] {
111
- background-image: url(../images/admin/pricing-table.png);
112
  }
113
 
114
  .icon-lvca-pricing.vc_element-icon {
115
- background-image: url(../images/admin/pricing-plan.png);
116
  }
117
 
118
  .icon-lvca-spacer.vc_element-icon {
119
- background-image: url(../images/admin/spacer.png);
120
  }
121
 
122
- .icon-lvca-accordion.vc_element-icon[data-is-container=true] {
123
- background-image: url(../images/admin/accordion.png);
124
  }
125
 
126
  .icon-lvca-panel.vc_element-icon {
127
- background-image: url(../images/admin/accordion-add.png);
128
  }
129
 
130
- .icon-lvca-tabs.vc_element-icon[data-is-container=true] {
131
- background-image: url(../images/admin/tabs.png);
132
  }
133
 
134
  .icon-lvca-tab.vc_element-icon {
135
- background-image: url(../images/admin/tab-add.png);
136
- }
137
-
138
- .icon-lvca-countdown.vc_element-icon {
139
- background-image: url(../images/admin/countdown.png);
140
- }
141
-
142
- .icon-lvca-features.vc_element-icon[data-is-container=true] {
143
- background-image: url(../images/admin/features.png);
144
- }
145
-
146
- .icon-lvca-feature-add.vc_element-icon {
147
- background-image: url(../images/admin/feature-add.png);
148
- }
149
-
150
- .icon-lvca-faq.vc_element-icon[data-is-container=true] {
151
- background-image: url(../images/admin/faq.png);
152
- }
153
-
154
- .icon-lvca-faq-add.vc_element-icon {
155
- background-image: url(../images/admin/faq-add.png);
156
- }
157
-
158
- .icon-lvca-button.vc_element-icon {
159
- background-image: url(../images/admin/button.png);
160
- }
161
-
162
- .icon-lvca-gallery.vc_element-icon[data-is-container=true] {
163
- background-image: url(../images/admin/gallery.png);
164
- }
165
-
166
- .icon-lvca-gallery-add.vc_element-icon {
167
- background-image: url(../images/admin/gallery-add.png);
168
- }
169
-
170
- .icon-lvca-gallery-carousel.vc_element-icon[data-is-container=true] {
171
- background-image: url(../images/admin/carousel.png);
172
- }
173
-
174
- .icon-lvca-image-slider.vc_element-icon[data-is-container=true] {
175
- background-image: url(../images/admin/sliders2.png);
176
- }
177
-
178
- .icon-lvca-image-slider-add.vc_element-icon {
179
- background-image: url(../images/admin/slider-add2.png);
180
- }
181
-
182
- .icon-lvca-slider.vc_element-icon[data-is-container=true] {
183
- background-image: url(../images/admin/sliders.png);
184
- }
185
-
186
- .icon-lvca-slider-add.vc_element-icon {
187
- background-image: url(../images/admin/slider-add.png);
188
- }
189
-
190
- .icon-lvca-icons.vc_element-icon[data-is-container=true] {
191
- background-image: url(../images/admin/icons.png);
192
- }
193
-
194
- .icon-lvca-icon-add.vc_element-icon {
195
- background-image: url(../images/admin/icon-add.png);
196
  }
1
 
 
 
 
 
 
 
 
 
 
 
2
  [class*=vc_element-icon][class*=icon-lvca-] {
3
  background-position: 0 0 !important;
4
  background-size: contain;
9
  margin-right: 10px;
10
  }
11
 
12
+ .icon-lvca-services.vc_element-icon {
13
+ background-image: url(../img/admin/services.png);
14
  }
15
 
16
  .icon-lvca-service.vc_element-icon {
17
+ background-image: url(../img/admin/service-add.png);
18
  }
19
 
20
+ .icon-lvca-statsbars.vc_element-icon {
21
+ background-image: url(../img/admin/stats-bar.png);
22
  }
23
 
24
  .icon-lvca-statsbar.vc_element-icon {
25
+ background-image: url(../img/admin/stats-bar.png);
26
  }
27
 
28
+ .icon-lvca-piecharts.vc_element-icon {
29
+ background-image: url(../img/admin/piecharts.png);
30
  }
31
 
32
  .icon-lvca-piechart.vc_element-icon {
33
+ background-image: url(../img/admin/piechart-add.png);
34
  }
35
 
36
+ .icon-lvca-odometers.vc_element-icon {
37
+ background-image: url(../img/admin/odometers.png);
38
  }
39
 
40
  .icon-lvca-odometer.vc_element-icon {
41
+ background-image: url(../img/admin/odometer-add.png);
42
  }
43
 
44
+ .icon-lvca-clients.vc_element-icon {
45
+ background-image: url(../img/admin/clients.png);
46
  }
47
 
48
  .icon-lvca-client.vc_element-icon {
49
+ background-image: url(../img/admin/client-add.png);
50
  }
51
 
52
  .icon-lvca-heading.vc_element-icon {
53
+ background-image: url(../img/admin/heading.png);
54
  }
55
 
56
+ .icon-lvca-team.vc_element-icon {
57
+ background-image: url(../img/admin/team.png);
58
  }
59
 
60
  .icon-lvca-team-member.vc_element-icon {
61
+ background-image: url(../img/admin/team-member-add.png);
62
  }
63
 
64
+ .icon-lvca-testimonials.vc_element-icon {
65
+ background-image: url(../img/admin/testimonials.png);
66
  }
67
 
68
  .icon-lvca-testimonial.vc_element-icon {
69
+ background-image: url(../img/admin/testimonial-add.png);
70
  }
71
 
72
+ .icon-lvca-testimonials-slider.vc_element-icon {
73
+ background-image: url(../img/admin/testimonials-slider.png);
74
  }
75
 
76
  .icon-lvca-testimonials-slide.vc_element-icon {
77
+ background-image: url(../img/admin/testimonials-slider-add.png);
78
  }
79
 
80
+ .icon-lvca-carousel.vc_element-icon {
81
+ background-image: url(../img/admin/generic-carousel.png);
82
  }
83
 
84
  .icon-lvca-carousel-item.vc_element-icon {
85
+ background-image: url(../img/admin/carousel-add.png);
86
  }
87
 
88
  .icon-lvca-posts-carousel.vc_element-icon {
89
+ background-image: url(../img/admin/posts-carousel.png);
90
  }
91
 
92
  .icon-lvca-portfolio.vc_element-icon {
93
+ background-image: url(../img/admin/portfolio.png);
94
  }
95
 
96
+ .icon-lvca-pricing-table.vc_element-icon {
97
+ background-image: url(../img/admin/pricing-table.png);
 
 
 
 
98
  }
99
 
100
  .icon-lvca-pricing.vc_element-icon {
101
+ background-image: url(../img/admin/pricing-plan.png);
102
  }
103
 
104
  .icon-lvca-spacer.vc_element-icon {
105
+ background-image: url(../img/admin/spacer.png);
106
  }
107
 
108
+ .icon-lvca-accordion.vc_element-icon {
109
+ background-image: url(../img/admin/accordion.png);
110
  }
111
 
112
  .icon-lvca-panel.vc_element-icon {
113
+ background-image: url(../img/admin/accordion-add.png);
114
  }
115
 
116
+ .icon-lvca-tabs.vc_element-icon {
117
+ background-image: url(../img/admin/tabs.png);
118
  }
119
 
120
  .icon-lvca-tab.vc_element-icon {
121
+ background-image: url(../img/admin/tab-add.png);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  }
assets/css/lvca-frontend.css ADDED
@@ -0,0 +1,663 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* --------------- Reset styles --------- */
2
+ .lvca-container, .lvca-grid-container {
3
+ -webkit-box-sizing: border-box;
4
+ box-sizing: border-box; }
5
+ .lvca-container *, .lvca-container *::after, .lvca-container *::before, .lvca-grid-container *, .lvca-grid-container *::after, .lvca-grid-container *::before {
6
+ -webkit-box-sizing: inherit;
7
+ box-sizing: inherit; }
8
+ .lvca-container ol, .lvca-container ul, .lvca-container ol > li, .lvca-container ul > li, .lvca-container ol:hover, .lvca-container ul:hover, .lvca-container ul > li:hover, .lvca-container ol > li:hover, .lvca-container ol > li > a, .lvca-container ul > li > a, .lvca-container ol > li > a:hover, .lvca-container ul > li > a:hover, .lvca-container img, .lvca-grid-container ol, .lvca-grid-container ul, .lvca-grid-container ol > li, .lvca-grid-container ul > li, .lvca-grid-container ol:hover, .lvca-grid-container ul:hover, .lvca-grid-container ul > li:hover, .lvca-grid-container ol > li:hover, .lvca-grid-container ol > li > a, .lvca-grid-container ul > li > a, .lvca-grid-container ol > li > a:hover, .lvca-grid-container ul > li > a:hover, .lvca-grid-container img {
9
+ padding: 0;
10
+ margin: 0;
11
+ border: none;
12
+ -webkit-box-shadow: none;
13
+ box-shadow: none;
14
+ list-style: none;
15
+ background: none; }
16
+ .lvca-container ol:before, .lvca-container ol:after, .lvca-container ul:before, .lvca-container ul:after, .lvca-container ol > li:before, .lvca-container ol > li:after, .lvca-container ul > li:before, .lvca-container ul > li:after, .lvca-container ol:hover:before, .lvca-container ol:hover:after, .lvca-container ul:hover:before, .lvca-container ul:hover:after, .lvca-container ul > li:hover:before, .lvca-container ul > li:hover:after, .lvca-container ol > li:hover:before, .lvca-container ol > li:hover:after, .lvca-container ol > li > a:before, .lvca-container ol > li > a:after, .lvca-container ul > li > a:before, .lvca-container ul > li > a:after, .lvca-container ol > li > a:hover:before, .lvca-container ol > li > a:hover:after, .lvca-container ul > li > a:hover:before, .lvca-container ul > li > a:hover:after, .lvca-container img:before, .lvca-container img:after, .lvca-grid-container ol:before, .lvca-grid-container ol:after, .lvca-grid-container ul:before, .lvca-grid-container ul:after, .lvca-grid-container ol > li:before, .lvca-grid-container ol > li:after, .lvca-grid-container ul > li:before, .lvca-grid-container ul > li:after, .lvca-grid-container ol:hover:before, .lvca-grid-container ol:hover:after, .lvca-grid-container ul:hover:before, .lvca-grid-container ul:hover:after, .lvca-grid-container ul > li:hover:before, .lvca-grid-container ul > li:hover:after, .lvca-grid-container ol > li:hover:before, .lvca-grid-container ol > li:hover:after, .lvca-grid-container ol > li > a:before, .lvca-grid-container ol > li > a:after, .lvca-grid-container ul > li > a:before, .lvca-grid-container ul > li > a:after, .lvca-grid-container ol > li > a:hover:before, .lvca-grid-container ol > li > a:hover:after, .lvca-grid-container ul > li > a:hover:before, .lvca-grid-container ul > li > a:hover:after, .lvca-grid-container img:before, .lvca-grid-container img:after {
17
+ display: none; }
18
+ .lvca-container a, .lvca-grid-container a {
19
+ text-decoration: initial; }
20
+ .lvca-container img, .lvca-grid-container img {
21
+ max-width: 100%;
22
+ width: auto;
23
+ height: auto; }
24
+
25
+ /* ------- General styles ------------ */
26
+ .lvca-container {
27
+ margin-left: auto;
28
+ margin-right: auto; }
29
+ .lvca-container::after {
30
+ clear: both;
31
+ content: "";
32
+ display: block; }
33
+
34
+ .panel-grid .widget {
35
+ border: 0; }
36
+
37
+ .lvca-center {
38
+ text-align: center; }
39
+
40
+ .lvca-grid-container {
41
+ margin-left: -20px;
42
+ margin-right: -20px;
43
+ width: calc(100% + 40px); }
44
+ .lvca-grid-container::after {
45
+ clear: both;
46
+ content: "";
47
+ display: block; }
48
+ .lvca-grid-container .lvca-grid-item {
49
+ min-height: 1px;
50
+ /* Prevents columns from collapsing when housing absolute elements or when lazy loading content */ }
51
+ @media (max-width: 479px) {
52
+ .lvca-grid-container.lvca-grid-mobile-2 .lvca-grid-item:nth-child(2n+1) {
53
+ clear: left; }
54
+ .lvca-grid-container.lvca-grid-mobile-3 .lvca-grid-item:nth-child(3n+1) {
55
+ clear: left; }
56
+ .lvca-grid-container.lvca-grid-mobile-4 .lvca-grid-item:nth-child(4n+1) {
57
+ clear: left; }
58
+ .lvca-grid-container.lvca-grid-mobile-5 .lvca-grid-item:nth-child(5n+1) {
59
+ clear: left; }
60
+ .lvca-grid-container.lvca-grid-mobile-6 .lvca-grid-item:nth-child(6n+1) {
61
+ clear: left; } }
62
+ @media (min-width: 480px) and (max-width: 800px) {
63
+ .lvca-grid-container.lvca-grid-tablet-2 .lvca-grid-item:nth-child(2n+1) {
64
+ clear: left; }
65
+ .lvca-grid-container.lvca-grid-tablet-3 .lvca-grid-item:nth-child(3n+1) {
66
+ clear: left; }
67
+ .lvca-grid-container.lvca-grid-tablet-4 .lvca-grid-item:nth-child(4n+1) {
68
+ clear: left; }
69
+ .lvca-grid-container.lvca-grid-tablet-5 .lvca-grid-item:nth-child(5n+1) {
70
+ clear: left; }
71
+ .lvca-grid-container.lvca-grid-tablet-6 .lvca-grid-item:nth-child(6n+1) {
72
+ clear: left; } }
73
+ @media only screen and (min-width: 801px) {
74
+ .lvca-grid-container.lvca-grid-desktop-2 .lvca-grid-item:nth-child(2n+1) {
75
+ clear: left; }
76
+ .lvca-grid-container.lvca-grid-desktop-3 .lvca-grid-item:nth-child(3n+1) {
77
+ clear: left; }
78
+ .lvca-grid-container.lvca-grid-desktop-4 .lvca-grid-item:nth-child(4n+1) {
79
+ clear: left; }
80
+ .lvca-grid-container.lvca-grid-desktop-5 .lvca-grid-item:nth-child(5n+1) {
81
+ clear: left; }
82
+ .lvca-grid-container.lvca-grid-desktop-6 .lvca-grid-item:nth-child(6n+1) {
83
+ clear: left; } }
84
+ .lvca-grid-container.lvca-grid-mobile-1 .lvca-grid-item {
85
+ width: calc(100% - 40px);
86
+ float: left;
87
+ margin-left: 20px; }
88
+ .lvca-grid-container.lvca-grid-mobile-2 .lvca-grid-item {
89
+ width: calc(50% - 30px);
90
+ float: left;
91
+ margin-left: 20px; }
92
+ .lvca-grid-container.lvca-grid-mobile-3 .lvca-grid-item {
93
+ width: calc(33.33333% - 26.66667px);
94
+ float: left;
95
+ margin-left: 20px; }
96
+ .lvca-grid-container.lvca-grid-mobile-4 .lvca-grid-item {
97
+ width: calc(25% - 25px);
98
+ float: left;
99
+ margin-left: 20px; }
100
+ .lvca-grid-container.lvca-grid-mobile-5 .lvca-grid-item {
101
+ width: calc(20% - 24px);
102
+ float: left;
103
+ margin-left: 20px; }
104
+ .lvca-grid-container.lvca-grid-mobile-6 .lvca-grid-item {
105
+ width: calc(16.66667% - 23.33333px);
106
+ float: left;
107
+ margin-left: 20px; }
108
+ @media only screen and (min-width: 480px) {
109
+ .lvca-grid-container.lvca-grid-tablet-1 .lvca-grid-item {
110
+ width: calc(100% - 40px);
111
+ float: left;
112
+ margin-left: 20px; }
113
+ .lvca-grid-container.lvca-grid-tablet-2 .lvca-grid-item {
114
+ width: calc(50% - 30px);
115
+ float: left;
116
+ margin-left: 20px; }
117
+ .lvca-grid-container.lvca-grid-tablet-3 .lvca-grid-item {
118
+ width: calc(33.33333% - 26.66667px);
119
+ float: left;
120
+ margin-left: 20px; }
121
+ .lvca-grid-container.lvca-grid-tablet-4 .lvca-grid-item {
122
+ width: calc(25% - 25px);
123
+ float: left;
124
+ margin-left: 20px; }
125
+ .lvca-grid-container.lvca-grid-tablet-5 .lvca-grid-item {
126
+ width: calc(20% - 24px);
127
+ float: left;
128
+ margin-left: 20px; }
129
+ .lvca-grid-container.lvca-grid-tablet-6 .lvca-grid-item {
130
+ width: calc(16.66667% - 23.33333px);
131
+ float: left;
132
+ margin-left: 20px; } }
133
+ @media only screen and (min-width: 801px) {
134
+ .lvca-grid-container.lvca-grid-desktop-1 .lvca-grid-item {
135
+ width: calc(100% - 40px);
136
+ float: left;
137
+ margin-left: 20px; }
138
+ .lvca-grid-container.lvca-grid-desktop-2 .lvca-grid-item {
139
+ width: calc(50% - 30px);
140
+ float: left;
141
+ margin-left: 20px; }
142
+ .lvca-grid-container.lvca-grid-desktop-3 .lvca-grid-item {
143
+ width: calc(33.33333% - 26.66667px);
144
+ float: left;
145
+ margin-left: 20px; }
146
+ .lvca-grid-container.lvca-grid-desktop-4 .lvca-grid-item {
147
+ width: calc(25% - 25px);
148
+ float: left;
149
+ margin-left: 20px; }
150
+ .lvca-grid-container.lvca-grid-desktop-5 .lvca-grid-item {
151
+ width: calc(20% - 24px);
152
+ float: left;
153
+ margin-left: 20px; }
154
+ .lvca-grid-container.lvca-grid-desktop-6 .lvca-grid-item {
155
+ width: calc(16.66667% - 23.33333px);
156
+ float: left;
157
+ margin-left: 20px; } }
158
+
159
+ /*--------- Gapless grid columns ----*/
160
+ .lvca-gapless-grid .lvca-grid-container {
161
+ margin-left: 0;
162
+ margin-right: 0;
163
+ width: auto; }
164
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-mobile-1 .lvca-grid-item {
165
+ width: calc(100%);
166
+ float: left;
167
+ margin-left: 0px; }
168
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-mobile-2 .lvca-grid-item {
169
+ width: calc(50%);
170
+ float: left;
171
+ margin-left: 0px; }
172
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-mobile-3 .lvca-grid-item {
173
+ width: calc(33.33333%);
174
+ float: left;
175
+ margin-left: 0px; }
176
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-mobile-4 .lvca-grid-item {
177
+ width: calc(25%);
178
+ float: left;
179
+ margin-left: 0px; }
180
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-mobile-5 .lvca-grid-item {
181
+ width: calc(20%);
182
+ float: left;
183
+ margin-left: 0px; }
184
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-mobile-6 .lvca-grid-item {
185
+ width: calc(16.66667%);
186
+ float: left;
187
+ margin-left: 0px; }
188
+ @media only screen and (min-width: 480px) {
189
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-tablet-1 .lvca-grid-item {
190
+ width: calc(100%);
191
+ float: left;
192
+ margin-left: 0px; }
193
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-tablet-2 .lvca-grid-item {
194
+ width: calc(50%);
195
+ float: left;
196
+ margin-left: 0px; }
197
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-tablet-3 .lvca-grid-item {
198
+ width: calc(33.33333%);
199
+ float: left;
200
+ margin-left: 0px; }
201
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-tablet-4 .lvca-grid-item {
202
+ width: calc(25%);
203
+ float: left;
204
+ margin-left: 0px; }
205
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-tablet-5 .lvca-grid-item {
206
+ width: calc(20%);
207
+ float: left;
208
+ margin-left: 0px; }
209
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-tablet-6 .lvca-grid-item {
210
+ width: calc(16.66667%);
211
+ float: left;
212
+ margin-left: 0px; } }
213
+ @media only screen and (min-width: 801px) {
214
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-desktop-1 .lvca-grid-item {
215
+ width: calc(100%);
216
+ float: left;
217
+ margin-left: 0px; }
218
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-desktop-2 .lvca-grid-item {
219
+ width: calc(50%);
220
+ float: left;
221
+ margin-left: 0px; }
222
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-desktop-3 .lvca-grid-item {
223
+ width: calc(33.33333%);
224
+ float: left;
225
+ margin-left: 0px; }
226
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-desktop-4 .lvca-grid-item {
227
+ width: calc(25%);
228
+ float: left;
229
+ margin-left: 0px; }
230
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-desktop-5 .lvca-grid-item {
231
+ width: calc(20%);
232
+ float: left;
233
+ margin-left: 0px; }
234
+ .lvca-gapless-grid .lvca-grid-container.lvca-grid-desktop-6 .lvca-grid-item {
235
+ width: calc(16.66667%);
236
+ float: left;
237
+ margin-left: 0px; } }
238
+
239
+ /* ---------- Masonry Layout Grid columns -------------*/
240
+ .lvca-gapless-grid .lvca-masonry {
241
+ /* Clear the omega for masonry layout */ }
242
+ .lvca-gapless-grid .lvca-masonry .lvca-grid-item {
243
+ clear: none !important; }
244
+ .lvca-gapless-grid .lvca-masonry .lvca-grid-sizer {
245
+ width: calc(8.33333%);
246
+ float: left;
247
+ margin-left: 0px; }
248
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-mobile-1 .lvca-grid-item.lvca-wide {
249
+ width: calc(100%);
250
+ float: left;
251
+ margin-left: 0px; }
252
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-mobile-2 .lvca-grid-item.lvca-wide {
253
+ width: calc(50%);
254
+ float: left;
255
+ margin-left: 0px; }
256
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-mobile-3 .lvca-grid-item.lvca-wide {
257
+ width: calc(66.66667%);
258
+ float: left;
259
+ margin-left: 0px; }
260
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-mobile-4 .lvca-grid-item.lvca-wide {
261
+ width: calc(50%);
262
+ float: left;
263
+ margin-left: 0px; }
264
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-mobile-5 .lvca-grid-item.lvca-wide {
265
+ width: calc(40%);
266
+ float: left;
267
+ margin-left: 0px; }
268
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-mobile-6 .lvca-grid-item.lvca-wide {
269
+ width: calc(33.33333%);
270
+ float: left;
271
+ margin-left: 0px; }
272
+ @media only screen and (min-width: 480px) {
273
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-tablet-1 .lvca-grid-item.lvca-wide {
274
+ width: calc(100%);
275
+ float: left;
276
+ margin-left: 0px; }
277
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-tablet-2 .lvca-grid-item.lvca-wide {
278
+ width: calc(50%);
279
+ float: left;
280
+ margin-left: 0px; }
281
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-tablet-3 .lvca-grid-item.lvca-wide {
282
+ width: calc(66.66667%);
283
+ float: left;
284
+ margin-left: 0px; }
285
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-tablet-4 .lvca-grid-item.lvca-wide {
286
+ width: calc(50%);
287
+ float: left;
288
+ margin-left: 0px; }
289
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-tablet-5 .lvca-grid-item.lvca-wide {
290
+ width: calc(40%);
291
+ float: left;
292
+ margin-left: 0px; }
293
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-tablet-6 .lvca-grid-item.lvca-wide {
294
+ width: calc(33.33333%);
295
+ float: left;
296
+ margin-left: 0px; } }
297
+ @media only screen and (min-width: 801px) {
298
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-desktop-1 .lvca-grid-item.lvca-wide {
299
+ width: calc(100%);
300
+ float: left;
301
+ margin-left: 0px; }
302
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-desktop-2 .lvca-grid-item.lvca-wide {
303
+ width: calc(50%);
304
+ float: left;
305
+ margin-left: 0px; }
306
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-desktop-3 .lvca-grid-item.lvca-wide {
307
+ width: calc(66.66667%);
308
+ float: left;
309
+ margin-left: 0px; }
310
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-desktop-4 .lvca-grid-item.lvca-wide {
311
+ width: calc(50%);
312
+ float: left;
313
+ margin-left: 0px; }
314
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-desktop-5 .lvca-grid-item.lvca-wide {
315
+ width: calc(40%);
316
+ float: left;
317
+ margin-left: 0px; }
318
+ .lvca-gapless-grid .lvca-masonry.lvca-grid-desktop-6 .lvca-grid-item.lvca-wide {
319
+ width: calc(33.33333%);
320
+ float: left;
321
+ margin-left: 0px; } }
322
+
323
+ /* --------------- Flexslider Styles -------------- */
324
+ .lvca-container .lvca-thumbnailslider.lvca-flexslider {
325
+ margin-top: 15px; }
326
+ .lvca-container .lvca-thumbnailslider.lvca-flexslider .lvca-slide {
327
+ margin: 0 5px 0 0; }
328
+ .lvca-container .lvca-thumbnailslider.lvca-flexslider .lvca-slide img {
329
+ display: block;
330
+ opacity: .5;
331
+ cursor: pointer; }
332
+ .lvca-container .lvca-thumbnailslider.lvca-flexslider .lvca-slide img:hover {
333
+ opacity: 1; }
334
+ .lvca-container .lvca-thumbnailslider.lvca-flexslider .lvca-slide.lvca-flex-active-slide img {
335
+ opacity: 1;
336
+ cursor: default; }
337
+ .lvca-container .lvca-flex-direction-nav {
338
+ padding: 0 !important;
339
+ margin: 0 !important; }
340
+ .lvca-container .lvca-flex-direction-nav li {
341
+ position: initial; }
342
+ .lvca-container .lvca-flex-direction-nav a, .lvca-container .lvca-flex-direction-nav a:hover {
343
+ opacity: 1;
344
+ text-shadow: none;
345
+ background: none;
346
+ color: #888;
347
+ font-family: 'lvca-icomoon' !important;
348
+ speak: none;
349
+ font-style: normal;
350
+ font-weight: normal;
351
+ font-variant: normal;
352
+ text-transform: none;
353
+ line-height: 1;
354
+ -webkit-font-smoothing: antialiased;
355
+ -moz-osx-font-smoothing: grayscale;
356
+ font-size: 24px;
357
+ width: 28px;
358
+ height: 28px;
359
+ margin: -14px 0 0;
360
+ bottom: initial;
361
+ left: initial;
362
+ right: initial;
363
+ top: 50%;
364
+ text-indent: 0;
365
+ text-align: center;
366
+ color: #aaa;
367
+ -webkit-transition: all 0.3s ease-in-out 0s;
368
+ transition: all 0.3s ease-in-out 0s;
369
+ outline: none; }
370
+ .lvca-container .lvca-flex-direction-nav a:before, .lvca-container .lvca-flex-direction-nav a:hover:before, .lvca-container .lvca-flex-direction-nav a:hover:before, .lvca-container .lvca-flex-direction-nav a:hover:hover:before {
371
+ margin: 2px;
372
+ vertical-align: middle;
373
+ display: inline;
374
+ font-family: inherit !important;
375
+ opacity: 1; }
376
+ .lvca-container .lvca-flex-direction-nav a:hover, .lvca-container .lvca-flex-direction-nav a:hover:hover {
377
+ color: #888; }
378
+ .lvca-dark-bg .lvca-container .lvca-flex-direction-nav a, .lvca-dark-bg .lvca-container .lvca-flex-direction-nav a:hover {
379
+ color: #888; }
380
+ .lvca-dark-bg .lvca-container .lvca-flex-direction-nav a:hover, .lvca-dark-bg .lvca-container .lvca-flex-direction-nav a:hover:hover {
381
+ color: #aaa; }
382
+ @media only screen and (max-width: 960px) {
383
+ .lvca-container .lvca-flex-direction-nav a, .lvca-container .lvca-flex-direction-nav a:hover {
384
+ display: none;
385
+ /* Let users navigate via touch */ } }
386
+ .lvca-container .lvca-flex-direction-nav a.lvca-flex-prev {
387
+ left: -30px; }
388
+ .lvca-container .lvca-flex-direction-nav a.lvca-flex-prev:before {
389
+ content: "\e900"; }
390
+ .lvca-container .lvca-flex-direction-nav a.lvca-flex-next {
391
+ right: -30px; }
392
+ .lvca-container .lvca-flex-direction-nav a.lvca-flex-next:before {
393
+ content: "\e901"; }
394
+ .lvca-container .lvca-flex-control-nav {
395
+ width: 100%;
396
+ position: absolute;
397
+ bottom: -40px;
398
+ text-align: center;
399
+ padding: 0 !important;
400
+ margin: 0 !important; }
401
+ .lvca-container .lvca-flex-control-nav li, .lvca-container .lvca-flex-control-nav li:hover {
402
+ margin: 0 8px 0 0;
403
+ padding: 0;
404
+ border: none;
405
+ -webkit-box-shadow: none;
406
+ box-shadow: none; }
407
+ .lvca-container .lvca-flex-control-nav li a, .lvca-container .lvca-flex-control-nav li a:hover {
408
+ background: #aaa;
409
+ border: 1px solid #aaa;
410
+ border-radius: 50%;
411
+ width: 12px;
412
+ height: 12px;
413
+ -webkit-box-shadow: none;
414
+ box-shadow: none;
415
+ -webkit-transition: all 0.2s ease-in 0s;
416
+ transition: all 0.2s ease-in 0s;
417
+ display: inline-block;
418
+ vertical-align: middle;
419
+ outline: none; }
420
+ .lvca-dark-bg .lvca-container .lvca-flex-control-nav li a, .lvca-dark-bg .lvca-container .lvca-flex-control-nav li a:hover {
421
+ background: #ccc;
422
+ border-color: #ccc; }
423
+ .lvca-container .lvca-flex-control-nav li a.lvca-flex-active, .lvca-container .lvca-flex-control-nav li a:hover.lvca-flex-active, .lvca-container .lvca-flex-control-nav li a:hover {
424
+ background: none; }
425
+ .lvca-container .lvca-flex-control-nav li a.lvca-flex-active, .lvca-container .lvca-flex-control-nav li a:hover.lvca-flex-active {
426
+ width: 14px;
427
+ height: 14px; }
428
+ .lvca-container .lvca-flex-control-thumbs {
429
+ bottom: -120px; }
430
+ @media only screen and (max-width: 600px) {
431
+ .lvca-container .lvca-flex-control-thumbs {
432
+ bottom: -80px; } }
433
+ .lvca-container .lvca-flex-control-thumbs li {
434
+ width: auto;
435
+ float: none; }
436
+ .lvca-container .lvca-flex-control-thumbs li img {
437
+ max-width: 100%;
438
+ width: 150px; }
439
+ @media only screen and (max-width: 600px) {
440
+ .lvca-container .lvca-flex-control-thumbs li img {
441
+ width: 100px; } }
442
+
443
+ /* Sleek Carousel Styles */
444
+ .slick-loading .slick-list {
445
+ background: #fff url("./ajax-loader.gif") center center no-repeat; }
446
+
447
+ .lvca-container button.slick-prev, .lvca-container button.slick-next {
448
+ position: absolute;
449
+ bottom: initial;
450
+ left: initial;
451
+ right: initial;
452
+ top: 50%;
453
+ width: 28px;
454
+ height: 28px;
455
+ margin: -14px 0 0; }
456
+ .lvca-container button.slick-prev, .lvca-container button.slick-prev:before, .lvca-container button.slick-prev:after, .lvca-container button.slick-next, .lvca-container button.slick-next:before, .lvca-container button.slick-next:after {
457
+ text-shadow: none;
458
+ background: none !important;
459
+ border: none;
460
+ padding: 0;
461
+ opacity: 1;
462
+ font-family: 'lvca-icomoon' !important;
463
+ speak: none;
464
+ font-style: normal;
465
+ font-weight: normal;
466
+ font-variant: normal;
467
+ text-transform: none;
468
+ line-height: 1;
469
+ -webkit-font-smoothing: antialiased;
470
+ -moz-osx-font-smoothing: grayscale;
471
+ font-size: 24px;
472
+ color: #aaa !important;
473
+ overflow: hidden;
474
+ -webkit-box-shadow: none;
475
+ box-shadow: none;
476
+ outline: none;
477
+ text-indent: 0;
478
+ text-align: center;
479
+ -webkit-transition: all 0.3s ease-in-out 0s;
480
+ transition: all 0.3s ease-in-out 0s; }
481
+ .lvca-container button.slick-prev:before, .lvca-container button.slick-next:before {
482
+ margin: 2px;
483
+ vertical-align: middle; }
484
+ .lvca-container button.slick-prev:hover:before, .lvca-container button.slick-prev:hover:after, .lvca-container button.slick-next:hover:before, .lvca-container button.slick-next:hover:after {
485
+ color: #888 !important; }
486
+ .lvca-dark-bg .lvca-container button.slick-prev:before, .lvca-dark-bg .lvca-container button.slick-prev:after, .lvca-dark-bg .lvca-container button.slick-next:before, .lvca-dark-bg .lvca-container button.slick-next:after {
487
+ color: #888 !important; }
488
+ .lvca-dark-bg .lvca-container button.slick-prev:hover:before, .lvca-dark-bg .lvca-container button.slick-prev:hover:after, .lvca-dark-bg .lvca-container button.slick-next:hover:before, .lvca-dark-bg .lvca-container button.slick-next:hover:after {
489
+ color: #aaa !important;
490
+ background: none !important; }
491
+ @media only screen and (max-width: 1024px) {
492
+ .lvca-container button.slick-prev, .lvca-container button.slick-next {
493
+ display: none !important;
494
+ /* Let users navigate via touch */ } }
495
+ .lvca-container button.slick-prev {
496
+ left: -40px; }
497
+ .lvca-container button.slick-prev:before {
498
+ content: "\e900"; }
499
+ .lvca-container button.slick-next {
500
+ right: -40px; }
501
+ .lvca-container button.slick-next:before {
502
+ content: "\e901"; }
503
+ .lvca-container ul.slick-dots {
504
+ width: 100%;
505
+ position: absolute;
506
+ bottom: -30px;
507
+ text-align: center;
508
+ padding: 0 !important;
509
+ margin: 0 !important; }
510
+ .lvca-container ul.slick-dots li {
511
+ margin: 0 8px 0 0 !important;
512
+ padding: 0 !important;
513
+ display: inline-block;
514
+ font-size: 0; }
515
+ .lvca-container ul.slick-dots li button {
516
+ padding: 0;
517
+ background: #aaa;
518
+ border: 1px solid #aaa;
519
+ border-radius: 50%;
520
+ width: 12px;
521
+ height: 12px;
522
+ -webkit-box-shadow: none;
523
+ box-shadow: none;
524
+ -webkit-transition: background 0.3s ease-in-out 0s;
525
+ transition: background 0.3s ease-in-out 0s;
526
+ font-size: 0;
527
+ outline: none; }
528
+ .lvca-dark-bg .lvca-container ul.slick-dots li button {
529
+ background: #888 !important;
530
+ border-color: #888 !important; }
531
+ .lvca-container ul.slick-dots li button:hover, .lvca-container ul.slick-dots li.slick-active button {
532
+ background: none !important;
533
+ border-color: #aaa !important; }
534
+ .lvca-container ul.slick-dots li.slick-active button {
535
+ width: 14px;
536
+ height: 14px; }
537
+
538
+ /* -------- Widget separator headline ------------ */
539
+ .lvca-widget-heading {
540
+ font-size: 18px;
541
+ line-height: 26px;
542
+ letter-spacing: 1px;
543
+ font-weight: bold;
544
+ color: #333;
545
+ text-transform: uppercase;
546
+ clear: none;
547
+ margin-top: 0;
548
+ margin-bottom: 10px;
549
+ font-size: 40px;
550
+ line-height: 52px;
551
+ text-align: center; }
552
+ @media only screen and (max-width: 767px) {
553
+ .lvca-widget-heading {
554
+ font-size: 32px;
555
+ line-height: 44px; } }
556
+
557
+ /* -------- Spacer styling ----------- */
558
+ .lvca-spacer {
559
+ clear: both; }
560
+
561
+ /* --------------- Button CSS -------------------- */
562
+ input.lvca-button, button.lvca-button, a.lvca-button, .lvca-button:active, .lvca-button:visited {
563
+ display: inline-block;
564
+ text-align: center;
565
+ line-height: 1;
566
+ cursor: pointer;
567
+ -webkit-appearance: none;
568
+ vertical-align: middle;
569
+ border: 1px solid transparent;
570
+ border-radius: 3px;
571
+ padding: 16px 40px;
572
+ margin: 0;
573
+ font-size: 12px;
574
+ font-weight: normal;
575
+ text-transform: uppercase;
576
+ letter-spacing: 2px;
577
+ background-color: #f94213;
578
+ color: #fefefe;
579
+ outline: none;
580
+ -webkit-transition: all 0.4s ease-in-out 0s;
581
+ transition: all 0.4s ease-in-out 0s; }
582
+ input.lvca-button.lvca-rounded, button.lvca-button.lvca-rounded, a.lvca-button.lvca-rounded, .lvca-button:active.lvca-rounded, .lvca-button:visited.lvca-rounded {
583
+ border-radius: 999px; }
584
+ input.lvca-button.lvca-large, button.lvca-button.lvca-large, a.lvca-button.lvca-large, .lvca-button:active.lvca-large, .lvca-button:visited.lvca-large {
585
+ padding: 20px 60px; }
586
+ input.lvca-button.lvca-small, button.lvca-button.lvca-small, a.lvca-button.lvca-small, .lvca-button:active.lvca-small, .lvca-button:visited.lvca-small {
587
+ padding: 12px 25px;
588
+ font-size: 11px; }
589
+ input.lvca-button:hover, button.lvca-button:hover, a.lvca-button:hover, .lvca-button:active:hover, .lvca-button:visited:hover {
590
+ background-color: #f9633e;
591
+ color: #fefefe; }
592
+ input.lvca-button img, input.lvca-button span.lvca-icon, button.lvca-button img, button.lvca-button span.lvca-icon, a.lvca-button img, a.lvca-button span.lvca-icon, .lvca-button:active img, .lvca-button:active span.lvca-icon, .lvca-button:visited img, .lvca-button:visited span.lvca-icon {
593
+ margin-right: 10px; }
594
+
595
+ .lvca-button.lvca-black {
596
+ background-color: #363636; }
597
+
598
+ .lvca-button.lvca-black:hover {
599
+ background-color: #434343; }
600
+
601
+ .lvca-button.lvca-blue {
602
+ background-color: #46a5d5; }
603
+
604
+ .lvca-button.lvca-blue:hover {
605
+ background-color: #5bafda; }
606
+
607
+ .lvca-button.lvca-cyan {
608
+ background-color: #57c0dc; }
609
+
610
+ .lvca-button.lvca-cyan:hover {
611
+ background-color: #6cc8e0; }
612
+
613
+ .lvca-button.lvca-green {
614
+ background-color: #00a57d; }
615
+
616
+ .lvca-button.lvca-green:hover {
617
+ background-color: #00bf90; }
618
+
619
+ .lvca-button.lvca-orange {
620
+ background-color: #e87151; }
621
+
622
+ .lvca-button.lvca-orange:hover {
623
+ background-color: #eb8368; }
624
+
625
+ .lvca-button.lvca-pink {
626
+ background-color: #dd5679; }
627
+
628
+ .lvca-button.lvca-pink:hover {
629
+ background-color: #e16b8a; }
630
+
631
+ .lvca-button.lvca-red {
632
+ background-color: #da4f49; }
633
+
634
+ .lvca-button.lvca-red:hover {
635
+ background-color: #de635e; }
636
+
637
+ .lvca-button.lvca-teal {
638
+ background-color: #28c2ba; }
639
+
640
+ .lvca-button.lvca-teal:hover {
641
+ background-color: #2fd4cc; }
642
+
643
+ .lvca-button.lvca-trans {
644
+ color: #333;
645
+ background-color: transparent;
646
+ /* IE */
647
+ background-color: rgba(0, 0, 0, 0);
648
+ border: 2px solid #a5a5a5; }
649
+ .lvca-button.lvca-trans:hover {
650
+ background-color: #fff;
651
+ color: #333 !important;
652
+ border-color: #fff; }
653
+
654
+ .lvca-button.lvca-semitrans {
655
+ color: #fff;
656
+ background-color: transparent;
657
+ /* IE */
658
+ background-color: rgba(125, 125, 125, 0.5); }
659
+ .lvca-button.lvca-semitrans:hover {
660
+ background-color: #fff;
661
+ color: #333 !important; }
662
+
663
+ /*# sourceMappingURL=lvca-frontend.css.map */
assets/css/lvca-frontend.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["lvca-frontend.scss","_lvca-lib.scss","../../../../bower_components/neat/core/neat/mixins/_grid-collapse.scss","../../../../bower_components/neat/core/neat/mixins/_grid-container.scss","../../../../bower_components/neat/core/neat/mixins/_grid-media.scss","../../../../bower_components/neat/core/neat/mixins/_grid-column.scss","../../../../bower_components/neat/core/neat/functions/_neat-float-direction.scss"],"names":[],"mappings":"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","file":"lvca-frontend.css"}
assets/css/lvca-frontend.scss ADDED
@@ -0,0 +1,878 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "bourbon";
2
+ @import "neat";
3
+ @import "grid-settings";
4
+ @import "lvca-lib";
5
+
6
+ /* --------------- Reset styles --------- */
7
+
8
+ .lvca-container, .lvca-grid-container {
9
+ box-sizing: border-box;
10
+ *, *::after, *::before {
11
+ box-sizing: inherit;
12
+ }
13
+ ol, ul, ol > li, ul > li, ol:hover, ul:hover, ul > li:hover, ol > li:hover, ol > li > a, ul > li > a, ol > li > a:hover, ul > li > a:hover, img {
14
+ padding: 0;
15
+ margin: 0;
16
+ border: none;
17
+ box-shadow: none;
18
+ list-style: none;
19
+ background: none;
20
+ &:before, &:after {
21
+ display: none;
22
+ }
23
+ }
24
+ a {
25
+ text-decoration: initial;
26
+ }
27
+ img {
28
+ max-width: 100%;
29
+ width: auto;
30
+ height: auto;
31
+ }
32
+ }
33
+ /* ------- General styles ------------ */
34
+
35
+ .lvca-container {
36
+ @include lvca-container;
37
+ margin-left: auto;
38
+ margin-right: auto;
39
+ }
40
+ .panel-grid .widget {
41
+ border: 0;
42
+ }
43
+ .lvca-center {
44
+ text-align: center;
45
+ }
46
+ .lvca-grid-container {
47
+ @include grid-container;
48
+ @include grid-collapse();
49
+
50
+ .lvca-grid-item {
51
+ min-height: 1px; /* Prevents columns from collapsing when housing absolute elements or when lazy loading content */
52
+ }
53
+
54
+ @include grid-media($lvca-mobile-only-grid) {
55
+ &.lvca-grid-mobile-2 {
56
+ .lvca-grid-item {
57
+ @include omega(2n);
58
+ }
59
+ }
60
+
61
+ &.lvca-grid-mobile-3 {
62
+ .lvca-grid-item {
63
+ @include omega(3n);
64
+ }
65
+ }
66
+
67
+ &.lvca-grid-mobile-4 {
68
+ .lvca-grid-item {
69
+ @include omega(4n);
70
+ }
71
+ }
72
+
73
+ &.lvca-grid-mobile-5 {
74
+ .lvca-grid-item {
75
+ @include omega(5n);
76
+ }
77
+ }
78
+
79
+ &.lvca-grid-mobile-6 {
80
+ .lvca-grid-item {
81
+ @include omega(6n);
82
+ }
83
+ }
84
+ }
85
+
86
+ @include grid-media($lvca-tablet-only-grid) {
87
+ &.lvca-grid-tablet-2 {
88
+ .lvca-grid-item {
89
+ @include omega(2n);
90
+ }
91
+ }
92
+
93
+ &.lvca-grid-tablet-3 {
94
+ .lvca-grid-item {
95
+ @include omega(3n);
96
+ }
97
+ }
98
+
99
+ &.lvca-grid-tablet-4 {
100
+ .lvca-grid-item {
101
+ @include omega(4n);
102
+ }
103
+ }
104
+
105
+ &.lvca-grid-tablet-5 {
106
+ .lvca-grid-item {
107
+ @include omega(5n);
108
+ }
109
+ }
110
+
111
+ &.lvca-grid-tablet-6 {
112
+ .lvca-grid-item {
113
+ @include omega(6n);
114
+ }
115
+ }
116
+ }
117
+ @include grid-media($lvca-desktop-grid) {
118
+ &.lvca-grid-desktop-2 {
119
+ .lvca-grid-item {
120
+ @include omega(2n);
121
+ }
122
+ }
123
+
124
+ &.lvca-grid-desktop-3 {
125
+ .lvca-grid-item {
126
+ @include omega(3n);
127
+ }
128
+ }
129
+
130
+ &.lvca-grid-desktop-4 {
131
+ .lvca-grid-item {
132
+ @include omega(4n);
133
+ }
134
+ }
135
+
136
+ &.lvca-grid-desktop-5 {
137
+ .lvca-grid-item {
138
+ @include omega(5n);
139
+ }
140
+ }
141
+
142
+ &.lvca-grid-desktop-6 {
143
+ .lvca-grid-item {
144
+ @include omega(6n);
145
+ }
146
+ }
147
+ }
148
+
149
+
150
+
151
+ &.lvca-grid-mobile-1 {
152
+
153
+ .lvca-grid-item {
154
+ @include grid-column(12);
155
+ }
156
+ }
157
+ &.lvca-grid-mobile-2 {
158
+
159
+ .lvca-grid-item {
160
+ @include grid-column(6);
161
+ }
162
+ }
163
+
164
+ &.lvca-grid-mobile-3 {
165
+
166
+ .lvca-grid-item {
167
+ @include grid-column(4);
168
+ }
169
+ }
170
+
171
+ &.lvca-grid-mobile-4 {
172
+
173
+ .lvca-grid-item {
174
+ @include grid-column(3);
175
+ }
176
+ }
177
+
178
+ &.lvca-grid-mobile-5 {
179
+
180
+ .lvca-grid-item {
181
+ @include grid-column(1, $lvca-five-col-grid);
182
+ }
183
+ }
184
+
185
+ &.lvca-grid-mobile-6 {
186
+
187
+ .lvca-grid-item {
188
+ @include grid-column(2);
189
+ }
190
+ }
191
+
192
+ @include grid-media($lvca-tablet-grid) {
193
+
194
+ &.lvca-grid-tablet-1 {
195
+
196
+ .lvca-grid-item {
197
+ @include grid-column(12);
198
+ }
199
+ }
200
+ &.lvca-grid-tablet-2 {
201
+
202
+ .lvca-grid-item {
203
+ @include grid-column(6);
204
+ }
205
+ }
206
+
207
+ &.lvca-grid-tablet-3 {
208
+
209
+ .lvca-grid-item {
210
+ @include grid-column(4);
211
+ }
212
+ }
213
+
214
+ &.lvca-grid-tablet-4 {
215
+
216
+ .lvca-grid-item {
217
+ @include grid-column(3);
218
+ }
219
+ }
220
+
221
+ &.lvca-grid-tablet-5 {
222
+
223
+ .lvca-grid-item {
224
+ @include grid-column(1, $lvca-five-col-grid);
225
+ }
226
+ }
227
+
228
+ &.lvca-grid-tablet-6 {
229
+
230
+ .lvca-grid-item {
231
+ @include grid-column(2);
232
+ }
233
+ }
234
+ }
235
+
236
+ @include grid-media($lvca-desktop-grid) {
237
+
238
+ &.lvca-grid-desktop-1 {
239
+
240
+ .lvca-grid-item {
241
+ @include grid-column(12);
242
+ }
243
+ }
244
+ &.lvca-grid-desktop-2 {
245
+
246
+ .lvca-grid-item {
247
+ @include grid-column(6);
248
+ }
249
+ }
250
+
251
+ &.lvca-grid-desktop-3 {
252
+
253
+ .lvca-grid-item {
254
+ @include grid-column(4);
255
+ }
256
+ }
257
+
258
+ &.lvca-grid-desktop-4 {
259
+
260
+ .lvca-grid-item {
261
+ @include grid-column(3);
262
+ }
263
+ }
264
+
265
+ &.lvca-grid-desktop-5 {
266
+
267
+ .lvca-grid-item {
268
+ @include grid-column(1, $lvca-five-col-grid);
269
+ }
270
+ }
271
+
272
+ &.lvca-grid-desktop-6 {
273
+
274
+ .lvca-grid-item {
275
+ @include grid-column(2);
276
+ }
277
+ }
278
+ }
279
+ }
280
+ /*--------- Gapless grid columns ----*/
281
+
282
+ .lvca-gapless-grid {
283
+
284
+ .lvca-grid-container {
285
+ margin-left: 0;
286
+ margin-right: 0;
287
+ width: auto;
288
+
289
+ &.lvca-grid-mobile-1 {
290
+
291
+ .lvca-grid-item {
292
+ @include grid-column(12, $lvca-gapless-grid);
293
+ }
294
+ }
295
+ &.lvca-grid-mobile-2 {
296
+
297
+ .lvca-grid-item {
298
+ @include grid-column(6, $lvca-gapless-grid);
299
+ }
300
+ }
301
+
302
+ &.lvca-grid-mobile-3 {
303
+
304
+ .lvca-grid-item {
305
+ @include grid-column(4, $lvca-gapless-grid);
306
+ }
307
+ }
308
+
309
+ &.lvca-grid-mobile-4 {
310
+
311
+ .lvca-grid-item {
312
+ @include grid-column(3, $lvca-gapless-grid);
313
+ }
314
+ }
315
+
316
+ &.lvca-grid-mobile-5 {
317
+ .lvca-grid-item {
318
+ @include grid-column(1, $lvca-gapless-five-col-grid);
319
+ }
320
+ }
321
+
322
+ &.lvca-grid-mobile-6 {
323
+
324
+ .lvca-grid-item {
325
+ @include grid-column(2, $lvca-gapless-grid);
326
+ }
327
+ }
328
+
329
+ @include grid-media($lvca-tablet-grid) {
330
+
331
+ &.lvca-grid-tablet-1 {
332
+ .lvca-grid-item {
333
+ @include grid-column(12, $lvca-gapless-grid);
334
+ }
335
+ }
336
+
337
+ &.lvca-grid-tablet-2 {
338
+ .lvca-grid-item {
339
+ @include grid-column(6, $lvca-gapless-grid);
340
+ }
341
+ }
342
+
343
+ &.lvca-grid-tablet-3 {
344
+ .lvca-grid-item {
345
+ @include grid-column(4, $lvca-gapless-grid);
346
+ }
347
+ }
348
+ &.lvca-grid-tablet-4 {
349
+ .lvca-grid-item {
350
+ @include grid-column(3, $lvca-gapless-grid);
351
+ }
352
+ }
353
+ &.lvca-grid-tablet-5 {
354
+ .lvca-grid-item {
355
+ @include grid-column(1, $lvca-gapless-five-col-grid);
356
+ }
357
+ }
358
+ &.lvca-grid-tablet-6 {
359
+ .lvca-grid-item {
360
+ @include grid-column(2, $lvca-gapless-grid);
361
+ }
362
+ }
363
+ }
364
+
365
+ @include grid-media($lvca-desktop-grid) {
366
+
367
+ &.lvca-grid-desktop-1 {
368
+ .lvca-grid-item {
369
+ @include grid-column(12, $lvca-gapless-grid);
370
+ }
371
+ }
372
+
373
+ &.lvca-grid-desktop-2 {
374
+ .lvca-grid-item {
375
+ @include grid-column(6, $lvca-gapless-grid);
376
+ }
377
+ }
378
+
379
+ &.lvca-grid-desktop-3 {
380
+ .lvca-grid-item {
381
+ @include grid-column(4, $lvca-gapless-grid);
382
+ }
383
+ }
384
+ &.lvca-grid-desktop-4 {
385
+ .lvca-grid-item {
386
+ @include grid-column(3, $lvca-gapless-grid);
387
+ }
388
+ }
389
+ &.lvca-grid-desktop-5 {
390
+ .lvca-grid-item {
391
+ @include grid-column(1, $lvca-gapless-five-col-grid);
392
+ }
393
+ }
394
+ &.lvca-grid-desktop-6 {
395
+ .lvca-grid-item {
396
+ @include grid-column(2, $lvca-gapless-grid);
397
+ }
398
+ }
399
+ }
400
+ }
401
+ }
402
+
403
+ /* ---------- Masonry Layout Grid columns -------------*/
404
+
405
+ .lvca-gapless-grid .lvca-masonry {
406
+
407
+ /* Clear the omega for masonry layout */
408
+ .lvca-grid-item {
409
+ clear: none !important;
410
+ }
411
+
412
+ .lvca-grid-sizer {
413
+ @include grid-column(1, $lvca-gapless-grid);
414
+ }
415
+
416
+ &.lvca-grid-mobile-1 {
417
+
418
+ .lvca-grid-item.lvca-wide {
419
+ @include grid-column(12, $lvca-gapless-grid);
420
+ }
421
+ }
422
+ &.lvca-grid-mobile-2 {
423
+
424
+ .lvca-grid-item.lvca-wide {
425
+ @include grid-column(6, $lvca-gapless-grid); // keep it small for now
426
+ }
427
+ }
428
+
429
+ &.lvca-grid-mobile-3 {
430
+
431
+ .lvca-grid-item.lvca-wide {
432
+ @include grid-column(8, $lvca-gapless-grid);
433
+ }
434
+ }
435
+
436
+ &.lvca-grid-mobile-4 {
437
+
438
+ .lvca-grid-item.lvca-wide {
439
+ @include grid-column(6, $lvca-gapless-grid);
440
+ }
441
+ }
442
+
443
+ &.lvca-grid-mobile-5 {
444
+
445
+ .lvca-grid-item.lvca-wide {
446
+ @include grid-column(2, $lvca-gapless-five-col-grid);
447
+ }
448
+ }
449
+
450
+ &.lvca-grid-mobile-6 {
451
+
452
+ .lvca-grid-item.lvca-wide {
453
+ @include grid-column(4, $lvca-gapless-grid);
454
+ }
455
+ }
456
+
457
+ @include grid-media($lvca-tablet-grid) {
458
+
459
+ &.lvca-grid-tablet-1 {
460
+
461
+ .lvca-grid-item.lvca-wide {
462
+ @include grid-column(12, $lvca-gapless-grid);
463
+ }
464
+ }
465
+ &.lvca-grid-tablet-2 {
466
+
467
+ .lvca-grid-item.lvca-wide {
468
+ @include grid-column(6, $lvca-gapless-grid); // keep it small for now
469
+ }
470
+ }
471
+
472
+ &.lvca-grid-tablet-3 {
473
+
474
+ .lvca-grid-item.lvca-wide {
475
+ @include grid-column(8, $lvca-gapless-grid);
476
+ }
477
+ }
478
+
479
+ &.lvca-grid-tablet-4 {
480
+
481
+ .lvca-grid-item.lvca-wide {
482
+ @include grid-column(6, $lvca-gapless-grid);
483
+ }
484
+ }
485
+
486
+ &.lvca-grid-tablet-5 {
487
+
488
+ .lvca-grid-item.lvca-wide {
489
+ @include grid-column(2, $lvca-gapless-five-col-grid);
490
+ }
491
+ }
492
+
493
+ &.lvca-grid-tablet-6 {
494
+
495
+ .lvca-grid-item.lvca-wide {
496
+ @include grid-column(4, $lvca-gapless-grid);
497
+ }
498
+ }
499
+
500
+ }
501
+
502
+ @include grid-media($lvca-desktop-grid) {
503
+
504
+
505
+ &.lvca-grid-desktop-1 {
506
+
507
+ .lvca-grid-item.lvca-wide {
508
+ @include grid-column(12, $lvca-gapless-grid);
509
+ }
510
+ }
511
+ &.lvca-grid-desktop-2 {
512
+
513
+ .lvca-grid-item.lvca-wide {
514
+ @include grid-column(6, $lvca-gapless-grid); // keep it small for now
515
+ }
516
+ }
517
+
518
+ &.lvca-grid-desktop-3 {
519
+
520
+ .lvca-grid-item.lvca-wide {
521
+ @include grid-column(8, $lvca-gapless-grid);
522
+ }
523
+ }
524
+
525
+ &.lvca-grid-desktop-4 {
526
+
527
+ .lvca-grid-item.lvca-wide {
528
+ @include grid-column(6, $lvca-gapless-grid);
529
+ }
530
+ }
531
+
532
+ &.lvca-grid-desktop-5 {
533
+
534
+ .lvca-grid-item.lvca-wide {
535
+ @include grid-column(2, $lvca-gapless-five-col-grid);
536
+ }
537
+ }
538
+
539
+ &.lvca-grid-desktop-6 {
540
+
541
+ .lvca-grid-item.lvca-wide {
542
+ @include grid-column(4, $lvca-gapless-grid);
543
+ }
544
+ }
545
+ }
546
+ }
547
+
548
+ /* --------------- Flexslider Styles -------------- */
549
+
550
+ .lvca-container {
551
+ .lvca-thumbnailslider.lvca-flexslider {
552
+ margin-top: 15px;
553
+ .lvca-slide {
554
+ margin: 0 5px 0 0;
555
+ img {
556
+ display: block;
557
+ opacity: .5;
558
+ cursor: pointer;
559
+ &:hover {
560
+ opacity: 1;
561
+ }
562
+ }
563
+ &.lvca-flex-active-slide img {
564
+ opacity: 1;
565
+ cursor: default;
566
+ }
567
+ }
568
+ }
569
+ .lvca-flex-direction-nav {
570
+ padding: 0 !important;
571
+ margin: 0 !important;
572
+ }
573
+ .lvca-flex-direction-nav li {
574
+ position: initial;
575
+ }
576
+ .lvca-flex-direction-nav a, .lvca-flex-direction-nav a:hover {
577
+ opacity: 1;
578
+ text-shadow: none;
579
+ background: none;
580
+ color: #888;
581
+ @include lvca-icon-font();
582
+ font-size: 24px;
583
+ width: 28px;
584
+ height: 28px;
585
+ margin: -14px 0 0;
586
+ bottom: initial;
587
+ left: initial;
588
+ right: initial;
589
+ top: 50%;
590
+ text-indent: 0;
591
+ text-align: center;
592
+ color: #aaa;
593
+ transition: all 0.3s ease-in-out 0s;
594
+ outline: none;
595
+ &:before, &:hover:before {
596
+ margin: 2px;
597
+ vertical-align: middle;
598
+ display: inline;
599
+ font-family: inherit !important;
600
+ opacity: 1;
601
+ }
602
+ &:hover {
603
+ color: #888;
604
+ }
605
+ .lvca-dark-bg & {
606
+ color: #888;
607
+ &:hover {
608
+ color: #aaa;
609
+ }
610
+ }
611
+ @include respond-to-max(960) {
612
+ display: none; /* Let users navigate via touch */
613
+ }
614
+ }
615
+ .lvca-flex-direction-nav a.lvca-flex-prev {
616
+ left: -30px;
617
+ &:before {
618
+ content: "\e900";
619
+ }
620
+ }
621
+ .lvca-flex-direction-nav a.lvca-flex-next {
622
+ right: -30px;
623
+ &:before {
624
+ content: "\e901";
625
+ }
626
+ }
627
+ .lvca-flex-control-nav {
628
+ width: 100%;
629
+ position: absolute;
630
+ bottom: -40px;
631
+ text-align: center;
632
+ padding: 0 !important;
633
+ margin: 0 !important;
634
+ li, li:hover {
635
+ margin: 0 8px 0 0;
636
+ padding: 0;
637
+ border: none;
638
+ box-shadow: none;
639
+ }
640
+ li a, li a:hover {
641
+ background: #aaa;
642
+ border: 1px solid #aaa;
643
+ border-radius: 50%;
644
+ width: 12px;
645
+ height: 12px;
646
+ box-shadow: none;
647
+ transition: all 0.2s ease-in 0s;
648
+ display: inline-block;
649
+ vertical-align: middle;
650
+ outline: none;
651
+ .lvca-dark-bg & {
652
+ background: #ccc;
653
+ border-color: #ccc;
654
+ }
655
+ }
656
+ li a.lvca-flex-active, li a:hover.lvca-flex-active, li a:hover {
657
+ background: none;
658
+ }
659
+ li a.lvca-flex-active, li a:hover.lvca-flex-active {
660
+ width: 14px;
661
+ height: 14px;
662
+ }
663
+ }
664
+ .lvca-flex-control-thumbs {
665
+ bottom: -120px;
666
+ @include respond-to-max(600) {
667
+ bottom: -80px;
668
+ }
669
+ li {
670
+ width: auto;
671
+ float: none;
672
+ img {
673
+ max-width: 100%;
674
+ width: 150px;
675
+ @include respond-to-max(600) {
676
+ width: 100px;
677
+ }
678
+ }
679
+ }
680
+ }
681
+ }
682
+ /* Sleek Carousel Styles */
683
+
684
+ .slick-loading .slick-list {
685
+ background: #fff url('./ajax-loader.gif') center center no-repeat;
686
+ }
687
+ .lvca-container {
688
+
689
+ button.slick-prev, button.slick-next {
690
+ position: absolute;
691
+ bottom: initial;
692
+ left: initial;
693
+ right: initial;
694
+ top: 50%;
695
+ width: 28px;
696
+ height: 28px;
697
+ margin: -14px 0 0;
698
+ &, &:before, &:after {
699
+ text-shadow: none;
700
+ background: none !important;
701
+ border: none;
702
+ padding: 0;
703
+ opacity: 1;
704
+ @include lvca-icon-font();
705
+ font-size: 24px;
706
+ color: #aaa !important;
707
+ overflow: hidden;
708
+ box-shadow: none;
709
+ outline: none;
710
+ text-indent: 0;
711
+ text-align: center;
712
+ transition: all 0.3s ease-in-out 0s;
713
+ }
714
+ &:before {
715
+ margin: 2px;
716
+ vertical-align: middle;
717
+ }
718
+ &:hover {
719
+ &:before, &:after {
720
+ color: #888 !important;
721
+ }
722
+ }
723
+ .lvca-dark-bg & {
724
+ &:before, &:after {
725
+ color: #888 !important;
726
+ }
727
+ &:hover {
728
+ &:before, &:after {
729
+ color: #aaa !important;
730
+ background: none !important;
731
+ }
732
+ }
733
+ }
734
+ @include respond-to-max(1024) {
735
+ display: none !important; /* Let users navigate via touch */
736
+ }
737
+ }
738
+ button.slick-prev {
739
+ left: -40px;
740
+ &:before {
741
+ content: "\e900";
742
+ }
743
+ }
744
+ button.slick-next {
745
+ right: -40px;
746
+ &:before {
747
+ content: "\e901";
748
+ }
749
+ }
750
+ ul.slick-dots {
751
+ width: 100%;
752
+ position: absolute;
753
+ bottom: -30px;
754
+ text-align: center;
755
+ padding: 0 !important;
756
+ margin: 0 !important;
757
+ li {
758
+ margin: 0 8px 0 0 !important;
759
+ padding: 0 !important;
760
+ display: inline-block;
761
+ font-size: 0;
762
+ }
763
+ li button {
764
+ padding: 0;
765
+ background: #aaa;
766
+ border: 1px solid #aaa;
767
+ border-radius: 50%;
768
+ width: 12px;
769
+ height: 12px;
770
+ box-shadow: none;
771
+ transition: background 0.3s ease-in-out 0s;
772
+ font-size: 0;
773
+ outline: none;
774
+ .lvca-dark-bg & {
775
+ background: #888 !important;
776
+ border-color: #888 !important;
777
+ }
778
+ }
779
+ li button:hover, li.slick-active button {
780
+ background: none !important;
781
+ border-color: #aaa !important;
782
+ }
783
+ li.slick-active button {
784
+ width: 14px;
785
+ height: 14px;
786
+ }
787
+ }
788
+ }
789
+ /* -------- Widget separator headline ------------ */
790
+
791
+ .lvca-widget-heading {
792
+ @include lvca-heading-style();
793
+ font-size: 40px;
794
+ line-height: 52px;
795
+ text-align: center;
796
+ @include respond-to-max(767) {
797
+ font-size: 32px;
798
+ line-height: 44px;
799
+ }
800
+ }
801
+ /* -------- Spacer styling ----------- */
802
+
803
+ .lvca-spacer {
804
+ clear: both;
805
+ }
806
+
807
+ /* --------------- Button CSS -------------------- */
808
+
809
+ input.lvca-button, button.lvca-button, a.lvca-button, .lvca-button:active, .lvca-button:visited {
810
+ display: inline-block;
811
+ text-align: center;
812
+ line-height: 1;
813
+ cursor: pointer;
814
+ -webkit-appearance: none;
815
+ vertical-align: middle;
816
+ border: 1px solid transparent;
817
+ border-radius: 3px;
818
+ padding: 16px 40px;
819
+ margin: 0;
820
+ font-size: 12px;
821
+ font-weight: normal;
822
+ text-transform: uppercase;
823
+ letter-spacing: 2px;
824
+ background-color: #f94213;
825
+ color: #fefefe;
826
+ outline: none;
827
+ transition: all 0.4s ease-in-out 0s;
828
+ &.lvca-rounded {
829
+ border-radius: 999px;
830
+ }
831
+ &.lvca-large {
832
+ padding: 20px 60px;
833
+ }
834
+ &.lvca-small {
835
+ padding: 12px 25px;
836
+ font-size: 11px;
837
+ }
838
+ &:hover {
839
+ background-color: #f9633e;
840
+ color: #fefefe;
841
+ }
842
+ img, span.lvca-icon {
843
+ margin-right: 10px;
844
+ }
845
+ }
846
+ $skin-names: ("black", "blue", "cyan", "green", "orange", "pink", "red", "teal");
847
+ $color-collection: (#363636, #46a5d5, #57c0dc, #00a57d, #e87151, #dd5679, #da4f49, #28c2ba);
848
+
849
+ @for $i from 0 to length($skin-names) {
850
+ $skin-name: nth($skin-names, $i+1);
851
+ $skin-color: nth($color-collection, $i+1);
852
+ .lvca-button.lvca-#{$skin-name} {
853
+ background-color: $skin-color;
854
+ }
855
+ .lvca-button.lvca-#{$skin-name}:hover {
856
+ background-color: lighten($skin-color, 5%);
857
+ }
858
+ }
859
+ .lvca-button.lvca-trans {
860
+ color: #333;
861
+ background-color: transparent; /* IE */
862
+ background-color: rgba(0, 0, 0, 0);
863
+ border: 2px solid #a5a5a5;
864
+ &:hover {
865
+ background-color: #fff;
866
+ color: #333 !important;
867
+ border-color: #fff;
868
+ }
869
+ }
870
+ .lvca-button.lvca-semitrans {
871
+ color: #fff;
872
+ background-color: transparent; /* IE */
873
+ background-color: rgba(125, 125, 125, 0.5);
874
+ &:hover {
875
+ background-color: #fff;
876
+ color: #333 !important;
877
+ }
878
+ }
assets/css/slick.css ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Slider */
2
+ .slick-slider
3
+ {
4
+ position: relative;
5
+
6
+ display: block;
7
+ -webkit-box-sizing: border-box;
8
+ box-sizing: border-box;
9
+
10
+ -webkit-user-select: none;
11
+ -moz-user-select: none;
12
+ -ms-user-select: none;
13
+ user-select: none;
14
+
15
+ -webkit-touch-callout: none;
16
+ -khtml-user-select: none;
17
+ -ms-touch-action: pan-y;
18
+ touch-action: pan-y;
19
+ -webkit-tap-highlight-color: transparent;
20
+ }
21
+
22
+ .slick-list
23
+ {
24
+ position: relative;
25
+
26
+ display: block;
27
+ overflow: hidden;
28
+
29
+ margin: 0;
30
+ padding: 0;
31
+ }
32
+ .slick-list:focus
33
+ {
34
+ outline: none;
35
+ }
36
+ .slick-list.dragging
37
+ {
38
+ cursor: pointer;
39
+ cursor: hand;
40
+ }
41
+
42
+ .slick-slider .slick-track,
43
+ .slick-slider .slick-list
44
+ {
45
+ -webkit-transform: translate3d(0, 0, 0);
46
+ transform: translate3d(0, 0, 0);
47
+ }
48
+
49
+ .slick-track
50
+ {
51
+ position: relative;
52
+ top: 0;
53
+ left: 0;
54
+
55
+ display: block;
56
+ }
57
+ .slick-track:before,
58
+ .slick-track:after
59
+ {
60
+ display: table;
61
+
62
+ content: '';
63
+ }
64
+ .slick-track:after
65
+ {
66
+ clear: both;
67
+ }
68
+ .slick-loading .slick-track
69
+ {
70
+ visibility: hidden;
71
+ }
72
+
73
+ .slick-slide
74
+ {
75
+ display: none;
76
+ float: left;
77
+
78
+ height: 100%;
79
+ min-height: 1px;
80
+ }
81
+ [dir='rtl'] .slick-slide
82
+ {
83
+ float: right;
84
+ }
85
+ .slick-slide img
86
+ {
87
+ display: block;
88
+ }
89
+ .slick-slide.slick-loading img
90
+ {
91
+ display: none;
92
+ }
93
+ .slick-slide.dragging img
94
+ {
95
+ pointer-events: none;
96
+ }
97
+ .slick-initialized .slick-slide
98
+ {
99
+ display: block;
100
+ }
101
+ .slick-loading .slick-slide
102
+ {
103
+ visibility: hidden;
104
+ }
105
+ .slick-vertical .slick-slide
106
+ {
107
+ display: block;
108
+
109
+ height: auto;
110
+
111
+ border: 1px solid transparent;
112
+ }
113
+ .slick-arrow.slick-hidden {
114
+ display: none;
115
+ }
116
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNsaWNrLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1o7O0lBRUksbUJBQW1COztJQUVuQixlQUFlO0lBR1YsK0JBQXVCO1lBQXZCLHVCQUF1Qjs7SUFFNUIsMEJBQTBCO09BQ3ZCLHVCQUF1QjtRQUN0QixzQkFBc0I7WUFDbEIsa0JBQWtCOztJQUUxQiw0QkFBNEI7SUFDNUIseUJBQXlCO0lBQ3pCLHdCQUF3QjtRQUNwQixvQkFBb0I7SUFDeEIseUNBQXlDO0NBQzVDOztBQUVEOztJQUVJLG1CQUFtQjs7SUFFbkIsZUFBZTtJQUNmLGlCQUFpQjs7SUFFakIsVUFBVTtJQUNWLFdBQVc7Q0FDZDtBQUNEOztJQUVJLGNBQWM7Q0FDakI7QUFDRDs7SUFFSSxnQkFBZ0I7SUFDaEIsYUFBYTtDQUNoQjs7QUFFRDs7O0lBR0ksd0NBQXdDO1lBSWhDLGdDQUFnQztDQUMzQzs7QUFFRDs7SUFFSSxtQkFBbUI7SUFDbkIsT0FBTztJQUNQLFFBQVE7O0lBRVIsZUFBZTtDQUNsQjtBQUNEOzs7SUFHSSxlQUFlOztJQUVmLFlBQVk7Q0FDZjtBQUNEOztJQUVJLFlBQVk7Q0FDZjtBQUNEOztJQUVJLG1CQUFtQjtDQUN0Qjs7QUFFRDs7SUFFSSxjQUFjO0lBQ2QsWUFBWTs7SUFFWixhQUFhO0lBQ2IsZ0JBQWdCO0NBQ25CO0FBQ0Q7O0lBRUksYUFBYTtDQUNoQjtBQUNEOztJQUVJLGVBQWU7Q0FDbEI7QUFDRDs7SUFFSSxjQUFjO0NBQ2pCO0FBQ0Q7O0lBRUkscUJBQXFCO0NBQ3hCO0FBQ0Q7O0lBRUksZUFBZTtDQUNsQjtBQUNEOztJQUVJLG1CQUFtQjtDQUN0QjtBQUNEOztJQUVJLGVBQWU7O0lBRWYsYUFBYTs7SUFFYiw4QkFBOEI7Q0FDakM7QUFDRDtJQUNJLGNBQWM7Q0FDakIiLCJmaWxlIjoic2xpY2suY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyXG57XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLWxpc3RcbntcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG4uc2xpY2stbGlzdDpmb2N1c1xue1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4uc2xpY2stbGlzdC5kcmFnZ2luZ1xue1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjdXJzb3I6IGhhbmQ7XG59XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxue1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFja1xue1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLnNsaWNrLXRyYWNrOmJlZm9yZSxcbi5zbGljay10cmFjazphZnRlclxue1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuXG4gICAgY29udGVudDogJyc7XG59XG4uc2xpY2stdHJhY2s6YWZ0ZXJcbntcbiAgICBjbGVhcjogYm90aDtcbn1cbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFja1xue1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWNrLXNsaWRlXG57XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG59XG5bZGlyPSdydGwnXSAuc2xpY2stc2xpZGVcbntcbiAgICBmbG9hdDogcmlnaHQ7XG59XG4uc2xpY2stc2xpZGUgaW1nXG57XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWdcbntcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZ1xue1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZVxue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlXG57XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZVxue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufSJdfQ== */
assets/css/slider.css ADDED
@@ -0,0 +1,426 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! http://responsiveslides.com v1.54 by @viljamis */
2
+
3
+ .rslides {
4
+ position: relative;
5
+ list-style: none;
6
+ overflow: hidden;
7
+ width: 100%;
8
+ padding: 0;
9
+ margin: 0;
10
+ }
11
+
12
+ .rslides li {
13
+ -webkit-backface-visibility: hidden;
14
+ position: absolute;
15
+ display: none;
16
+ width: 100%;
17
+ left: 0;
18
+ top: 0;
19
+ }
20
+
21
+ .rslides li:first-child {
22
+ position: relative;
23
+ display: block;
24
+ float: left;
25
+ }
26
+
27
+ .rslides img {
28
+ display: block;
29
+ height: auto;
30
+ float: left;
31
+ width: 100%;
32
+ border: 0;
33
+ }
34
+
35
+
36
+ /* Customization by Livemesh plugin */
37
+
38
+ .rslides_container {
39
+ position: relative;
40
+ }
41
+
42
+ .rslides_container .rslides_tabs {
43
+ position: absolute;
44
+ bottom: -50px;
45
+ list-style: none;
46
+ margin: 0 !important;
47
+ padding: 0 !important;
48
+ text-align: center;
49
+ width: 100%;
50
+ }
51
+
52
+ .rslides_container .rslides_tabs li {
53
+ display: inline-block;
54
+ float: none;
55
+ margin: 0 !important;
56
+ padding: 0 !important;
57
+ outline: none;
58
+ }
59
+
60
+ .rslides_container .rslides_tabs a {
61
+ display: block;
62
+ width: 12px;
63
+ height: 12px;
64
+ background: #aaa;
65
+ border: 1px solid #aaa;
66
+ border-radius: 50%;
67
+ text-indent: -9999px;
68
+ margin: 0 4px;
69
+ -webkit-transition: background 0.2s ease-in 0s;
70
+ transition: background 0.2s ease-in 0s;
71
+ outline: none;
72
+ }
73
+
74
+ .rslides_container .rslides_tabs .rslides_here a , .rslides_container .rslides_tabs a:hover {
75
+ background: transparent;
76
+ border: 1px solid #aaa;
77
+ margin: 0 4px;
78
+ }
79
+
80
+
81
+ .rslides_container .rslides_tabs .rslides_here a {
82
+ width: 14px;
83
+ height: 14px;
84
+ }
85
+
86
+
87
+ .rslides_nav, .rslides_nav:hover {
88
+ position: absolute;
89
+ top: 50%;
90
+ z-index: 10;
91
+ opacity: 1;
92
+ text-shadow: none;
93
+ background: none;
94
+ font-family: 'lvca-icomoon' !important;
95
+ speak: none;
96
+ font-style: normal;
97
+ font-weight: normal;
98
+ font-variant: normal;
99
+ text-transform: none;
100
+ line-height: 1;
101
+ -webkit-font-smoothing: antialiased;
102
+ -moz-osx-font-smoothing: grayscale;
103
+ color: #ddd !important;
104
+ font-size: 32px;
105
+ width: 36px;
106
+ height: 36px;
107
+ margin: -18px 0 0;
108
+ bottom: initial;
109
+ left: initial;
110
+ right: initial;
111
+ text-indent: 0;
112
+ text-align: center;
113
+ overflow: hidden;
114
+ -webkit-transition: all 0.3s ease-in-out 0s;
115
+ transition: all 0.3s ease-in-out 0s;
116
+ outline: none;
117
+ }
118
+
119
+ .rslides_nav:hover {
120
+ color: #efefef !important;
121
+ }
122
+
123
+ .rslides_nav:before, .rslides_nav:hover:before {
124
+ margin: 2px;
125
+ vertical-align: middle;
126
+ display: inline;
127
+ font-family: inherit !important;
128
+ opacity: 1; }
129
+ .rslides_nav.prev:before {
130
+ content: "\e900"; }
131
+ .rslides_nav.next:before {
132
+ content: "\e901"; }
133
+
134
+ .rslides_nav.next {
135
+ right: 20px;
136
+ }
137
+ .rslides_nav.prev {
138
+ left: 20px;
139
+ }
140
+
141
+
142
+ /* Let users navigate via touch */
143
+ @media only screen and (max-width: 960px) {
144
+ .rslides_nav, .rslides_nav:hover {
145
+ display: none;
146
+ }
147
+ }
148
+
149
+
150
+ /*
151
+ * jQuery Nivo Slider v3.2
152
+ * http://nivo.dev7studios.com
153
+ *
154
+ * Copyright 2012, Dev7studios
155
+ * Free to use and abuse under the MIT license.
156
+ * http://www.opensource.org/licenses/mit-license.php
157
+ */
158
+
159
+ /* The Nivo Slider styles */
160
+ .nivoSlider {
161
+ position:relative;
162
+ width:100%;
163
+ height:auto;
164
+ overflow: hidden;
165
+ }
166
+ .nivoSlider img {
167
+ position:absolute;
168
+ top:0px;
169
+ left:0px;
170
+ max-width: none;
171
+ }
172
+ .nivo-main-image {
173
+ display: block !important;
174
+ position: relative !important;
175
+ width: 100% !important;
176
+ }
177
+
178
+ /* If an image is wrapped in a link */
179
+ .nivoSlider a.nivo-imageLink {
180
+ position:absolute;
181
+ top:0px;
182
+ left:0px;
183
+ width:100%;
184
+ height:100%;
185
+ border:0;
186
+ padding:0;
187
+ margin:0;
188
+ z-index:6;
189
+ display:none;
190
+ background:white;
191
+ filter:alpha(opacity=0);
192
+ opacity:0;
193
+ }
194
+ /* The slices and boxes in the Slider */
195
+ .nivo-slice {
196
+ display:block;
197
+ position:absolute;
198
+ z-index:5;
199
+ height:100%;
200
+ top:0;
201
+ }
202
+ .nivo-box {
203
+ display:block;
204
+ position:absolute;
205
+ z-index:5;
206
+ overflow:hidden;
207
+ }
208
+ .nivo-box img { display:block; }
209
+
210
+ /* Caption styles */
211
+ .nivo-caption {
212
+ position:absolute;
213
+ left:0px;
214
+ bottom:0px;
215
+ background:#000;
216
+ color:#fff;
217
+ width:100%;
218
+ z-index:8;
219
+ padding: 5px 10px;
220
+ opacity: 0.8;
221
+ overflow: hidden;
222
+ display: none;
223
+ -moz-opacity: 0.8;
224
+ filter:alpha(opacity=8);
225
+ -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */ /* Firefox, other Gecko */
226
+ box-sizing: border-box; /* Opera/IE 8+ */
227
+ }
228
+ .nivo-caption p {
229
+ padding:5px;
230
+ margin:0;
231
+ }
232
+ .nivo-caption a {
233
+ display:inline !important;
234
+ }
235
+ .nivo-html-caption {
236
+ display:none;
237
+ }
238
+ /* Direction nav styles (e.g. Next & Prev) */
239
+ .nivo-directionNav a {
240
+ position:absolute;
241
+ top:45%;
242
+ z-index:9;
243
+ cursor:pointer;
244
+ }
245
+ .nivo-prevNav {
246
+ left:0px;
247
+ }
248
+ .nivo-nextNav {
249
+ right:0px;
250
+ }
251
+ /* Control nav styles (e.g. 1,2,3...) */
252
+ .nivo-controlNav {
253
+ text-align:center;
254
+ padding: 15px 0;
255
+ }
256
+ .nivo-controlNav a {
257
+ cursor:pointer;
258
+ }
259
+ .nivo-controlNav a.active {
260
+ font-weight:bold;
261
+ }
262
+
263
+
264
+ /* ------------- Customize Nivo Slider -----------------*/
265
+
266
+ /* Required for effects to work in many themes */
267
+ .nivoSlider img {
268
+ max-width: none !important;
269
+ }
270
+
271
+ .nivo-controlNav:not(.nivo-thumbs-enabled) {
272
+ position: absolute;
273
+ left: 0;
274
+ text-align: center;
275
+ width: 100%;
276
+ margin: 0;
277
+ padding: 0;
278
+ bottom: 0;
279
+ }
280
+ .nivo-controlNav:not(.nivo-thumbs-enabled) a {
281
+ display: block;
282
+ background: #aaa;
283
+ border: 1px solid #aaa;
284
+ border-radius: 50%;
285
+ width: 12px;
286
+ height: 12px;
287
+ -webkit-box-shadow: none;
288
+ box-shadow: none;
289
+ -webkit-transition: background 0.2s ease-in 0s;
290
+ transition: background 0.2s ease-in 0s;
291
+ margin-right: 8px;
292
+ float: none;
293
+ text-indent: -9999px;
294
+ display: inline-block;
295
+ vertical-align: middle;
296
+ }
297
+
298
+ .nivo-controlNav a.active, .nivo-controlNav a:hover {
299
+ background: transparent;
300
+ }
301
+
302
+ .nivo-controlNav:not(.nivo-thumbs-enabled) a.active {
303
+ width: 14px;
304
+ height: 14px;
305
+ background: transparent;
306
+ }
307
+
308
+
309
+ .nivo-controlNav.nivo-thumbs-enabled {
310
+ width:100%;
311
+ margin: 0;
312
+ text-align: left;
313
+ }
314
+ .nivo-controlNav.nivo-thumbs-enabled a {
315
+ margin: 0;
316
+ }
317
+ .nivo-controlNav.nivo-thumbs-enabled a:first-child {
318
+ margin-left: 0;
319
+ }
320
+ .nivo-controlNav.nivo-thumbs-enabled a img {
321
+ margin-right: 10px;
322
+ }
323
+
324
+ .nivo-controlNav.nivo-thumbs-enabled img {
325
+ display: inline-block !important;
326
+ width: 120px;
327
+ height:auto;
328
+ border-radius: 2px;
329
+ margin-top: 5px;
330
+ }
331
+
332
+ @media screen and (max-width: 860px) {
333
+ .nivo-controlNav.nivo-thumbs-enabled img {
334
+ width: 90px;
335
+ }
336
+ }
337
+
338
+ .nivo-directionNav a, .nivo-directionNav a:hover {
339
+ position: absolute;
340
+ top: 50%;
341
+ z-index: 10;
342
+ opacity: 1;
343
+ text-shadow: none;
344
+ background: none;
345
+ font-family: 'lvca-icomoon' !important;
346
+ speak: none;
347
+ font-style: normal;
348
+ font-weight: normal;
349
+ font-variant: normal;
350
+ text-transform: none;
351
+ line-height: 1;
352
+ -webkit-font-smoothing: antialiased;
353
+ -moz-osx-font-smoothing: grayscale;
354
+ color: #ddd;
355
+ font-size: 32px;
356
+ width: 36px;
357
+ height: 36px;
358
+ margin: -18px 0 0;
359
+ bottom: initial;
360
+ left: initial;
361
+ right: initial;
362
+ text-indent: 0;
363
+ text-align: center;
364
+ overflow: hidden;
365
+ -webkit-transition: all 0.3s ease-in-out 0s;
366
+ transition: all 0.3s ease-in-out 0s;
367
+ }
368
+ .nivo-directionNav a:hover {
369
+ color: #efefef;
370
+ }
371
+
372
+ .nivo-directionNav a:before, .nivo-directionNav a:hover:before {
373
+ margin: 2px;
374
+ vertical-align: middle;
375
+ display: inline;
376
+ font-family: inherit !important;
377
+ opacity: 1; }
378
+ .nivo-directionNav a.nivo-prevNav:before {
379
+ content: "\e900"; }
380
+ .nivo-directionNav a.nivo-nextNav:before {
381
+ content: "\e901"; }
382
+
383
+ .nivo-directionNav a.nivo-nextNav {
384
+ right: 20px;
385
+ }
386
+ .nivo-directionNav a.nivo-prevNav {
387
+ left: 20px;
388
+ }
389
+
390
+
391
+ /* Let users navigate via touch */
392
+ @media only screen and (max-width: 960px) {
393
+ .nivo-directionNav a, .nivo-directionNav a:hover {
394
+ display: none;
395
+ }
396
+ }
397
+
398
+ /* Nivo caption styling */
399
+ .nivo-caption {
400
+ position:absolute;
401
+ left:0;
402
+ bottom:20px;
403
+ background: none;
404
+ color:#fff;
405
+ width:100%;
406
+ z-index:8;
407
+ padding: 25px 30px;
408
+ opacity: 1;
409
+ overflow: hidden;
410
+ display: none;
411
+ max-width: 600px;
412
+ border-radius: 5px;
413
+ }
414
+
415
+ .nivo-caption h1,.nivo-caption h2,.nivo-caption h3 {
416
+ color: #fff;
417
+ font-size: 36px;
418
+ line-height: 44px;
419
+ }
420
+
421
+ .nivo-caption p {
422
+ color: #bbb;
423
+ font-size: 14px;
424
+ line-height: 22px;
425
+ }
426
+ /*# sourceMappingURL=data:application/json;base64,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QixXQUFXO0NBQ1gsV0FBVztDQUNYLFVBQVU7Q0FDVixtQkFBbUI7Q0FDbkIsV0FBVztDQUNYLGlCQUFpQjtDQUNqQixjQUFjO0NBQ2QsaUJBQWlCO0NBQ2pCLG1CQUFtQjtDQUNuQjs7QUFFRDtDQUNDLFlBQVk7Q0FDWixnQkFBZ0I7Q0FDaEIsa0JBQWtCO0NBQ2xCOztBQUVEO0NBQ0MsWUFBWTtDQUNaLGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEIiLCJmaWxlIjoic2xpZGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBodHRwOi8vcmVzcG9uc2l2ZXNsaWRlcy5jb20gdjEuNTQgYnkgQHZpbGphbWlzICovXHJcblxyXG4ucnNsaWRlcyB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdGxpc3Qtc3R5bGU6IG5vbmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRwYWRkaW5nOiAwO1xyXG5cdG1hcmdpbjogMDtcclxuXHR9XHJcblxyXG4ucnNsaWRlcyBsaSB7XHJcblx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcblx0d2lkdGg6IDEwMCU7XHJcblx0bGVmdDogMDtcclxuXHR0b3A6IDA7XHJcblx0fVxyXG5cclxuLnJzbGlkZXMgbGk6Zmlyc3QtY2hpbGQge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRmbG9hdDogbGVmdDtcclxuXHR9XHJcblxyXG4ucnNsaWRlcyBpbWcge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdGhlaWdodDogYXV0bztcclxuXHRmbG9hdDogbGVmdDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRib3JkZXI6IDA7XHJcblx0fVxyXG5cclxuXHJcbi8qIEN1c3RvbWl6YXRpb24gYnkgTGl2ZW1lc2ggcGx1Z2luICovXHJcblxyXG4ucnNsaWRlc19jb250YWluZXIge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR9XHJcblxyXG4ucnNsaWRlc19jb250YWluZXIgLnJzbGlkZXNfdGFicyB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdGJvdHRvbTogLTUwcHg7XHJcblx0bGlzdC1zdHlsZTogbm9uZTtcclxuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcclxuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcbi5yc2xpZGVzX2NvbnRhaW5lciAucnNsaWRlc190YWJzIGxpIHtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0ZmxvYXQ6IG5vbmU7XHJcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG5cdG91dGxpbmU6IG5vbmU7XHJcblx0fVxyXG5cclxuLnJzbGlkZXNfY29udGFpbmVyIC5yc2xpZGVzX3RhYnMgYSB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0d2lkdGg6IDEycHg7XHJcblx0aGVpZ2h0OiAxMnB4O1xyXG5cdGJhY2tncm91bmQ6ICNhYWE7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI2FhYTtcclxuXHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XHJcblx0bWFyZ2luOiAwIDRweDtcclxuXHQtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluIDBzO1xyXG5cdC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UtaW4gMHM7XHJcblx0LW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluIDBzO1xyXG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluIDBzO1xyXG5cdG91dGxpbmU6IG5vbmU7XHJcblx0fVxyXG5cclxuLnJzbGlkZXNfY29udGFpbmVyIC5yc2xpZGVzX3RhYnMgLnJzbGlkZXNfaGVyZSBhICwgLnJzbGlkZXNfY29udGFpbmVyIC5yc2xpZGVzX3RhYnMgYTpob3ZlciB7XHJcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblx0Ym9yZGVyOiAxcHggc29saWQgI2FhYTtcclxuXHRtYXJnaW46IDAgNHB4O1xyXG5cdH1cclxuXHJcblxyXG4ucnNsaWRlc19jb250YWluZXIgLnJzbGlkZXNfdGFicyAucnNsaWRlc19oZXJlIGEge1xyXG5cdHdpZHRoOiAxNHB4O1xyXG5cdGhlaWdodDogMTRweDtcclxuXHR9XHJcblxyXG5cclxuLnJzbGlkZXNfbmF2LCAucnNsaWRlc19uYXY6aG92ZXIge1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDUwJTtcclxuXHR6LWluZGV4OiAxMDtcclxuXHRvcGFjaXR5OiAxO1xyXG5cdHRleHQtc2hhZG93OiBub25lO1xyXG5cdGJhY2tncm91bmQ6IG5vbmU7XHJcblx0Zm9udC1mYW1pbHk6ICdsdmNhLWljb21vb24nICFpbXBvcnRhbnQ7XHJcblx0c3BlYWs6IG5vbmU7XHJcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcblx0Zm9udC12YXJpYW50OiBub3JtYWw7XHJcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcblx0bGluZS1oZWlnaHQ6IDE7XHJcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcblx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuXHRjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xyXG5cdGZvbnQtc2l6ZTogMzJweDtcclxuXHR3aWR0aDogMzZweDtcclxuXHRoZWlnaHQ6IDM2cHg7XHJcblx0bWFyZ2luOiAtMThweCAwIDA7XHJcblx0Ym90dG9tOiBpbml0aWFsO1xyXG5cdGxlZnQ6IGluaXRpYWw7XHJcblx0cmlnaHQ6IGluaXRpYWw7XHJcblx0dGV4dC1pbmRlbnQ6IDA7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dCAwcztcclxuXHQtbW96LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0IDBzO1xyXG5cdC1tcy10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dCAwcztcclxuXHR0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dCAwcztcclxuXHRvdXRsaW5lOiBub25lO1xyXG5cdH1cclxuXHJcbi5yc2xpZGVzX25hdjpob3ZlciB7XHJcblx0Y29sb3I6ICNlZmVmZWYgIWltcG9ydGFudDtcclxuXHR9XHJcblxyXG4ucnNsaWRlc19uYXY6YmVmb3JlLCAucnNsaWRlc19uYXY6aG92ZXI6YmVmb3JlIHtcclxuXHRtYXJnaW46IDJweDtcclxuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdGRpc3BsYXk6IGlubGluZTtcclxuXHRmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xyXG5cdG9wYWNpdHk6IDE7IH1cclxuLnJzbGlkZXNfbmF2LnByZXY6YmVmb3JlIHtcclxuXHRjb250ZW50OiBcIlxcZTkwMFwiOyB9XHJcbi5yc2xpZGVzX25hdi5uZXh0OmJlZm9yZSB7XHJcblx0Y29udGVudDogXCJcXGU5MDFcIjsgfVxyXG5cclxuLnJzbGlkZXNfbmF2Lm5leHQge1xyXG5cdHJpZ2h0OiAyMHB4O1xyXG5cdH1cclxuLnJzbGlkZXNfbmF2LnByZXYge1xyXG5cdGxlZnQ6IDIwcHg7XHJcblx0fVxyXG5cclxuXHJcbi8qIExldCB1c2VycyBuYXZpZ2F0ZSB2aWEgdG91Y2ggKi9cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xyXG5cdC5yc2xpZGVzX25hdiwgLnJzbGlkZXNfbmF2OmhvdmVyIHtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHJcbi8qXHJcbiAqIGpRdWVyeSBOaXZvIFNsaWRlciB2My4yXHJcbiAqIGh0dHA6Ly9uaXZvLmRldjdzdHVkaW9zLmNvbVxyXG4gKlxyXG4gKiBDb3B5cmlnaHQgMjAxMiwgRGV2N3N0dWRpb3NcclxuICogRnJlZSB0byB1c2UgYW5kIGFidXNlIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cclxuICogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcclxuICovXHJcblxyXG4vKiBUaGUgTml2byBTbGlkZXIgc3R5bGVzICovXHJcbi5uaXZvU2xpZGVyIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDphdXRvO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuLm5pdm9TbGlkZXIgaW1nIHtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR0b3A6MHB4O1xyXG5cdGxlZnQ6MHB4O1xyXG5cdG1heC13aWR0aDogbm9uZTtcclxufVxyXG4ubml2by1tYWluLWltYWdlIHtcclxuXHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xyXG5cdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qIElmIGFuIGltYWdlIGlzIHdyYXBwZWQgaW4gYSBsaW5rICovXHJcbi5uaXZvU2xpZGVyIGEubml2by1pbWFnZUxpbmsge1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdHRvcDowcHg7XHJcblx0bGVmdDowcHg7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHRib3JkZXI6MDtcclxuXHRwYWRkaW5nOjA7XHJcblx0bWFyZ2luOjA7XHJcblx0ei1pbmRleDo2O1xyXG5cdGRpc3BsYXk6bm9uZTtcclxuXHRiYWNrZ3JvdW5kOndoaXRlO1xyXG5cdGZpbHRlcjphbHBoYShvcGFjaXR5PTApO1xyXG5cdG9wYWNpdHk6MDtcclxufVxyXG4vKiBUaGUgc2xpY2VzIGFuZCBib3hlcyBpbiB0aGUgU2xpZGVyICovXHJcbi5uaXZvLXNsaWNlIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdHotaW5kZXg6NTtcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHR0b3A6MDtcclxufVxyXG4ubml2by1ib3gge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0ei1pbmRleDo1O1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxufVxyXG4ubml2by1ib3ggaW1nIHsgZGlzcGxheTpibG9jazsgfVxyXG5cclxuLyogQ2FwdGlvbiBzdHlsZXMgKi9cclxuLm5pdm8tY2FwdGlvbiB7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0bGVmdDowcHg7XHJcblx0Ym90dG9tOjBweDtcclxuXHRiYWNrZ3JvdW5kOiMwMDA7XHJcblx0Y29sb3I6I2ZmZjtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHotaW5kZXg6ODtcclxuXHRwYWRkaW5nOiA1cHggMTBweDtcclxuXHRvcGFjaXR5OiAwLjg7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRkaXNwbGF5OiBub25lO1xyXG5cdC1tb3otb3BhY2l0eTogMC44O1xyXG5cdGZpbHRlcjphbHBoYShvcGFjaXR5PTgpO1xyXG5cdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogU2FmYXJpL0Nocm9tZSwgb3RoZXIgV2ViS2l0ICovXHJcblx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAgICAvKiBGaXJlZm94LCBvdGhlciBHZWNrbyAqL1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7ICAgICAgICAgLyogT3BlcmEvSUUgOCsgKi9cclxufVxyXG4ubml2by1jYXB0aW9uIHAge1xyXG5cdHBhZGRpbmc6NXB4O1xyXG5cdG1hcmdpbjowO1xyXG59XHJcbi5uaXZvLWNhcHRpb24gYSB7XHJcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcclxufVxyXG4ubml2by1odG1sLWNhcHRpb24ge1xyXG4gICAgZGlzcGxheTpub25lO1xyXG59XHJcbi8qIERpcmVjdGlvbiBuYXYgc3R5bGVzIChlLmcuIE5leHQgJiBQcmV2KSAqL1xyXG4ubml2by1kaXJlY3Rpb25OYXYgYSB7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0dG9wOjQ1JTtcclxuXHR6LWluZGV4Ojk7XHJcblx0Y3Vyc29yOnBvaW50ZXI7XHJcbn1cclxuLm5pdm8tcHJldk5hdiB7XHJcblx0bGVmdDowcHg7XHJcbn1cclxuLm5pdm8tbmV4dE5hdiB7XHJcblx0cmlnaHQ6MHB4O1xyXG59XHJcbi8qIENvbnRyb2wgbmF2IHN0eWxlcyAoZS5nLiAxLDIsMy4uLikgKi9cclxuLm5pdm8tY29udHJvbE5hdiB7XHJcblx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0cGFkZGluZzogMTVweCAwO1xyXG59XHJcbi5uaXZvLWNvbnRyb2xOYXYgYSB7XHJcblx0Y3Vyc29yOnBvaW50ZXI7XHJcbn1cclxuLm5pdm8tY29udHJvbE5hdiBhLmFjdGl2ZSB7XHJcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcclxufVxyXG5cclxuXHJcbi8qIC0tLS0tLS0tLS0tLS0gQ3VzdG9taXplIE5pdm8gU2xpZGVyIC0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qIFJlcXVpcmVkIGZvciBlZmZlY3RzIHRvIHdvcmsgaW4gbWFueSB0aGVtZXMgKi9cclxuLm5pdm9TbGlkZXIgaW1nIHtcclxuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuLm5pdm8tY29udHJvbE5hdjpub3QoLm5pdm8tdGh1bWJzLWVuYWJsZWQpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICB9XHJcbi5uaXZvLWNvbnRyb2xOYXY6bm90KC5uaXZvLXRodW1icy1lbmFibGVkKSBhIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgYmFja2dyb3VuZDogI2FhYTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICB3aWR0aDogMTJweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluIDBzO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1pbiAwcztcclxuICAgIC1tcy10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1pbiAwcztcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluIDBzO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuXHJcbi5uaXZvLWNvbnRyb2xOYXYgYS5hY3RpdmUsIC5uaXZvLWNvbnRyb2xOYXYgYTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuXHJcbi5uaXZvLWNvbnRyb2xOYXY6bm90KC5uaXZvLXRodW1icy1lbmFibGVkKSBhLmFjdGl2ZSB7XHJcbiAgICB3aWR0aDogMTRweDtcclxuICAgIGhlaWdodDogMTRweDtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuXHJcbi5uaXZvLWNvbnRyb2xOYXYubml2by10aHVtYnMtZW5hYmxlZCB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRtYXJnaW46IDA7XHJcblx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHR9XHJcbi5uaXZvLWNvbnRyb2xOYXYubml2by10aHVtYnMtZW5hYmxlZCBhIHtcclxuXHRtYXJnaW46IDA7XHJcblx0fVxyXG4ubml2by1jb250cm9sTmF2Lm5pdm8tdGh1bWJzLWVuYWJsZWQgYTpmaXJzdC1jaGlsZCB7XHJcblx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0fVxyXG4ubml2by1jb250cm9sTmF2Lm5pdm8tdGh1bWJzLWVuYWJsZWQgYSBpbWcge1xyXG5cdG1hcmdpbi1yaWdodDogMTBweDtcclxuXHR9XHJcblxyXG4ubml2by1jb250cm9sTmF2Lm5pdm8tdGh1bWJzLWVuYWJsZWQgaW1nIHtcclxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuXHR3aWR0aDogMTIwcHg7XHJcblx0aGVpZ2h0OmF1dG87XHJcblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XHJcblx0LW1vei1ib3JkZXItcmFkaXVzOiAycHg7XHJcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xyXG5cdG1hcmdpbi10b3A6IDVweDtcclxuXHR9XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NjBweCkge1xyXG5cdC5uaXZvLWNvbnRyb2xOYXYubml2by10aHVtYnMtZW5hYmxlZCBpbWcge1xyXG5cdFx0d2lkdGg6IDkwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuLm5pdm8tZGlyZWN0aW9uTmF2IGEsIC5uaXZvLWRpcmVjdGlvbk5hdiBhOmhvdmVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgZm9udC1mYW1pbHk6ICdsdmNhLWljb21vb24nICFpbXBvcnRhbnQ7XHJcbiAgICBzcGVhazogbm9uZTtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICBjb2xvcjogI2RkZDtcclxuICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgIHdpZHRoOiAzNnB4O1xyXG4gICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgbWFyZ2luOiAtMThweCAwIDA7XHJcbiAgICBib3R0b206IGluaXRpYWw7XHJcbiAgICBsZWZ0OiBpbml0aWFsO1xyXG4gICAgcmlnaHQ6IGluaXRpYWw7XHJcbiAgICB0ZXh0LWluZGVudDogMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0IDBzO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dCAwcztcclxuICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dCAwcztcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0IDBzO1xyXG4gICAgfVxyXG4ubml2by1kaXJlY3Rpb25OYXYgYTpob3ZlciB7XHJcblx0Y29sb3I6ICNlZmVmZWY7XHJcbn1cclxuXHJcbi5uaXZvLWRpcmVjdGlvbk5hdiBhOmJlZm9yZSwgLm5pdm8tZGlyZWN0aW9uTmF2IGE6aG92ZXI6YmVmb3JlIHtcclxuICAgIG1hcmdpbjogMnB4O1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbiAgICBvcGFjaXR5OiAxOyB9XHJcbi5uaXZvLWRpcmVjdGlvbk5hdiBhLm5pdm8tcHJldk5hdjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGU5MDBcIjsgfVxyXG4ubml2by1kaXJlY3Rpb25OYXYgYS5uaXZvLW5leHROYXY6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXFxlOTAxXCI7IH1cclxuXHJcbi5uaXZvLWRpcmVjdGlvbk5hdiBhLm5pdm8tbmV4dE5hdiB7XHJcbiAgICByaWdodDogMjBweDtcclxuICAgIH1cclxuLm5pdm8tZGlyZWN0aW9uTmF2IGEubml2by1wcmV2TmF2IHtcclxuICAgIGxlZnQ6IDIwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuLyogTGV0IHVzZXJzIG5hdmlnYXRlIHZpYSB0b3VjaCAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XHJcbiAgICAubml2by1kaXJlY3Rpb25OYXYgYSwgLm5pdm8tZGlyZWN0aW9uTmF2IGE6aG92ZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuLyogTml2byBjYXB0aW9uIHN0eWxpbmcgKi9cclxuLm5pdm8tY2FwdGlvbiB7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0bGVmdDowO1xyXG5cdGJvdHRvbToyMHB4O1xyXG5cdGJhY2tncm91bmQ6IG5vbmU7XHJcblx0Y29sb3I6I2ZmZjtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHotaW5kZXg6ODtcclxuXHRwYWRkaW5nOiAyNXB4IDMwcHg7XHJcblx0b3BhY2l0eTogMTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcblx0bWF4LXdpZHRoOiA2MDBweDtcclxuXHRib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcbi5uaXZvLWNhcHRpb24gaDEsLm5pdm8tY2FwdGlvbiBoMiwubml2by1jYXB0aW9uIGgzIHtcclxuXHRjb2xvcjogI2ZmZjtcclxuXHRmb250LXNpemU6IDM2cHg7XHJcblx0bGluZS1oZWlnaHQ6IDQ0cHg7XHJcbn1cclxuXHJcbi5uaXZvLWNhcHRpb24gcCB7XHJcblx0Y29sb3I6ICNiYmI7XHJcblx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG59XHJcblxyXG4iXX0= */
assets/images/bricks-loader.gif ADDED
Binary file
assets/images/loader.gif ADDED
Binary file
assets/images/loading.gif ADDED
Binary file
assets/img/admin/accordion-add.png ADDED
Binary file
assets/img/admin/accordion.png ADDED
Binary file
assets/img/admin/carousel-add.png ADDED
Binary file
assets/img/admin/client-add.png ADDED
Binary file
assets/img/admin/clients.png ADDED
Binary file
assets/img/admin/generic-carousel.png ADDED
Binary file
assets/img/admin/heading.png ADDED
Binary file
assets/img/admin/odometer-add.png ADDED
Binary file
assets/img/admin/odometers.png ADDED
Binary file
assets/img/admin/piechart-add.png ADDED
Binary file
assets/img/admin/piecharts.png ADDED
Binary file
assets/img/admin/portfolio-add.png ADDED
Binary file
assets/img/admin/portfolio.png ADDED
Binary file
assets/img/admin/posts-carousel.png ADDED
Binary file
assets/img/admin/pricing-plan.png ADDED
Binary file
assets/img/admin/pricing-table.png ADDED
Binary file
assets/img/admin/service-add.png ADDED
Binary file
assets/img/admin/services.png ADDED
Binary file
assets/img/admin/spacer.png ADDED
Binary file
assets/img/admin/stats-bar.png ADDED
Binary file
assets/img/admin/tab-add.png ADDED
Binary file
assets/img/admin/tabs.png ADDED
Binary file
assets/img/admin/team-member-add.png ADDED
Binary file
assets/img/admin/team.png ADDED
Binary file
assets/img/admin/testimonial-add.png ADDED
Binary file
assets/img/admin/testimonials-slider-add.png ADDED
Binary file
assets/img/admin/testimonials-slider.png ADDED
Binary file
assets/img/admin/testimonials.png ADDED
Binary file
assets/js/imagesloaded.pkgd.js ADDED
@@ -0,0 +1,487 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * imagesLoaded PACKAGED v4.1.1
3
+ * JavaScript is all like "You images are done yet or what?"
4
+ * MIT License
5
+ */
6
+
7
+ /**
8
+ * EvEmitter v1.0.3
9
+ * Lil' event emitter
10
+ * MIT License
11
+ */
12
+
13
+ /* jshint unused: true, undef: true, strict: true */
14
+
15
+ ( function( global, factory ) {
16
+ // universal module definition
17
+ /* jshint strict: false */ /* globals define, module, window */
18
+ if ( typeof define == 'function' && define.amd ) {
19
+ // AMD - RequireJS
20
+ define( 'ev-emitter/ev-emitter',factory );
21
+ } else if ( typeof module == 'object' && module.exports ) {
22
+ // CommonJS - Browserify, Webpack
23
+ module.exports = factory();
24
+ } else {
25
+ // Browser globals
26
+ global.EvEmitter = factory();
27
+ }
28
+
29
+ }( typeof window != 'undefined' ? window : this, function() {
30
+
31
+
32
+
33
+ function EvEmitter() {}
34
+
35
+ var proto = EvEmitter.prototype;
36
+
37
+ proto.on = function( eventName, listener ) {
38
+ if ( !eventName || !listener ) {
39
+ return;
40
+ }
41
+ // set events hash
42
+ var events = this._events = this._events || {};
43
+ // set listeners array
44
+ var listeners = events[ eventName ] = events[ eventName ] || [];
45
+ // only add once
46
+ if ( listeners.indexOf( listener ) == -1 ) {
47
+ listeners.push( listener );
48
+ }
49
+
50
+ return this;
51
+ };
52
+
53
+ proto.once = function( eventName, listener ) {
54
+ if ( !eventName || !listener ) {
55
+ return;
56
+ }
57
+ // add event
58
+ this.on( eventName, listener );
59
+ // set once flag
60
+ // set onceEvents hash
61
+ var onceEvents = this._onceEvents = this._onceEvents || {};
62
+ // set onceListeners object
63
+ var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
64
+ // set flag
65
+ onceListeners[ listener ] = true;
66
+
67
+ return this;
68
+ };
69
+
70
+ proto.off = function( eventName, listener ) {
71
+ var listeners = this._events && this._events[ eventName ];
72
+ if ( !listeners || !listeners.length ) {
73
+ return;
74
+ }
75
+ var index = listeners.indexOf( listener );
76
+ if ( index != -1 ) {
77
+ listeners.splice( index, 1 );
78
+ }
79
+
80
+ return this;
81
+ };
82
+
83
+ proto.emitEvent = function( eventName, args ) {
84
+ var listeners = this._events && this._events[ eventName ];
85
+ if ( !listeners || !listeners.length ) {
86
+ return;
87
+ }
88
+ var i = 0;
89
+ var listener = listeners[i];
90
+ args = args || [];
91
+ // once stuff
92
+ var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
93
+
94
+ while ( listener ) {
95
+ var isOnce = onceListeners && onceListeners[ listener ];
96
+ if ( isOnce ) {
97
+ // remove listener
98
+ // remove before trigger to prevent recursion
99
+ this.off( eventName, listener );
100
+ // unset once flag
101
+ delete onceListeners[ listener ];
102
+ }
103
+ // trigger listener
104
+ listener.apply( this, args );
105
+ // get next listener
106
+ i += isOnce ? 0 : 1;
107
+ listener = listeners[i];
108
+ }
109
+
110
+ return this;
111
+ };
112
+
113
+ return EvEmitter;
114
+
115
+ }));
116
+
117
+ /*!
118
+ * imagesLoaded v4.1.1
119
+ * JavaScript is all like "You images are done yet or what?"
120
+ * MIT License
121
+ */
122
+
123
+ ( function( window, factory ) { 'use strict';
124
+ // universal module definition
125
+
126
+ /*global define: false, module: false, require: false */
127
+
128
+ if ( typeof define == 'function' && define.amd ) {
129
+ // AMD
130
+ define( [
131
+ 'ev-emitter/ev-emitter'
132
+ ], function( EvEmitter ) {
133
+ return factory( window, EvEmitter );
134
+ });
135
+ } else if ( typeof module == 'object' && module.exports ) {
136
+ // CommonJS
137
+ module.exports = factory(
138
+ window,
139
+ require('ev-emitter')
140
+ );
141
+ } else {
142
+ // browser global
143
+ window.imagesLoaded = factory(
144
+ window,
145
+ window.EvEmitter
146
+ );
147
+ }
148
+
149
+ })( window,
150
+
151
+ // -------------------------- factory -------------------------- //
152
+
153
+ function factory( window, EvEmitter ) {
154
+
155
+
156
+
157
+ var $ = window.jQuery;
158
+ var console = window.console;
159
+
160
+ // -------------------------- helpers -------------------------- //
161
+
162
+ // extend objects
163
+ function extend( a, b ) {
164
+ for ( var prop in b ) {
165
+ a[ prop ] = b[ prop ];
166
+ }
167
+ return a;
168
+ }
169
+
170
+ // turn element or nodeList into an array
171
+ function makeArray( obj ) {
172
+ var ary = [];
173
+ if ( Array.isArray( obj ) ) {
174
+ // use object if already an array
175
+ ary = obj;
176
+ } else if ( typeof obj.length == 'number' ) {
177
+ // convert nodeList to array
178
+ for ( var i=0; i < obj.length; i++ ) {
179
+ ary.push( obj[i] );
180
+ }
181
+ } else {
182
+ // array of single index
183
+ ary.push( obj );
184
+ }
185
+ return ary;
186
+ }
187
+
188
+ // -------------------------- imagesLoaded -------------------------- //
189
+
190
+ /**
191
+ * @param {Array, Element, NodeList, String} elem
192
+ * @param {Object or Function} options - if function, use as callback
193
+ * @param {Function} onAlways - callback function
194
+ */
195
+ function ImagesLoaded( elem, options, onAlways ) {
196
+ // coerce ImagesLoaded() without new, to be new ImagesLoaded()
197
+ if ( !( this instanceof ImagesLoaded ) ) {
198
+ return new ImagesLoaded( elem, options, onAlways );
199
+ }
200
+ // use elem as selector string
201
+ if ( typeof elem == 'string' ) {
202
+ elem = document.querySelectorAll( elem );
203
+ }
204
+
205
+ this.elements = makeArray( elem );
206
+ this.options = extend( {}, this.options );
207
+
208
+ if ( typeof options == 'function' ) {
209
+ onAlways = options;
210
+ } else {
211
+ extend( this.options, options );
212
+ }
213
+
214
+ if ( onAlways ) {
215
+ this.on( 'always', onAlways );
216
+ }
217
+
218
+ this.getImages();
219
+
220
+ if ( $ ) {
221
+ // add jQuery Deferred object
222
+ this.jqDeferred = new $.Deferred();
223
+ }
224
+
225
+ // HACK check async to allow time to bind listeners
226
+ setTimeout( function() {
227
+ this.check();
228
+ }.bind( this ));
229
+ }
230
+
231
+ ImagesLoaded.prototype = Object.create( EvEmitter.prototype );
232
+
233
+ ImagesLoaded.prototype.options = {};
234
+
235
+ ImagesLoaded.prototype.getImages = function() {
236
+ this.images = [];
237
+
238
+ // filter & find items if we have an item selector
239
+ this.elements.forEach( this.addElementImages, this );
240
+ };
241
+
242
+ /**
243
+ * @param {Node} element
244
+ */
245
+ ImagesLoaded.prototype.addElementImages = function( elem ) {
246
+ // filter siblings
247
+ if ( elem.nodeName == 'IMG' ) {
248
+ this.addImage( elem );
249
+ }
250
+ // get background image on element
251
+ if ( this.options.background === true ) {
252
+ this.addElementBackgroundImages( elem );
253
+ }
254
+
255
+ // find children
256
+ // no non-element nodes, #143
257
+ var nodeType = elem.nodeType;
258
+ if ( !nodeType || !elementNodeTypes[ nodeType ] ) {
259
+ return;
260
+ }
261
+ var childImgs = elem.querySelectorAll('img');
262
+ // concat childElems to filterFound array
263
+ for ( var i=0; i < childImgs.length; i++ ) {
264
+ var img = childImgs[i];
265
+ this.addImage( img );
266
+ }
267
+
268
+ // get child background images
269
+ if ( typeof this.options.background == 'string' ) {
270
+ var children = elem.querySelectorAll( this.options.background );
271
+ for ( i=0; i < children.length; i++ ) {
272
+ var child = children[i];
273
+ this.addElementBackgroundImages( child );
274
+ }
275
+ }
276
+ };
277
+
278
+ var elementNodeTypes = {
279
+ 1: true,
280
+ 9: true,
281
+ 11: true
282
+ };
283
+
284
+ ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {
285
+ var style = getComputedStyle( elem );
286
+ if ( !style ) {
287
+ // Firefox returns null if in a hidden iframe https://bugzil.la/548397
288
+ return;
289
+ }
290
+ // get url inside url("...")
291
+ var reURL = /url\((['"])?(.*?)\1\)/gi;
292
+ var matches = reURL.exec( style.backgroundImage );
293
+ while ( matches !== null ) {
294
+ var url = matches && matches[2];
295
+ if ( url ) {
296
+ this.addBackground( url, elem );
297
+ }
298
+ matches = reURL.exec( style.backgroundImage );
299
+ }
300
+ };
301
+
302
+ /**
303
+ * @param {Image} img
304
+ */
305
+ ImagesLoaded.prototype.addImage = function( img ) {
306
+ var loadingImage = new LoadingImage( img );
307
+ this.images.push( loadingImage );
308
+ };
309
+
310
+ ImagesLoaded.prototype.addBackground = function( url, elem ) {
311
+ var background = new Background( url, elem );
312
+ this.images.push( background );
313
+ };
314
+
315
+ ImagesLoaded.prototype.check = function() {
316
+ var _this = this;
317
+ this.progressedCount = 0;
318
+ this.hasAnyBroken = false;
319
+ // complete if no images
320
+ if ( !this.images.length ) {
321
+ this.complete();
322
+ return;
323
+ }
324
+
325
+ function onProgress( image, elem, message ) {
326
+ // HACK - Chrome triggers event before object properties have changed. #83
327
+ setTimeout( function() {
328
+ _this.progress( image, elem, message );
329
+ });
330
+ }
331
+
332
+ this.images.forEach( function( loadingImage ) {
333
+ loadingImage.once( 'progress', onProgress );
334
+ loadingImage.check();
335
+ });
336
+ };
337
+
338
+ ImagesLoaded.prototype.progress = function( image, elem, message ) {
339
+ this.progressedCount++;
340
+ this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
341
+ // progress event
342
+ this.emitEvent( 'progress', [ this, image, elem ] );
343
+ if ( this.jqDeferred && this.jqDeferred.notify ) {
344
+ this.jqDeferred.notify( this, image );
345
+ }
346
+ // check if completed
347
+ if ( this.progressedCount == this.images.length ) {
348
+ this.complete();
349
+ }
350
+
351
+ if ( this.options.debug && console ) {
352
+ console.log( 'progress: ' + message, image, elem );
353
+ }
354
+ };
355
+
356
+ ImagesLoaded.prototype.complete = function() {
357
+ var eventName = this.hasAnyBroken ? 'fail' : 'done';
358
+ this.isComplete = true;
359
+ this.emitEvent( eventName, [ this ] );
360
+ this.emitEvent( 'always', [ this ] );
361
+ if ( this.jqDeferred ) {
362
+ var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';
363
+ this.jqDeferred[ jqMethod ]( this );
364
+ }
365
+ };
366
+
367
+ // -------------------------- -------------------------- //
368
+
369
+ function LoadingImage( img ) {
370
+ this.img = img;
371
+ }
372
+
373
+ LoadingImage.prototype = Object.create( EvEmitter.prototype );
374
+
375
+ LoadingImage.prototype.check = function() {
376
+ // If complete is true and browser supports natural sizes,
377
+ // try to check for image status manually.
378
+ var isComplete = this.getIsImageComplete();
379
+ if ( isComplete ) {
380
+ // report based on naturalWidth
381
+ this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
382
+ return;
383
+ }
384
+
385
+ // If none of the checks above matched, simulate loading on detached element.
386
+ this.proxyImage = new Image();
387
+ this.proxyImage.addEventListener( 'load', this );
388
+ this.proxyImage.addEventListener( 'error', this );
389
+ // bind to image as well for Firefox. #191
390
+ this.img.addEventListener( 'load', this );
391
+ this.img.addEventListener( 'error', this );
392
+ this.proxyImage.src = this.img.src;
393
+ };
394
+
395
+ LoadingImage.prototype.getIsImageComplete = function() {
396
+ return this.img.complete && this.img.naturalWidth !== undefined;
397
+ };
398
+
399
+ LoadingImage.prototype.confirm = function( isLoaded, message ) {
400
+ this.isLoaded = isLoaded;
401
+ this.emitEvent( 'progress', [ this, this.img, message ] );
402
+ };
403
+
404
+ // ----- events ----- //
405
+
406
+ // trigger specified handler for event type
407
+ LoadingImage.prototype.handleEvent = function( event ) {
408
+ var method = 'on' + event.type;
409
+ if ( this[ method ] ) {
410
+ this[ method ]( event );
411
+ }
412
+ };
413
+
414
+ LoadingImage.prototype.onload = function() {
415
+ this.confirm( true, 'onload' );
416
+ this.unbindEvents();
417
+ };
418
+
419
+ LoadingImage.prototype.onerror = function() {
420
+ this.confirm( false, 'onerror' );
421
+ this.unbindEvents();
422
+ };
423
+
424
+ LoadingImage.prototype.unbindEvents = function() {
425
+ this.proxyImage.removeEventListener( 'load', this );
426
+ this.proxyImage.removeEventListener( 'error', this );
427
+ this.img.removeEventListener( 'load', this );
428
+ this.img.removeEventListener( 'error', this );
429
+ };
430
+
431
+ // -------------------------- Background -------------------------- //
432
+
433
+ function Background( url, element ) {
434
+ this.url = url;
435
+ this.element = element;
436
+ this.img = new Image();
437
+ }
438
+
439
+ // inherit LoadingImage prototype
440
+ Background.prototype = Object.create( LoadingImage.prototype );
441
+
442
+ Background.prototype.check = function() {
443
+ this.img.addEventListener( 'load', this );
444
+ this.img.addEventListener( 'error', this );
445
+ this.img.src = this.url;
446
+ // check if image is already complete
447
+ var isComplete = this.getIsImageComplete();
448
+ if ( isComplete ) {
449
+ this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
450
+ this.unbindEvents();
451
+ }
452
+ };
453
+
454
+ Background.prototype.unbindEvents = function() {
455
+ this.img.removeEventListener( 'load', this );
456
+ this.img.removeEventListener( 'error', this );
457
+ };
458
+
459
+ Background.prototype.confirm = function( isLoaded, message ) {
460
+ this.isLoaded = isLoaded;
461
+ this.emitEvent( 'progress', [ this, this.element, message ] );
462
+ };
463
+
464
+ // -------------------------- jQuery -------------------------- //
465
+
466
+ ImagesLoaded.makeJQueryPlugin = function( jQuery ) {
467
+ jQuery = jQuery || window.jQuery;
468
+ if ( !jQuery ) {
469
+ return;
470
+ }
471
+ // set local variable
472
+ $ = jQuery;
473
+ // $().imagesLoaded()
474
+ $.fn.imagesLoaded = function( options, callback ) {
475
+ var instance = new ImagesLoaded( this, options, callback );
476
+ return instance.jqDeferred.promise( $(this) );
477
+ };
478
+ };
479
+ // try making plugin
480
+ ImagesLoaded.makeJQueryPlugin();
481
+
482
+ // -------------------------- -------------------------- //
483
+
484
+ return ImagesLoaded;
485
+
486
+ });
487
+
assets/js/imagesloaded.pkgd.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(global,factory){if(typeof define=="function"&&define.amd){define("ev-emitter/ev-emitter",factory)}else if(typeof module=="object"&&module.exports){module.exports=factory()}else{global.EvEmitter=factory()}})(typeof window!="undefined"?window:this,function(){function EvEmitter(){}var proto=EvEmitter.prototype;proto.on=function(eventName,listener){if(!eventName||!listener){return}var events=this._events=this._events||{};var listeners=events[eventName]=events[eventName]||[];if(listeners.indexOf(listener)==-1){listeners.push(listener)}return this};proto.once=function(eventName,listener){if(!eventName||!listener){return}this.on(eventName,listener);var onceEvents=this._onceEvents=this._onceEvents||{};var onceListeners=onceEvents[eventName]=onceEvents[eventName]||{};onceListeners[listener]=true;return this};proto.off=function(eventName,listener){var listeners=this._events&&this._events[eventName];if(!listeners||!listeners.length){return}var index=listeners.indexOf(listener);if(index!=-1){listeners.splice(index,1)}return this};proto.emitEvent=function(eventName,args){var listeners=this._events&&this._events[eventName];if(!listeners||!listeners.length){return}var i=0;var listener=listeners[i];args=args||[];var onceListeners=this._onceEvents&&this._onceEvents[eventName];while(listener){var isOnce=onceListeners&&onceListeners[listener];if(isOnce){this.off(eventName,listener);delete onceListeners[listener]}listener.apply(this,args);i+=isOnce?0:1;listener=listeners[i]}return this};return EvEmitter});(function(window,factory){"use strict";if(typeof define=="function"&&define.amd){define(["ev-emitter/ev-emitter"],function(EvEmitter){return factory(window,EvEmitter)})}else if(typeof module=="object"&&module.exports){module.exports=factory(window,require("ev-emitter"))}else{window.imagesLoaded=factory(window,window.EvEmitter)}})(window,function factory(window,EvEmitter){var $=window.jQuery;var console=window.console;function extend(a,b){for(var prop in b){a[prop]=b[prop]}return a}function makeArray(obj){var ary=[];if(Array.isArray(obj)){ary=obj}else if(typeof obj.length=="number"){for(var i=0;i<obj.length;i++){ary.push(obj[i])}}else{ary.push(obj)}return ary}function ImagesLoaded(elem,options,onAlways){if(!(this instanceof ImagesLoaded)){return new ImagesLoaded(elem,options,onAlways)}if(typeof elem=="string"){elem=document.querySelectorAll(elem)}this.elements=makeArray(elem);this.options=extend({},this.options);if(typeof options=="function"){onAlways=options}else{extend(this.options,options)}if(onAlways){this.on("always",onAlways)}this.getImages();if($){this.jqDeferred=new $.Deferred}setTimeout(function(){this.check()}.bind(this))}ImagesLoaded.prototype=Object.create(EvEmitter.prototype);ImagesLoaded.prototype.options={};ImagesLoaded.prototype.getImages=function(){this.images=[];this.elements.forEach(this.addElementImages,this)};ImagesLoaded.prototype.addElementImages=function(elem){if(elem.nodeName=="IMG"){this.addImage(elem)}if(this.options.background===true){this.addElementBackgroundImages(elem)}var nodeType=elem.nodeType;if(!nodeType||!elementNodeTypes[nodeType]){return}var childImgs=elem.querySelectorAll("img");for(var i=0;i<childImgs.length;i++){var img=childImgs[i];this.addImage(img)}if(typeof this.options.background=="string"){var children=elem.querySelectorAll(this.options.background);for(i=0;i<children.length;i++){var child=children[i];this.addElementBackgroundImages(child)}}};var elementNodeTypes={1:true,9:true,11:true};ImagesLoaded.prototype.addElementBackgroundImages=function(elem){var style=getComputedStyle(elem);if(!style){return}var reURL=/url\((['"])?(.*?)\1\)/gi;var matches=reURL.exec(style.backgroundImage);while(matches!==null){var url=matches&&matches[2];if(url){this.addBackground(url,elem)}matches=reURL.exec(style.backgroundImage)}};ImagesLoaded.prototype.addImage=function(img){var loadingImage=new LoadingImage(img);this.images.push(loadingImage)};ImagesLoaded.prototype.addBackground=function(url,elem){var background=new Background(url,elem);this.images.push(background)};ImagesLoaded.prototype.check=function(){var _this=this;this.progressedCount=0;this.hasAnyBroken=false;if(!this.images.length){this.complete();return}function onProgress(image,elem,message){setTimeout(function(){_this.progress(image,elem,message)})}this.images.forEach(function(loadingImage){loadingImage.once("progress",onProgress);loadingImage.check()})};ImagesLoaded.prototype.progress=function(image,elem,message){this.progressedCount++;this.hasAnyBroken=this.hasAnyBroken||!image.isLoaded;this.emitEvent("progress",[this,image,elem]);if(this.jqDeferred&&this.jqDeferred.notify){this.jqDeferred.notify(this,image)}if(this.progressedCount==this.images.length){this.complete()}if(this.options.debug&&console){console.log("progress: "+message,image,elem)}};ImagesLoaded.prototype.complete=function(){var eventName=this.hasAnyBroken?"fail":"done";this.isComplete=true;this.emitEvent(eventName,[this]);this.emitEvent("always",[this]);if(this.jqDeferred){var jqMethod=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[jqMethod](this)}};function LoadingImage(img){this.img=img}LoadingImage.prototype=Object.create(EvEmitter.prototype);LoadingImage.prototype.check=function(){var isComplete=this.getIsImageComplete();if(isComplete){this.confirm(this.img.naturalWidth!==0,"naturalWidth");return}this.proxyImage=new Image;this.proxyImage.addEventListener("load",this);this.proxyImage.addEventListener("error",this);this.img.addEventListener("load",this);this.img.addEventListener("error",this);this.proxyImage.src=this.img.src};LoadingImage.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth!==undefined};LoadingImage.prototype.confirm=function(isLoaded,message){this.isLoaded=isLoaded;this.emitEvent("progress",[this,this.img,message])};LoadingImage.prototype.handleEvent=function(event){var method="on"+event.type;if(this[method]){this[method](event)}};LoadingImage.prototype.onload=function(){this.confirm(true,"onload");this.unbindEvents()};LoadingImage.prototype.onerror=function(){this.confirm(false,"onerror");this.unbindEvents()};LoadingImage.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this);this.proxyImage.removeEventListener("error",this);this.img.removeEventListener("load",this);this.img.removeEventListener("error",this)};function Background(url,element){this.url=url;this.element=element;this.img=new Image}Background.prototype=Object.create(LoadingImage.prototype);Background.prototype.check=function(){this.img.addEventListener("load",this);this.img.addEventListener("error",this);this.img.src=this.url;var isComplete=this.getIsImageComplete();if(isComplete){this.confirm(this.img.naturalWidth!==0,"naturalWidth");this.unbindEvents()}};Background.prototype.unbindEvents=function(){this.img.removeEventListener("load",this);this.img.removeEventListener("error",this)};Background.prototype.confirm=function(isLoaded,message){this.isLoaded=isLoaded;this.emitEvent("progress",[this,this.element,message])};ImagesLoaded.makeJQueryPlugin=function(jQuery){jQuery=jQuery||window.jQuery;if(!jQuery){return}$=jQuery;$.fn.imagesLoaded=function(options,callback){var instance=new ImagesLoaded(this,options,callback);return instance.jqDeferred.promise($(this))}};ImagesLoaded.makeJQueryPlugin();return ImagesLoaded});
assets/js/isotope.pkgd.js ADDED
@@ -0,0 +1,3524 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Isotope PACKAGED v3.0.3
3
+ *
4
+ * Licensed GPLv3 for open source use
5
+ * or Isotope Commercial License for commercial use
6
+ *
7
+ * http://isotope.metafizzy.co
8
+ * Copyright 2017 Metafizzy
9
+ */
10
+
11
+ /**
12
+ * Bridget makes jQuery widgets
13
+ * v2.0.1
14
+ * MIT license
15
+ */
16
+
17
+ /* jshint browser: true, strict: true, undef: true, unused: true */
18
+
19
+ ( function( window, factory ) {
20
+ // universal module definition
21
+ /*jshint strict: false */ /* globals define, module, require */
22
+ if ( typeof define == 'function' && define.amd ) {
23
+ // AMD
24
+ define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {
25
+ return factory( window, jQuery );
26
+ });
27
+ } else if ( typeof module == 'object' && module.exports ) {
28
+ // CommonJS
29
+ module.exports = factory(
30
+ window,
31
+ require('jquery')
32
+ );
33
+ } else {
34
+ // browser global
35
+ window.jQueryBridget = factory(
36
+ window,
37
+ window.jQuery
38
+ );
39
+ }
40
+
41
+ }( window, function factory( window, jQuery ) {
42
+ 'use strict';
43
+
44
+ // ----- utils ----- //
45
+
46
+ var arraySlice = Array.prototype.slice;
47
+
48
+ // helper function for logging errors
49
+ // $.error breaks jQuery chaining
50
+ var console = window.console;
51
+ var logError = typeof console == 'undefined' ? function() {} :
52
+ function( message ) {
53
+ console.error( message );
54
+ };
55
+
56
+ // ----- jQueryBridget ----- //
57
+
58
+ function jQueryBridget( namespace, PluginClass, $ ) {
59
+ $ = $ || jQuery || window.jQuery;
60
+ if ( !$ ) {
61
+ return;
62
+ }
63
+
64
+ // add option method -> $().plugin('option', {...})
65
+ if ( !PluginClass.prototype.option ) {
66
+ // option setter
67
+ PluginClass.prototype.option = function( opts ) {
68
+ // bail out if not an object
69
+ if ( !$.isPlainObject( opts ) ){
70
+ return;
71
+ }
72
+ this.options = $.extend( true, this.options, opts );
73
+ };
74
+ }
75
+
76
+ // make jQuery plugin
77
+ $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {
78
+ if ( typeof arg0 == 'string' ) {
79
+ // method call $().plugin( 'methodName', { options } )
80
+ // shift arguments by 1
81
+ var args = arraySlice.call( arguments, 1 );
82
+ return methodCall( this, arg0, args );
83
+ }
84
+ // just $().plugin({ options })
85
+ plainCall( this, arg0 );
86
+ return this;
87
+ };
88
+
89
+ // $().plugin('methodName')
90
+ function methodCall( $elems, methodName, args ) {
91
+ var returnValue;
92
+ var pluginMethodStr = '$().' + namespace + '("' + methodName + '")';
93
+
94
+ $elems.each( function( i, elem ) {
95
+ // get instance
96
+ var instance = $.data( elem, namespace );
97
+ if ( !instance ) {
98
+ logError( namespace + ' not initialized. Cannot call methods, i.e. ' +
99
+ pluginMethodStr );
100
+ return;
101
+ }
102
+
103
+ var method = instance[ methodName ];
104
+ if ( !method || methodName.charAt(0) == '_' ) {
105
+ logError( pluginMethodStr + ' is not a valid method' );
106
+ return;
107
+ }
108
+
109
+ // apply method, get return value
110
+ var value = method.apply( instance, args );
111
+ // set return value if value is returned, use only first value
112
+ returnValue = returnValue === undefined ? value : returnValue;
113
+ });
114
+
115
+ return returnValue !== undefined ? returnValue : $elems;
116
+ }
117
+
118
+ function plainCall( $elems, options ) {
119
+ $elems.each( function( i, elem ) {
120
+ var instance = $.data( elem, namespace );
121
+ if ( instance ) {
122
+ // set options & init
123
+ instance.option( options );
124
+ instance._init();
125
+ } else {
126
+ // initialize new instance
127
+ instance = new PluginClass( elem, options );
128
+ $.data( elem, namespace, instance );
129
+ }
130
+ });
131
+ }
132
+
133
+ updateJQuery( $ );
134
+
135
+ }
136
+
137
+ // ----- updateJQuery ----- //
138
+
139
+ // set $.bridget for v1 backwards compatibility
140
+ function updateJQuery( $ ) {
141
+ if ( !$ || ( $ && $.bridget ) ) {
142
+ return;
143
+ }
144
+ $.bridget = jQueryBridget;
145
+ }
146
+
147
+ updateJQuery( jQuery || window.jQuery );
148
+
149
+ // ----- ----- //
150
+
151
+ return jQueryBridget;
152
+
153
+ }));
154
+
155
+ /**
156
+ * EvEmitter v1.0.3
157
+ * Lil' event emitter
158
+ * MIT License
159
+ */
160
+
161
+ /* jshint unused: true, undef: true, strict: true */
162
+
163
+ ( function( global, factory ) {
164
+ // universal module definition
165
+ /* jshint strict: false */ /* globals define, module, window */
166
+ if ( typeof define == 'function' && define.amd ) {
167
+ // AMD - RequireJS
168
+ define( 'ev-emitter/ev-emitter',factory );
169
+ } else if ( typeof module == 'object' && module.exports ) {
170
+ // CommonJS - Browserify, Webpack
171
+ module.exports = factory();
172
+ } else {
173
+ // Browser globals
174
+ global.EvEmitter = factory();
175
+ }
176
+
177
+ }( typeof window != 'undefined' ? window : this, function() {
178
+
179
+
180
+
181
+ function EvEmitter() {}
182
+
183
+ var proto = EvEmitter.prototype;
184
+
185
+ proto.on = function( eventName, listener ) {
186
+ if ( !eventName || !listener ) {
187
+ return;
188
+ }
189
+ // set events hash
190
+ var events = this._events = this._events || {};
191
+ // set listeners array
192
+ var listeners = events[ eventName ] = events[ eventName ] || [];
193
+ // only add once
194
+ if ( listeners.indexOf( listener ) == -1 ) {
195
+ listeners.push( listener );
196
+ }
197
+
198
+ return this;
199
+ };
200
+
201
+ proto.once = function( eventName, listener ) {
202
+ if ( !eventName || !listener ) {
203
+ return;
204
+ }
205
+ // add event
206
+ this.on( eventName, listener );
207
+ // set once flag
208
+ // set onceEvents hash
209
+ var onceEvents = this._onceEvents = this._onceEvents || {};
210
+ // set onceListeners object
211
+ var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
212
+ // set flag
213
+ onceListeners[ listener ] = true;
214
+
215
+ return this;
216
+ };
217
+
218
+ proto.off = function( eventName, listener ) {
219
+ var listeners = this._events && this._events[ eventName ];
220
+ if ( !listeners || !listeners.length ) {
221
+ return;
222
+ }
223
+ var index = listeners.indexOf( listener );
224
+ if ( index != -1 ) {
225
+ listeners.splice( index, 1 );
226
+ }
227
+
228
+ return this;
229
+ };
230
+
231
+ proto.emitEvent = function( eventName, args ) {
232
+ var listeners = this._events && this._events[ eventName ];
233
+ if ( !listeners || !listeners.length ) {
234
+ return;
235
+ }
236
+ var i = 0;
237
+ var listener = listeners[i];
238
+ args = args || [];
239
+ // once stuff
240
+ var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
241
+
242
+ while ( listener ) {
243
+ var isOnce = onceListeners && onceListeners[ listener ];
244
+ if ( isOnce ) {
245
+ // remove listener
246
+ // remove before trigger to prevent recursion
247
+ this.off( eventName, listener );
248
+ // unset once flag
249
+ delete onceListeners[ listener ];
250
+ }
251
+ // trigger listener
252
+ listener.apply( this, args );
253
+ // get next listener
254
+ i += isOnce ? 0 : 1;
255
+ listener = listeners[i];
256
+ }
257
+
258
+ return this;
259
+ };
260
+
261
+ return EvEmitter;
262
+
263
+ }));
264
+
265
+ /*!
266
+ * getSize v2.0.2
267
+ * measure size of elements
268
+ * MIT license
269
+ */
270
+
271
+ /*jshint browser: true, strict: true, undef: true, unused: true */
272
+ /*global define: false, module: false, console: false */
273
+
274
+ ( function( window, factory ) {
275
+ 'use strict';
276
+
277
+ if ( typeof define == 'function' && define.amd ) {
278
+ // AMD
279
+ define( 'get-size/get-size',[],function() {
280
+ return factory();
281
+ });
282
+ } else if ( typeof module == 'object' && module.exports ) {
283
+ // CommonJS
284
+ module.exports = factory();
285
+ } else {
286
+ // browser global
287
+ window.getSize = factory();
288
+ }
289
+
290
+ })( window, function factory() {
291
+ 'use strict';
292
+
293
+ // -------------------------- helpers -------------------------- //
294
+
295
+ // get a number from a string, not a percentage
296
+ function getStyleSize( value ) {
297
+ var num = parseFloat( value );
298
+ // not a percent like '100%', and a number
299
+ var isValid = value.indexOf('%') == -1 && !isNaN( num );
300
+ return isValid && num;
301
+ }
302
+
303
+ function noop() {}
304
+
305
+ var logError = typeof console == 'undefined' ? noop :
306
+ function( message ) {
307
+ console.error( message );
308
+ };
309
+
310
+ // -------------------------- measurements -------------------------- //
311
+
312
+ var measurements = [
313
+ 'paddingLeft',
314
+ 'paddingRight',
315
+ 'paddingTop',
316
+ 'paddingBottom',
317
+ 'marginLeft',
318
+ 'marginRight',
319
+ 'marginTop',
320
+ 'marginBottom',
321
+ 'borderLeftWidth',
322
+ 'borderRightWidth',
323
+ 'borderTopWidth',
324
+ 'borderBottomWidth'
325
+ ];
326
+
327
+ var measurementsLength = measurements.length;
328
+
329
+ function getZeroSize() {
330
+ var size = {
331
+ width: 0,
332
+ height: 0,
333
+ innerWidth: 0,
334
+ innerHeight: 0,
335
+ outerWidth: 0,
336
+ outerHeight: 0
337
+ };
338
+ for ( var i=0; i < measurementsLength; i++ ) {
339
+ var measurement = measurements[i];
340
+ size[ measurement ] = 0;
341
+ }
342
+ return size;
343
+ }
344
+
345
+ // -------------------------- getStyle -------------------------- //
346
+
347
+ /**
348
+ * getStyle, get style of element, check for Firefox bug
349
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=548397
350
+ */
351
+ function getStyle( elem ) {
352
+ var style = getComputedStyle( elem );
353
+ if ( !style ) {
354
+ logError( 'Style returned ' + style +
355
+ '. Are you running this code in a hidden iframe on Firefox? ' +
356
+ 'See http://bit.ly/getsizebug1' );
357
+ }
358
+ return style;
359
+ }
360
+
361
+ // -------------------------- setup -------------------------- //
362
+
363
+ var isSetup = false;
364
+
365
+ var isBoxSizeOuter;
366
+
367
+ /**
368
+ * setup
369
+ * check isBoxSizerOuter
370
+ * do on first getSize() rather than on page load for Firefox bug
371
+ */
372
+ function setup() {
373
+ // setup once
374
+ if ( isSetup ) {
375
+ return;
376
+ }
377
+ isSetup = true;
378
+
379
+ // -------------------------- box sizing -------------------------- //
380
+
381
+ /**
382
+ * WebKit measures the outer-width on style.width on border-box elems
383
+ * IE & Firefox<29 measures the inner-width
384
+ */
385
+ var div = document.createElement('div');
386
+ div.style.width = '200px';
387
+ div.style.padding = '1px 2px 3px 4px';
388
+ div.style.borderStyle = 'solid';
389
+ div.style.borderWidth = '1px 2px 3px 4px';
390
+ div.style.boxSizing = 'border-box';
391
+
392
+ var body = document.body || document.documentElement;
393
+ body.appendChild( div );
394
+ var style = getStyle( div );
395
+
396
+ getSize.isBoxSizeOuter = isBoxSizeOuter = getStyleSize( style.width ) == 200;
397
+ body.removeChild( div );
398
+
399
+ }
400
+
401
+ // -------------------------- getSize -------------------------- //
402
+
403
+ function getSize( elem ) {
404
+ setup();
405
+
406
+ // use querySeletor if elem is string
407
+ if ( typeof elem == 'string' ) {
408
+ elem = document.querySelector( elem );
409
+ }
410
+
411
+ // do not proceed on non-objects
412
+ if ( !elem || typeof elem != 'object' || !elem.nodeType ) {
413
+ return;
414
+ }
415
+
416
+ var style = getStyle( elem );
417
+
418
+ // if hidden, everything is 0
419
+ if ( style.display == 'none' ) {
420
+ return getZeroSize();
421
+ }
422
+
423
+ var size = {};
424
+ size.width = elem.offsetWidth;
425
+ size.height = elem.offsetHeight;
426
+
427
+ var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';
428
+
429
+ // get all measurements
430
+ for ( var i=0; i < measurementsLength; i++ ) {
431
+ var measurement = measurements[i];
432
+ var value = style[ measurement ];
433
+ var num = parseFloat( value );
434
+ // any 'auto', 'medium' value will be 0
435
+ size[ measurement ] = !isNaN( num ) ? num : 0;
436
+ }
437
+
438
+ var paddingWidth = size.paddingLeft + size.paddingRight;
439
+ var paddingHeight = size.paddingTop + size.paddingBottom;
440
+ var marginWidth = size.marginLeft + size.marginRight;
441
+ var marginHeight = size.marginTop + size.marginBottom;
442
+ var borderWidth = size.borderLeftWidth + size.borderRightWidth;
443
+ var borderHeight = size.borderTopWidth + size.borderBottomWidth;
444
+
445
+ var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
446
+
447
+ // overwrite width and height if we can get it from style
448
+ var styleWidth = getStyleSize( style.width );
449
+ if ( styleWidth !== false ) {
450
+ size.width = styleWidth +
451
+ // add padding and border unless it's already including it
452
+ ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );
453
+ }
454
+
455
+ var styleHeight = getStyleSize( style.height );
456
+ if ( styleHeight !== false ) {
457
+ size.height = styleHeight +
458
+ // add padding and border unless it's already including it
459
+ ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );
460
+ }
461
+
462
+ size.innerWidth = size.width - ( paddingWidth + borderWidth );
463
+ size.innerHeight = size.height - ( paddingHeight + borderHeight );
464
+
465
+ size.outerWidth = size.width + marginWidth;
466
+ size.outerHeight = size.height + marginHeight;
467
+
468
+ return size;
469
+ }
470
+
471
+ return getSize;
472
+
473
+ });
474
+
475
+ /**
476
+ * matchesSelector v2.0.2
477
+ * matchesSelector( element, '.selector' )
478
+ * MIT license
479
+ */
480
+
481
+ /*jshint browser: true, strict: true, undef: true, unused: true */
482
+
483
+ ( function( window, factory ) {
484
+ /*global define: false, module: false */
485
+ 'use strict';
486
+ // universal module definition
487
+ if ( typeof define == 'function' && define.amd ) {
488
+ // AMD
489
+ define( 'desandro-matches-selector/matches-selector',factory );
490
+ } else if ( typeof module == 'object' && module.exports ) {
491
+ // CommonJS
492
+ module.exports = factory();
493
+ } else {
494
+ // browser global
495
+ window.matchesSelector = factory();
496
+ }
497
+
498
+ }( window, function factory() {
499
+ 'use strict';
500
+
501
+ var matchesMethod = ( function() {
502
+ var ElemProto = window.Element.prototype;
503
+ // check for the standard method name first
504
+ if ( ElemProto.matches ) {
505
+ return 'matches';
506
+ }
507
+ // check un-prefixed
508
+ if ( ElemProto.matchesSelector ) {
509
+ return 'matchesSelector';
510
+ }
511
+ // check vendor prefixes
512
+ var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
513
+
514
+ for ( var i=0; i < prefixes.length; i++ ) {
515
+ var prefix = prefixes[i];
516
+ var method = prefix + 'MatchesSelector';
517
+ if ( ElemProto[ method ] ) {
518
+ return method;
519
+ }
520
+ }
521
+ })();
522
+
523
+ return function matchesSelector( elem, selector ) {
524
+ return elem[ matchesMethod ]( selector );
525
+ };
526
+
527
+ }));
528
+
529
+ /**
530
+ * Fizzy UI utils v2.0.4
531
+ * MIT license
532
+ */
533
+
534
+ /*jshint browser: true, undef: true, unused: true, strict: true */
535
+
536
+ ( function( window, factory ) {
537
+ // universal module definition
538
+ /*jshint strict: false */ /*globals define, module, require */
539
+
540
+ if ( typeof define == 'function' && define.amd ) {
541
+ // AMD
542
+ define( 'fizzy-ui-utils/utils',[
543
+ 'desandro-matches-selector/matches-selector'
544
+ ], function( matchesSelector ) {
545
+ return factory( window, matchesSelector );
546
+ });
547
+ } else if ( typeof module == 'object' && module.exports ) {
548
+ // CommonJS
549
+ module.exports = factory(
550
+ window,
551
+ require('desandro-matches-selector')
552
+ );
553
+ } else {
554
+ // browser global
555
+ window.fizzyUIUtils = factory(
556
+ window,
557
+ window.matchesSelector
558
+ );
559
+ }
560
+
561
+ }( window, function factory( window, matchesSelector ) {
562
+
563
+
564
+
565
+ var utils = {};
566
+
567
+ // ----- extend ----- //
568
+
569
+ // extends objects
570
+ utils.extend = function( a, b ) {
571
+ for ( var prop in b ) {
572
+ a[ prop ] = b[ prop ];
573
+ }
574
+ return a;
575
+ };
576
+
577
+ // ----- modulo ----- //
578
+
579
+ utils.modulo = function( num, div ) {
580
+ return ( ( num % div ) + div ) % div;
581
+ };
582
+
583
+ // ----- makeArray ----- //
584
+
585
+ // turn element or nodeList into an array
586
+ utils.makeArray = function( obj ) {
587
+ var ary = [];
588
+ if ( Array.isArray( obj ) ) {
589
+ // use object if already an array
590
+ ary = obj;
591
+ } else if ( obj && typeof obj == 'object' &&
592
+ typeof obj.length == 'number' ) {
593
+ // convert nodeList to array
594
+ for ( var i=0; i < obj.length; i++ ) {
595
+ ary.push( obj[i] );
596
+ }
597
+ } else {
598
+ // array of single index
599
+ ary.push( obj );
600
+ }
601
+ return ary;
602
+ };
603
+
604
+ // ----- removeFrom ----- //
605
+
606
+ utils.removeFrom = function( ary, obj ) {
607
+ var index = ary.indexOf( obj );
608
+ if ( index != -1 ) {
609
+ ary.splice( index, 1 );
610
+ }
611
+ };
612
+
613
+ // ----- getParent ----- //
614
+
615
+ utils.getParent = function( elem, selector ) {
616
+ while ( elem != document.body ) {
617
+ elem = elem.parentNode;
618
+ if ( matchesSelector( elem, selector ) ) {
619
+ return elem;
620
+ }
621
+ }
622
+ };
623
+
624
+ // ----- getQueryElement ----- //
625
+
626
+ // use element as selector string
627
+ utils.getQueryElement = function( elem ) {
628
+ if ( typeof elem == 'string' ) {
629
+ return document.querySelector( elem );
630
+ }
631
+ return elem;
632
+ };
633
+
634
+ // ----- handleEvent ----- //
635
+
636
+ // enable .ontype to trigger from .addEventListener( elem, 'type' )
637
+ utils.handleEvent = function( event ) {
638
+ var method = 'on' + event.type;
639
+ if ( this[ method ] ) {
640
+ this[ method ]( event );
641
+ }
642
+ };
643
+
644
+ // ----- filterFindElements ----- //
645
+
646
+ utils.filterFindElements = function( elems, selector ) {
647
+ // make array of elems
648
+ elems = utils.makeArray( elems );
649
+ var ffElems = [];
650
+
651
+ elems.forEach( function( elem ) {
652
+ // check that elem is an actual element
653
+ if ( !( elem instanceof HTMLElement ) ) {
654
+ return;
655
+ }
656
+ // add elem if no selector
657
+ if ( !selector ) {
658
+ ffElems.push( elem );
659
+ return;
660
+ }
661
+ // filter & find items if we have a selector
662
+ // filter
663
+ if ( matchesSelector( elem, selector ) ) {
664
+ ffElems.push( elem );
665
+ }
666
+ // find children
667
+ var childElems = elem.querySelectorAll( selector );
668
+ // concat childElems to filterFound array
669
+ for ( var i=0; i < childElems.length; i++ ) {
670
+ ffElems.push( childElems[i] );
671
+ }
672
+ });
673
+
674
+ return ffElems;
675
+ };
676
+
677
+ // ----- debounceMethod ----- //
678
+
679
+ utils.debounceMethod = function( _class, methodName, threshold ) {
680
+ // original method
681
+ var method = _class.prototype[ methodName ];
682
+ var timeoutName = methodName + 'Timeout';
683
+
684
+ _class.prototype[ methodName ] = function() {
685
+ var timeout = this[ timeoutName ];
686
+ if ( timeout ) {
687
+ clearTimeout( timeout );
688
+ }
689
+ var args = arguments;
690
+
691
+ var _this = this;
692
+ this[ timeoutName ] = setTimeout( function() {
693
+ method.apply( _this, args );
694
+ delete _this[ timeoutName ];
695
+ }, threshold || 100 );
696
+ };
697
+ };
698
+
699
+ // ----- docReady ----- //
700
+
701
+ utils.docReady = function( callback ) {
702
+ var readyState = document.readyState;
703
+ if ( readyState == 'complete' || readyState == 'interactive' ) {
704
+ // do async to allow for other scripts to run. metafizzy/flickity#441
705
+ setTimeout( callback );
706
+ } else {
707
+ document.addEventListener( 'DOMContentLoaded', callback );
708
+ }
709
+ };
710
+
711
+ // ----- htmlInit ----- //
712
+
713
+ // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
714
+ utils.toDashed = function( str ) {
715
+ return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {
716
+ return $1 + '-' + $2;
717
+ }).toLowerCase();
718
+ };
719
+
720
+ var console = window.console;
721
+ /**
722
+ * allow user to initialize classes via [data-namespace] or .js-namespace class
723
+ * htmlInit( Widget, 'widgetName' )
724
+ * options are parsed from data-namespace-options
725
+ */
726
+ utils.htmlInit = function( WidgetClass, namespace ) {
727
+ utils.docReady( function() {
728
+ var dashedNamespace = utils.toDashed( namespace );
729
+ var dataAttr = 'data-' + dashedNamespace;
730
+ var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );
731
+ var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );
732
+ var elems = utils.makeArray( dataAttrElems )
733
+ .concat( utils.makeArray( jsDashElems ) );
734
+ var dataOptionsAttr = dataAttr + '-options';
735
+ var jQuery = window.jQuery;
736
+
737
+ elems.forEach( function( elem ) {
738
+ var attr = elem.getAttribute( dataAttr ) ||
739
+ elem.getAttribute( dataOptionsAttr );
740
+ var options;
741
+ try {
742
+ options = attr && JSON.parse( attr );
743
+ } catch ( error ) {
744
+ // log error, do not initialize
745
+ if ( console ) {
746
+ console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +
747
+ ': ' + error );
748
+ }
749
+ return;
750
+ }
751
+ // initialize
752
+ var instance = new WidgetClass( elem, options );
753
+ // make available via $().data('namespace')
754
+ if ( jQuery ) {
755
+ jQuery.data( elem, namespace, instance );
756
+ }
757
+ });
758
+
759
+ });
760
+ };
761
+
762
+ // ----- ----- //
763
+
764
+ return utils;
765
+
766
+ }));
767
+
768
+ /**
769
+ * Outlayer Item
770
+ */
771
+
772
+ ( function( window, factory ) {
773
+ // universal module definition
774
+ /* jshint strict: false */ /* globals define, module, require */
775
+ if ( typeof define == 'function' && define.amd ) {
776
+ // AMD - RequireJS
777
+ define( 'outlayer/item',[
778
+ 'ev-emitter/ev-emitter',
779
+ 'get-size/get-size'
780
+ ],
781
+ factory
782
+ );
783
+ } else if ( typeof module == 'object' && module.exports ) {
784
+ // CommonJS - Browserify, Webpack
785
+ module.exports = factory(
786
+ require('ev-emitter'),
787
+ require('get-size')
788
+ );
789
+ } else {
790
+ // browser global
791
+ window.Outlayer = {};
792
+ window.Outlayer.Item = factory(
793
+ window.EvEmitter,
794
+ window.getSize
795
+ );
796
+ }
797
+
798
+ }( window, function factory( EvEmitter, getSize ) {
799
+ 'use strict';
800
+
801
+ // ----- helpers ----- //
802
+
803
+ function isEmptyObj( obj ) {
804
+ for ( var prop in obj ) {
805
+ return false;
806
+ }
807
+ prop = null;
808
+ return true;
809
+ }
810
+
811
+ // -------------------------- CSS3 support -------------------------- //
812
+
813
+
814
+ var docElemStyle = document.documentElement.style;
815
+
816
+ var transitionProperty = typeof docElemStyle.transition == 'string' ?
817
+ 'transition' : 'WebkitTransition';
818
+ var transformProperty = typeof docElemStyle.transform == 'string' ?
819
+ 'transform' : 'WebkitTransform';
820
+
821
+ var transitionEndEvent = {
822
+ WebkitTransition: 'webkitTransitionEnd',
823
+ transition: 'transitionend'
824
+ }[ transitionProperty ];
825
+
826
+ // cache all vendor properties that could have vendor prefix
827
+ var vendorProperties = {
828
+ transform: transformProperty,
829
+ transition: transitionProperty,
830
+ transitionDuration: transitionProperty + 'Duration',
831
+ transitionProperty: transitionProperty + 'Property',
832
+ transitionDelay: transitionProperty + 'Delay'
833
+ };
834
+
835
+ // -------------------------- Item -------------------------- //
836
+
837
+ function Item( element, layout ) {
838
+ if ( !element ) {
839
+ return;
840
+ }
841
+
842
+ this.element = element;
843
+ // parent layout class, i.e. Masonry, Isotope, or Packery
844
+ this.layout = layout;
845
+ this.position = {
846
+ x: 0,
847
+ y: 0
848
+ };
849
+
850
+ this._create();
851
+ }
852
+
853
+ // inherit EvEmitter
854
+ var proto = Item.prototype = Object.create( EvEmitter.prototype );
855
+ proto.constructor = Item;
856
+
857
+ proto._create = function() {
858
+ // transition objects
859
+ this._transn = {
860
+ ingProperties: {},
861
+ clean: {},
862
+ onEnd: {}
863
+ };
864
+
865
+ this.css({
866
+ position: 'absolute'
867
+ });
868
+ };
869
+
870
+ // trigger specified handler for event type
871
+ proto.handleEvent = function( event ) {
872
+ var method = 'on' + event.type;
873
+ if ( this[ method ] ) {
874
+ this[ method ]( event );
875
+ }
876
+ };
877
+
878
+ proto.getSize = function() {
879
+ this.size = getSize( this.element );
880
+ };
881
+
882
+ /**
883
+ * apply CSS styles to element
884
+ * @param {Object} style
885
+ */
886
+ proto.css = function( style ) {
887
+ var elemStyle = this.element.style;
888
+
889
+ for ( var prop in style ) {
890
+ // use vendor property if available
891
+ var supportedProp = vendorProperties[ prop ] || prop;
892
+ elemStyle[ supportedProp ] = style[ prop ];
893
+ }
894
+ };
895
+
896
+ // measure position, and sets it
897
+ proto.getPosition = function() {
898
+ var style = getComputedStyle( this.element );
899
+ var isOriginLeft = this.layout._getOption('originLeft');
900
+ var isOriginTop = this.layout._getOption('originTop');
901
+ var xValue = style[ isOriginLeft ? 'left' : 'right' ];
902
+ var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
903
+ // convert percent to pixels
904
+ var layoutSize = this.layout.size;
905
+ var x = xValue.indexOf('%') != -1 ?
906
+ ( parseFloat( xValue ) / 100 ) * layoutSize.width : parseInt( xValue, 10 );
907
+ var y = yValue.indexOf('%') != -1 ?
908
+ ( parseFloat( yValue ) / 100 ) * layoutSize.height : parseInt( yValue, 10 );
909
+
910
+ // clean up 'auto' or other non-integer values
911
+ x = isNaN( x ) ? 0 : x;
912
+ y = isNaN( y ) ? 0 : y;
913
+ // remove padding from measurement
914
+ x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
915
+ y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
916
+
917
+ this.position.x = x;
918
+ this.position.y = y;
919
+ };
920
+
921
+ // set settled position, apply padding
922
+ proto.layoutPosition = function() {
923
+ var layoutSize = this.layout.size;
924
+ var style = {};
925
+ var isOriginLeft = this.layout._getOption('originLeft');
926
+ var isOriginTop = this.layout._getOption('originTop');
927
+
928
+ // x
929
+ var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';
930
+ var xProperty = isOriginLeft ? 'left' : 'right';
931
+ var xResetProperty = isOriginLeft ? 'right' : 'left';
932
+
933
+ var x = this.position.x + layoutSize[ xPadding ];
934
+ // set in percentage or pixels
935
+ style[ xProperty ] = this.getXValue( x );
936
+ // reset other property
937
+ style[ xResetProperty ] = '';
938
+
939
+ // y
940
+ var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';
941
+ var yProperty = isOriginTop ? 'top' : 'bottom';
942
+ var yResetProperty = isOriginTop ? 'bottom' : 'top';
943
+
944
+ var y = this.position.y + layoutSize[ yPadding ];
945
+ // set in percentage or pixels
946
+ style[ yProperty ] = this.getYValue( y );
947
+ // reset other property
948
+ style[ yResetProperty ] = '';
949
+
950
+ this.css( style );
951
+ this.emitEvent( 'layout', [ this ] );
952
+ };
953
+
954
+ proto.getXValue = function( x ) {
955
+ var isHorizontal = this.layout._getOption('horizontal');
956
+ return this.layout.options.percentPosition && !isHorizontal ?
957
+ ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
958
+ };
959
+
960
+ proto.getYValue = function( y ) {
961
+ var isHorizontal = this.layout._getOption('horizontal');
962
+ return this.layout.options.percentPosition && isHorizontal ?
963
+ ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
964
+ };
965
+
966
+ proto._transitionTo = function( x, y ) {
967
+ this.getPosition();
968
+ // get current x & y from top/left
969
+ var curX = this.position.x;
970
+ var curY = this.position.y;
971
+
972
+ var compareX = parseInt( x, 10 );
973
+ var compareY = parseInt( y, 10 );
974
+ var didNotMove = compareX === this.position.x && compareY === this.position.y;
975
+
976
+ // save end position
977
+ this.setPosition( x, y );
978
+
979
+ // if did not move and not transitioning, just go to layout
980
+ if ( didNotMove && !this.isTransitioning ) {
981
+ this.layoutPosition();
982
+ return;
983
+ }
984
+
985
+ var transX = x - curX;
986
+ var transY = y - curY;
987
+ var transitionStyle = {};
988
+ transitionStyle.transform = this.getTranslate( transX, transY );
989
+
990
+ this.transition({
991
+ to: transitionStyle,
992
+ onTransitionEnd: {
993
+ transform: this.layoutPosition
994
+ },
995
+ isCleaning: true
996
+ });
997
+ };
998
+
999
+ proto.getTranslate = function( x, y ) {
1000
+ // flip cooridinates if origin on right or bottom
1001
+ var isOriginLeft = this.layout._getOption('originLeft');
1002
+ var isOriginTop = this.layout._getOption('originTop');
1003
+ x = isOriginLeft ? x : -x;
1004
+ y = isOriginTop ? y : -y;
1005
+ return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
1006
+ };
1007
+
1008
+ // non transition + transform support
1009
+ proto.goTo = function( x, y ) {
1010
+ this.setPosition( x, y );
1011
+ this.layoutPosition();
1012
+ };
1013
+
1014
+ proto.moveTo = proto._transitionTo;
1015
+
1016
+ proto.setPosition = function( x, y ) {
1017
+ this.position.x = parseInt( x, 10 );
1018
+ this.position.y = parseInt( y, 10 );
1019
+ };
1020
+
1021
+ // ----- transition ----- //
1022
+
1023
+ /**
1024
+ * @param {Object} style - CSS
1025
+ * @param {Function} onTransitionEnd
1026
+ */
1027
+
1028
+ // non transition, just trigger callback
1029
+ proto._nonTransition = function( args ) {
1030
+ this.css( args.to );
1031
+ if ( args.isCleaning ) {
1032
+ this._removeStyles( args.to );
1033
+ }
1034
+ for ( var prop in args.onTransitionEnd ) {
1035
+ args.onTransitionEnd[ prop ].call( this );
1036
+ }
1037
+ };
1038
+
1039
+ /**
1040
+ * proper transition
1041
+ * @param {Object} args - arguments
1042
+ * @param {Object} to - style to transition to
1043
+ * @param {Object} from - style to start transition from
1044
+ * @param {Boolean} isCleaning - removes transition styles after transition
1045
+ * @param {Function} onTransitionEnd - callback
1046
+ */
1047
+ proto.transition = function( args ) {
1048
+ // redirect to nonTransition if no transition duration
1049
+ if ( !parseFloat( this.layout.options.transitionDuration ) ) {
1050
+ this._nonTransition( args );
1051
+ return;
1052
+ }
1053
+
1054
+ var _transition = this._transn;
1055
+ // keep track of onTransitionEnd callback by css property
1056
+ for ( var prop in args.onTransitionEnd ) {
1057
+ _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];
1058
+ }
1059
+ // keep track of properties that are transitioning
1060
+ for ( prop in args.to ) {
1061
+ _transition.ingProperties[ prop ] = true;
1062
+ // keep track of properties to clean up when transition is done
1063
+ if ( args.isCleaning ) {
1064
+ _transition.clean[ prop ] = true;
1065
+ }
1066
+ }
1067
+
1068
+ // set from styles
1069
+ if ( args.from ) {
1070
+ this.css( args.from );
1071
+ // force redraw. http://blog.alexmaccaw.com/css-transitions
1072
+ var h = this.element.offsetHeight;
1073
+ // hack for JSHint to hush about unused var
1074
+ h = null;
1075
+ }
1076
+ // enable transition
1077
+ this.enableTransition( args.to );
1078
+ // set styles that are transitioning
1079
+ this.css( args.to );
1080
+
1081
+ this.isTransitioning = true;
1082
+
1083
+ };
1084
+
1085
+ // dash before all cap letters, including first for
1086
+ // WebkitTransform => -webkit-transform
1087
+ function toDashedAll( str ) {
1088
+ return str.replace( /([A-Z])/g, function( $1 ) {
1089
+ return '-' + $1.toLowerCase();
1090
+ });
1091
+ }
1092
+
1093
+ var transitionProps = 'opacity,' + toDashedAll( transformProperty );
1094
+
1095
+ proto.enableTransition = function(/* style */) {
1096
+ // HACK changing transitionProperty during a transition
1097
+ // will cause transition to jump
1098
+ if ( this.isTransitioning ) {
1099
+ return;
1100
+ }
1101
+
1102
+ // make `transition: foo, bar, baz` from style object
1103
+ // HACK un-comment this when enableTransition can work
1104
+ // while a transition is happening
1105
+ // var transitionValues = [];
1106
+ // for ( var prop in style ) {
1107
+ // // dash-ify camelCased properties like WebkitTransition
1108
+ // prop = vendorProperties[ prop ] || prop;
1109
+ // transitionValues.push( toDashedAll( prop ) );
1110
+ // }
1111
+ // munge number to millisecond, to match stagger
1112
+ var duration = this.layout.options.transitionDuration;
1113
+ duration = typeof duration == 'number' ? duration + 'ms' : duration;
1114
+ // enable transition styles
1115
+ this.css({
1116
+ transitionProperty: transitionProps,
1117
+ transitionDuration: duration,
1118
+ transitionDelay: this.staggerDelay || 0
1119
+ });
1120
+ // listen for transition end event
1121
+ this.element.addEventListener( transitionEndEvent, this, false );
1122
+ };
1123
+
1124
+ // ----- events ----- //
1125
+
1126
+ proto.onwebkitTransitionEnd = function( event ) {
1127
+ this.ontransitionend( event );
1128
+ };
1129
+
1130
+ proto.onotransitionend = function( event ) {
1131
+ this.ontransitionend( event );
1132
+ };
1133
+
1134
+ // properties that I munge to make my life easier
1135
+ var dashedVendorProperties = {
1136
+ '-webkit-transform': 'transform'
1137
+ };
1138
+
1139
+ proto.ontransitionend = function( event ) {
1140
+ // disregard bubbled events from children
1141
+ if ( event.target !== this.element ) {
1142
+ return;
1143
+ }
1144
+ var _transition = this._transn;
1145
+ // get property name of transitioned property, convert to prefix-free
1146
+ var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;
1147
+
1148
+ // remove property that has completed transitioning
1149
+ delete _transition.ingProperties[ propertyName ];
1150
+ // check if any properties are still transitioning
1151
+ if ( isEmptyObj( _transition.ingProperties ) ) {
1152
+ // all properties have completed transitioning
1153
+ this.disableTransition();
1154
+ }
1155
+ // clean style
1156
+ if ( propertyName in _transition.clean ) {
1157
+ // clean up style
1158
+ this.element.style[ event.propertyName ] = '';
1159
+ delete _transition.clean[ propertyName ];
1160
+ }
1161
+ // trigger onTransitionEnd callback
1162
+ if ( propertyName in _transition.onEnd ) {
1163
+ var onTransitionEnd = _transition.onEnd[ propertyName ];
1164
+ onTransitionEnd.call( this );
1165
+ delete _transition.onEnd[ propertyName ];
1166
+ }
1167
+
1168
+ this.emitEvent( 'transitionEnd', [ this ] );
1169
+ };
1170
+
1171
+ proto.disableTransition = function() {
1172
+ this.removeTransitionStyles();
1173
+ this.element.removeEventListener( transitionEndEvent, this, false );
1174
+ this.isTransitioning = false;
1175
+ };
1176
+
1177
+ /**
1178
+ * removes style property from element
1179
+ * @param {Object} style
1180
+ **/
1181
+ proto._removeStyles = function( style ) {
1182
+ // clean up transition styles
1183
+ var cleanStyle = {};
1184
+ for ( var prop in style ) {
1185
+ cleanStyle[ prop ] = '';
1186
+ }
1187
+ this.css( cleanStyle );
1188
+ };
1189
+
1190
+ var cleanTransitionStyle = {
1191
+ transitionProperty: '',
1192
+ transitionDuration: '',
1193
+ transitionDelay: ''
1194
+ };
1195
+
1196
+ proto.removeTransitionStyles = function() {
1197
+ // remove transition
1198
+ this.css( cleanTransitionStyle );
1199
+ };
1200
+
1201
+ // ----- stagger ----- //
1202
+
1203
+ proto.stagger = function( delay ) {
1204
+ delay = isNaN( delay ) ? 0 : delay;
1205
+ this.staggerDelay = delay + 'ms';
1206
+ };
1207
+
1208
+ // ----- show/hide/remove ----- //
1209
+
1210
+ // remove element from DOM
1211
+ proto.removeElem = function() {
1212
+ this.element.parentNode.removeChild( this.element );
1213
+ // remove display: none
1214
+ this.css({ display: '' });
1215
+ this.emitEvent( 'remove', [ this ] );
1216
+ };
1217
+
1218
+ proto.remove = function() {
1219
+ // just remove element if no transition support or no transition
1220
+ if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {
1221
+ this.removeElem();
1222
+ return;
1223
+ }
1224
+
1225
+ // start transition
1226
+ this.once( 'transitionEnd', function() {
1227
+ this.removeElem();
1228
+ });
1229
+ this.hide();
1230
+ };
1231
+
1232
+ proto.reveal = function() {
1233
+ delete this.isHidden;
1234
+ // remove display: none
1235
+ this.css({ display: '' });
1236
+
1237
+ var options = this.layout.options;
1238
+
1239
+ var onTransitionEnd = {};
1240
+ var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');
1241
+ onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;
1242
+
1243
+ this.transition({
1244
+ from: options.hiddenStyle,
1245
+ to: options.visibleStyle,
1246
+ isCleaning: true,
1247
+ onTransitionEnd: onTransitionEnd
1248
+ });
1249
+ };
1250
+
1251
+ proto.onRevealTransitionEnd = function() {
1252
+ // check if still visible
1253
+ // during transition, item may have been hidden
1254
+ if ( !this.isHidden ) {
1255
+ this.emitEvent('reveal');
1256
+ }
1257
+ };
1258
+
1259
+ /**
1260
+ * get style property use for hide/reveal transition end
1261
+ * @param {String} styleProperty - hiddenStyle/visibleStyle
1262
+ * @returns {String}
1263
+ */
1264
+ proto.getHideRevealTransitionEndProperty = function( styleProperty ) {
1265
+ var optionStyle = this.layout.options[ styleProperty ];
1266
+ // use opacity
1267
+ if ( optionStyle.opacity ) {
1268
+ return 'opacity';
1269
+ }
1270
+ // get first property
1271
+ for ( var prop in optionStyle ) {
1272
+ return prop;
1273
+ }
1274
+ };
1275
+
1276
+ proto.hide = function() {
1277
+ // set flag
1278
+ this.isHidden = true;
1279
+ // remove display: none
1280
+ this.css({ display: '' });
1281
+
1282
+ var options = this.layout.options;
1283
+
1284
+ var onTransitionEnd = {};
1285
+ var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');
1286
+ onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;
1287
+
1288
+ this.transition({
1289
+ from: options.visibleStyle,
1290
+ to: options.hiddenStyle,
1291
+ // keep hidden stuff hidden
1292
+ isCleaning: true,
1293
+ onTransitionEnd: onTransitionEnd
1294
+ });
1295
+ };
1296
+
1297
+ proto.onHideTransitionEnd = function() {
1298
+ // check if still hidden
1299
+ // during transition, item may have been un-hidden
1300
+ if ( this.isHidden ) {
1301
+ this.css({ display: 'none' });
1302
+ this.emitEvent('hide');
1303
+ }
1304
+ };
1305
+
1306
+ proto.destroy = function() {
1307
+ this.css({
1308
+ position: '',
1309
+ left: '',
1310
+ right: '',
1311
+ top: '',
1312
+ bottom: '',
1313
+ transition: '',
1314
+ transform: ''
1315
+ });
1316
+ };
1317
+
1318
+ return Item;
1319
+
1320
+ }));
1321
+
1322
+ /*!
1323
+ * Outlayer v2.1.0
1324
+ * the brains and guts of a layout library
1325
+ * MIT license
1326
+ */
1327
+
1328
+ ( function( window, factory ) {
1329
+ 'use strict';
1330
+ // universal module definition
1331
+ /* jshint strict: false */ /* globals define, module, require */
1332
+ if ( typeof define == 'function' && define.amd ) {
1333
+ // AMD - RequireJS
1334
+ define( 'outlayer/outlayer',[
1335
+ 'ev-emitter/ev-emitter',
1336
+ 'get-size/get-size',
1337
+ 'fizzy-ui-utils/utils',
1338
+ './item'
1339
+ ],
1340
+ function( EvEmitter, getSize, utils, Item ) {
1341
+ return factory( window, EvEmitter, getSize, utils, Item);
1342
+ }
1343
+ );
1344
+ } else if ( typeof module == 'object' && module.exports ) {
1345
+ // CommonJS - Browserify, Webpack
1346
+ module.exports = factory(
1347
+ window,
1348
+ require('ev-emitter'),
1349
+ require('get-size'),
1350
+ require('fizzy-ui-utils'),
1351
+ require('./item')
1352
+ );
1353
+ } else {
1354
+ // browser global
1355
+ window.Outlayer = factory(
1356
+ window,
1357
+ window.EvEmitter,
1358
+ window.getSize,
1359
+ window.fizzyUIUtils,
1360
+ window.Outlayer.Item
1361
+ );
1362
+ }
1363
+
1364
+ }( window, function factory( window, EvEmitter, getSize, utils, Item ) {
1365
+ 'use strict';
1366
+
1367
+ // ----- vars ----- //
1368
+
1369
+ var console = window.console;
1370
+ var jQuery = window.jQuery;
1371
+ var noop = function() {};
1372
+
1373
+ // -------------------------- Outlayer -------------------------- //
1374
+
1375
+ // globally unique identifiers
1376
+ var GUID = 0;
1377
+ // internal store of all Outlayer intances
1378
+ var instances = {};
1379
+
1380
+
1381
+ /**
1382
+ * @param {Element, String} element
1383
+ * @param {Object} options
1384
+ * @constructor
1385
+ */
1386
+ function Outlayer( element, options ) {
1387
+ var queryElement = utils.getQueryElement( element );
1388
+ if ( !queryElement ) {
1389
+ if ( console ) {
1390
+ console.error( 'Bad element for ' + this.constructor.namespace +
1391
+ ': ' + ( queryElement || element ) );
1392
+ }
1393
+ return;
1394
+ }
1395
+ this.element = queryElement;
1396
+ // add jQuery
1397
+ if ( jQuery ) {
1398
+ this.$element = jQuery( this.element );
1399
+ }
1400
+
1401
+ // options
1402
+ this.options = utils.extend( {}, this.constructor.defaults );
1403
+ this.option( options );
1404
+
1405
+ // add id for Outlayer.getFromElement
1406
+ var id = ++GUID;
1407
+ this.element.outlayerGUID = id; // expando
1408
+ instances[ id ] = this; // associate via id
1409
+
1410
+ // kick it off
1411
+ this._create();
1412
+
1413
+ var isInitLayout = this._getOption('initLayout');
1414
+ if ( isInitLayout ) {
1415
+ this.layout();
1416
+ }
1417
+ }
1418
+
1419
+ // settings are for internal use only
1420
+ Outlayer.namespace = 'outlayer';
1421
+ Outlayer.Item = Item;
1422
+
1423
+ // default options
1424
+ Outlayer.defaults = {
1425
+ containerStyle: {
1426
+ position: 'relative'
1427
+ },
1428
+ initLayout: true,
1429
+ originLeft: true,
1430
+ originTop: true,
1431
+ resize: true,
1432
+ resizeContainer: true,
1433
+ // item options
1434
+ transitionDuration: '0.4s',
1435
+ hiddenStyle: {
1436
+ opacity: 0,
1437
+ transform: 'scale(0.001)'
1438
+ },
1439
+ visibleStyle: {
1440
+ opacity: 1,
1441
+ transform: 'scale(1)'
1442
+ }
1443
+ };
1444
+
1445
+ var proto = Outlayer.prototype;
1446
+ // inherit EvEmitter
1447
+ utils.extend( proto, EvEmitter.prototype );
1448
+
1449
+ /**
1450
+ * set options
1451
+ * @param {Object} opts
1452
+ */
1453
+ proto.option = function( opts ) {
1454
+ utils.extend( this.options, opts );
1455
+ };
1456
+
1457
+ /**
1458
+ * get backwards compatible option value, check old name
1459
+ */
1460
+ proto._getOption = function( option ) {
1461
+ var oldOption = this.constructor.compatOptions[ option ];
1462
+ return oldOption && this.options[ oldOption ] !== undefined ?
1463
+ this.options[ oldOption ] : this.options[ option ];
1464
+ };
1465
+
1466
+ Outlayer.compatOptions = {
1467
+ // currentName: oldName
1468
+ initLayout: 'isInitLayout',
1469
+ horizontal: 'isHorizontal',
1470
+ layoutInstant: 'isLayoutInstant',
1471
+ originLeft: 'isOriginLeft',
1472
+ originTop: 'isOriginTop',
1473
+ resize: 'isResizeBound',
1474
+ resizeContainer: 'isResizingContainer'
1475
+ };
1476
+
1477
+ proto._create = function() {
1478
+ // get items from children
1479
+ this.reloadItems();
1480
+ // elements that affect layout, but are not laid out
1481
+ this.stamps = [];
1482
+ this.stamp( this.options.stamp );
1483
+ // set container style
1484
+ utils.extend( this.element.style, this.options.containerStyle );
1485
+
1486
+ // bind resize method
1487
+ var canBindResize = this._getOption('resize');
1488
+ if ( canBindResize ) {
1489
+ this.bindResize();
1490
+ }
1491
+ };
1492
+
1493
+ // goes through all children again and gets bricks in proper order
1494
+ proto.reloadItems = function() {
1495
+ // collection of item elements
1496
+ this.items = this._itemize( this.element.children );
1497
+ };
1498
+
1499
+
1500
+ /**
1501
+ * turn elements into Outlayer.Items to be used in layout
1502
+ * @param {Array or NodeList or HTMLElement} elems
1503
+ * @returns {Array} items - collection of new Outlayer Items
1504
+ */
1505
+ proto._itemize = function( elems ) {
1506
+
1507
+ var itemElems = this._filterFindItemElements( elems );
1508
+ var Item = this.constructor.Item;
1509
+
1510
+ // create new Outlayer Items for collection
1511
+ var items = [];
1512
+ for ( var i=0; i < itemElems.length; i++ ) {
1513
+ var elem = itemElems[i];
1514
+ var item = new Item( elem, this );
1515
+ items.push( item );
1516
+ }
1517
+
1518
+ return items;
1519
+ };
1520
+
1521
+ /**
1522
+ * get item elements to be used in layout
1523
+ * @param {Array or NodeList or HTMLElement} elems
1524
+ * @returns {Array} items - item elements
1525
+ */
1526
+ proto._filterFindItemElements = function( elems ) {
1527
+ return utils.filterFindElements( elems, this.options.itemSelector );
1528
+ };
1529
+
1530
+ /**
1531
+ * getter method for getting item elements
1532
+ * @returns {Array} elems - collection of item elements
1533
+ */
1534
+ proto.getItemElements = function() {
1535
+ return this.items.map( function( item ) {
1536
+ return item.element;
1537
+ });
1538
+ };
1539
+
1540
+ // ----- init & layout ----- //
1541
+
1542
+ /**
1543
+ * lays out all items
1544
+ */
1545
+ proto.layout = function() {
1546
+ this._resetLayout();
1547
+ this._manageStamps();
1548
+
1549
+ // don't animate first layout
1550
+ var layoutInstant = this._getOption('layoutInstant');
1551
+ var isInstant = layoutInstant !== undefined ?
1552
+ layoutInstant : !this._isLayoutInited;
1553
+ this.layoutItems( this.items, isInstant );
1554
+
1555
+ // flag for initalized
1556
+ this._isLayoutInited = true;
1557
+ };
1558
+
1559
+ // _init is alias for layout
1560
+ proto._init = proto.layout;
1561
+
1562
+ /**
1563
+ * logic before any new layout
1564
+ */
1565
+ proto._resetLayout = function() {
1566
+ this.getSize();
1567
+ };
1568
+
1569
+
1570
+ proto.getSize = function() {
1571
+ this.size = getSize( this.element );
1572
+ };
1573
+
1574
+ /**
1575
+ * get measurement from option, for columnWidth, rowHeight, gutter
1576
+ * if option is String -> get element from selector string, & get size of element
1577
+ * if option is Element -> get size of element
1578
+ * else use option as a number
1579
+ *
1580
+ * @param {String} measurement
1581
+ * @param {String} size - width or height
1582
+ * @private
1583
+ */
1584
+ proto._getMeasurement = function( measurement, size ) {
1585
+ var option = this.options[ measurement ];
1586
+ var elem;
1587
+ if ( !option ) {
1588
+ // default to 0
1589
+ this[ measurement ] = 0;
1590
+ } else {
1591
+ // use option as an element
1592
+ if ( typeof option == 'string' ) {
1593
+ elem = this.element.querySelector( option );
1594
+ } else if ( option instanceof HTMLElement ) {
1595
+ elem = option;
1596
+ }
1597
+ // use size of element, if element
1598
+ this[ measurement ] = elem ? getSize( elem )[ size ] : option;
1599
+ }
1600
+ };
1601
+
1602
+ /**
1603
+ * layout a collection of item elements
1604
+ * @api public
1605
+ */
1606
+ proto.layoutItems = function( items, isInstant ) {
1607
+ items = this._getItemsForLayout( items );
1608
+
1609
+ this._layoutItems( items, isInstant );
1610
+
1611
+ this._postLayout();
1612
+ };
1613
+
1614
+ /**
1615
+ * get the items to be laid out
1616
+ * you may want to skip over some items
1617
+ * @param {Array} items
1618
+ * @returns {Array} items
1619
+ */
1620
+ proto._getItemsForLayout = function( items ) {
1621
+ return items.filter( function( item ) {
1622
+ return !item.isIgnored;
1623
+ });
1624
+ };
1625
+
1626
+ /**
1627
+ * layout items
1628
+ * @param {Array} items
1629
+ * @param {Boolean} isInstant
1630
+ */
1631
+ proto._layoutItems = function( items, isInstant ) {
1632
+ this._emitCompleteOnItems( 'layout', items );
1633
+
1634
+ if ( !items || !items.length ) {
1635
+ // no items, emit event with empty array
1636
+ return;
1637
+ }
1638
+
1639
+ var queue = [];
1640
+
1641
+ items.forEach( function( item ) {
1642
+ // get x/y object from method
1643
+ var position = this._getItemLayoutPosition( item );
1644
+ // enqueue
1645
+ position.item = item;
1646
+ position.isInstant = isInstant || item.isLayoutInstant;
1647
+ queue.push( position );
1648
+ }, this );
1649
+
1650
+ this._processLayoutQueue( queue );
1651
+ };
1652
+
1653
+ /**
1654
+ * get item layout position
1655
+ * @param {Outlayer.Item} item
1656
+ * @returns {Object} x and y position
1657
+ */
1658
+ proto._getItemLayoutPosition = function( /* item */ ) {
1659
+ return {
1660
+ x: 0,
1661
+ y: 0
1662
+ };
1663
+ };
1664
+
1665
+ /**
1666
+ * iterate over array and position each item
1667
+ * Reason being - separating this logic prevents 'layout invalidation'
1668
+ * thx @paul_irish
1669
+ * @param {Array} queue
1670
+ */
1671
+ proto._processLayoutQueue = function( queue ) {
1672
+ this.updateStagger();
1673
+ queue.forEach( function( obj, i ) {
1674
+ this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );
1675
+ }, this );
1676
+ };
1677
+
1678
+ // set stagger from option in milliseconds number
1679
+ proto.updateStagger = function() {
1680
+ var stagger = this.options.stagger;
1681
+ if ( stagger === null || stagger === undefined ) {
1682
+ this.stagger = 0;
1683
+ return;
1684
+ }
1685
+ this.stagger = getMilliseconds( stagger );
1686
+ return this.stagger;
1687
+ };
1688
+
1689
+ /**
1690
+ * Sets position of item in DOM
1691
+ * @param {Outlayer.Item} item
1692
+ * @param {Number} x - horizontal position
1693
+ * @param {Number} y - vertical position
1694
+ * @param {Boolean} isInstant - disables transitions
1695
+ */
1696
+ proto._positionItem = function( item, x, y, isInstant, i ) {
1697
+ if ( isInstant ) {
1698
+ // if not transition, just set CSS
1699
+ item.goTo( x, y );
1700
+ } else {
1701
+ item.stagger( i * this.stagger );
1702
+ item.moveTo( x, y );
1703
+ }
1704
+ };
1705
+
1706
+ /**
1707
+ * Any logic you want to do after each layout,
1708
+ * i.e. size the container
1709
+ */
1710
+ proto._postLayout = function() {
1711
+ this.resizeContainer();
1712
+ };
1713
+
1714
+ proto.resizeContainer = function() {
1715
+ var isResizingContainer = this._getOption('resizeContainer');
1716
+ if ( !isResizingContainer ) {
1717
+ return;
1718
+ }
1719
+ var size = this._getContainerSize();
1720
+ if ( size ) {
1721
+ this._setContainerMeasure( size.width, true );
1722
+ this._setContainerMeasure( size.height, false );
1723
+ }
1724
+ };
1725
+
1726
+ /**
1727
+ * Sets width or height of container if returned
1728
+ * @returns {Object} size
1729
+ * @param {Number} width
1730
+ * @param {Number} height
1731
+ */
1732
+ proto._getContainerSize = noop;
1733
+
1734
+ /**
1735
+ * @param {Number} measure - size of width or height
1736
+ * @param {Boolean} isWidth
1737
+ */
1738
+ proto._setContainerMeasure = function( measure, isWidth ) {
1739
+ if ( measure === undefined ) {
1740
+ return;
1741
+ }
1742
+
1743
+ var elemSize = this.size;
1744
+ // add padding and border width if border box
1745
+ if ( elemSize.isBorderBox ) {
1746
+ measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +
1747
+ elemSize.borderLeftWidth + elemSize.borderRightWidth :
1748
+ elemSize.paddingBottom + elemSize.paddingTop +
1749
+ elemSize.borderTopWidth + elemSize.borderBottomWidth;
1750
+ }
1751
+
1752
+ measure = Math.max( measure, 0 );
1753
+ this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';
1754
+ };
1755
+
1756
+ /**
1757
+ * emit eventComplete on a collection of items events
1758
+ * @param {String} eventName
1759
+ * @param {Array} items - Outlayer.Items
1760
+ */
1761
+ proto._emitCompleteOnItems = function( eventName, items ) {
1762
+ var _this = this;
1763
+ function onComplete() {
1764
+ _this.dispatchEvent( eventName + 'Complete', null, [ items ] );
1765
+ }
1766
+
1767
+ var count = items.length;
1768
+ if ( !items || !count ) {
1769
+ onComplete();
1770
+ return;
1771
+ }
1772
+
1773
+ var doneCount = 0;
1774
+ function tick() {
1775
+ doneCount++;
1776
+ if ( doneCount == count ) {
1777
+ onComplete();
1778
+ }
1779
+ }
1780
+
1781
+ // bind callback
1782
+ items.forEach( function( item ) {
1783
+ item.once( eventName, tick );
1784
+ });
1785
+ };
1786
+
1787
+ /**
1788
+ * emits events via EvEmitter and jQuery events
1789
+ * @param {String} type - name of event
1790
+ * @param {Event} event - original event
1791
+ * @param {Array} args - extra arguments
1792
+ */
1793
+ proto.dispatchEvent = function( type, event, args ) {
1794
+ // add original event to arguments
1795
+ var emitArgs = event ? [ event ].concat( args ) : args;
1796
+ this.emitEvent( type, emitArgs );
1797
+
1798
+ if ( jQuery ) {
1799
+ // set this.$element
1800
+ this.$element = this.$element || jQuery( this.element );
1801
+ if ( event ) {
1802
+ // create jQuery event
1803
+ var $event = jQuery.Event( event );
1804
+ $event.type = type;
1805
+ this.$element.trigger( $event, args );
1806
+ } else {
1807
+ // just trigger with type if no event available
1808
+ this.$element.trigger( type, args );
1809
+ }
1810
+ }
1811
+ };
1812
+
1813
+ // -------------------------- ignore & stamps -------------------------- //
1814
+
1815
+
1816
+ /**
1817
+ * keep item in collection, but do not lay it out
1818
+ * ignored items do not get skipped in layout
1819
+ * @param {Element} elem
1820
+ */
1821
+ proto.ignore = function( elem ) {
1822
+ var item = this.getItem( elem );
1823
+ if ( item ) {
1824
+ item.isIgnored = true;
1825
+ }
1826
+ };
1827
+
1828
+ /**
1829
+ * return item to layout collection
1830
+ * @param {Element} elem
1831
+ */
1832
+ proto.unignore = function( elem ) {
1833
+ var item = this.getItem( elem );
1834
+ if ( item ) {
1835
+ delete item.isIgnored;
1836
+ }
1837
+ };
1838
+
1839
+ /**
1840
+ * adds elements to stamps
1841
+ * @param {NodeList, Array, Element, or String} elems
1842
+ */
1843
+ proto.stamp = function( elems ) {
1844
+ elems = this._find( elems );
1845
+ if ( !elems ) {
1846
+ return;
1847
+ }
1848
+
1849
+ this.stamps = this.stamps.concat( elems );
1850
+ // ignore
1851
+ elems.forEach( this.ignore, this );
1852
+ };
1853
+
1854
+ /**
1855
+ * removes elements to stamps
1856
+ * @param {NodeList, Array, or Element} elems
1857
+ */
1858
+ proto.unstamp = function( elems ) {
1859
+ elems = this._find( elems );
1860
+ if ( !elems ){
1861
+ return;
1862
+ }
1863
+
1864
+ elems.forEach( function( elem ) {
1865
+ // filter out removed stamp elements
1866
+ utils.removeFrom( this.stamps, elem );
1867
+ this.unignore( elem );
1868
+ }, this );
1869
+ };
1870
+
1871
+ /**
1872
+ * finds child elements
1873
+ * @param {NodeList, Array, Element, or String} elems
1874
+ * @returns {Array} elems
1875
+ */
1876
+ proto._find = function( elems ) {
1877
+ if ( !elems ) {
1878
+ return;
1879
+ }
1880
+ // if string, use argument as selector string
1881
+ if ( typeof elems == 'string' ) {
1882
+ elems = this.element.querySelectorAll( elems );
1883
+ }
1884
+ elems = utils.makeArray( elems );
1885
+ return elems;
1886
+ };
1887
+
1888
+ proto._manageStamps = function() {
1889
+ if ( !this.stamps || !this.stamps.length ) {
1890
+ return;
1891
+ }
1892
+
1893
+ this._getBoundingRect();
1894
+
1895
+ this.stamps.forEach( this._manageStamp, this );
1896
+ };
1897
+
1898
+ // update boundingLeft / Top
1899
+ proto._getBoundingRect = function() {
1900
+ // get bounding rect for container element
1901
+ var boundingRect = this.element.getBoundingClientRect();
1902
+ var size = this.size;
1903
+ this._boundingRect = {
1904
+ left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
1905
+ top: boundingRect.top + size.paddingTop + size.borderTopWidth,
1906
+ right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),
1907
+ bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )
1908
+ };
1909
+ };
1910
+
1911
+ /**
1912
+ * @param {Element} stamp
1913
+ **/
1914
+ proto._manageStamp = noop;
1915
+
1916
+ /**
1917
+ * get x/y position of element relative to container element
1918
+ * @param {Element} elem
1919
+ * @returns {Object} offset - has left, top, right, bottom
1920
+ */
1921
+ proto._getElementOffset = function( elem ) {
1922
+ var boundingRect = elem.getBoundingClientRect();
1923
+ var thisRect = this._boundingRect;
1924
+ var size = getSize( elem );
1925
+ var offset = {
1926
+ left: boundingRect.left - thisRect.left - size.marginLeft,
1927
+ top: boundingRect.top - thisRect.top - size.marginTop,
1928
+ right: thisRect.right - boundingRect.right - size.marginRight,
1929
+ bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom
1930
+ };
1931
+ return offset;
1932
+ };
1933
+
1934
+ // -------------------------- resize -------------------------- //
1935
+
1936
+ // enable event handlers for listeners
1937
+ // i.e. resize -> onresize
1938
+ proto.handleEvent = utils.handleEvent;
1939
+
1940
+ /**
1941
+ * Bind layout to window resizing
1942
+ */
1943
+ proto.bindResize = function() {
1944
+ window.addEventListener( 'resize', this );
1945
+ this.isResizeBound = true;
1946
+ };
1947
+
1948
+ /**
1949
+ * Unbind layout to window resizing
1950
+ */
1951
+ proto.unbindResize = function() {
1952
+ window.removeEventListener( 'resize', this );
1953
+ this.isResizeBound = false;
1954
+ };
1955
+
1956
+ proto.onresize = function() {
1957
+ this.resize();
1958
+ };
1959
+
1960
+ utils.debounceMethod( Outlayer, 'onresize', 100 );
1961
+
1962
+ proto.resize = function() {
1963
+ // don't trigger if size did not change
1964
+ // or if resize was unbound. See #9
1965
+ if ( !this.isResizeBound || !this.needsResizeLayout() ) {
1966
+ return;
1967
+ }
1968
+
1969
+ this.layout();
1970
+ };
1971
+
1972
+ /**
1973
+ * check if layout is needed post layout
1974
+ * @returns Boolean
1975
+ */
1976
+ proto.needsResizeLayout = function() {
1977
+ var size = getSize( this.element );
1978
+ // check that this.size and size are there
1979
+ // IE8 triggers resize on body size change, so they might not be
1980
+ var hasSizes = this.size && size;
1981
+ return hasSizes && size.innerWidth !== this.size.innerWidth;
1982
+ };
1983
+
1984
+ // -------------------------- methods -------------------------- //
1985
+
1986
+ /**
1987
+ * add items to Outlayer instance
1988
+ * @param {Array or NodeList or Element} elems
1989
+ * @returns {Array} items - Outlayer.Items
1990
+ **/
1991
+ proto.addItems = function( elems ) {
1992
+ var items = this._itemize( elems );
1993
+ // add items to collection
1994
+ if ( items.length ) {
1995
+ this.items = this.items.concat( items );
1996
+ }
1997
+ return items;
1998
+ };
1999
+
2000
+ /**
2001
+ * Layout newly-appended item elements
2002
+ * @param {Array or NodeList or Element} elems
2003
+ */
2004
+ proto.appended = function( elems ) {
2005
+ var items = this.addItems( elems );
2006
+ if ( !items.length ) {
2007
+ return;
2008
+ }
2009
+ // layout and reveal just the new items
2010
+ this.layoutItems( items, true );
2011
+ this.reveal( items );
2012
+ };
2013
+
2014
+ /**
2015
+ * Layout prepended elements
2016
+ * @param {Array or NodeList or Element} elems
2017
+ */
2018
+ proto.prepended = function( elems ) {
2019
+ var items = this._itemize( elems );
2020
+ if ( !items.length ) {
2021
+ return;
2022
+ }
2023
+ // add items to beginning of collection
2024
+ var previousItems = this.items.slice(0);
2025
+ this.items = items.concat( previousItems );
2026
+ // start new layout
2027
+ this._resetLayout();
2028
+ this._manageStamps();
2029
+ // layout new stuff without transition
2030
+ this.layoutItems( items, true );
2031
+ this.reveal( items );
2032
+ // layout previous items
2033
+ this.layoutItems( previousItems );
2034
+ };
2035
+
2036
+ /**
2037
+ * reveal a collection of items
2038
+ * @param {Array of Outlayer.Items} items
2039
+ */
2040
+ proto.reveal = function( items ) {
2041
+ this._emitCompleteOnItems( 'reveal', items );
2042
+ if ( !items || !items.length ) {
2043
+ return;
2044
+ }
2045
+ var stagger = this.updateStagger();
2046
+ items.forEach( function( item, i ) {
2047
+ item.stagger( i * stagger );
2048
+ item.reveal();
2049
+ });
2050
+ };
2051
+
2052
+ /**
2053
+ * hide a collection of items
2054
+ * @param {Array of Outlayer.Items} items
2055
+ */
2056
+ proto.hide = function( items ) {
2057
+ this._emitCompleteOnItems( 'hide', items );
2058
+ if ( !items || !items.length ) {
2059
+ return;
2060
+ }
2061
+ var stagger = this.updateStagger();
2062
+ items.forEach( function( item, i ) {
2063
+ item.stagger( i * stagger );
2064
+ item.hide();
2065
+ });
2066
+ };
2067
+
2068
+ /**
2069
+ * reveal item elements
2070
+ * @param {Array}, {Element}, {NodeList} items
2071
+ */
2072
+ proto.revealItemElements = function( elems ) {
2073
+ var items = this.getItems( elems );
2074
+ this.reveal( items );
2075
+ };
2076
+
2077
+ /**
2078
+ * hide item elements
2079
+ * @param {Array}, {Element}, {NodeList} items
2080
+ */
2081
+ proto.hideItemElements = function( elems ) {
2082
+ var items = this.getItems( elems );
2083
+ this.hide( items );
2084
+ };
2085
+
2086
+ /**
2087
+ * get Outlayer.Item, given an Element
2088
+ * @param {Element} elem
2089
+ * @param {Function} callback
2090
+ * @returns {Outlayer.Item} item
2091
+ */
2092
+ proto.getItem = function( elem ) {
2093
+ // loop through items to get the one that matches
2094
+ for ( var i=0; i < this.items.length; i++ ) {
2095
+ var item = this.items[i];
2096
+ if ( item.element == elem ) {
2097
+ // return item
2098
+ return item;
2099
+ }
2100
+ }
2101
+ };
2102
+
2103
+ /**
2104
+ * get collection of Outlayer.Items, given Elements
2105
+ * @param {Array} elems
2106
+ * @returns {Array} items - Outlayer.Items
2107
+ */
2108
+ proto.getItems = function( elems ) {
2109
+ elems = utils.makeArray( elems );
2110
+ var items = [];
2111
+ elems.forEach( function( elem ) {
2112
+ var item = this.getItem( elem );
2113
+ if ( item ) {
2114
+ items.push( item );
2115
+ }
2116
+ }, this );
2117
+
2118
+ return items;
2119
+ };
2120
+
2121
+ /**
2122
+ * remove element(s) from instance and DOM
2123
+ * @param {Array or NodeList or Element} elems
2124
+ */
2125
+ proto.remove = function( elems ) {
2126
+ var removeItems = this.getItems( elems );
2127
+
2128
+ this._emitCompleteOnItems( 'remove', removeItems );
2129
+
2130
+ // bail if no items to remove
2131
+ if ( !removeItems || !removeItems.length ) {
2132
+ return;
2133
+ }
2134
+
2135
+ removeItems.forEach( function( item ) {
2136
+ item.remove();
2137
+ // remove item from collection
2138
+ utils.removeFrom( this.items, item );
2139
+ }, this );
2140
+ };
2141
+
2142
+ // ----- destroy ----- //
2143
+
2144
+ // remove and disable Outlayer instance
2145
+ proto.destroy = function() {
2146
+ // clean up dynamic styles
2147
+ var style = this.element.style;
2148
+ style.height = '';
2149
+ style.position = '';
2150
+ style.width = '';
2151
+ // destroy items
2152
+ this.items.forEach( function( item ) {
2153
+ item.destroy();
2154
+ });
2155
+
2156
+ this.unbindResize();
2157
+
2158
+ var id = this.element.outlayerGUID;
2159
+ delete instances[ id ]; // remove reference to instance by id
2160
+ delete this.element.outlayerGUID;
2161
+ // remove data for jQuery
2162
+ if ( jQuery ) {
2163
+ jQuery.removeData( this.element, this.constructor.namespace );
2164
+ }
2165
+
2166
+ };
2167
+
2168
+ // -------------------------- data -------------------------- //
2169
+
2170
+ /**
2171
+ * get Outlayer instance from element
2172
+ * @param {Element} elem
2173
+ * @returns {Outlayer}
2174
+ */
2175
+ Outlayer.data = function( elem ) {
2176
+ elem = utils.getQueryElement( elem );
2177
+ var id = elem && elem.outlayerGUID;
2178
+ return id && instances[ id ];
2179
+ };
2180
+
2181
+
2182
+ // -------------------------- create Outlayer class -------------------------- //
2183
+
2184
+ /**
2185
+ * create a layout class
2186
+ * @param {String} namespace
2187
+ */
2188
+ Outlayer.create = function( namespace, options ) {
2189
+ // sub-class Outlayer
2190
+ var Layout = subclass( Outlayer );
2191
+ // apply new options and compatOptions
2192
+ Layout.defaults = utils.extend( {}, Outlayer.defaults );
2193
+ utils.extend( Layout.defaults, options );
2194
+ Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );
2195
+
2196
+ Layout.namespace = namespace;
2197
+
2198
+ Layout.data = Outlayer.data;
2199
+
2200
+ // sub-class Item
2201
+ Layout.Item = subclass( Item );
2202
+
2203
+ // -------------------------- declarative -------------------------- //
2204
+
2205
+ utils.htmlInit( Layout, namespace );
2206
+
2207
+ // -------------------------- jQuery bridge -------------------------- //
2208
+
2209
+ // make into jQuery plugin
2210
+ if ( jQuery && jQuery.bridget ) {
2211
+ jQuery.bridget( namespace, Layout );
2212
+ }
2213
+
2214
+ return Layout;
2215
+ };
2216
+
2217
+ function subclass( Parent ) {
2218
+ function SubClass() {
2219
+ Parent.apply( this, arguments );
2220
+ }
2221
+
2222
+ SubClass.prototype = Object.create( Parent.prototype );
2223
+ SubClass.prototype.constructor = SubClass;
2224
+
2225
+ return SubClass;
2226
+ }
2227
+
2228
+ // ----- helpers ----- //
2229
+
2230
+ // how many milliseconds are in each unit
2231
+ var msUnits = {
2232
+ ms: 1,
2233
+ s: 1000
2234
+ };
2235
+
2236
+ // munge time-like parameter into millisecond number
2237
+ // '0.4s' -> 40
2238
+ function getMilliseconds( time ) {
2239
+ if ( typeof time == 'number' ) {
2240
+ return time;
2241
+ }
2242
+ var matches = time.match( /(^\d*\.?\d*)(\w*)/ );
2243
+ var num = matches && matches[1];
2244
+ var unit = matches && matches[2];
2245
+ if ( !num.length ) {
2246
+ return 0;
2247
+ }
2248
+ num = parseFloat( num );
2249
+ var mult = msUnits[ unit ] || 1;
2250
+ return num * mult;
2251
+ }
2252
+
2253
+ // ----- fin ----- //
2254
+
2255
+ // back in global
2256
+ Outlayer.Item = Item;
2257
+
2258
+ return Outlayer;
2259
+
2260
+ }));
2261
+
2262
+ /**
2263
+ * Isotope Item
2264
+ **/
2265
+
2266
+ ( function( window, factory ) {
2267
+ // universal module definition
2268
+ /* jshint strict: false */ /*globals define, module, require */
2269
+ if ( typeof define == 'function' && define.amd ) {
2270
+ // AMD
2271
+ define( 'isotope/js/item',[
2272
+ 'outlayer/outlayer'
2273
+ ],
2274
+ factory );
2275
+ } else if ( typeof module == 'object' && module.exports ) {
2276
+ // CommonJS
2277
+ module.exports = factory(
2278
+ require('outlayer')
2279
+ );
2280
+ } else {
2281
+ // browser global
2282
+ window.Isotope = window.Isotope || {};
2283
+ window.Isotope.Item = factory(
2284
+ window.Outlayer
2285
+ );
2286
+ }
2287
+
2288
+ }( window, function factory( Outlayer ) {
2289
+ 'use strict';
2290
+
2291
+ // -------------------------- Item -------------------------- //
2292
+
2293
+ // sub-class Outlayer Item
2294
+ function Item() {
2295
+ Outlayer.Item.apply( this, arguments );
2296
+ }
2297
+
2298
+ var proto = Item.prototype = Object.create( Outlayer.Item.prototype );
2299
+
2300
+ var _create = proto._create;
2301
+ proto._create = function() {
2302
+ // assign id, used for original-order sorting
2303
+ this.id = this.layout.itemGUID++;
2304
+ _create.call( this );
2305
+ this.sortData = {};
2306
+ };
2307
+
2308
+ proto.updateSortData = function() {
2309
+ if ( this.isIgnored ) {
2310
+ return;
2311
+ }
2312
+ // default sorters
2313
+ this.sortData.id = this.id;
2314
+ // for backward compatibility
2315
+ this.sortData['original-order'] = this.id;
2316
+ this.sortData.random = Math.random();
2317
+ // go thru getSortData obj and apply the sorters
2318
+ var getSortData = this.layout.options.getSortData;
2319
+ var sorters = this.layout._sorters;
2320
+ for ( var key in getSortData ) {
2321
+ var sorter = sorters[ key ];
2322
+ this.sortData[ key ] = sorter( this.element, this );
2323
+ }
2324
+ };
2325
+
2326
+ var _destroy = proto.destroy;
2327
+ proto.destroy = function() {
2328
+ // call super
2329
+ _destroy.apply( this, arguments );
2330
+ // reset display, #741
2331
+ this.css({
2332
+ display: ''
2333
+ });
2334
+ };
2335
+
2336
+ return Item;
2337
+
2338
+ }));
2339
+
2340
+ /**
2341
+ * Isotope LayoutMode
2342
+ */
2343
+
2344
+ ( function( window, factory ) {
2345
+ // universal module definition
2346
+ /* jshint strict: false */ /*globals define, module, require */
2347
+ if ( typeof define == 'function' && define.amd ) {
2348
+ // AMD
2349
+ define( 'isotope/js/layout-mode',[
2350
+ 'get-size/get-size',
2351
+ 'outlayer/outlayer'
2352
+ ],
2353
+ factory );
2354
+ } else if ( typeof module == 'object' && module.exports ) {
2355
+ // CommonJS
2356
+ module.exports = factory(
2357
+ require('get-size'),
2358
+ require('outlayer')
2359
+ );
2360
+ } else {
2361
+ // browser global
2362
+ window.Isotope = window.Isotope || {};
2363
+ window.Isotope.LayoutMode = factory(
2364
+ window.getSize,
2365
+ window.Outlayer
2366
+ );
2367
+ }
2368
+
2369
+ }( window, function factory( getSize, Outlayer ) {
2370
+ 'use strict';
2371
+
2372
+ // layout mode class
2373
+ function LayoutMode( isotope ) {
2374
+ this.isotope = isotope;
2375
+ // link properties
2376
+ if ( isotope ) {
2377
+ this.options = isotope.options[ this.namespace ];
2378
+ this.element = isotope.element;
2379
+ this.items = isotope.filteredItems;
2380
+ this.size = isotope.size;
2381
+ }
2382
+ }
2383
+
2384
+ var proto = LayoutMode.prototype;
2385
+
2386
+ /**
2387
+ * some methods should just defer to default Outlayer method
2388
+ * and reference the Isotope instance as `this`
2389
+ **/
2390
+ var facadeMethods = [
2391
+ '_resetLayout',
2392
+ '_getItemLayoutPosition',
2393
+ '_manageStamp',
2394
+ '_getContainerSize',
2395
+ '_getElementOffset',
2396
+ 'needsResizeLayout',
2397
+ '_getOption'
2398
+ ];
2399
+
2400
+ facadeMethods.forEach( function( methodName ) {
2401
+ proto[ methodName ] = function() {
2402
+ return Outlayer.prototype[ methodName ].apply( this.isotope, arguments );
2403
+ };
2404
+ });
2405
+
2406
+ // ----- ----- //
2407
+
2408
+ // for horizontal layout modes, check vertical size
2409
+ proto.needsVerticalResizeLayout = function() {
2410
+ // don't trigger if size did not change
2411
+ var size = getSize( this.isotope.element );
2412
+ // check that this.size and size are there
2413
+ // IE8 triggers resize on body size change, so they might not be
2414
+ var hasSizes = this.isotope.size && size;
2415
+ return hasSizes && size.innerHeight != this.isotope.size.innerHeight;
2416
+ };
2417
+
2418
+ // ----- measurements ----- //
2419
+
2420
+ proto._getMeasurement = function() {
2421
+ this.isotope._getMeasurement.apply( this, arguments );
2422
+ };
2423
+
2424
+ proto.getColumnWidth = function() {
2425
+ this.getSegmentSize( 'column', 'Width' );
2426
+ };
2427
+
2428
+ proto.getRowHeight = function() {
2429
+ this.getSegmentSize( 'row', 'Height' );
2430
+ };
2431
+
2432
+ /**
2433
+ * get columnWidth or rowHeight
2434
+ * segment: 'column' or 'row'
2435
+ * size 'Width' or 'Height'
2436
+ **/
2437
+ proto.getSegmentSize = function( segment, size ) {
2438
+ var segmentName = segment + size;
2439
+ var outerSize = 'outer' + size;
2440
+ // columnWidth / outerWidth // rowHeight / outerHeight
2441
+ this._getMeasurement( segmentName, outerSize );
2442
+ // got rowHeight or columnWidth, we can chill
2443
+ if ( this[ segmentName ] ) {
2444
+ return;
2445
+ }
2446
+ // fall back to item of first element
2447
+ var firstItemSize = this.getFirstItemSize();
2448
+ this[ segmentName ] = firstItemSize && firstItemSize[ outerSize ] ||
2449
+ // or size of container
2450
+ this.isotope.size[ 'inner' + size ];
2451
+ };
2452
+
2453
+ proto.getFirstItemSize = function() {
2454
+ var firstItem = this.isotope.filteredItems[0];
2455
+ return firstItem && firstItem.element && getSize( firstItem.element );
2456
+ };
2457
+
2458
+ // ----- methods that should reference isotope ----- //
2459
+
2460
+ proto.layout = function() {
2461
+ this.isotope.layout.apply( this.isotope, arguments );
2462
+ };
2463
+
2464
+ proto.getSize = function() {
2465
+ this.isotope.getSize();
2466
+ this.size = this.isotope.size;
2467
+ };
2468
+
2469
+ // -------------------------- create -------------------------- //
2470
+
2471
+ LayoutMode.modes = {};
2472
+
2473
+ LayoutMode.create = function( namespace, options ) {
2474
+
2475
+ function Mode() {
2476
+ LayoutMode.apply( this, arguments );
2477
+ }
2478
+
2479
+ Mode.prototype = Object.create( proto );
2480
+ Mode.prototype.constructor = Mode;
2481
+
2482
+ // default options
2483
+ if ( options ) {
2484
+ Mode.options = options;
2485
+ }
2486
+
2487
+ Mode.prototype.namespace = namespace;
2488
+ // register in Isotope
2489
+ LayoutMode.modes[ namespace ] = Mode;
2490
+
2491
+ return Mode;
2492
+ };
2493
+
2494
+ return LayoutMode;
2495
+
2496
+ }));
2497
+
2498
+ /*!
2499
+ * Masonry v4.1.1
2500
+ * Cascading grid layout library
2501
+ * http://masonry.desandro.com
2502
+ * MIT License
2503
+ * by David DeSandro
2504
+ */
2505
+
2506
+ ( function( window, factory ) {
2507
+ // universal module definition
2508
+ /* jshint strict: false */ /*globals define, module, require */
2509
+ if ( typeof define == 'function' && define.amd ) {
2510
+ // AMD
2511
+ define( 'masonry/masonry',[
2512
+ 'outlayer/outlayer',
2513
+ 'get-size/get-size'
2514
+ ],
2515
+ factory );
2516
+ } else if ( typeof module == 'object' && module.exports ) {
2517
+ // CommonJS
2518
+ module.exports = factory(
2519
+ require('outlayer'),
2520
+ require('get-size')
2521
+ );
2522
+ } else {
2523
+ // browser global
2524
+ window.Masonry = factory(
2525
+ window.Outlayer,
2526
+ window.getSize
2527
+ );
2528
+ }
2529
+
2530
+ }( window, function factory( Outlayer, getSize ) {
2531
+
2532
+
2533
+
2534
+ // -------------------------- masonryDefinition -------------------------- //
2535
+
2536
+ // create an Outlayer layout class
2537
+ var Masonry = Outlayer.create('masonry');
2538
+ // isFitWidth -> fitWidth
2539
+ Masonry.compatOptions.fitWidth = 'isFitWidth';
2540
+
2541
+ Masonry.prototype._resetLayout = function() {
2542
+ this.getSize();
2543
+ this._getMeasurement( 'columnWidth', 'outerWidth' );
2544
+ this._getMeasurement( 'gutter', 'outerWidth' );
2545
+ this.measureColumns();
2546
+
2547
+ // reset column Y
2548
+ this.colYs = [];
2549
+ for ( var i=0; i < this.cols; i++ ) {
2550
+ this.colYs.push( 0 );
2551
+ }
2552
+
2553
+ this.maxY = 0;
2554
+ };
2555
+
2556
+ Masonry.prototype.measureColumns = function() {
2557
+ this.getContainerWidth();
2558
+ // if columnWidth is 0, default to outerWidth of first item
2559
+ if ( !this.columnWidth ) {
2560
+ var firstItem = this.items[0];
2561
+ var firstItemElem = firstItem && firstItem.element;
2562
+ // columnWidth fall back to item of first element
2563
+ this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||
2564
+ // if first elem has no width, default to size of container
2565
+ this.containerWidth;
2566
+ }
2567
+
2568
+ var columnWidth = this.columnWidth += this.gutter;
2569
+
2570
+ // calculate columns
2571
+ var containerWidth = this.containerWidth + this.gutter;
2572
+ var cols = containerWidth / columnWidth;
2573
+ // fix rounding errors, typically with gutters
2574
+ var excess = columnWidth - containerWidth % columnWidth;
2575
+ // if overshoot is less than a pixel, round up, otherwise floor it
2576
+ var mathMethod = excess && excess < 1 ? 'round' : 'floor';
2577
+ cols = Math[ mathMethod ]( cols );
2578
+ this.cols = Math.max( cols, 1 );
2579
+ };
2580
+
2581
+ Masonry.prototype.getContainerWidth = function() {
2582
+ // container is parent if fit width
2583
+ var isFitWidth = this._getOption('fitWidth');
2584
+ var container = isFitWidth ? this.element.parentNode : this.element;
2585
+ // check that this.size and size are there
2586
+ // IE8 triggers resize on body size change, so they might not be
2587
+ var size = getSize( container );
2588
+ this.containerWidth = size && size.innerWidth;
2589
+ };
2590
+
2591
+ Masonry.prototype._getItemLayoutPosition = function( item ) {
2592
+ item.getSize();
2593
+ // how many columns does this brick span
2594
+ var remainder = item.size.outerWidth % this.columnWidth;
2595
+ var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';
2596
+ // round if off by 1 pixel, otherwise use ceil
2597
+ var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );
2598
+ colSpan = Math.min( colSpan, this.cols );
2599
+
2600
+ var colGroup = this._getColGroup( colSpan );
2601
+ // get the minimum Y value from the columns
2602
+ var minimumY = Math.min.apply( Math, colGroup );
2603
+ var shortColIndex = colGroup.indexOf( minimumY );
2604
+
2605
+ // position the brick
2606
+ var position = {
2607
+ x: this.columnWidth * shortColIndex,
2608
+ y: minimumY
2609
+ };
2610
+
2611
+ // apply setHeight to necessary columns
2612
+ var setHeight = minimumY + item.size.outerHeight;
2613
+ var setSpan = this.cols + 1 - colGroup.length;
2614
+ for ( var i = 0; i < setSpan; i++ ) {
2615
+ this.colYs[ shortColIndex + i ] = setHeight;
2616
+ }
2617
+
2618
+ return position;
2619
+ };
2620
+
2621
+ /**
2622
+ * @param {Number} colSpan - number of columns the element spans
2623
+ * @returns {Array} colGroup
2624
+ */
2625
+ Masonry.prototype._getColGroup = function( colSpan ) {
2626
+ if ( colSpan < 2 ) {
2627
+ // if brick spans only one column, use all the column Ys
2628
+ return this.colYs;
2629
+ }
2630
+
2631
+ var colGroup = [];
2632
+ // how many different places could this brick fit horizontally
2633
+ var groupCount = this.cols + 1 - colSpan;
2634
+ // for each group potential horizontal position
2635
+ for ( var i = 0; i < groupCount; i++ ) {
2636
+ // make an array of colY values for that one group
2637
+ var groupColYs = this.colYs.slice( i, i + colSpan );
2638
+ // and get the max value of the array
2639
+ colGroup[i] = Math.max.apply( Math, groupColYs );
2640
+ }
2641
+ return colGroup;
2642
+ };
2643
+
2644
+ Masonry.prototype._manageStamp = function( stamp ) {
2645
+ var stampSize = getSize( stamp );
2646
+ var offset = this._getElementOffset( stamp );
2647
+ // get the columns that this stamp affects
2648
+ var isOriginLeft = this._getOption('originLeft');
2649
+ var firstX = isOriginLeft ? offset.left : offset.right;
2650
+ var lastX = firstX + stampSize.outerWidth;
2651
+ var firstCol = Math.floor( firstX / this.columnWidth );
2652
+ firstCol = Math.max( 0, firstCol );
2653
+ var lastCol = Math.floor( lastX / this.columnWidth );
2654
+ // lastCol should not go over if multiple of columnWidth #425
2655
+ lastCol -= lastX % this.columnWidth ? 0 : 1;
2656
+ lastCol = Math.min( this.cols - 1, lastCol );
2657
+ // set colYs to bottom of the stamp
2658
+
2659
+ var isOriginTop = this._getOption('originTop');
2660
+ var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +
2661
+ stampSize.outerHeight;
2662
+ for ( var i = firstCol; i <= lastCol; i++ ) {
2663
+ this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );
2664
+ }
2665
+ };
2666
+
2667
+ Masonry.prototype._getContainerSize = function() {
2668
+ this.maxY = Math.max.apply( Math, this.colYs );
2669
+ var size = {
2670
+ height: this.maxY
2671
+ };
2672
+
2673
+ if ( this._getOption('fitWidth') ) {
2674
+ size.width = this._getContainerFitWidth();
2675
+ }
2676
+
2677
+ return size;
2678
+ };
2679
+
2680
+ Masonry.prototype._getContainerFitWidth = function() {
2681
+ var unusedCols = 0;
2682
+ // count unused columns
2683
+ var i = this.cols;
2684
+ while ( --i ) {
2685
+ if ( this.colYs[i] !== 0 ) {
2686
+ break;
2687
+ }
2688
+ unusedCols++;
2689
+ }
2690
+ // fit container to columns that have been used
2691
+ return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;
2692
+ };
2693
+
2694
+ Masonry.prototype.needsResizeLayout = function() {
2695
+ var previousWidth = this.containerWidth;
2696
+ this.getContainerWidth();
2697
+ return previousWidth != this.containerWidth;
2698
+ };
2699
+
2700
+ return Masonry;
2701
+
2702
+ }));
2703
+
2704
+ /*!
2705
+ * Masonry layout mode
2706
+ * sub-classes Masonry
2707
+ * http://masonry.desandro.com
2708
+ */
2709
+
2710
+ ( function( window, factory ) {
2711
+ // universal module definition
2712
+ /* jshint strict: false */ /*globals define, module, require */
2713
+ if ( typeof define == 'function' && define.amd ) {
2714
+ // AMD
2715
+ define( 'isotope/js/layout-modes/masonry',[
2716
+ '../layout-mode',
2717
+ 'masonry/masonry'
2718
+ ],
2719
+ factory );
2720
+ } else if ( typeof module == 'object' && module.exports ) {
2721
+ // CommonJS
2722
+ module.exports = factory(
2723
+ require('../layout-mode'),
2724
+ require('masonry-layout')
2725
+ );
2726
+ } else {
2727
+ // browser global
2728
+ factory(
2729
+ window.Isotope.LayoutMode,
2730
+ window.Masonry
2731
+ );
2732
+ }
2733
+
2734
+ }( window, function factory( LayoutMode, Masonry ) {
2735
+ 'use strict';
2736
+
2737
+ // -------------------------- masonryDefinition -------------------------- //
2738
+
2739
+ // create an Outlayer layout class
2740
+ var MasonryMode = LayoutMode.create('masonry');
2741
+
2742
+ var proto = MasonryMode.prototype;
2743
+
2744
+ var keepModeMethods = {
2745
+ _getElementOffset: true,
2746
+ layout: true,
2747
+ _getMeasurement: true
2748
+ };
2749
+
2750
+ // inherit Masonry prototype
2751
+ for ( var method in Masonry.prototype ) {
2752
+ // do not inherit mode methods
2753
+ if ( !keepModeMethods[ method ] ) {
2754
+ proto[ method ] = Masonry.prototype[ method ];
2755
+ }
2756
+ }
2757
+
2758
+ var measureColumns = proto.measureColumns;
2759
+ proto.measureColumns = function() {
2760
+ // set items, used if measuring first item
2761
+ this.items = this.isotope.filteredItems;
2762
+ measureColumns.call( this );
2763
+ };
2764
+
2765
+ // point to mode options for fitWidth
2766
+ var _getOption = proto._getOption;
2767
+ proto._getOption = function( option ) {
2768
+ if ( option == 'fitWidth' ) {
2769
+ return this.options.isFitWidth !== undefined ?
2770
+ this.options.isFitWidth : this.options.fitWidth;
2771
+ }
2772
+ return _getOption.apply( this.isotope, arguments );
2773
+ };
2774
+
2775
+ return MasonryMode;
2776
+
2777
+ }));
2778
+
2779
+ /**
2780
+ * fitRows layout mode
2781
+ */
2782
+
2783
+ ( function( window, factory ) {
2784
+ // universal module definition
2785
+ /* jshint strict: false */ /*globals define, module, require */
2786
+ if ( typeof define == 'function' && define.amd ) {
2787
+ // AMD
2788
+ define( 'isotope/js/layout-modes/fit-rows',[
2789
+ '../layout-mode'
2790
+ ],
2791
+ factory );
2792
+ } else if ( typeof exports == 'object' ) {
2793
+ // CommonJS
2794
+ module.exports = factory(
2795
+ require('../layout-mode')
2796
+ );
2797
+ } else {
2798
+ // browser global
2799
+ factory(
2800
+ window.Isotope.LayoutMode
2801
+ );
2802
+ }
2803
+
2804
+ }( window, function factory( LayoutMode ) {
2805
+ 'use strict';
2806
+
2807
+ var FitRows = LayoutMode.create('fitRows');
2808
+
2809
+ var proto = FitRows.prototype;
2810
+
2811
+ proto._resetLayout = function() {
2812
+ this.x = 0;
2813
+ this.y = 0;
2814
+ this.maxY = 0;
2815
+ this._getMeasurement( 'gutter', 'outerWidth' );
2816
+ };
2817
+
2818
+ proto._getItemLayoutPosition = function( item ) {
2819
+ item.getSize();
2820
+
2821
+ var itemWidth = item.size.outerWidth + this.gutter;
2822
+ // if this element cannot fit in the current row
2823
+ var containerWidth = this.isotope.size.innerWidth + this.gutter;
2824
+ if ( this.x !== 0 && itemWidth + this.x > containerWidth ) {
2825
+ this.x = 0;
2826
+ this.y = this.maxY;
2827
+ }
2828
+
2829
+ var position = {
2830
+ x: this.x,
2831
+ y: this.y
2832
+ };
2833
+
2834
+ this.maxY = Math.max( this.maxY, this.y + item.size.outerHeight );
2835
+ this.x += itemWidth;
2836
+
2837
+ return position;
2838
+ };
2839
+
2840
+ proto._getContainerSize = function() {
2841
+ return { height: this.maxY };
2842
+ };
2843
+
2844
+ return FitRows;
2845
+
2846
+ }));
2847
+
2848
+ /**
2849
+ * vertical layout mode
2850
+ */
2851
+
2852
+ ( function( window, factory ) {
2853
+ // universal module definition
2854
+ /* jshint strict: false */ /*globals define, module, require */
2855
+ if ( typeof define == 'function' && define.amd ) {
2856
+ // AMD
2857
+ define( 'isotope/js/layout-modes/vertical',[
2858
+ '../layout-mode'
2859
+ ],
2860
+ factory );
2861
+ } else if ( typeof module == 'object' && module.exports ) {
2862
+ // CommonJS
2863
+ module.exports = factory(
2864
+ require('../layout-mode')
2865
+ );
2866
+ } else {
2867
+ // browser global
2868
+ factory(
2869
+ window.Isotope.LayoutMode
2870
+ );
2871
+ }
2872
+
2873
+ }( window, function factory( LayoutMode ) {
2874
+ 'use strict';
2875
+
2876
+ var Vertical = LayoutMode.create( 'vertical', {
2877
+ horizontalAlignment: 0
2878
+ });
2879
+
2880
+ var proto = Vertical.prototype;
2881
+
2882
+ proto._resetLayout = function() {
2883
+ this.y = 0;
2884
+ };
2885
+
2886
+ proto._getItemLayoutPosition = function( item ) {
2887
+ item.getSize();
2888
+ var x = ( this.isotope.size.innerWidth - item.size.outerWidth ) *
2889
+ this.options.horizontalAlignment;
2890
+ var y = this.y;
2891
+ this.y += item.size.outerHeight;
2892
+ return { x: x, y: y };
2893
+ };
2894
+
2895
+ proto._getContainerSize = function() {
2896
+ return { height: this.y };
2897
+ };
2898
+
2899
+ return Vertical;
2900
+
2901
+ }));
2902
+
2903
+ /*!
2904
+ * Isotope v3.0.3
2905
+ *
2906
+ * Licensed GPLv3 for open source use
2907
+ * or Isotope Commercial License for commercial use
2908
+ *
2909
+ * http://isotope.metafizzy.co
2910
+ * Copyright 2017 Metafizzy
2911
+ */
2912
+
2913
+ ( function( window, factory ) {
2914
+ // universal module definition
2915
+ /* jshint strict: false */ /*globals define, module, require */
2916
+ if ( typeof define == 'function' && define.amd ) {
2917
+ // AMD
2918
+ define( [
2919
+ 'outlayer/outlayer',
2920
+ 'get-size/get-size',
2921
+ 'desandro-matches-selector/matches-selector',
2922
+ 'fizzy-ui-utils/utils',
2923
+ 'isotope/js/item',
2924
+ 'isotope/js/layout-mode',
2925
+ // include default layout modes
2926
+ 'isotope/js/layout-modes/masonry',
2927
+ 'isotope/js/layout-modes/fit-rows',
2928
+ 'isotope/js/layout-modes/vertical'
2929
+ ],
2930
+ function( Outlayer, getSize, matchesSelector, utils, Item, LayoutMode ) {
2931
+ return factory( window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode );
2932
+ });
2933
+ } else if ( typeof module == 'object' && module.exports ) {
2934
+ // CommonJS
2935
+ module.exports = factory(
2936
+ window,
2937
+ require('outlayer'),
2938
+ require('get-size'),
2939
+ require('desandro-matches-selector'),
2940
+ require('fizzy-ui-utils'),
2941
+ require('isotope/js/item'),
2942
+ require('isotope/js/layout-mode'),
2943
+ // include default layout modes
2944
+ require('isotope/js/layout-modes/masonry'),
2945
+ require('isotope/js/layout-modes/fit-rows'),
2946
+ require('isotope/js/layout-modes/vertical')
2947
+ );
2948
+ } else {
2949
+ // browser global
2950
+ window.Isotope = factory(
2951
+ window,
2952
+ window.Outlayer,
2953
+ window.getSize,
2954
+ window.matchesSelector,
2955
+ window.fizzyUIUtils,
2956
+ window.Isotope.Item,
2957
+ window.Isotope.LayoutMode
2958
+ );
2959
+ }
2960
+
2961
+ }( window, function factory( window, Outlayer, getSize, matchesSelector, utils,
2962
+ Item, LayoutMode ) {
2963
+
2964
+
2965
+
2966
+ // -------------------------- vars -------------------------- //
2967
+
2968
+ var jQuery = window.jQuery;
2969
+
2970
+ // -------------------------- helpers -------------------------- //
2971
+
2972
+ var trim = String.prototype.trim ?
2973
+ function( str ) {
2974
+ return str.trim();
2975
+ } :
2976
+ function( str ) {
2977
+ return str.replace( /^\s+|\s+$/g, '' );
2978
+ };
2979
+
2980
+ // -------------------------- isotopeDefinition -------------------------- //
2981
+
2982
+ // create an Outlayer layout class
2983
+ var Isotope = Outlayer.create( 'isotope', {
2984
+ layoutMode: 'masonry',
2985
+ isJQueryFiltering: true,
2986
+ sortAscending: true
2987
+ });
2988
+
2989
+ Isotope.Item = Item;
2990
+ Isotope.LayoutMode = LayoutMode;
2991
+
2992
+ var proto = Isotope.prototype;
2993
+
2994
+ proto._create = function() {
2995
+ this.itemGUID = 0;
2996
+ // functions that sort items
2997
+ this._sorters = {};
2998
+ this._getSorters();
2999
+ // call super
3000
+ Outlayer.prototype._create.call( this );
3001
+
3002
+ // create layout modes
3003
+ this.modes = {};
3004
+ // start filteredItems with all items
3005
+ this.filteredItems = this.items;
3006
+ // keep of track of sortBys
3007
+ this.sortHistory = [ 'original-order' ];
3008
+ // create from registered layout modes
3009
+ for ( var name in LayoutMode.modes ) {
3010
+ this._initLayoutMode( name );
3011
+ }
3012
+ };
3013
+
3014
+ proto.reloadItems = function() {
3015
+ // reset item ID counter
3016
+ this.itemGUID = 0;
3017
+ // call super
3018
+ Outlayer.prototype.reloadItems.call( this );
3019
+ };
3020
+
3021
+ proto._itemize = function() {
3022
+ var items = Outlayer.prototype._itemize.apply( this, arguments );
3023
+ // assign ID for original-order
3024
+ for ( var i=0; i < items.length; i++ ) {
3025
+ var item = items[i];
3026
+ item.id = this.itemGUID++;
3027
+ }
3028
+ this._updateItemsSortData( items );
3029
+ return items;
3030
+ };
3031
+
3032
+
3033
+ // -------------------------- layout -------------------------- //
3034
+
3035
+ proto._initLayoutMode = function( name ) {
3036
+ var Mode = LayoutMode.modes[ name ];
3037
+ // set mode options
3038
+ // HACK extend initial options, back-fill in default options
3039
+ var initialOpts = this.options[ name ] || {};
3040
+ this.options[ name ] = Mode.options ?
3041
+ utils.extend( Mode.options, initialOpts ) : initialOpts;
3042
+ // init layout mode instance
3043
+ this.modes[ name ] = new Mode( this );
3044
+ };
3045
+
3046
+
3047
+ proto.layout = function() {
3048
+ // if first time doing layout, do all magic
3049
+ if ( !this._isLayoutInited && this._getOption('initLayout') ) {
3050
+ this.arrange();
3051
+ return;
3052
+ }
3053
+ this._layout();
3054
+ };
3055
+
3056
+ // private method to be used in layout() & magic()
3057
+ proto._layout = function() {
3058
+ // don't animate first layout
3059
+ var isInstant = this._getIsInstant();
3060
+ // layout flow
3061
+ this._resetLayout();
3062
+ this._manageStamps();
3063
+ this.layoutItems( this.filteredItems, isInstant );
3064
+
3065
+ // flag for initalized
3066
+ this._isLayoutInited = true;
3067
+ };
3068
+
3069
+ // filter + sort + layout
3070
+ proto.arrange = function( opts ) {
3071
+ // set any options pass
3072
+ this.option( opts );
3073
+ this._getIsInstant();
3074
+ // filter, sort, and layout
3075
+
3076
+ // filter
3077
+ var filtered = this._filter( this.items );
3078
+ this.filteredItems = filtered.matches;
3079
+
3080
+ this._bindArrangeComplete();
3081
+
3082
+ if ( this._isInstant ) {
3083
+ this._noTransition( this._hideReveal, [ filtered ] );
3084
+ } else {
3085
+ this._hideReveal( filtered );
3086
+ }
3087
+
3088
+ this._sort();
3089
+ this._layout();
3090
+ };
3091
+ // alias to _init for main plugin method
3092
+ proto._init = proto.arrange;
3093
+
3094
+ proto._hideReveal = function( filtered ) {
3095
+ this.reveal( filtered.needReveal );
3096
+ this.hide( filtered.needHide );
3097
+ };
3098
+
3099
+ // HACK
3100
+ // Don't animate/transition first layout
3101
+ // Or don't animate/transition other layouts
3102
+ proto._getIsInstant = function() {
3103
+ var isLayoutInstant = this._getOption('layoutInstant');
3104
+ var isInstant = isLayoutInstant !== undefined ? isLayoutInstant :
3105
+ !this._isLayoutInited;
3106
+ this._isInstant = isInstant;
3107
+ return isInstant;
3108
+ };
3109
+
3110
+ // listen for layoutComplete, hideComplete and revealComplete
3111
+ // to trigger arrangeComplete
3112
+ proto._bindArrangeComplete = function() {
3113
+ // listen for 3 events to trigger arrangeComplete
3114
+ var isLayoutComplete, isHideComplete, isRevealComplete;
3115
+ var _this = this;
3116
+ function arrangeParallelCallback() {
3117
+ if ( isLayoutComplete && isHideComplete && isRevealComplete ) {
3118
+ _this.dispatchEvent( 'arrangeComplete', null, [ _this.filteredItems ] );
3119
+ }
3120
+ }
3121
+ this.once( 'layoutComplete', function() {
3122
+ isLayoutComplete = true;
3123
+ arrangeParallelCallback();
3124
+ });
3125
+ this.once( 'hideComplete', function() {
3126
+ isHideComplete = true;
3127
+ arrangeParallelCallback();
3128
+ });
3129
+ this.once( 'revealComplete', function() {
3130
+ isRevealComplete = true;
3131
+ arrangeParallelCallback();
3132
+ });
3133
+ };
3134
+
3135
+ // -------------------------- filter -------------------------- //
3136
+
3137
+ proto._filter = function( items ) {
3138
+ var filter = this.options.filter;
3139
+ filter = filter || '*';
3140
+ var matches = [];
3141
+ var hiddenMatched = [];
3142
+ var visibleUnmatched = [];
3143
+
3144
+ var test = this._getFilterTest( filter );
3145
+
3146
+ // test each item
3147
+ for ( var i=0; i < items.length; i++ ) {
3148
+ var item = items[i];
3149
+ if ( item.isIgnored ) {
3150
+ continue;
3151
+ }
3152
+ // add item to either matched or unmatched group
3153
+ var isMatched = test( item );
3154
+ // item.isFilterMatched = isMatched;
3155
+ // add to matches if its a match
3156
+ if ( isMatched ) {
3157
+ matches.push( item );
3158
+ }
3159
+ // add to additional group if item needs to be hidden or revealed
3160
+ if ( isMatched && item.isHidden ) {
3161
+ hiddenMatched.push( item );
3162
+ } else if ( !isMatched && !item.isHidden ) {
3163
+ visibleUnmatched.push( item );
3164
+ }
3165
+ }
3166
+
3167
+ // return collections of items to be manipulated
3168
+ return {
3169
+ matches: matches,
3170
+ needReveal: hiddenMatched,
3171
+ needHide: visibleUnmatched
3172
+ };
3173
+ };
3174
+
3175
+ // get a jQuery, function, or a matchesSelector test given the filter
3176
+ proto._getFilterTest = function( filter ) {
3177
+ if ( jQuery && this.options.isJQueryFiltering ) {
3178
+ // use jQuery
3179
+ return function( item ) {
3180
+ return jQuery( item.element ).is( filter );
3181
+ };
3182
+ }
3183
+ if ( typeof filter == 'function' ) {
3184
+ // use filter as function
3185
+ return function( item ) {
3186
+ return filter( item.element );
3187
+ };
3188
+ }
3189
+ // default, use filter as selector string
3190
+ return function( item ) {
3191
+ return matchesSelector( item.element, filter );
3192
+ };
3193
+ };
3194
+
3195
+ // -------------------------- sorting -------------------------- //
3196
+
3197
+ /**
3198
+ * @params {Array} elems
3199
+ * @public
3200
+ */
3201
+ proto.updateSortData = function( elems ) {
3202
+ // get items
3203
+ var items;
3204
+ if ( elems ) {
3205
+ elems = utils.makeArray( elems );
3206
+ items = this.getItems( elems );
3207
+ } else {
3208
+ // update all items if no elems provided
3209
+ items = this.items;
3210
+ }
3211
+
3212
+ this._getSorters();
3213
+ this._updateItemsSortData( items );
3214
+ };
3215
+
3216
+ proto._getSorters = function() {
3217
+ var getSortData = this.options.getSortData;
3218
+ for ( var key in getSortData ) {
3219
+ var sorter = getSortData[ key ];
3220
+ this._sorters[ key ] = mungeSorter( sorter );
3221
+ }
3222
+ };
3223
+
3224
+ /**
3225
+ * @params {Array} items - of Isotope.Items
3226
+ * @private
3227
+ */
3228
+ proto._updateItemsSortData = function( items ) {
3229
+ // do not update if no items
3230
+ var len = items && items.length;
3231
+
3232
+ for ( var i=0; len && i < len; i++ ) {
3233
+ var item = items[i];
3234
+ item.updateSortData();
3235
+ }
3236
+ };
3237
+
3238
+ // ----- munge sorter ----- //
3239
+
3240
+ // encapsulate this, as we just need mungeSorter
3241
+ // other functions in here are just for munging
3242
+ var mungeSorter = ( function() {
3243
+ // add a magic layer to sorters for convienent shorthands
3244
+ // `.foo-bar` will use the text of .foo-bar querySelector
3245
+ // `[foo-bar]` will use attribute
3246
+ // you can also add parser
3247
+ // `.foo-bar parseInt` will parse that as a number
3248
+ function mungeSorter( sorter ) {
3249
+ // if not a string, return function or whatever it is
3250
+ if ( typeof sorter != 'string' ) {
3251
+ return sorter;
3252
+ }
3253
+ // parse the sorter string
3254
+ var args = trim( sorter ).split(' ');
3255
+ var query = args[0];
3256
+ // check if query looks like [an-attribute]
3257
+ var attrMatch = query.match( /^\[(.+)\]$/ );
3258
+ var attr = attrMatch && attrMatch[1];
3259
+ var getValue = getValueGetter( attr, query );
3260
+ // use second argument as a parser
3261
+ var parser = Isotope.sortDataParsers[ args[1] ];
3262
+ // parse the value, if there was a parser
3263
+ sorter = parser ? function( elem ) {
3264
+ return elem && parser( getValue( elem ) );
3265
+ } :
3266
+ // otherwise just return value
3267
+ function( elem ) {
3268
+ return elem && getValue( elem );
3269
+ };
3270
+
3271
+ return sorter;
3272
+ }
3273
+
3274
+ // get an attribute getter, or get text of the querySelector
3275
+ function getValueGetter( attr, query ) {
3276
+ // if query looks like [foo-bar], get attribute
3277
+ if ( attr ) {
3278
+ return function getAttribute( elem ) {
3279
+ return elem.getAttribute( attr );
3280
+ };
3281
+ }
3282
+
3283
+ // otherwise, assume its a querySelector, and get its text
3284
+ return function getChildText( elem ) {
3285
+ var child = elem.querySelector( query );
3286
+ return child && child.textContent;
3287
+ };
3288
+ }
3289
+
3290
+ return mungeSorter;
3291
+ })();
3292
+
3293
+ // parsers used in getSortData shortcut strings
3294
+ Isotope.sortDataParsers = {
3295
+ 'parseInt': function( val ) {
3296
+ return parseInt( val, 10 );
3297
+ },
3298
+ 'parseFloat': function( val ) {
3299
+ return parseFloat( val );
3300
+ }
3301
+ };
3302
+
3303
+ // ----- sort method ----- //
3304
+
3305
+ // sort filteredItem order
3306
+ proto._sort = function() {
3307
+ if ( !this.options.sortBy ) {
3308
+ return;
3309
+ }
3310
+ // keep track of sortBy History
3311
+ var sortBys = utils.makeArray( this.options.sortBy );
3312
+ if ( !this._getIsSameSortBy( sortBys ) ) {
3313
+ // concat all sortBy and sortHistory, add to front, oldest goes in last
3314
+ this.sortHistory = sortBys.concat( this.sortHistory );
3315
+ }
3316
+ // sort magic
3317
+ var itemSorter = getItemSorter( this.sortHistory, this.options.sortAscending );
3318
+ this.filteredItems.sort( itemSorter );
3319
+ };
3320
+
3321
+ // check if sortBys is same as start of sortHistory
3322
+ proto._getIsSameSortBy = function( sortBys ) {
3323
+ for ( var i=0; i < sortBys.length; i++ ) {
3324
+ if ( sortBys[i] != this.sortHistory[i] ) {
3325
+ return false;
3326
+ }
3327
+ }
3328
+ return true;
3329
+ };
3330
+
3331
+ // returns a function used for sorting
3332
+ function getItemSorter( sortBys, sortAsc ) {
3333
+ return function sorter( itemA, itemB ) {
3334
+ // cycle through all sortKeys
3335
+ for ( var i = 0; i < sortBys.length; i++ ) {
3336
+ var sortBy = sortBys[i];
3337
+ var a = itemA.sortData[ sortBy ];
3338
+ var b = itemB.sortData[ sortBy ];
3339
+ if ( a > b || a < b ) {
3340
+ // if sortAsc is an object, use the value given the sortBy key
3341
+ var isAscending = sortAsc[ sortBy ] !== undefined ? sortAsc[ sortBy ] : sortAsc;
3342
+ var direction = isAscending ? 1 : -1;
3343
+ return ( a > b ? 1 : -1 ) * direction;
3344
+ }
3345
+ }
3346
+ return 0;
3347
+ };
3348
+ }
3349
+
3350
+ // -------------------------- methods -------------------------- //
3351
+
3352
+ // get layout mode
3353
+ proto._mode = function() {
3354
+ var layoutMode = this.options.layoutMode;
3355
+ var mode = this.modes[ layoutMode ];
3356
+ if ( !mode ) {
3357
+ // TODO console.error
3358
+ throw new Error( 'No layout mode: ' + layoutMode );
3359
+ }
3360
+ // HACK sync mode's options
3361
+ // any options set after init for layout mode need to be synced
3362
+ mode.options = this.options[ layoutMode ];
3363
+ return mode;
3364
+ };
3365
+
3366
+ proto._resetLayout = function() {
3367
+ // trigger original reset layout
3368
+ Outlayer.prototype._resetLayout.call( this );
3369
+ this._mode()._resetLayout();
3370
+ };
3371
+
3372
+ proto._getItemLayoutPosition = function( item ) {
3373
+ return this._mode()._getItemLayoutPosition( item );
3374
+ };
3375
+
3376
+ proto._manageStamp = function( stamp ) {
3377
+ this._mode()._manageStamp( stamp );
3378
+ };
3379
+
3380
+ proto._getContainerSize = function() {
3381
+ return this._mode()._getContainerSize();
3382
+ };
3383
+
3384
+ proto.needsResizeLayout = function() {
3385
+ return this._mode().needsResizeLayout();
3386
+ };
3387
+
3388
+ // -------------------------- adding & removing -------------------------- //
3389
+
3390
+ // HEADS UP overwrites default Outlayer appended
3391
+ proto.appended = function( elems ) {
3392
+ var items = this.addItems( elems );
3393
+ if ( !items.length ) {
3394
+ return;
3395
+ }
3396
+ // filter, layout, reveal new items
3397
+ var filteredItems = this._filterRevealAdded( items );
3398
+ // add to filteredItems
3399
+ this.filteredItems = this.filteredItems.concat( filteredItems );
3400
+ };
3401
+
3402
+ // HEADS UP overwrites default Outlayer prepended
3403
+ proto.prepended = function( elems ) {
3404
+ var items = this._itemize( elems );
3405
+ if ( !items.length ) {
3406
+ return;
3407
+ }
3408
+ // start new layout
3409
+ this._resetLayout();
3410
+ this._manageStamps();
3411
+ // filter, layout, reveal new items
3412
+ var filteredItems = this._filterRevealAdded( items );
3413
+ // layout previous items
3414
+ this.layoutItems( this.filteredItems );
3415
+ // add to items and filteredItems
3416
+ this.filteredItems = filteredItems.concat( this.filteredItems );
3417
+ this.items = items.concat( this.items );
3418
+ };
3419
+
3420
+ proto._filterRevealAdded = function( items ) {
3421
+ var filtered = this._filter( items );
3422
+ this.hide( filtered.needHide );
3423
+ // reveal all new items
3424
+ this.reveal( filtered.matches );
3425
+ // layout new items, no transition
3426
+ this.layoutItems( filtered.matches, true );
3427
+ return filtered.matches;
3428
+ };
3429
+
3430
+ /**
3431
+ * Filter, sort, and layout newly-appended item elements
3432
+ * @param {Array or NodeList or Element} elems
3433
+ */
3434
+ proto.insert = function( elems ) {
3435
+ var items = this.addItems( elems );
3436
+ if ( !items.length ) {
3437
+ return;
3438
+ }
3439
+ // append item elements
3440
+ var i, item;
3441
+ var len = items.length;
3442
+ for ( i=0; i < len; i++ ) {
3443
+ item = items[i];
3444
+ this.element.appendChild( item.element );
3445
+ }
3446
+ // filter new stuff
3447
+ var filteredInsertItems = this._filter( items ).matches;
3448
+ // set flag
3449
+ for ( i=0; i < len; i++ ) {
3450
+ items[i].isLayoutInstant = true;
3451
+ }
3452
+ this.arrange();
3453
+ // reset flag
3454
+ for ( i=0; i < len; i++ ) {
3455
+ delete items[i].isLayoutInstant;
3456
+ }
3457
+ this.reveal( filteredInsertItems );
3458
+ };
3459
+
3460
+ var _remove = proto.remove;
3461
+ proto.remove = function( elems ) {
3462
+ elems = utils.makeArray( elems );
3463
+ var removeItems = this.getItems( elems );
3464
+ // do regular thing
3465
+ _remove.call( this, elems );
3466
+ // bail if no items to remove
3467
+ var len = removeItems && removeItems.length;
3468
+ // remove elems from filteredItems
3469
+ for ( var i=0; len && i < len; i++ ) {
3470
+ var item = removeItems[i];
3471
+ // remove item from collection
3472
+ utils.removeFrom( this.filteredItems, item );
3473
+ }
3474
+ };
3475
+
3476
+ proto.shuffle = function() {
3477
+ // update random sortData
3478
+ for ( var i=0; i < this.items.length; i++ ) {
3479
+ var item = this.items[i];
3480
+ item.sortData.random = Math.random();
3481
+ }
3482
+ this.options.sortBy = 'random';
3483
+ this._sort();
3484
+ this._layout();
3485
+ };
3486
+
3487
+ /**
3488
+ * trigger fn without transition
3489
+ * kind of hacky to have this in the first place
3490
+ * @param {Function} fn
3491
+ * @param {Array} args
3492
+ * @returns ret
3493
+ * @private
3494
+ */
3495
+ proto._noTransition = function( fn, args ) {
3496
+ // save transitionDuration before disabling
3497
+ var transitionDuration = this.options.transitionDuration;
3498
+ // disable transition
3499
+ this.options.transitionDuration = 0;
3500
+ // do it
3501
+ var returnValue = fn.apply( this, args );
3502
+ // re-enable transition for reveal
3503
+ this.options.transitionDuration = transitionDuration;
3504
+ return returnValue;
3505
+ };
3506
+
3507
+ // ----- helper methods ----- //
3508
+
3509
+ /**
3510
+ * getter method for getting filtered item elements
3511
+ * @returns {Array} elems - collection of item elements
3512
+ */
3513
+ proto.getFilteredItemElements = function() {
3514
+ return this.filteredItems.map( function( item ) {
3515
+ return item.element;
3516
+ });
3517
+ };
3518
+
3519
+ // ----- ----- //
3520
+
3521
+ return Isotope;
3522
+
3523
+ }));
3524
+
assets/js/isotope.pkgd.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ (function(window,factory){if(typeof define=="function"&&define.amd){define("jquery-bridget/jquery-bridget",["jquery"],function(jQuery){return factory(window,jQuery)})}else if(typeof module=="object"&&module.exports){module.exports=factory(window,require("jquery"))}else{window.jQueryBridget=factory(window,window.jQuery)}})(window,function factory(window,jQuery){"use strict";var arraySlice=Array.prototype.slice;var console=window.console;var logError=typeof console=="undefined"?function(){}:function(message){console.error(message)};function jQueryBridget(namespace,PluginClass,$){$=$||jQuery||window.jQuery;if(!$){return}if(!PluginClass.prototype.option){PluginClass.prototype.option=function(opts){if(!$.isPlainObject(opts)){return}this.options=$.extend(true,this.options,opts)}}$.fn[namespace]=function(arg0){if(typeof arg0=="string"){var args=arraySlice.call(arguments,1);return methodCall(this,arg0,args)}plainCall(this,arg0);return this};function methodCall($elems,methodName,args){var returnValue;var pluginMethodStr="$()."+namespace+'("'+methodName+'")';$elems.each(function(i,elem){var instance=$.data(elem,namespace);if(!instance){logError(namespace+" not initialized. Cannot call methods, i.e. "+pluginMethodStr);return}var method=instance[methodName];if(!method||methodName.charAt(0)=="_"){logError(pluginMethodStr+" is not a valid method");return}var value=method.apply(instance,args);returnValue=returnValue===undefined?value:returnValue});return returnValue!==undefined?returnValue:$elems}function plainCall($elems,options){$elems.each(function(i,elem){var instance=$.data(elem,namespace);if(instance){instance.option(options);instance._init()}else{instance=new PluginClass(elem,options);$.data(elem,namespace,instance)}})}updateJQuery($)}function updateJQuery($){if(!$||$&&$.bridget){return}$.bridget=jQueryBridget}updateJQuery(jQuery||window.jQuery);return jQueryBridget});(function(global,factory){if(typeof define=="function"&&define.amd){define("ev-emitter/ev-emitter",factory)}else if(typeof module=="object"&&module.exports){module.exports=factory()}else{global.EvEmitter=factory()}})(typeof window!="undefined"?window:this,function(){function EvEmitter(){}var proto=EvEmitter.prototype;proto.on=function(eventName,listener){if(!eventName||!listener){return}var events=this._events=this._events||{};var listeners=events[eventName]=events[eventName]||[];if(listeners.indexOf(listener)==-1){listeners.push(listener)}return this};proto.once=function(eventName,listener){if(!eventName||!listener){return}this.on(eventName,listener);var onceEvents=this._onceEvents=this._onceEvents||{};var onceListeners=onceEvents[eventName]=onceEvents[eventName]||{};onceListeners[listener]=true;return this};proto.off=function(eventName,listener){var listeners=this._events&&this._events[eventName];if(!listeners||!listeners.length){return}var index=listeners.indexOf(listener);if(index!=-1){listeners.splice(index,1)}return this};proto.emitEvent=function(eventName,args){var listeners=this._events&&this._events[eventName];if(!listeners||!listeners.length){return}var i=0;var listener=listeners[i];args=args||[];var onceListeners=this._onceEvents&&this._onceEvents[eventName];while(listener){var isOnce=onceListeners&&onceListeners[listener];if(isOnce){this.off(eventName,listener);delete onceListeners[listener]}listener.apply(this,args);i+=isOnce?0:1;listener=listeners[i]}return this};return EvEmitter});(function(window,factory){"use strict";if(typeof define=="function"&&define.amd){define("get-size/get-size",[],function(){return factory()})}else if(typeof module=="object"&&module.exports){module.exports=factory()}else{window.getSize=factory()}})(window,function factory(){"use strict";function getStyleSize(value){var num=parseFloat(value);var isValid=value.indexOf("%")==-1&&!isNaN(num);return isValid&&num}function noop(){}var logError=typeof console=="undefined"?noop:function(message){console.error(message)};var measurements=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];var measurementsLength=measurements.length;function getZeroSize(){var size={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0};for(var i=0;i<measurementsLength;i++){var measurement=measurements[i];size[measurement]=0}return size}function getStyle(elem){var style=getComputedStyle(elem);if(!style){logError("Style returned "+style+". Are you running this code in a hidden iframe on Firefox? "+"See http://bit.ly/getsizebug1")}return style}var isSetup=false;var isBoxSizeOuter;function setup(){if(isSetup){return}isSetup=true;var div=document.createElement("div");div.style.width="200px";div.style.padding="1px 2px 3px 4px";div.style.borderStyle="solid";div.style.borderWidth="1px 2px 3px 4px";div.style.boxSizing="border-box";var body=document.body||document.documentElement;body.appendChild(div);var style=getStyle(div);getSize.isBoxSizeOuter=isBoxSizeOuter=getStyleSize(style.width)==200;body.removeChild(div)}function getSize(elem){setup();if(typeof elem=="string"){elem=document.querySelector(elem)}if(!elem||typeof elem!="object"||!elem.nodeType){return}var style=getStyle(elem);if(style.display=="none"){return getZeroSize()}var size={};size.width=elem.offsetWidth;size.height=elem.offsetHeight;var isBorderBox=size.isBorderBox=style.boxSizing=="border-box";for(var i=0;i<measurementsLength;i++){var measurement=measurements[i];var value=style[measurement];var num=parseFloat(value);size[measurement]=!isNaN(num)?num:0}var paddingWidth=size.paddingLeft+size.paddingRight;var paddingHeight=size.paddingTop+size.paddingBottom;var marginWidth=size.marginLeft+size.marginRight;var marginHeight=size.marginTop+size.marginBottom;var borderWidth=size.borderLeftWidth+size.borderRightWidth;var borderHeight=size.borderTopWidth+size.borderBottomWidth;var isBorderBoxSizeOuter=isBorderBox&&isBoxSizeOuter;var styleWidth=getStyleSize(style.width);if(styleWidth!==false){size.width=styleWidth+(isBorderBoxSizeOuter?0:paddingWidth+borderWidth)}var styleHeight=getStyleSize(style.height);if(styleHeight!==false){size.height=styleHeight+(isBorderBoxSizeOuter?0:paddingHeight+borderHeight)}size.innerWidth=size.width-(paddingWidth+borderWidth);size.innerHeight=size.height-(paddingHeight+borderHeight);size.outerWidth=size.width+marginWidth;size.outerHeight=size.height+marginHeight;return size}return getSize});(function(window,factory){"use strict";if(typeof define=="function"&&define.amd){define("desandro-matches-selector/matches-selector",factory)}else if(typeof module=="object"&&module.exports){module.exports=factory()}else{window.matchesSelector=factory()}})(window,function factory(){"use strict";var matchesMethod=function(){var ElemProto=window.Element.prototype;if(ElemProto.matches){return"matches"}if(ElemProto.matchesSelector){return"matchesSelector"}var prefixes=["webkit","moz","ms","o"];for(var i=0;i<prefixes.length;i++){var prefix=prefixes[i];var method=prefix+"MatchesSelector";if(ElemProto[method]){return method}}}();return function matchesSelector(elem,selector){return elem[matchesMethod](selector)}});(function(window,factory){if(typeof define=="function"&&define.amd){define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(matchesSelector){return factory(window,matchesSelector)})}else if(typeof module=="object"&&module.exports){module.exports=factory(window,require("desandro-matches-selector"))}else{window.fizzyUIUtils=factory(window,window.matchesSelector)}})(window,function factory(window,matchesSelector){var utils={};utils.extend=function(a,b){for(var prop in b){a[prop]=b[prop]}return a};utils.modulo=function(num,div){return(num%div+div)%div};utils.makeArray=function(obj){var ary=[];if(Array.isArray(obj)){ary=obj}else if(obj&&typeof obj=="object"&&typeof obj.length=="number"){for(var i=0;i<obj.length;i++){ary.push(obj[i])}}else{ary.push(obj)}return ary};utils.removeFrom=function(ary,obj){var index=ary.indexOf(obj);if(index!=-1){ary.splice(index,1)}};utils.getParent=function(elem,selector){while(elem!=document.body){elem=elem.parentNode;if(matchesSelector(elem,selector)){return elem}}};utils.getQueryElement=function(elem){if(typeof elem=="string"){return document.querySelector(elem)}return elem};utils.handleEvent=function(event){var method="on"+event.type;if(this[method]){this[method](event)}};utils.filterFindElements=function(elems,selector){elems=utils.makeArray(elems);var ffElems=[];elems.forEach(function(elem){if(!(elem instanceof HTMLElement)){return}if(!selector){ffElems.push(elem);return}if(matchesSelector(elem,selector)){ffElems.push(elem)}var childElems=elem.querySelectorAll(selector);for(var i=0;i<childElems.length;i++){ffElems.push(childElems[i])}});return ffElems};utils.debounceMethod=function(_class,methodName,threshold){var method=_class.prototype[methodName];var timeoutName=methodName+"Timeout";_class.prototype[methodName]=function(){var timeout=this[timeoutName];if(timeout){clearTimeout(timeout)}var args=arguments;var _this=this;this[timeoutName]=setTimeout(function(){method.apply(_this,args);delete _this[timeoutName]},threshold||100)}};utils.docReady=function(callback){var readyState=document.readyState;if(readyState=="complete"||readyState=="interactive"){setTimeout(callback)}else{document.addEventListener("DOMContentLoaded",callback)}};utils.toDashed=function(str){return str.replace(/(.)([A-Z])/g,function(match,$1,$2){return $1+"-"+$2}).toLowerCase()};var console=window.console;utils.htmlInit=function(WidgetClass,namespace){utils.docReady(function(){var dashedNamespace=utils.toDashed(namespace);var dataAttr="data-"+dashedNamespace;var dataAttrElems=document.querySelectorAll("["+dataAttr+"]");var jsDashElems=document.querySelectorAll(".js-"+dashedNamespace);var elems=utils.makeArray(dataAttrElems).concat(utils.makeArray(jsDashElems));var dataOptionsAttr=dataAttr+"-options";var jQuery=window.jQuery;elems.forEach(function(elem){var attr=elem.getAttribute(dataAttr)||elem.getAttribute(dataOptionsAttr);var options;try{options=attr&&JSON.parse(attr)}catch(error){if(console){console.error("Error parsing "+dataAttr+" on "+elem.className+": "+error)}return}var instance=new WidgetClass(elem,options);if(jQuery){jQuery.data(elem,namespace,instance)}})})};return utils});(function(window,factory){if(typeof define=="function"&&define.amd){define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],factory)}else if(typeof module=="object"&&module.exports){module.exports=factory(require("ev-emitter"),require("get-size"))}else{window.Outlayer={};window.Outlayer.Item=factory(window.EvEmitter,window.getSize)}})(window,function factory(EvEmitter,getSize){"use strict";function isEmptyObj(obj){for(var prop in obj){return false}prop=null;return true}var docElemStyle=document.documentElement.style;var transitionProperty=typeof docElemStyle.transition=="string"?"transition":"WebkitTransition";var transformProperty=typeof docElemStyle.transform=="string"?"transform":"WebkitTransform";var transitionEndEvent={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[transitionProperty];var vendorProperties={transform:transformProperty,transition:transitionProperty,transitionDuration:transitionProperty+"Duration",transitionProperty:transitionProperty+"Property",transitionDelay:transitionProperty+"Delay"};function Item(element,layout){if(!element){return}this.element=element;this.layout=layout;this.position={x:0,y:0};this._create()}var proto=Item.prototype=Object.create(EvEmitter.prototype);proto.constructor=Item;proto._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}};this.css({position:"absolute"})};proto.handleEvent=function(event){var method="on"+event.type;if(this[method]){this[method](event)}};proto.getSize=function(){this.size=getSize(this.element)};proto.css=function(style){var elemStyle=this.element.style;for(var prop in style){var supportedProp=vendorProperties[prop]||prop;elemStyle[supportedProp]=style[prop]}};proto.getPosition=function(){var style=getComputedStyle(this.element);var isOriginLeft=this.layout._getOption("originLeft");var isOriginTop=this.layout._getOption("originTop");var xValue=style[isOriginLeft?"left":"right"];var yValue=style[isOriginTop?"top":"bottom"];var layoutSize=this.layout.size;var x=xValue.indexOf("%")!=-1?parseFloat(xValue)/100*layoutSize.width:parseInt(xValue,10);var y=yValue.indexOf("%")!=-1?parseFloat(yValue)/100*layoutSize.height:parseInt(yValue,10);x=isNaN(x)?0:x;y=isNaN(y)?0:y;x-=isOriginLeft?layoutSize.paddingLeft:layoutSize.paddingRight;y-=isOriginTop?layoutSize.paddingTop:layoutSize.paddingBottom;this.position.x=x;this.position.y=y};proto.layoutPosition=function(){var layoutSize=this.layout.size;var style={};var isOriginLeft=this.layout._getOption("originLeft");var isOriginTop=this.layout._getOption("originTop");var xPadding=isOriginLeft?"paddingLeft":"paddingRight";var xProperty=isOriginLeft?"left":"right";var xResetProperty=isOriginLeft?"right":"left";var x=this.position.x+layoutSize[xPadding];style[xProperty]=this.getXValue(x);style[xResetProperty]="";var yPadding=isOriginTop?"paddingTop":"paddingBottom";var yProperty=isOriginTop?"top":"bottom";var yResetProperty=isOriginTop?"bottom":"top";var y=this.position.y+layoutSize[yPadding];style[yProperty]=this.getYValue(y);style[yResetProperty]="";this.css(style);this.emitEvent("layout",[this])};proto.getXValue=function(x){var isHorizontal=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!isHorizontal?x/this.layout.size.width*100+"%":x+"px"};proto.getYValue=function(y){var isHorizontal=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&isHorizontal?y/this.layout.size.height*100+"%":y+"px"};proto._transitionTo=function(x,y){this.getPosition();var curX=this.position.x;var curY=this.position.y;var compareX=parseInt(x,10);var compareY=parseInt(y,10);var didNotMove=compareX===this.position.x&&compareY===this.position.y;this.setPosition(x,y);if(didNotMove&&!this.isTransitioning){this.layoutPosition();return}var transX=x-curX;var transY=y-curY;var transitionStyle={};transitionStyle.transform=this.getTranslate(transX,transY);this.transition({to:transitionStyle,onTransitionEnd:{transform:this.layoutPosition},isCleaning:true})};proto.getTranslate=function(x,y){var isOriginLeft=this.layout._getOption("originLeft");var isOriginTop=this.layout._getOption("originTop");x=isOriginLeft?x:-x;y=isOriginTop?y:-y;return"translate3d("+x+"px, "+y+"px, 0)"};proto.goTo=function(x,y){this.setPosition(x,y);this.layoutPosition()};proto.moveTo=proto._transitionTo;proto.setPosition=function(x,y){this.position.x=parseInt(x,10);this.position.y=parseInt(y,10)};proto._nonTransition=function(args){this.css(args.to);if(args.isCleaning){this._removeStyles(args.to)}for(var prop in args.onTransitionEnd){args.onTransitionEnd[prop].call(this)}};proto.transition=function(args){if(!parseFloat(this.layout.options.transitionDuration)){this._nonTransition(args);return}var _transition=this._transn;for(var prop in args.onTransitionEnd){_transition.onEnd[prop]=args.onTransitionEnd[prop]}for(prop in args.to){_transition.ingProperties[prop]=true;if(args.isCleaning){_transition.clean[prop]=true}}if(args.from){this.css(args.from);var h=this.element.offsetHeight;h=null}this.enableTransition(args.to);this.css(args.to);this.isTransitioning=true};function toDashedAll(str){return str.replace(/([A-Z])/g,function($1){return"-"+$1.toLowerCase()})}var transitionProps="opacity,"+toDashedAll(transformProperty);proto.enableTransition=function(){if(this.isTransitioning){return}var duration=this.layout.options.transitionDuration;duration=typeof duration=="number"?duration+"ms":duration;this.css({transitionProperty:transitionProps,transitionDuration:duration,transitionDelay:this.staggerDelay||0});this.element.addEventListener(transitionEndEvent,this,false)};proto.onwebkitTransitionEnd=function(event){this.ontransitionend(event)};proto.onotransitionend=function(event){this.ontransitionend(event)};var dashedVendorProperties={"-webkit-transform":"transform"};proto.ontransitionend=function(event){if(event.target!==this.element){return}var _transition=this._transn;var propertyName=dashedVendorProperties[event.propertyName]||event.propertyName;delete _transition.ingProperties[propertyName];if(isEmptyObj(_transition.ingProperties)){this.disableTransition()}if(propertyName in _transition.clean){this.element.style[event.propertyName]="";delete _transition.clean[propertyName]}if(propertyName in _transition.onEnd){var onTransitionEnd=_transition.onEnd[propertyName];onTransitionEnd.call(this);delete _transition.onEnd[propertyName]}this.emitEvent("transitionEnd",[this])};proto.disableTransition=function(){this.removeTransitionStyles();this.element.removeEventListener(transitionEndEvent,this,false);this.isTransitioning=false};proto._removeStyles=function(style){var cleanStyle={};for(var prop in style){cleanStyle[prop]=""}this.css(cleanStyle)};var cleanTransitionStyle={transitionProperty:"",transitionDuration:"",transitionDelay:""};proto.removeTransitionStyles=function(){this.css(cleanTransitionStyle)};proto.stagger=function(delay){delay=isNaN(delay)?0:delay;this.staggerDelay=delay+"ms"};proto.removeElem=function(){this.element.parentNode.removeChild(this.element);this.css({display:""});this.emitEvent("remove",[this])};proto.remove=function(){if(!transitionProperty||!parseFloat(this.layout.options.transitionDuration)){this.removeElem();return}this.once("transitionEnd",function(){this.removeElem()});this.hide()};proto.reveal=function(){delete this.isHidden;this.css({display:""});var options=this.layout.options;var onTransitionEnd={};var transitionEndProperty=this.getHideRevealTransitionEndProperty("visibleStyle");onTransitionEnd[transitionEndProperty]=this.onRevealTransitionEnd;this.transition({from:options.hiddenStyle,to:options.visibleStyle,isCleaning:true,onTransitionEnd:onTransitionEnd})};proto.onRevealTransitionEnd=function(){if(!this.isHidden){this.emitEvent("reveal")}};proto.getHideRevealTransitionEndProperty=function(styleProperty){var optionStyle=this.layout.options[styleProperty];if(optionStyle.opacity){return"opacity"}for(var prop in optionStyle){return prop}};proto.hide=function(){this.isHidden=true;this.css({display:""});var options=this.layout.options;var onTransitionEnd={};var transitionEndProperty=this.getHideRevealTransitionEndProperty("hiddenStyle");onTransitionEnd[transitionEndProperty]=this.onHideTransitionEnd;this.transition({from:options.visibleStyle,to:options.hiddenStyle,isCleaning:true,onTransitionEnd:onTransitionEnd})};proto.onHideTransitionEnd=function(){if(this.isHidden){this.css({display:"none"});this.emitEvent("hide")}};proto.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})};return Item});(function(window,factory){"use strict";if(typeof define=="function"&&define.amd){define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(EvEmitter,getSize,utils,Item){return factory(window,EvEmitter,getSize,utils,Item)})}else if(typeof module=="object"&&module.exports){module.exports=factory(window,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item"))}else{window.Outlayer=factory(window,window.EvEmitter,window.getSize,window.fizzyUIUtils,window.Outlayer.Item)}})(window,function factory(window,EvEmitter,getSize,utils,Item){"use strict";var console=window.console;var jQuery=window.jQuery;var noop=function(){};var GUID=0;var instances={};function Outlayer(element,options){var queryElement=utils.getQueryElement(element);if(!queryElement){if(console){console.error("Bad element for "+this.constructor.namespace+": "+(queryElement||element))}return}this.element=queryElement;if(jQuery){this.$element=jQuery(this.element)}this.options=utils.extend({},this.constructor.defaults);this.option(options);var id=++GUID;this.element.outlayerGUID=id;instances[id]=this;this._create();var isInitLayout=this._getOption("initLayout");if(isInitLayout){this.layout()}}Outlayer.namespace="outlayer";Outlayer.Item=Item;Outlayer.defaults={containerStyle:{position:"relative"},initLayout:true,originLeft:true,originTop:true,resize:true,resizeContainer:true,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var proto=Outlayer.prototype;utils.extend(proto,EvEmitter.prototype);proto.option=function(opts){utils.extend(this.options,opts)};proto._getOption=function(option){var oldOption=this.constructor.compatOptions[option];return oldOption&&this.options[oldOption]!==undefined?this.options[oldOption]:this.options[option]};Outlayer.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"};proto._create=function(){this.reloadItems();this.stamps=[];this.stamp(this.options.stamp);utils.extend(this.element.style,this.options.containerStyle);var canBindResize=this._getOption("resize");if(canBindResize){this.bindResize()}};proto.reloadItems=function(){this.items=this._itemize(this.element.children)};proto._itemize=function(elems){var itemElems=this._filterFindItemElements(elems);var Item=this.constructor.Item;var items=[];for(var i=0;i<itemElems.length;i++){var elem=itemElems[i];var item=new Item(elem,this);items.push(item)}return items};proto._filterFindItemElements=function(elems){return utils.filterFindElements(elems,this.options.itemSelector)};proto.getItemElements=function(){return this.items.map(function(item){return item.element})};proto.layout=function(){this._resetLayout();this._manageStamps();var layoutInstant=this._getOption("layoutInstant");var isInstant=layoutInstant!==undefined?layoutInstant:!this._isLayoutInited;this.layoutItems(this.items,isInstant);this._isLayoutInited=true};proto._init=proto.layout;proto._resetLayout=function(){this.getSize()};proto.getSize=function(){this.size=getSize(this.element)};proto._getMeasurement=function(measurement,size){var option=this.options[measurement];var elem;if(!option){this[measurement]=0}else{if(typeof option=="string"){elem=this.element.querySelector(option)}else if(option instanceof HTMLElement){elem=option}this[measurement]=elem?getSize(elem)[size]:option}};proto.layoutItems=function(items,isInstant){items=this._getItemsForLayout(items);this._layoutItems(items,isInstant);this._postLayout()};proto._getItemsForLayout=function(items){return items.filter(function(item){return!item.isIgnored})};proto._layoutItems=function(items,isInstant){this._emitCompleteOnItems("layout",items);if(!items||!items.length){return}var queue=[];items.forEach(function(item){var position=this._getItemLayoutPosition(item);position.item=item;position.isInstant=isInstant||item.isLayoutInstant;queue.push(position)},this);this._processLayoutQueue(queue)};proto._getItemLayoutPosition=function(){return{x:0,y:0}};proto._processLayoutQueue=function(queue){this.updateStagger();queue.forEach(function(obj,i){this._positionItem(obj.item,obj.x,obj.y,obj.isInstant,i)},this)};proto.updateStagger=function(){var stagger=this.options.stagger;if(stagger===null||stagger===undefined){this.stagger=0;return}this.stagger=getMilliseconds(stagger);return this.stagger};proto._positionItem=function(item,x,y,isInstant,i){if(isInstant){item.goTo(x,y)}else{item.stagger(i*this.stagger);item.moveTo(x,y)}};proto._postLayout=function(){this.resizeContainer()};proto.resizeContainer=function(){var isResizingContainer=this._getOption("resizeContainer");if(!isResizingContainer){return}var size=this._getContainerSize();if(size){this._setContainerMeasure(size.width,true);this._setContainerMeasure(size.height,false)}};proto._getContainerSize=noop;proto._setContainerMeasure=function(measure,isWidth){if(measure===undefined){return}var elemSize=this.size;if(elemSize.isBorderBox){measure+=isWidth?elemSize.paddingLeft+elemSize.paddingRight+elemSize.borderLeftWidth+elemSize.borderRightWidth:elemSize.paddingBottom+elemSize.paddingTop+elemSize.borderTopWidth+elemSize.borderBottomWidth}measure=Math.max(measure,0);this.element.style[isWidth?"width":"height"]=measure+"px"};proto._emitCompleteOnItems=function(eventName,items){var _this=this;function onComplete(){_this.dispatchEvent(eventName+"Complete",null,[items])}var count=items.length;if(!items||!count){onComplete();return}var doneCount=0;function tick(){doneCount++;if(doneCount==count){onComplete()}}items.forEach(function(item){item.once(eventName,tick)})};proto.dispatchEvent=function(type,event,args){var emitArgs=event?[event].concat(args):args;this.emitEvent(type,emitArgs);if(jQuery){this.$element=this.$element||jQuery(this.element);if(event){var $event=jQuery.Event(event);$event.type=type;this.$element.trigger($event,args)}else{this.$element.trigger(type,args)}}};proto.ignore=function(elem){var item=this.getItem(elem);if(item){item.isIgnored=true}};proto.unignore=function(elem){var item=this.getItem(elem);if(item){delete item.isIgnored}};proto.stamp=function(elems){elems=this._find(elems);if(!elems){return}this.stamps=this.stamps.concat(elems);elems.forEach(this.ignore,this)};proto.unstamp=function(elems){elems=this._find(elems);if(!elems){return}elems.forEach(function(elem){utils.removeFrom(this.stamps,elem);this.unignore(elem)},this)};proto._find=function(elems){if(!elems){return}if(typeof elems=="string"){elems=this.element.querySelectorAll(elems)}elems=utils.makeArray(elems);return elems};proto._manageStamps=function(){if(!this.stamps||!this.stamps.length){return}this._getBoundingRect();this.stamps.forEach(this._manageStamp,this)};proto._getBoundingRect=function(){var boundingRect=this.element.getBoundingClientRect();var size=this.size;this._boundingRect={left:boundingRect.left+size.paddingLeft+size.borderLeftWidth,top:boundingRect.top+size.paddingTop+size.borderTopWidth,right:boundingRect.right-(size.paddingRight+size.borderRightWidth),bottom:boundingRect.bottom-(size.paddingBottom+size.borderBottomWidth)}};proto._manageStamp=noop;proto._getElementOffset=function(elem){var boundingRect=elem.getBoundingClientRect();var thisRect=this._boundingRect;var size=getSize(elem);var offset={left:boundingRect.left-thisRect.left-size.marginLeft,top:boundingRect.top-thisRect.top-size.marginTop,right:thisRect.right-boundingRect.right-size.marginRight,bottom:thisRect.bottom-boundingRect.bottom-size.marginBottom};return offset};proto.handleEvent=utils.handleEvent;proto.bindResize=function(){window.addEventListener("resize",this);this.isResizeBound=true};proto.unbindResize=function(){window.removeEventListener("resize",this);this.isResizeBound=false};proto.onresize=function(){this.resize()};utils.debounceMethod(Outlayer,"onresize",100);proto.resize=function(){if(!this.isResizeBound||!this.needsResizeLayout()){return}this.layout()};proto.needsResizeLayout=function(){var size=getSize(this.element);var hasSizes=this.size&&size;return hasSizes&&size.innerWidth!==this.size.innerWidth};proto.addItems=function(elems){var items=this._itemize(elems);if(items.length){this.items=this.items.concat(items)}return items};proto.appended=function(elems){var items=this.addItems(elems);if(!items.length){return}this.layoutItems(items,true);this.reveal(items)};proto.prepended=function(elems){var items=this._itemize(elems);if(!items.length){return}var previousItems=this.items.slice(0);this.items=items.concat(previousItems);this._resetLayout();this._manageStamps();this.layoutItems(items,true);this.reveal(items);this.layoutItems(previousItems)};proto.reveal=function(items){this._emitCompleteOnItems("reveal",items);if(!items||!items.length){return}var stagger=this.updateStagger();items.forEach(function(item,i){item.stagger(i*stagger);item.reveal()})};proto.hide=function(items){this._emitCompleteOnItems("hide",items);if(!items||!items.length){return}var stagger=this.updateStagger();items.forEach(function(item,i){item.stagger(i*stagger);item.hide()})};proto.revealItemElements=function(elems){var items=this.getItems(elems);this.reveal(items)};proto.hideItemElements=function(elems){var items=this.getItems(elems);this.hide(items)};proto.getItem=function(elem){for(var i=0;i<this.items.length;i++){var item=this.items[i];if(item.element==elem){return item}}};proto.getItems=function(elems){elems=utils.makeArray(elems);var items=[];elems.forEach(function(elem){var item=this.getItem(elem);if(item){items.push(item)}},this);return items};proto.remove=function(elems){var removeItems=this.getItems(elems);this._emitCompleteOnItems("remove",removeItems);if(!removeItems||!removeItems.length){return}removeItems.forEach(function(item){item.remove();utils.removeFrom(this.items,item)},this)};proto.destroy=function(){var style=this.element.style;style.height="";style.position="";style.width="";this.items.forEach(function(item){item.destroy()});this.unbindResize();var id=this.element.outlayerGUID;delete instances[id];delete this.element.outlayerGUID;if(jQuery){jQuery.removeData(this.element,this.constructor.namespace)}};Outlayer.data=function(elem){elem=utils.getQueryElement(elem);var id=elem&&elem.outlayerGUID;return id&&instances[id]};Outlayer.create=function(namespace,options){var Layout=subclass(Outlayer);Layout.defaults=utils.extend({},Outlayer.defaults);utils.extend(Layout.defaults,options);Layout.compatOptions=utils.extend({},Outlayer.compatOptions);Layout.namespace=namespace;Layout.data=Outlayer.data;Layout.Item=subclass(Item);utils.htmlInit(Layout,namespace);if(jQuery&&jQuery.bridget){jQuery.bridget(namespace,Layout)}return Layout};function subclass(Parent){function SubClass(){Parent.apply(this,arguments)}SubClass.prototype=Object.create(Parent.prototype);SubClass.prototype.constructor=SubClass;return SubClass}var msUnits={ms:1,s:1e3};function getMilliseconds(time){if(typeof time=="number"){return time}var matches=time.match(/(^\d*\.?\d*)(\w*)/);var num=matches&&matches[1];var unit=matches&&matches[2];if(!num.length){return 0}num=parseFloat(num);var mult=msUnits[unit]||1;return num*mult}Outlayer.Item=Item;return Outlayer});(function(window,factory){if(typeof define=="function"&&define.amd){define("isotope/js/item",["outlayer/outlayer"],factory)}else if(typeof module=="object"&&module.exports){module.exports=factory(require("outlayer"))}else{window.Isotope=window.Isotope||{};window.Isotope.Item=factory(window.Outlayer)}})(window,function factory(Outlayer){"use strict";function Item(){Outlayer.Item.apply(this,arguments)}var proto=Item.prototype=Object.create(Outlayer.Item.prototype);var _create=proto._create;proto._create=function(){this.id=this.layout.itemGUID++;_create.call(this);this.sortData={}};proto.updateSortData=function(){if(this.isIgnored){return}this.sortData.id=this.id;this.sortData["original-order"]=this.id;this.sortData.random=Math.random();var getSortData=this.layout.options.getSortData;var sorters=this.layout._sorters;for(var key in getSortData){var sorter=sorters[key];this.sortData[key]=sorter(this.element,this)}};var _destroy=proto.destroy;proto.destroy=function(){_destroy.apply(this,arguments);this.css({display:""})};return Item});(function(window,factory){if(typeof define=="function"&&define.amd){define("isotope/js/layout-mode",["get-size/get-size","outlayer/outlayer"],factory)}else if(typeof module=="object"&&module.exports){module.exports=factory(require("get-size"),require("outlayer"))}else{window.Isotope=window.Isotope||{};window.Isotope.LayoutMode=factory(window.getSize,window.Outlayer)}})(window,function factory(getSize,Outlayer){"use strict";function LayoutMode(isotope){this.isotope=isotope;if(isotope){this.options=isotope.options[this.namespace];this.element=isotope.element;this.items=isotope.filteredItems;this.size=isotope.size}}var proto=LayoutMode.prototype
2
+ ;var facadeMethods=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];facadeMethods.forEach(function(methodName){proto[methodName]=function(){return Outlayer.prototype[methodName].apply(this.isotope,arguments)}});proto.needsVerticalResizeLayout=function(){var size=getSize(this.isotope.element);var hasSizes=this.isotope.size&&size;return hasSizes&&size.innerHeight!=this.isotope.size.innerHeight};proto._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)};proto.getColumnWidth=function(){this.getSegmentSize("column","Width")};proto.getRowHeight=function(){this.getSegmentSize("row","Height")};proto.getSegmentSize=function(segment,size){var segmentName=segment+size;var outerSize="outer"+size;this._getMeasurement(segmentName,outerSize);if(this[segmentName]){return}var firstItemSize=this.getFirstItemSize();this[segmentName]=firstItemSize&&firstItemSize[outerSize]||this.isotope.size["inner"+size]};proto.getFirstItemSize=function(){var firstItem=this.isotope.filteredItems[0];return firstItem&&firstItem.element&&getSize(firstItem.element)};proto.layout=function(){this.isotope.layout.apply(this.isotope,arguments)};proto.getSize=function(){this.isotope.getSize();this.size=this.isotope.size};LayoutMode.modes={};LayoutMode.create=function(namespace,options){function Mode(){LayoutMode.apply(this,arguments)}Mode.prototype=Object.create(proto);Mode.prototype.constructor=Mode;if(options){Mode.options=options}Mode.prototype.namespace=namespace;LayoutMode.modes[namespace]=Mode;return Mode};return LayoutMode});(function(window,factory){if(typeof define=="function"&&define.amd){define("masonry/masonry",["outlayer/outlayer","get-size/get-size"],factory)}else if(typeof module=="object"&&module.exports){module.exports=factory(require("outlayer"),require("get-size"))}else{window.Masonry=factory(window.Outlayer,window.getSize)}})(window,function factory(Outlayer,getSize){var Masonry=Outlayer.create("masonry");Masonry.compatOptions.fitWidth="isFitWidth";Masonry.prototype._resetLayout=function(){this.getSize();this._getMeasurement("columnWidth","outerWidth");this._getMeasurement("gutter","outerWidth");this.measureColumns();this.colYs=[];for(var i=0;i<this.cols;i++){this.colYs.push(0)}this.maxY=0};Masonry.prototype.measureColumns=function(){this.getContainerWidth();if(!this.columnWidth){var firstItem=this.items[0];var firstItemElem=firstItem&&firstItem.element;this.columnWidth=firstItemElem&&getSize(firstItemElem).outerWidth||this.containerWidth}var columnWidth=this.columnWidth+=this.gutter;var containerWidth=this.containerWidth+this.gutter;var cols=containerWidth/columnWidth;var excess=columnWidth-containerWidth%columnWidth;var mathMethod=excess&&excess<1?"round":"floor";cols=Math[mathMethod](cols);this.cols=Math.max(cols,1)};Masonry.prototype.getContainerWidth=function(){var isFitWidth=this._getOption("fitWidth");var container=isFitWidth?this.element.parentNode:this.element;var size=getSize(container);this.containerWidth=size&&size.innerWidth};Masonry.prototype._getItemLayoutPosition=function(item){item.getSize();var remainder=item.size.outerWidth%this.columnWidth;var mathMethod=remainder&&remainder<1?"round":"ceil";var colSpan=Math[mathMethod](item.size.outerWidth/this.columnWidth);colSpan=Math.min(colSpan,this.cols);var colGroup=this._getColGroup(colSpan);var minimumY=Math.min.apply(Math,colGroup);var shortColIndex=colGroup.indexOf(minimumY);var position={x:this.columnWidth*shortColIndex,y:minimumY};var setHeight=minimumY+item.size.outerHeight;var setSpan=this.cols+1-colGroup.length;for(var i=0;i<setSpan;i++){this.colYs[shortColIndex+i]=setHeight}return position};Masonry.prototype._getColGroup=function(colSpan){if(colSpan<2){return this.colYs}var colGroup=[];var groupCount=this.cols+1-colSpan;for(var i=0;i<groupCount;i++){var groupColYs=this.colYs.slice(i,i+colSpan);colGroup[i]=Math.max.apply(Math,groupColYs)}return colGroup};Masonry.prototype._manageStamp=function(stamp){var stampSize=getSize(stamp);var offset=this._getElementOffset(stamp);var isOriginLeft=this._getOption("originLeft");var firstX=isOriginLeft?offset.left:offset.right;var lastX=firstX+stampSize.outerWidth;var firstCol=Math.floor(firstX/this.columnWidth);firstCol=Math.max(0,firstCol);var lastCol=Math.floor(lastX/this.columnWidth);lastCol-=lastX%this.columnWidth?0:1;lastCol=Math.min(this.cols-1,lastCol);var isOriginTop=this._getOption("originTop");var stampMaxY=(isOriginTop?offset.top:offset.bottom)+stampSize.outerHeight;for(var i=firstCol;i<=lastCol;i++){this.colYs[i]=Math.max(stampMaxY,this.colYs[i])}};Masonry.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var size={height:this.maxY};if(this._getOption("fitWidth")){size.width=this._getContainerFitWidth()}return size};Masonry.prototype._getContainerFitWidth=function(){var unusedCols=0;var i=this.cols;while(--i){if(this.colYs[i]!==0){break}unusedCols++}return(this.cols-unusedCols)*this.columnWidth-this.gutter};Masonry.prototype.needsResizeLayout=function(){var previousWidth=this.containerWidth;this.getContainerWidth();return previousWidth!=this.containerWidth};return Masonry});(function(window,factory){if(typeof define=="function"&&define.amd){define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],factory)}else if(typeof module=="object"&&module.exports){module.exports=factory(require("../layout-mode"),require("masonry-layout"))}else{factory(window.Isotope.LayoutMode,window.Masonry)}})(window,function factory(LayoutMode,Masonry){"use strict";var MasonryMode=LayoutMode.create("masonry");var proto=MasonryMode.prototype;var keepModeMethods={_getElementOffset:true,layout:true,_getMeasurement:true};for(var method in Masonry.prototype){if(!keepModeMethods[method]){proto[method]=Masonry.prototype[method]}}var measureColumns=proto.measureColumns;proto.measureColumns=function(){this.items=this.isotope.filteredItems;measureColumns.call(this)};var _getOption=proto._getOption;proto._getOption=function(option){if(option=="fitWidth"){return this.options.isFitWidth!==undefined?this.options.isFitWidth:this.options.fitWidth}return _getOption.apply(this.isotope,arguments)};return MasonryMode});(function(window,factory){if(typeof define=="function"&&define.amd){define("isotope/js/layout-modes/fit-rows",["../layout-mode"],factory)}else if(typeof exports=="object"){module.exports=factory(require("../layout-mode"))}else{factory(window.Isotope.LayoutMode)}})(window,function factory(LayoutMode){"use strict";var FitRows=LayoutMode.create("fitRows");var proto=FitRows.prototype;proto._resetLayout=function(){this.x=0;this.y=0;this.maxY=0;this._getMeasurement("gutter","outerWidth")};proto._getItemLayoutPosition=function(item){item.getSize();var itemWidth=item.size.outerWidth+this.gutter;var containerWidth=this.isotope.size.innerWidth+this.gutter;if(this.x!==0&&itemWidth+this.x>containerWidth){this.x=0;this.y=this.maxY}var position={x:this.x,y:this.y};this.maxY=Math.max(this.maxY,this.y+item.size.outerHeight);this.x+=itemWidth;return position};proto._getContainerSize=function(){return{height:this.maxY}};return FitRows});(function(window,factory){if(typeof define=="function"&&define.amd){define("isotope/js/layout-modes/vertical",["../layout-mode"],factory)}else if(typeof module=="object"&&module.exports){module.exports=factory(require("../layout-mode"))}else{factory(window.Isotope.LayoutMode)}})(window,function factory(LayoutMode){"use strict";var Vertical=LayoutMode.create("vertical",{horizontalAlignment:0});var proto=Vertical.prototype;proto._resetLayout=function(){this.y=0};proto._getItemLayoutPosition=function(item){item.getSize();var x=(this.isotope.size.innerWidth-item.size.outerWidth)*this.options.horizontalAlignment;var y=this.y;this.y+=item.size.outerHeight;return{x:x,y:y}};proto._getContainerSize=function(){return{height:this.y}};return Vertical});(function(window,factory){if(typeof define=="function"&&define.amd){define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(Outlayer,getSize,matchesSelector,utils,Item,LayoutMode){return factory(window,Outlayer,getSize,matchesSelector,utils,Item,LayoutMode)})}else if(typeof module=="object"&&module.exports){module.exports=factory(window,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope/js/item"),require("isotope/js/layout-mode"),require("isotope/js/layout-modes/masonry"),require("isotope/js/layout-modes/fit-rows"),require("isotope/js/layout-modes/vertical"))}else{window.Isotope=factory(window,window.Outlayer,window.getSize,window.matchesSelector,window.fizzyUIUtils,window.Isotope.Item,window.Isotope.LayoutMode)}})(window,function factory(window,Outlayer,getSize,matchesSelector,utils,Item,LayoutMode){var jQuery=window.jQuery;var trim=String.prototype.trim?function(str){return str.trim()}:function(str){return str.replace(/^\s+|\s+$/g,"")};var Isotope=Outlayer.create("isotope",{layoutMode:"masonry",isJQueryFiltering:true,sortAscending:true});Isotope.Item=Item;Isotope.LayoutMode=LayoutMode;var proto=Isotope.prototype;proto._create=function(){this.itemGUID=0;this._sorters={};this._getSorters();Outlayer.prototype._create.call(this);this.modes={};this.filteredItems=this.items;this.sortHistory=["original-order"];for(var name in LayoutMode.modes){this._initLayoutMode(name)}};proto.reloadItems=function(){this.itemGUID=0;Outlayer.prototype.reloadItems.call(this)};proto._itemize=function(){var items=Outlayer.prototype._itemize.apply(this,arguments);for(var i=0;i<items.length;i++){var item=items[i];item.id=this.itemGUID++}this._updateItemsSortData(items);return items};proto._initLayoutMode=function(name){var Mode=LayoutMode.modes[name];var initialOpts=this.options[name]||{};this.options[name]=Mode.options?utils.extend(Mode.options,initialOpts):initialOpts;this.modes[name]=new Mode(this)};proto.layout=function(){if(!this._isLayoutInited&&this._getOption("initLayout")){this.arrange();return}this._layout()};proto._layout=function(){var isInstant=this._getIsInstant();this._resetLayout();this._manageStamps();this.layoutItems(this.filteredItems,isInstant);this._isLayoutInited=true};proto.arrange=function(opts){this.option(opts);this._getIsInstant();var filtered=this._filter(this.items);this.filteredItems=filtered.matches;this._bindArrangeComplete();if(this._isInstant){this._noTransition(this._hideReveal,[filtered])}else{this._hideReveal(filtered)}this._sort();this._layout()};proto._init=proto.arrange;proto._hideReveal=function(filtered){this.reveal(filtered.needReveal);this.hide(filtered.needHide)};proto._getIsInstant=function(){var isLayoutInstant=this._getOption("layoutInstant");var isInstant=isLayoutInstant!==undefined?isLayoutInstant:!this._isLayoutInited;this._isInstant=isInstant;return isInstant};proto._bindArrangeComplete=function(){var isLayoutComplete,isHideComplete,isRevealComplete;var _this=this;function arrangeParallelCallback(){if(isLayoutComplete&&isHideComplete&&isRevealComplete){_this.dispatchEvent("arrangeComplete",null,[_this.filteredItems])}}this.once("layoutComplete",function(){isLayoutComplete=true;arrangeParallelCallback()});this.once("hideComplete",function(){isHideComplete=true;arrangeParallelCallback()});this.once("revealComplete",function(){isRevealComplete=true;arrangeParallelCallback()})};proto._filter=function(items){var filter=this.options.filter;filter=filter||"*";var matches=[];var hiddenMatched=[];var visibleUnmatched=[];var test=this._getFilterTest(filter);for(var i=0;i<items.length;i++){var item=items[i];if(item.isIgnored){continue}var isMatched=test(item);if(isMatched){matches.push(item)}if(isMatched&&item.isHidden){hiddenMatched.push(item)}else if(!isMatched&&!item.isHidden){visibleUnmatched.push(item)}}return{matches:matches,needReveal:hiddenMatched,needHide:visibleUnmatched}};proto._getFilterTest=function(filter){if(jQuery&&this.options.isJQueryFiltering){return function(item){return jQuery(item.element).is(filter)}}if(typeof filter=="function"){return function(item){return filter(item.element)}}return function(item){return matchesSelector(item.element,filter)}};proto.updateSortData=function(elems){var items;if(elems){elems=utils.makeArray(elems);items=this.getItems(elems)}else{items=this.items}this._getSorters();this._updateItemsSortData(items)};proto._getSorters=function(){var getSortData=this.options.getSortData;for(var key in getSortData){var sorter=getSortData[key];this._sorters[key]=mungeSorter(sorter)}};proto._updateItemsSortData=function(items){var len=items&&items.length;for(var i=0;len&&i<len;i++){var item=items[i];item.updateSortData()}};var mungeSorter=function(){function mungeSorter(sorter){if(typeof sorter!="string"){return sorter}var args=trim(sorter).split(" ");var query=args[0];var attrMatch=query.match(/^\[(.+)\]$/);var attr=attrMatch&&attrMatch[1];var getValue=getValueGetter(attr,query);var parser=Isotope.sortDataParsers[args[1]];sorter=parser?function(elem){return elem&&parser(getValue(elem))}:function(elem){return elem&&getValue(elem)};return sorter}function getValueGetter(attr,query){if(attr){return function getAttribute(elem){return elem.getAttribute(attr)}}return function getChildText(elem){var child=elem.querySelector(query);return child&&child.textContent}}return mungeSorter}();Isotope.sortDataParsers={parseInt:function(val){return parseInt(val,10)},parseFloat:function(val){return parseFloat(val)}};proto._sort=function(){if(!this.options.sortBy){return}var sortBys=utils.makeArray(this.options.sortBy);if(!this._getIsSameSortBy(sortBys)){this.sortHistory=sortBys.concat(this.sortHistory)}var itemSorter=getItemSorter(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(itemSorter)};proto._getIsSameSortBy=function(sortBys){for(var i=0;i<sortBys.length;i++){if(sortBys[i]!=this.sortHistory[i]){return false}}return true};function getItemSorter(sortBys,sortAsc){return function sorter(itemA,itemB){for(var i=0;i<sortBys.length;i++){var sortBy=sortBys[i];var a=itemA.sortData[sortBy];var b=itemB.sortData[sortBy];if(a>b||a<b){var isAscending=sortAsc[sortBy]!==undefined?sortAsc[sortBy]:sortAsc;var direction=isAscending?1:-1;return(a>b?1:-1)*direction}}return 0}}proto._mode=function(){var layoutMode=this.options.layoutMode;var mode=this.modes[layoutMode];if(!mode){throw new Error("No layout mode: "+layoutMode)}mode.options=this.options[layoutMode];return mode};proto._resetLayout=function(){Outlayer.prototype._resetLayout.call(this);this._mode()._resetLayout()};proto._getItemLayoutPosition=function(item){return this._mode()._getItemLayoutPosition(item)};proto._manageStamp=function(stamp){this._mode()._manageStamp(stamp)};proto._getContainerSize=function(){return this._mode()._getContainerSize()};proto.needsResizeLayout=function(){return this._mode().needsResizeLayout()};proto.appended=function(elems){var items=this.addItems(elems);if(!items.length){return}var filteredItems=this._filterRevealAdded(items);this.filteredItems=this.filteredItems.concat(filteredItems)};proto.prepended=function(elems){var items=this._itemize(elems);if(!items.length){return}this._resetLayout();this._manageStamps();var filteredItems=this._filterRevealAdded(items);this.layoutItems(this.filteredItems);this.filteredItems=filteredItems.concat(this.filteredItems);this.items=items.concat(this.items)};proto._filterRevealAdded=function(items){var filtered=this._filter(items);this.hide(filtered.needHide);this.reveal(filtered.matches);this.layoutItems(filtered.matches,true);return filtered.matches};proto.insert=function(elems){var items=this.addItems(elems);if(!items.length){return}var i,item;var len=items.length;for(i=0;i<len;i++){item=items[i];this.element.appendChild(item.element)}var filteredInsertItems=this._filter(items).matches;for(i=0;i<len;i++){items[i].isLayoutInstant=true}this.arrange();for(i=0;i<len;i++){delete items[i].isLayoutInstant}this.reveal(filteredInsertItems)};var _remove=proto.remove;proto.remove=function(elems){elems=utils.makeArray(elems);var removeItems=this.getItems(elems);_remove.call(this,elems);var len=removeItems&&removeItems.length;for(var i=0;len&&i<len;i++){var item=removeItems[i];utils.removeFrom(this.filteredItems,item)}};proto.shuffle=function(){for(var i=0;i<this.items.length;i++){var item=this.items[i];item.sortData.random=Math.random()}this.options.sortBy="random";this._sort();this._layout()};proto._noTransition=function(fn,args){var transitionDuration=this.options.transitionDuration;this.options.transitionDuration=0;var returnValue=fn.apply(this,args);this.options.transitionDuration=transitionDuration;return returnValue};proto.getFilteredItemElements=function(){return this.filteredItems.map(function(item){return item.element})};return Isotope});
assets/js/jquery.flexslider.js ADDED
@@ -0,0 +1,1195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery FlexSlider v2.6.0
3
+ * Copyright 2012 WooThemes
4
+ * Contributing Author: Tyler Smith
5
+ */
6
+ ;
7
+ (function ($) {
8
+
9
+ var focused = true;
10
+
11
+ //FlexSlider: Object Instance
12
+ $.flexslider = function(el, options) {
13
+ var slider = $(el);
14
+
15
+ // making variables public
16
+ slider.vars = $.extend({}, $.flexslider.defaults, options);
17
+
18
+ var namespace = slider.vars.namespace,
19
+ msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
20
+ touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,
21
+ // depricating this idea, as devices are being released with both of these events
22
+ eventType = "click touchend MSPointerUp keyup",
23
+ watchedEvent = "",
24
+ watchedEventClearTimer,
25
+ vertical = slider.vars.direction === "vertical",
26
+ reverse = slider.vars.reverse,
27
+ carousel = (slider.vars.itemWidth > 0),
28
+ fade = slider.vars.animation === "fade",
29
+ asNav = slider.vars.asNavFor !== "",
30
+ methods = {};
31
+
32
+ // Store a reference to the slider object
33
+ $.data(el, "flexslider", slider);
34
+
35
+ // Private slider methods
36
+ methods = {
37
+ init: function() {
38
+ slider.animating = false;
39
+ // Get current slide and make sure it is a number
40
+ slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 );
41
+ if ( isNaN( slider.currentSlide ) ) { slider.currentSlide = 0; }
42
+ slider.animatingTo = slider.currentSlide;
43
+ slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);
44
+ slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' '));
45
+ slider.slides = $(slider.vars.selector, slider);
46
+ slider.container = $(slider.containerSelector, slider);
47
+ slider.count = slider.slides.length;
48
+ // SYNC:
49
+ slider.syncExists = $(slider.vars.sync).length > 0;
50
+ // SLIDE:
51
+ if (slider.vars.animation === "slide") { slider.vars.animation = "swing"; }
52
+ slider.prop = (vertical) ? "top" : "marginLeft";
53
+ slider.args = {};
54
+ // SLIDESHOW:
55
+ slider.manualPause = false;
56
+ slider.stopped = false;
57
+ //PAUSE WHEN INVISIBLE
58
+ slider.started = false;
59
+ slider.startTimeout = null;
60
+ // TOUCH/USECSS:
61
+ slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() {
62
+ var obj = document.createElement('div'),
63
+ props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
64
+ for (var i in props) {
65
+ if ( obj.style[ props[i] ] !== undefined ) {
66
+ slider.pfx = props[i].replace('Perspective','').toLowerCase();
67
+ slider.prop = "-" + slider.pfx + "-transform";
68
+ return true;
69
+ }
70
+ }
71
+ return false;
72
+ }());
73
+ slider.ensureAnimationEnd = '';
74
+ // CONTROLSCONTAINER:
75
+ if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer);
76
+ // MANUAL:
77
+ if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);
78
+
79
+ // CUSTOM DIRECTION NAV:
80
+ if (slider.vars.customDirectionNav !== "") slider.customDirectionNav = $(slider.vars.customDirectionNav).length === 2 && $(slider.vars.customDirectionNav);
81
+
82
+ // RANDOMIZE:
83
+ if (slider.vars.randomize) {
84
+ slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
85
+ slider.container.empty().append(slider.slides);
86
+ }
87
+
88
+ slider.doMath();
89
+
90
+ // INIT
91
+ slider.setup("init");
92
+
93
+ // CONTROLNAV:
94
+ if (slider.vars.controlNav) { methods.controlNav.setup(); }
95
+
96
+ // DIRECTIONNAV:
97
+ if (slider.vars.directionNav) { methods.directionNav.setup(); }
98
+
99
+ // KEYBOARD:
100
+ if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {
101
+ $(document).bind('keyup', function(event) {
102
+ var keycode = event.keyCode;
103
+ if (!slider.animating && (keycode === 39 || keycode === 37)) {
104
+ var target = (keycode === 39) ? slider.getTarget('next') :
105
+ (keycode === 37) ? slider.getTarget('prev') : false;
106
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
107
+ }
108
+ });
109
+ }
110
+ // MOUSEWHEEL:
111
+ if (slider.vars.mousewheel) {
112
+ slider.bind('mousewheel', function(event, delta, deltaX, deltaY) {
113
+ event.preventDefault();
114
+ var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');
115
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
116
+ });
117
+ }
118
+
119
+ // PAUSEPLAY
120
+ if (slider.vars.pausePlay) { methods.pausePlay.setup(); }
121
+
122
+ //PAUSE WHEN INVISIBLE
123
+ if (slider.vars.slideshow && slider.vars.pauseInvisible) { methods.pauseInvisible.init(); }
124
+
125
+ // SLIDSESHOW
126
+ if (slider.vars.slideshow) {
127
+ if (slider.vars.pauseOnHover) {
128
+ slider.hover(function() {
129
+ if (!slider.manualPlay && !slider.manualPause) { slider.pause(); }
130
+ }, function() {
131
+ if (!slider.manualPause && !slider.manualPlay && !slider.stopped) { slider.play(); }
132
+ });
133
+ }
134
+ // initialize animation
135
+ //If we're visible, or we don't use PageVisibility API
136
+ if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) {
137
+ (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play();
138
+ }
139
+ }
140
+
141
+ // ASNAV:
142
+ if (asNav) { methods.asNav.setup(); }
143
+
144
+ // TOUCH
145
+ if (touch && slider.vars.touch) { methods.touch(); }
146
+
147
+ // FADE&&SMOOTHHEIGHT || SLIDE:
148
+ if (!fade || (fade && slider.vars.smoothHeight)) { $(window).bind("resize orientationchange focus", methods.resize); }
149
+
150
+ slider.find("img").attr("draggable", "false");
151
+
152
+ // API: start() Callback
153
+ setTimeout(function(){
154
+ slider.vars.start(slider);
155
+ }, 200);
156
+ },
157
+ asNav: {
158
+ setup: function() {
159
+ slider.asNav = true;
160
+ slider.animatingTo = Math.floor(slider.currentSlide/slider.move);
161
+ slider.currentItem = slider.currentSlide;
162
+ slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide");
163
+ if(!msGesture){
164
+ slider.slides.on(eventType, function(e){
165
+ e.preventDefault();
166
+ var $slide = $(this),
167
+ target = $slide.index();
168
+ var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container
169
+ if( posFromLeft <= 0 && $slide.hasClass( namespace + 'active-slide' ) ) {
170
+ slider.flexAnimate(slider.getTarget("prev"), true);
171
+ } else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + "active-slide")) {
172
+ slider.direction = (slider.currentItem < target) ? "next" : "prev";
173
+ slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
174
+ }
175
+ });
176
+ }else{
177
+ el._slider = slider;
178
+ slider.slides.each(function (){
179
+ var that = this;
180
+ that._gesture = new MSGesture();
181
+ that._gesture.target = that;
182
+ that.addEventListener("MSPointerDown", function (e){
183
+ e.preventDefault();
184
+ if(e.currentTarget._gesture) {
185
+ e.currentTarget._gesture.addPointer(e.pointerId);
186
+ }
187
+ }, false);
188
+ that.addEventListener("MSGestureTap", function (e){
189
+ e.preventDefault();
190
+ var $slide = $(this),
191
+ target = $slide.index();
192
+ if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {
193
+ slider.direction = (slider.currentItem < target) ? "next" : "prev";
194
+ slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
195
+ }
196
+ });
197
+ });
198
+ }
199
+ }
200
+ },
201
+ controlNav: {
202
+ setup: function() {
203
+ if (!slider.manualControls) {
204
+ methods.controlNav.setupPaging();
205
+ } else { // MANUALCONTROLS:
206
+ methods.controlNav.setupManual();
207
+ }
208
+ },
209
+ setupPaging: function() {
210
+ var type = (slider.vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging',
211
+ j = 1,
212
+ item,
213
+ slide;
214
+
215
+ slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>');
216
+
217
+ if (slider.pagingCount > 1) {
218
+ for (var i = 0; i < slider.pagingCount; i++) {
219
+ slide = slider.slides.eq(i);
220
+ if ( undefined === slide.attr( 'data-thumb-alt' ) ) { slide.attr( 'data-thumb-alt', '' ); }
221
+ altText = ( '' !== slide.attr( 'data-thumb-alt' ) ) ? altText = ' alt="' + slide.attr( 'data-thumb-alt' ) + '"' : '';
222
+ item = (slider.vars.controlNav === "thumbnails") ? '<img src="' + slide.attr( 'data-thumb' ) + '"' + altText + '/>' : '<a href="#">' + j + '</a>';
223
+ if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {
224
+ var captn = slide.attr( 'data-thumbcaption' );
225
+ if ( '' !== captn && undefined !== captn ) { item += '<span class="' + namespace + 'caption">' + captn + '</span>'; }
226
+ }
227
+ slider.controlNavScaffold.append('<li>' + item + '</li>');
228
+ j++;
229
+ }
230
+ }
231
+
232
+ // CONTROLSCONTAINER:
233
+ (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);
234
+ methods.controlNav.set();
235
+
236
+ methods.controlNav.active();
237
+
238
+ slider.controlNavScaffold.delegate('a, img', eventType, function(event) {
239
+ event.preventDefault();
240
+
241
+ if (watchedEvent === "" || watchedEvent === event.type) {
242
+ var $this = $(this),
243
+ target = slider.controlNav.index($this);
244
+
245
+ if (!$this.hasClass(namespace + 'active')) {
246
+ slider.direction = (target > slider.currentSlide) ? "next" : "prev";
247
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
248
+ }
249
+ }
250
+
251
+ // setup flags to prevent event duplication
252
+ if (watchedEvent === "") {
253
+ watchedEvent = event.type;
254
+ }
255
+ methods.setToClearWatchedEvent();
256
+
257
+ });
258
+ },
259
+ setupManual: function() {
260
+ slider.controlNav = slider.manualControls;
261
+ methods.controlNav.active();
262
+
263
+ slider.controlNav.bind(eventType, function(event) {
264
+ event.preventDefault();
265
+
266
+ if (watchedEvent === "" || watchedEvent === event.type) {
267
+ var $this = $(this),
268
+ target = slider.controlNav.index($this);
269
+
270
+ if (!$this.hasClass(namespace + 'active')) {
271
+ (target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
272
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
273
+ }
274
+ }
275
+
276
+ // setup flags to prevent event duplication
277
+ if (watchedEvent === "") {
278
+ watchedEvent = event.type;
279
+ }
280
+ methods.setToClearWatchedEvent();
281
+ });
282
+ },
283
+ set: function() {
284
+ var selector = (slider.vars.controlNav === "thumbnails") ? 'img' : 'a';
285
+ slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);
286
+ },
287
+ active: function() {
288
+ slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");
289
+ },
290
+ update: function(action, pos) {
291
+ if (slider.pagingCount > 1 && action === "add") {
292
+ slider.controlNavScaffold.append($('<li><a href="#">' + slider.count + '</a></li>'));
293
+ } else if (slider.pagingCount === 1) {
294
+ slider.controlNavScaffold.find('li').remove();
295
+ } else {
296
+ slider.controlNav.eq(pos).closest('li').remove();
297
+ }
298
+ methods.controlNav.set();
299
+ (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();
300
+ }
301
+ },
302
+ directionNav: {
303
+ setup: function() {
304
+ var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li class="' + namespace + 'nav-prev"><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li class="' + namespace + 'nav-next"><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>');
305
+
306
+ // CUSTOM DIRECTION NAV:
307
+ if (slider.customDirectionNav) {
308
+ slider.directionNav = slider.customDirectionNav;
309
+ // CONTROLSCONTAINER:
310
+ } else if (slider.controlsContainer) {
311
+ $(slider.controlsContainer).append(directionNavScaffold);
312
+ slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);
313
+ } else {
314
+ slider.append(directionNavScaffold);
315
+ slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);
316
+ }
317
+
318
+ methods.directionNav.update();
319
+
320
+ slider.directionNav.bind(eventType, function(event) {
321
+ event.preventDefault();
322
+ var target;
323
+
324
+ if (watchedEvent === "" || watchedEvent === event.type) {
325
+ target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');
326
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
327
+ }
328
+
329
+ // setup flags to prevent event duplication
330
+ if (watchedEvent === "") {
331
+ watchedEvent = event.type;
332
+ }
333
+ methods.setToClearWatchedEvent();
334
+ });
335
+ },
336
+ update: function() {
337
+ var disabledClass = namespace + 'disabled';
338
+ if (slider.pagingCount === 1) {
339
+ slider.directionNav.addClass(disabledClass).attr('tabindex', '-1');
340
+ } else if (!slider.vars.animationLoop) {
341
+ if (slider.animatingTo === 0) {
342
+ slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass).attr('tabindex', '-1');
343
+ } else if (slider.animatingTo === slider.last) {
344
+ slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass).attr('tabindex', '-1');
345
+ } else {
346
+ slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
347
+ }
348
+ } else {
349
+ slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
350
+ }
351
+ }
352
+ },
353
+ pausePlay: {
354
+ setup: function() {
355
+ var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a href="#"></a></div>');
356
+
357
+ // CONTROLSCONTAINER:
358
+ if (slider.controlsContainer) {
359
+ slider.controlsContainer.append(pausePlayScaffold);
360
+ slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer);
361
+ } else {
362
+ slider.append(pausePlayScaffold);
363
+ slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);
364
+ }
365
+
366
+ methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play');
367
+
368
+ slider.pausePlay.bind(eventType, function(event) {
369
+ event.preventDefault();
370
+
371
+ if (watchedEvent === "" || watchedEvent === event.type) {
372
+ if ($(this).hasClass(namespace + 'pause')) {
373
+ slider.manualPause = true;
374
+ slider.manualPlay = false;
375
+ slider.pause();
376
+ } else {
377
+ slider.manualPause = false;
378
+ slider.manualPlay = true;
379
+ slider.play();
380
+ }
381
+ }
382
+
383
+ // setup flags to prevent event duplication
384
+ if (watchedEvent === "") {
385
+ watchedEvent = event.type;
386
+ }
387
+ methods.setToClearWatchedEvent();
388
+ });
389
+ },
390
+ update: function(state) {
391
+ (state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText);
392
+ }
393
+ },
394
+ touch: function() {
395
+ var startX,
396
+ startY,
397
+ offset,
398
+ cwidth,
399
+ dx,
400
+ startT,
401
+ onTouchStart,
402
+ onTouchMove,
403
+ onTouchEnd,
404
+ scrolling = false,
405
+ localX = 0,
406
+ localY = 0,
407
+ accDx = 0;
408
+
409
+ if(!msGesture){
410
+ onTouchStart = function(e) {
411
+ if (slider.animating) {
412
+ e.preventDefault();
413
+ } else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {
414
+ slider.pause();
415
+ // CAROUSEL:
416
+ cwidth = (vertical) ? slider.h : slider. w;
417
+ startT = Number(new Date());
418
+ // CAROUSEL:
419
+
420
+ // Local vars for X and Y points.
421
+ localX = e.touches[0].pageX;
422
+ localY = e.touches[0].pageY;
423
+
424
+ offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
425
+ (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
426
+ (carousel && slider.currentSlide === slider.last) ? slider.limit :
427
+ (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
428
+ (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
429
+ startX = (vertical) ? localY : localX;
430
+ startY = (vertical) ? localX : localY;
431
+
432
+ el.addEventListener('touchmove', onTouchMove, false);
433
+ el.addEventListener('touchend', onTouchEnd, false);
434
+ }
435
+ };
436
+
437
+ onTouchMove = function(e) {
438
+ // Local vars for X and Y points.
439
+
440
+ localX = e.touches[0].pageX;
441
+ localY = e.touches[0].pageY;
442
+
443
+ dx = (vertical) ? startX - localY : startX - localX;
444
+ scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY));
445
+
446
+ var fxms = 500;
447
+
448
+ if ( ! scrolling || Number( new Date() ) - startT > fxms ) {
449
+ e.preventDefault();
450
+ if (!fade && slider.transitions) {
451
+ if (!slider.vars.animationLoop) {
452
+ dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);
453
+ }
454
+ slider.setProps(offset + dx, "setTouch");
455
+ }
456
+ }
457
+ };
458
+
459
+ onTouchEnd = function(e) {
460
+ // finish the touch by undoing the touch session
461
+ el.removeEventListener('touchmove', onTouchMove, false);
462
+
463
+ if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
464
+ var updateDx = (reverse) ? -dx : dx,
465
+ target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
466
+
467
+ if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
468
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
469
+ } else {
470
+ if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); }
471
+ }
472
+ }
473
+ el.removeEventListener('touchend', onTouchEnd, false);
474
+
475
+ startX = null;
476
+ startY = null;
477
+ dx = null;
478
+ offset = null;
479
+ };
480
+
481
+ el.addEventListener('touchstart', onTouchStart, false);
482
+ }else{
483
+ el.style.msTouchAction = "none";
484
+ el._gesture = new MSGesture();
485
+ el._gesture.target = el;
486
+ el.addEventListener("MSPointerDown", onMSPointerDown, false);
487
+ el._slider = slider;
488
+ el.addEventListener("MSGestureChange", onMSGestureChange, false);
489
+ el.addEventListener("MSGestureEnd", onMSGestureEnd, false);
490
+
491
+ function onMSPointerDown(e){
492
+ e.stopPropagation();
493
+ if (slider.animating) {
494
+ e.preventDefault();
495
+ }else{
496
+ slider.pause();
497
+ el._gesture.addPointer(e.pointerId);
498
+ accDx = 0;
499
+ cwidth = (vertical) ? slider.h : slider. w;
500
+ startT = Number(new Date());
501
+ // CAROUSEL:
502
+
503
+ offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
504
+ (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
505
+ (carousel && slider.currentSlide === slider.last) ? slider.limit :
506
+ (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
507
+ (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
508
+ }
509
+ }
510
+
511
+ function onMSGestureChange(e) {
512
+ e.stopPropagation();
513
+ var slider = e.target._slider;
514
+ if(!slider){
515
+ return;
516
+ }
517
+ var transX = -e.translationX,
518
+ transY = -e.translationY;
519
+
520
+ //Accumulate translations.
521
+ accDx = accDx + ((vertical) ? transY : transX);
522
+ dx = accDx;
523
+ scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY));
524
+
525
+ if(e.detail === e.MSGESTURE_FLAG_INERTIA){
526
+ setImmediate(function (){
527
+ el._gesture.stop();
528
+ });
529
+
530
+ return;
531
+ }
532
+
533
+ if (!scrolling || Number(new Date()) - startT > 500) {
534
+ e.preventDefault();
535
+ if (!fade && slider.transitions) {
536
+ if (!slider.vars.animationLoop) {
537
+ dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1);
538
+ }
539
+ slider.setProps(offset + dx, "setTouch");
540
+ }
541
+ }
542
+ }
543
+
544
+ function onMSGestureEnd(e) {
545
+ e.stopPropagation();
546
+ var slider = e.target._slider;
547
+ if(!slider){
548
+ return;
549
+ }
550
+ if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
551
+ var updateDx = (reverse) ? -dx : dx,
552
+ target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
553
+
554
+ if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
555
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
556
+ } else {
557
+ if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); }
558
+ }
559
+ }
560
+
561
+ startX = null;
562
+ startY = null;
563
+ dx = null;
564
+ offset = null;
565
+ accDx = 0;
566
+ }
567
+ }
568
+ },
569
+ resize: function() {
570
+ if (!slider.animating && slider.is(':visible')) {
571
+ if (!carousel) { slider.doMath(); }
572
+
573
+ if (fade) {
574
+ // SMOOTH HEIGHT:
575
+ methods.smoothHeight();
576
+ } else if (carousel) { //CAROUSEL:
577
+ slider.slides.width(slider.computedW);
578
+ slider.update(slider.pagingCount);
579
+ slider.setProps();
580
+ }
581
+ else if (vertical) { //VERTICAL:
582
+ slider.viewport.height(slider.h);
583
+ slider.setProps(slider.h, "setTotal");
584
+ } else {
585
+ // SMOOTH HEIGHT:
586
+ if (slider.vars.smoothHeight) { methods.smoothHeight(); }
587
+ slider.newSlides.width(slider.computedW);
588
+ slider.setProps(slider.computedW, "setTotal");
589
+ }
590
+ }
591
+ },
592
+ smoothHeight: function(dur) {
593
+ if (!vertical || fade) {
594
+ var $obj = (fade) ? slider : slider.viewport;
595
+ (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height());
596
+ }
597
+ },
598
+ sync: function(action) {
599
+ var $obj = $(slider.vars.sync).data("flexslider"),
600
+ target = slider.animatingTo;
601
+
602
+ switch (action) {
603
+ case "animate": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break;
604
+ case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;
605
+ case "pause": $obj.pause(); break;
606
+ }
607
+ },
608
+ uniqueID: function($clone) {
609
+ // Append _clone to current level and children elements with id attributes
610
+ $clone.filter( '[id]' ).add($clone.find( '[id]' )).each(function() {
611
+ var $this = $(this);
612
+ $this.attr( 'id', $this.attr( 'id' ) + '_clone' );
613
+ });
614
+ return $clone;
615
+ },
616
+ pauseInvisible: {
617
+ visProp: null,
618
+ init: function() {
619
+ var visProp = methods.pauseInvisible.getHiddenProp();
620
+ if (visProp) {
621
+ var evtname = visProp.replace(/[H|h]idden/,'') + 'visibilitychange';
622
+ document.addEventListener(evtname, function() {
623
+ if (methods.pauseInvisible.isHidden()) {
624
+ if(slider.startTimeout) {
625
+ clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible
626
+ } else {
627
+ slider.pause(); //Or just pause
628
+ }
629
+ }
630
+ else {
631
+ if(slider.started) {
632
+ slider.play(); //Initiated before, just play
633
+ } else {
634
+ if (slider.vars.initDelay > 0) {
635
+ setTimeout(slider.play, slider.vars.initDelay);
636
+ } else {
637
+ slider.play(); //Didn't init before: simply init or wait for it
638
+ }
639
+ }
640
+ }
641
+ });
642
+ }
643
+ },
644
+ isHidden: function() {
645
+ var prop = methods.pauseInvisible.getHiddenProp();
646
+ if (!prop) {
647
+ return false;
648
+ }
649
+ return document[prop];
650
+ },
651
+ getHiddenProp: function() {
652
+ var prefixes = ['webkit','moz','ms','o'];
653
+ // if 'hidden' is natively supported just return it
654
+ if ('hidden' in document) {
655
+ return 'hidden';
656
+ }
657
+ // otherwise loop over all the known prefixes until we find one
658
+ for ( var i = 0; i < prefixes.length; i++ ) {
659
+ if ((prefixes[i] + 'Hidden') in document) {
660
+ return prefixes[i] + 'Hidden';
661
+ }
662
+ }
663
+ // otherwise it's not supported
664
+ return null;
665
+ }
666
+ },
667
+ setToClearWatchedEvent: function() {
668
+ clearTimeout(watchedEventClearTimer);
669
+ watchedEventClearTimer = setTimeout(function() {
670
+ watchedEvent = "";
671
+ }, 3000);
672
+ }
673
+ };
674
+
675
+ // public methods
676
+ slider.flexAnimate = function(target, pause, override, withSync, fromNav) {
677
+ if (!slider.vars.animationLoop && target !== slider.currentSlide) {
678
+ slider.direction = (target > slider.currentSlide) ? "next" : "prev";
679
+ }
680
+
681
+ if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev";
682
+
683
+ if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) {
684
+ if (asNav && withSync) {
685
+ var master = $(slider.vars.asNavFor).data('flexslider');
686
+ slider.atEnd = target === 0 || target === slider.count - 1;
687
+ master.flexAnimate(target, true, false, true, fromNav);
688
+ slider.direction = (slider.currentItem < target) ? "next" : "prev";
689
+ master.direction = slider.direction;
690
+
691
+ if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {
692
+ slider.currentItem = target;
693
+ slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
694
+ target = Math.floor(target/slider.visible);
695
+ } else {
696
+ slider.currentItem = target;
697
+ slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
698
+ return false;
699
+ }
700
+ }
701
+
702
+ slider.animating = true;
703
+ slider.animatingTo = target;
704
+
705
+ // SLIDESHOW:
706
+ if (pause) { slider.pause(); }
707
+
708
+ // API: before() animation Callback
709
+ slider.vars.before(slider);
710
+
711
+ // SYNC:
712
+ if (slider.syncExists && !fromNav) { methods.sync("animate"); }
713
+
714
+ // CONTROLNAV
715
+ if (slider.vars.controlNav) { methods.controlNav.active(); }
716
+
717
+ // !CAROUSEL:
718
+ // CANDIDATE: slide active class (for add/remove slide)
719
+ if (!carousel) { slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide'); }
720
+
721
+ // INFINITE LOOP:
722
+ // CANDIDATE: atEnd
723
+ slider.atEnd = target === 0 || target === slider.last;
724
+
725
+ // DIRECTIONNAV:
726
+ if (slider.vars.directionNav) { methods.directionNav.update(); }
727
+
728
+ if (target === slider.last) {
729
+ // API: end() of cycle Callback
730
+ slider.vars.end(slider);
731
+ // SLIDESHOW && !INFINITE LOOP:
732
+ if (!slider.vars.animationLoop) { slider.pause(); }
733
+ }
734
+
735
+ // SLIDE:
736
+ if (!fade) {
737
+ var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,
738
+ margin, slideString, calcNext;
739
+
740
+ // INFINITE LOOP / REVERSE:
741
+ if (carousel) {
742
+ margin = slider.vars.itemMargin;
743
+ calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;
744
+ slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;
745
+ } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") {
746
+ slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;
747
+ } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") {
748
+ slideString = (reverse) ? 0 : (slider.count + 1) * dimension;
749
+ } else {
750
+ slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;
751
+ }
752
+ slider.setProps(slideString, "", slider.vars.animationSpeed);
753
+ if (slider.transitions) {
754
+ if (!slider.vars.animationLoop || !slider.atEnd) {
755
+ slider.animating = false;
756
+ slider.currentSlide = slider.animatingTo;
757
+ }
758
+
759
+ // Unbind previous transitionEnd events and re-bind new transitionEnd event
760
+ slider.container.unbind("webkitTransitionEnd transitionend");
761
+ slider.container.bind("webkitTransitionEnd transitionend", function() {
762
+ clearTimeout(slider.ensureAnimationEnd);
763
+ slider.wrapup(dimension);
764
+ });
765
+
766
+ // Insurance for the ever-so-fickle transitionEnd event
767
+ clearTimeout(slider.ensureAnimationEnd);
768
+ slider.ensureAnimationEnd = setTimeout(function() {
769
+ slider.wrapup(dimension);
770
+ }, slider.vars.animationSpeed + 100);
771
+
772
+ } else {
773
+ slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){
774
+ slider.wrapup(dimension);
775
+ });
776
+ }
777
+ } else { // FADE:
778
+ if (!touch) {
779
+ //slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);
780
+ //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
781
+
782
+ slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing);
783
+ slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
784
+
785
+ } else {
786
+ slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });
787
+ slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });
788
+ slider.wrapup(dimension);
789
+ }
790
+ }
791
+ // SMOOTH HEIGHT:
792
+ if (slider.vars.smoothHeight) { methods.smoothHeight(slider.vars.animationSpeed); }
793
+ }
794
+ };
795
+ slider.wrapup = function(dimension) {
796
+ // SLIDE:
797
+ if (!fade && !carousel) {
798
+ if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) {
799
+ slider.setProps(dimension, "jumpEnd");
800
+ } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) {
801
+ slider.setProps(dimension, "jumpStart");
802
+ }
803
+ }
804
+ slider.animating = false;
805
+ slider.currentSlide = slider.animatingTo;
806
+ // API: after() animation Callback
807
+ slider.vars.after(slider);
808
+ };
809
+
810
+ // SLIDESHOW:
811
+ slider.animateSlides = function() {
812
+ if (!slider.animating && focused ) { slider.flexAnimate(slider.getTarget("next")); }
813
+ };
814
+ // SLIDESHOW:
815
+ slider.pause = function() {
816
+ clearInterval(slider.animatedSlides);
817
+ slider.animatedSlides = null;
818
+ slider.playing = false;
819
+ // PAUSEPLAY:
820
+ if (slider.vars.pausePlay) { methods.pausePlay.update("play"); }
821
+ // SYNC:
822
+ if (slider.syncExists) { methods.sync("pause"); }
823
+ };
824
+ // SLIDESHOW:
825
+ slider.play = function() {
826
+ if (slider.playing) { clearInterval(slider.animatedSlides); }
827
+ slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
828
+ slider.started = slider.playing = true;
829
+ // PAUSEPLAY:
830
+ if (slider.vars.pausePlay) { methods.pausePlay.update("pause"); }
831
+ // SYNC:
832
+ if (slider.syncExists) { methods.sync("play"); }
833
+ };
834
+ // STOP:
835
+ slider.stop = function () {
836
+ slider.pause();
837
+ slider.stopped = true;
838
+ };
839
+ slider.canAdvance = function(target, fromNav) {
840
+ // ASNAV:
841
+ var last = (asNav) ? slider.pagingCount - 1 : slider.last;
842
+ return (fromNav) ? true :
843
+ (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true :
844
+ (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false :
845
+ (target === slider.currentSlide && !asNav) ? false :
846
+ (slider.vars.animationLoop) ? true :
847
+ (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false :
848
+ (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false :
849
+ true;
850
+ };
851
+ slider.getTarget = function(dir) {
852
+ slider.direction = dir;
853
+ if (dir === "next") {
854
+ return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;
855
+ } else {
856
+ return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;
857
+ }
858
+ };
859
+
860
+ // SLIDE:
861
+ slider.setProps = function(pos, special, dur) {
862
+ var target = (function() {
863
+ var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo,
864
+ posCalc = (function() {
865
+ if (carousel) {
866
+ return (special === "setTouch") ? pos :
867
+ (reverse && slider.animatingTo === slider.last) ? 0 :
868
+ (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
869
+ (slider.animatingTo === slider.last) ? slider.limit : posCheck;
870
+ } else {
871
+ switch (special) {
872
+ case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;
873
+ case "setTouch": return (reverse) ? pos : pos;
874
+ case "jumpEnd": return (reverse) ? pos : slider.count * pos;
875
+ case "jumpStart": return (reverse) ? slider.count * pos : pos;
876
+ default: return pos;
877
+ }
878
+ }
879
+ }());
880
+
881
+ return (posCalc * -1) + "px";
882
+ }());
883
+
884
+ if (slider.transitions) {
885
+ target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)";
886
+ dur = (dur !== undefined) ? (dur/1000) + "s" : "0s";
887
+ slider.container.css("-" + slider.pfx + "-transition-duration", dur);
888
+ slider.container.css("transition-duration", dur);
889
+ }
890
+
891
+ slider.args[slider.prop] = target;
892
+ if (slider.transitions || dur === undefined) { slider.container.css(slider.args); }
893
+
894
+ slider.container.css('transform',target);
895
+ };
896
+
897
+ slider.setup = function(type) {
898
+ // SLIDE:
899
+ if (!fade) {
900
+ var sliderOffset, arr;
901
+
902
+ if (type === "init") {
903
+ slider.viewport = $('<div class="' + namespace + 'viewport"></div>').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container);
904
+ // INFINITE LOOP:
905
+ slider.cloneCount = 0;
906
+ slider.cloneOffset = 0;
907
+ // REVERSE:
908
+ if (reverse) {
909
+ arr = $.makeArray(slider.slides).reverse();
910
+ slider.slides = $(arr);
911
+ slider.container.empty().append(slider.slides);
912
+ }
913
+ }
914
+ // INFINITE LOOP && !CAROUSEL:
915
+ if (slider.vars.animationLoop && !carousel) {
916
+ slider.cloneCount = 2;
917
+ slider.cloneOffset = 1;
918
+ // clear out old clones
919
+ if (type !== "init") { slider.container.find('.clone').remove(); }
920
+ slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass('clone')).attr('aria-hidden', 'true'))
921
+ .prepend(methods.uniqueID(slider.slides.last().clone().addClass('clone')).attr('aria-hidden', 'true'));
922
+ }
923
+ slider.newSlides = $(slider.vars.selector, slider);
924
+
925
+ sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;
926
+ // VERTICAL:
927
+ if (vertical && !carousel) {
928
+ slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
929
+ setTimeout(function(){
930
+ slider.newSlides.css({"display": "block"});
931
+ slider.doMath();
932
+ slider.viewport.height(slider.h);
933
+ slider.setProps(sliderOffset * slider.h, "init");
934
+ }, (type === "init") ? 100 : 0);
935
+ } else {
936
+ slider.container.width((slider.count + slider.cloneCount) * 200 + "%");
937
+ slider.setProps(sliderOffset * slider.computedW, "init");
938
+ setTimeout(function(){
939
+ slider.doMath();
940
+ slider.newSlides.css({"width": slider.computedW, "marginRight" : slider.computedM, "float": "left", "display": "block"});
941
+ // SMOOTH HEIGHT:
942
+ if (slider.vars.smoothHeight) { methods.smoothHeight(); }
943
+ }, (type === "init") ? 100 : 0);
944
+ }
945
+ } else { // FADE:
946
+ slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"});
947
+ if (type === "init") {
948
+ if (!touch) {
949
+ //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing);
950
+ if (slider.vars.fadeFirstSlide == false) {
951
+ slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).css({"opacity": 1});
952
+ } else {
953
+ slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing);
954
+ }
955
+ } else {
956
+ slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});
957
+ }
958
+ }
959
+ // SMOOTH HEIGHT:
960
+ if (slider.vars.smoothHeight) { methods.smoothHeight(); }
961
+ }
962
+ // !CAROUSEL:
963
+ // CANDIDATE: active slide
964
+ if (!carousel) { slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide"); }
965
+
966
+ //FlexSlider: init() Callback
967
+ slider.vars.init(slider);
968
+ };
969
+
970
+ slider.doMath = function() {
971
+ var slide = slider.slides.first(),
972
+ slideMargin = slider.vars.itemMargin,
973
+ minItems = slider.vars.minItems,
974
+ maxItems = slider.vars.maxItems;
975
+
976
+ slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width();
977
+ slider.h = slide.height();
978
+ slider.boxPadding = slide.outerWidth() - slide.width();
979
+
980
+ // CAROUSEL:
981
+ if (carousel) {
982
+ slider.itemT = slider.vars.itemWidth + slideMargin;
983
+ slider.itemM = slideMargin;
984
+ slider.minW = (minItems) ? minItems * slider.itemT : slider.w;
985
+ slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;
986
+ slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :
987
+ (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems :
988
+ (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth;
989
+
990
+ slider.visible = Math.floor(slider.w/(slider.itemW));
991
+ slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible;
992
+ slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);
993
+ slider.last = slider.pagingCount - 1;
994
+ slider.limit = (slider.pagingCount === 1) ? 0 :
995
+ (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;
996
+ } else {
997
+ slider.itemW = slider.w;
998
+ slider.itemM = slideMargin;
999
+ slider.pagingCount = slider.count;
1000
+ slider.last = slider.count - 1;
1001
+ }
1002
+ slider.computedW = slider.itemW - slider.boxPadding;
1003
+ slider.computedM = slider.itemM;
1004
+ };
1005
+
1006
+ slider.update = function(pos, action) {
1007
+ slider.doMath();
1008
+
1009
+ // update currentSlide and slider.animatingTo if necessary
1010
+ if (!carousel) {
1011
+ if (pos < slider.currentSlide) {
1012
+ slider.currentSlide += 1;
1013
+ } else if (pos <= slider.currentSlide && pos !== 0) {
1014
+ slider.currentSlide -= 1;
1015
+ }
1016
+ slider.animatingTo = slider.currentSlide;
1017
+ }
1018
+
1019
+ // update controlNav
1020
+ if (slider.vars.controlNav && !slider.manualControls) {
1021
+ if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) {
1022
+ methods.controlNav.update("add");
1023
+ } else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) {
1024
+ if (carousel && slider.currentSlide > slider.last) {
1025
+ slider.currentSlide -= 1;
1026
+ slider.animatingTo -= 1;
1027
+ }
1028
+ methods.controlNav.update("remove", slider.last);
1029
+ }
1030
+ }
1031
+ // update directionNav
1032
+ if (slider.vars.directionNav) { methods.directionNav.update(); }
1033
+
1034
+ };
1035
+
1036
+ slider.addSlide = function(obj, pos) {
1037
+ var $obj = $(obj);
1038
+
1039
+ slider.count += 1;
1040
+ slider.last = slider.count - 1;
1041
+
1042
+ // append new slide
1043
+ if (vertical && reverse) {
1044
+ (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);
1045
+ } else {
1046
+ (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);
1047
+ }
1048
+
1049
+ // update currentSlide, animatingTo, controlNav, and directionNav
1050
+ slider.update(pos, "add");
1051
+
1052
+ // update slider.slides
1053
+ slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
1054
+ // re-setup the slider to accomdate new slide
1055
+ slider.setup();
1056
+
1057
+ //FlexSlider: added() Callback
1058
+ slider.vars.added(slider);
1059
+ };
1060
+ slider.removeSlide = function(obj) {
1061
+ var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;
1062
+
1063
+ // update count
1064
+ slider.count -= 1;
1065
+ slider.last = slider.count - 1;
1066
+
1067
+ // remove slide
1068
+ if (isNaN(obj)) {
1069
+ $(obj, slider.slides).remove();
1070
+ } else {
1071
+ (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();
1072
+ }
1073
+
1074
+ // update currentSlide, animatingTo, controlNav, and directionNav
1075
+ slider.doMath();
1076
+ slider.update(pos, "remove");
1077
+
1078
+ // update slider.slides
1079
+ slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
1080
+ // re-setup the slider to accomdate new slide
1081
+ slider.setup();
1082
+
1083
+ // FlexSlider: removed() Callback
1084
+ slider.vars.removed(slider);
1085
+ };
1086
+
1087
+ //FlexSlider: Initialize
1088
+ methods.init();
1089
+ };
1090
+
1091
+ // Ensure the slider isn't focussed if the window loses focus.
1092
+ $( window ).blur( function ( e ) {
1093
+ focused = false;
1094
+ }).focus( function ( e ) {
1095
+ focused = true;
1096
+ });
1097
+
1098
+ //FlexSlider: Default Settings
1099
+ $.flexslider.defaults = {
1100
+ namespace: "flex-", //{NEW} String: Prefix string attached to the class of every element generated by the plugin
1101
+ selector: ".slides > li", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril
1102
+ animation: "fade", //String: Select your animation type, "fade" or "slide"
1103
+ easing: "swing", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
1104
+ direction: "horizontal", //String: Select the sliding direction, "horizontal" or "vertical"
1105
+ reverse: false, //{NEW} Boolean: Reverse the animation direction
1106
+ animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
1107
+ smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
1108
+ startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
1109
+ slideshow: true, //Boolean: Animate slider automatically
1110
+ slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
1111
+ animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds
1112
+ initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds
1113
+ randomize: false, //Boolean: Randomize slide order
1114
+ fadeFirstSlide: true, //Boolean: Fade in the first slide when animation type is "fade"
1115
+ thumbCaptions: false, //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav.
1116
+
1117
+ // Usability features
1118
+ pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
1119
+ pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
1120
+ pauseInvisible: true, //{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.
1121
+ useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available
1122
+ touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
1123
+ video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
1124
+
1125
+ // Primary Controls
1126
+ controlNav: true, //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage
1127
+ directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)
1128
+ prevText: "Previous", //String: Set the text for the "previous" directionNav item
1129
+ nextText: "Next", //String: Set the text for the "next" directionNav item
1130
+
1131
+ // Secondary Navigation
1132
+ keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys
1133
+ multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
1134
+ mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
1135
+ pausePlay: false, //Boolean: Create pause/play dynamic element
1136
+ pauseText: "Pause", //String: Set the text for the "pause" pausePlay item
1137
+ playText: "Play", //String: Set the text for the "play" pausePlay item
1138
+
1139
+ // Special properties
1140
+ controlsContainer: "", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
1141
+ manualControls: "", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
1142
+ customDirectionNav: "", //{NEW} jQuery Object/Selector: Custom prev / next button. Must be two jQuery elements. In order to make the events work they have to have the classes "prev" and "next" (plus namespace)
1143
+ sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
1144
+ asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
1145
+
1146
+ // Carousel Options
1147
+ itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.
1148
+ itemMargin: 0, //{NEW} Integer: Margin between carousel items.
1149
+ minItems: 1, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.
1150
+ maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.
1151
+ move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.
1152
+ allowOneSlide: true, //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide
1153
+
1154
+ // Callback API
1155
+ start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide
1156
+ before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation
1157
+ after: function(){}, //Callback: function(slider) - Fires after each slider animation completes
1158
+ end: function(){}, //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)
1159
+ added: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is added
1160
+ removed: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is removed
1161
+ init: function() {} //{NEW} Callback: function(slider) - Fires after the slider is initially setup
1162
+ };
1163
+
1164
+ //FlexSlider: Plugin Function
1165
+ $.fn.flexslider = function(options) {
1166
+ if (options === undefined) { options = {}; }
1167
+
1168
+ if (typeof options === "object") {
1169
+ return this.each(function() {
1170
+ var $this = $(this),
1171
+ selector = (options.selector) ? options.selector : ".slides > li",
1172
+ $slides = $this.find(selector);
1173
+
1174
+ if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) {
1175
+ $slides.fadeIn(400);
1176
+ if (options.start) { options.start($this); }
1177
+ } else if ($this.data('flexslider') === undefined) {
1178
+ new $.flexslider(this, options);
1179
+ }
1180
+ });
1181
+ } else {
1182
+ // Helper strings to quickly perform functions on the slider
1183
+ var $slider = $(this).data('flexslider');
1184
+ switch (options) {
1185
+ case "play": $slider.play(); break;
1186
+ case "pause": $slider.pause(); break;
1187
+ case "stop": $slider.stop(); break;
1188
+ case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;
1189
+ case "prev":
1190
+ case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;
1191
+ default: if (typeof options === "number") { $slider.flexAnimate(options, true); }
1192
+ }
1193
+ }
1194
+ };
1195
+ })(jQuery);
assets/js/jquery.flexslider.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function($){var focused=true;$.flexslider=function(el,options){var slider=$(el);slider.vars=$.extend({},$.flexslider.defaults,options);var namespace=slider.vars.namespace,msGesture=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,touch=("ontouchstart"in window||msGesture||window.DocumentTouch&&document instanceof DocumentTouch)&&slider.vars.touch,eventType="click touchend MSPointerUp keyup",watchedEvent="",watchedEventClearTimer,vertical=slider.vars.direction==="vertical",reverse=slider.vars.reverse,carousel=slider.vars.itemWidth>0,fade=slider.vars.animation==="fade",asNav=slider.vars.asNavFor!=="",methods={};$.data(el,"flexslider",slider);methods={init:function(){slider.animating=false;slider.currentSlide=parseInt(slider.vars.startAt?slider.vars.startAt:0,10);if(isNaN(slider.currentSlide)){slider.currentSlide=0}slider.animatingTo=slider.currentSlide;slider.atEnd=slider.currentSlide===0||slider.currentSlide===slider.last;slider.containerSelector=slider.vars.selector.substr(0,slider.vars.selector.search(" "));slider.slides=$(slider.vars.selector,slider);slider.container=$(slider.containerSelector,slider);slider.count=slider.slides.length;slider.syncExists=$(slider.vars.sync).length>0;if(slider.vars.animation==="slide"){slider.vars.animation="swing"}slider.prop=vertical?"top":"marginLeft";slider.args={};slider.manualPause=false;slider.stopped=false;slider.started=false;slider.startTimeout=null;slider.transitions=!slider.vars.video&&!fade&&slider.vars.useCSS&&function(){var obj=document.createElement("div"),props=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in props){if(obj.style[props[i]]!==undefined){slider.pfx=props[i].replace("Perspective","").toLowerCase();slider.prop="-"+slider.pfx+"-transform";return true}}return false}();slider.ensureAnimationEnd="";if(slider.vars.controlsContainer!=="")slider.controlsContainer=$(slider.vars.controlsContainer).length>0&&$(slider.vars.controlsContainer);if(slider.vars.manualControls!=="")slider.manualControls=$(slider.vars.manualControls).length>0&&$(slider.vars.manualControls);if(slider.vars.customDirectionNav!=="")slider.customDirectionNav=$(slider.vars.customDirectionNav).length===2&&$(slider.vars.customDirectionNav);if(slider.vars.randomize){slider.slides.sort(function(){return Math.round(Math.random())-.5});slider.container.empty().append(slider.slides)}slider.doMath();slider.setup("init");if(slider.vars.controlNav){methods.controlNav.setup()}if(slider.vars.directionNav){methods.directionNav.setup()}if(slider.vars.keyboard&&($(slider.containerSelector).length===1||slider.vars.multipleKeyboard)){$(document).bind("keyup",function(event){var keycode=event.keyCode;if(!slider.animating&&(keycode===39||keycode===37)){var target=keycode===39?slider.getTarget("next"):keycode===37?slider.getTarget("prev"):false;slider.flexAnimate(target,slider.vars.pauseOnAction)}})}if(slider.vars.mousewheel){slider.bind("mousewheel",function(event,delta,deltaX,deltaY){event.preventDefault();var target=delta<0?slider.getTarget("next"):slider.getTarget("prev");slider.flexAnimate(target,slider.vars.pauseOnAction)})}if(slider.vars.pausePlay){methods.pausePlay.setup()}if(slider.vars.slideshow&&slider.vars.pauseInvisible){methods.pauseInvisible.init()}if(slider.vars.slideshow){if(slider.vars.pauseOnHover){slider.hover(function(){if(!slider.manualPlay&&!slider.manualPause){slider.pause()}},function(){if(!slider.manualPause&&!slider.manualPlay&&!slider.stopped){slider.play()}})}if(!slider.vars.pauseInvisible||!methods.pauseInvisible.isHidden()){slider.vars.initDelay>0?slider.startTimeout=setTimeout(slider.play,slider.vars.initDelay):slider.play()}}if(asNav){methods.asNav.setup()}if(touch&&slider.vars.touch){methods.touch()}if(!fade||fade&&slider.vars.smoothHeight){$(window).bind("resize orientationchange focus",methods.resize)}slider.find("img").attr("draggable","false");setTimeout(function(){slider.vars.start(slider)},200)},asNav:{setup:function(){slider.asNav=true;slider.animatingTo=Math.floor(slider.currentSlide/slider.move);slider.currentItem=slider.currentSlide;slider.slides.removeClass(namespace+"active-slide").eq(slider.currentItem).addClass(namespace+"active-slide");if(!msGesture){slider.slides.on(eventType,function(e){e.preventDefault();var $slide=$(this),target=$slide.index();var posFromLeft=$slide.offset().left-$(slider).scrollLeft();if(posFromLeft<=0&&$slide.hasClass(namespace+"active-slide")){slider.flexAnimate(slider.getTarget("prev"),true)}else if(!$(slider.vars.asNavFor).data("flexslider").animating&&!$slide.hasClass(namespace+"active-slide")){slider.direction=slider.currentItem<target?"next":"prev";slider.flexAnimate(target,slider.vars.pauseOnAction,false,true,true)}})}else{el._slider=slider;slider.slides.each(function(){var that=this;that._gesture=new MSGesture;that._gesture.target=that;that.addEventListener("MSPointerDown",function(e){e.preventDefault();if(e.currentTarget._gesture){e.currentTarget._gesture.addPointer(e.pointerId)}},false);that.addEventListener("MSGestureTap",function(e){e.preventDefault();var $slide=$(this),target=$slide.index();if(!$(slider.vars.asNavFor).data("flexslider").animating&&!$slide.hasClass("active")){slider.direction=slider.currentItem<target?"next":"prev";slider.flexAnimate(target,slider.vars.pauseOnAction,false,true,true)}})})}}},controlNav:{setup:function(){if(!slider.manualControls){methods.controlNav.setupPaging()}else{methods.controlNav.setupManual()}},setupPaging:function(){var type=slider.vars.controlNav==="thumbnails"?"control-thumbs":"control-paging",j=1,item,slide;slider.controlNavScaffold=$('<ol class="'+namespace+"control-nav "+namespace+type+'"></ol>');if(slider.pagingCount>1){for(var i=0;i<slider.pagingCount;i++){slide=slider.slides.eq(i);if(undefined===slide.attr("data-thumb-alt")){slide.attr("data-thumb-alt","")}altText=""!==slide.attr("data-thumb-alt")?altText=' alt="'+slide.attr("data-thumb-alt")+'"':"";item=slider.vars.controlNav==="thumbnails"?'<img src="'+slide.attr("data-thumb")+'"'+altText+"/>":'<a href="#">'+j+"</a>";if("thumbnails"===slider.vars.controlNav&&true===slider.vars.thumbCaptions){var captn=slide.attr("data-thumbcaption");if(""!==captn&&undefined!==captn){item+='<span class="'+namespace+'caption">'+captn+"</span>"}}slider.controlNavScaffold.append("<li>"+item+"</li>");j++}}slider.controlsContainer?$(slider.controlsContainer).append(slider.controlNavScaffold):slider.append(slider.controlNavScaffold);methods.controlNav.set();methods.controlNav.active();slider.controlNavScaffold.delegate("a, img",eventType,function(event){event.preventDefault();if(watchedEvent===""||watchedEvent===event.type){var $this=$(this),target=slider.controlNav.index($this);if(!$this.hasClass(namespace+"active")){slider.direction=target>slider.currentSlide?"next":"prev";slider.flexAnimate(target,slider.vars.pauseOnAction)}}if(watchedEvent===""){watchedEvent=event.type}methods.setToClearWatchedEvent()})},setupManual:function(){slider.controlNav=slider.manualControls;methods.controlNav.active();slider.controlNav.bind(eventType,function(event){event.preventDefault();if(watchedEvent===""||watchedEvent===event.type){var $this=$(this),target=slider.controlNav.index($this);if(!$this.hasClass(namespace+"active")){target>slider.currentSlide?slider.direction="next":slider.direction="prev";slider.flexAnimate(target,slider.vars.pauseOnAction)}}if(watchedEvent===""){watchedEvent=event.type}methods.setToClearWatchedEvent()})},set:function(){var selector=slider.vars.controlNav==="thumbnails"?"img":"a";slider.controlNav=$("."+namespace+"control-nav li "+selector,slider.controlsContainer?slider.controlsContainer:slider)},active:function(){slider.controlNav.removeClass(namespace+"active").eq(slider.animatingTo).addClass(namespace+"active")},update:function(action,pos){if(slider.pagingCount>1&&action==="add"){slider.controlNavScaffold.append($('<li><a href="#">'+slider.count+"</a></li>"))}else if(slider.pagingCount===1){slider.controlNavScaffold.find("li").remove()}else{slider.controlNav.eq(pos).closest("li").remove()}methods.controlNav.set();slider.pagingCount>1&&slider.pagingCount!==slider.controlNav.length?slider.update(pos,action):methods.controlNav.active()}},directionNav:{setup:function(){var directionNavScaffold=$('<ul class="'+namespace+'direction-nav"><li class="'+namespace+'nav-prev"><a class="'+namespace+'prev" href="#">'+slider.vars.prevText+'</a></li><li class="'+namespace+'nav-next"><a class="'+namespace+'next" href="#">'+slider.vars.nextText+"</a></li></ul>");if(slider.customDirectionNav){slider.directionNav=slider.customDirectionNav}else if(slider.controlsContainer){$(slider.controlsContainer).append(directionNavScaffold);slider.directionNav=$("."+namespace+"direction-nav li a",slider.controlsContainer)}else{slider.append(directionNavScaffold);slider.directionNav=$("."+namespace+"direction-nav li a",slider)}methods.directionNav.update();slider.directionNav.bind(eventType,function(event){event.preventDefault();var target;if(watchedEvent===""||watchedEvent===event.type){target=$(this).hasClass(namespace+"next")?slider.getTarget("next"):slider.getTarget("prev");slider.flexAnimate(target,slider.vars.pauseOnAction)}if(watchedEvent===""){watchedEvent=event.type}methods.setToClearWatchedEvent()})},update:function(){var disabledClass=namespace+"disabled";if(slider.pagingCount===1){slider.directionNav.addClass(disabledClass).attr("tabindex","-1")}else if(!slider.vars.animationLoop){if(slider.animatingTo===0){slider.directionNav.removeClass(disabledClass).filter("."+namespace+"prev").addClass(disabledClass).attr("tabindex","-1")}else if(slider.animatingTo===slider.last){slider.directionNav.removeClass(disabledClass).filter("."+namespace+"next").addClass(disabledClass).attr("tabindex","-1")}else{slider.directionNav.removeClass(disabledClass).removeAttr("tabindex")}}else{slider.directionNav.removeClass(disabledClass).removeAttr("tabindex")}}},pausePlay:{setup:function(){var pausePlayScaffold=$('<div class="'+namespace+'pauseplay"><a href="#"></a></div>');if(slider.controlsContainer){slider.controlsContainer.append(pausePlayScaffold);slider.pausePlay=$("."+namespace+"pauseplay a",slider.controlsContainer)}else{slider.append(pausePlayScaffold);slider.pausePlay=$("."+namespace+"pauseplay a",slider)}methods.pausePlay.update(slider.vars.slideshow?namespace+"pause":namespace+"play");slider.pausePlay.bind(eventType,function(event){event.preventDefault();if(watchedEvent===""||watchedEvent===event.type){if($(this).hasClass(namespace+"pause")){slider.manualPause=true;slider.manualPlay=false;slider.pause()}else{slider.manualPause=false;slider.manualPlay=true;slider.play()}}if(watchedEvent===""){watchedEvent=event.type}methods.setToClearWatchedEvent()})},update:function(state){state==="play"?slider.pausePlay.removeClass(namespace+"pause").addClass(namespace+"play").html(slider.vars.playText):slider.pausePlay.removeClass(namespace+"play").addClass(namespace+"pause").html(slider.vars.pauseText)}},touch:function(){var startX,startY,offset,cwidth,dx,startT,onTouchStart,onTouchMove,onTouchEnd,scrolling=false,localX=0,localY=0,accDx=0;if(!msGesture){onTouchStart=function(e){if(slider.animating){e.preventDefault()}else if(window.navigator.msPointerEnabled||e.touches.length===1){slider.pause();cwidth=vertical?slider.h:slider.w;startT=Number(new Date);localX=e.touches[0].pageX;localY=e.touches[0].pageY;offset=carousel&&reverse&&slider.animatingTo===slider.last?0:carousel&&reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:carousel&&slider.currentSlide===slider.last?slider.limit:carousel?(slider.itemW+slider.vars.itemMargin)*slider.move*slider.currentSlide:reverse?(slider.last-slider.currentSlide+slider.cloneOffset)*cwidth:(slider.currentSlide+slider.cloneOffset)*cwidth;startX=vertical?localY:localX;startY=vertical?localX:localY;el.addEventListener("touchmove",onTouchMove,false);el.addEventListener("touchend",onTouchEnd,false)}};onTouchMove=function(e){localX=e.touches[0].pageX;localY=e.touches[0].pageY;dx=vertical?startX-localY:startX-localX;scrolling=vertical?Math.abs(dx)<Math.abs(localX-startY):Math.abs(dx)<Math.abs(localY-startY);var fxms=500;if(!scrolling||Number(new Date)-startT>fxms){e.preventDefault();if(!fade&&slider.transitions){if(!slider.vars.animationLoop){dx=dx/(slider.currentSlide===0&&dx<0||slider.currentSlide===slider.last&&dx>0?Math.abs(dx)/cwidth+2:1)}slider.setProps(offset+dx,"setTouch")}}};onTouchEnd=function(e){el.removeEventListener("touchmove",onTouchMove,false);if(slider.animatingTo===slider.currentSlide&&!scrolling&&!(dx===null)){var updateDx=reverse?-dx:dx,target=updateDx>0?slider.getTarget("next"):slider.getTarget("prev");if(slider.canAdvance(target)&&(Number(new Date)-startT<550&&Math.abs(updateDx)>50||Math.abs(updateDx)>cwidth/2)){slider.flexAnimate(target,slider.vars.pauseOnAction)}else{if(!fade){slider.flexAnimate(slider.currentSlide,slider.vars.pauseOnAction,true)}}}el.removeEventListener("touchend",onTouchEnd,false);startX=null;startY=null;dx=null;offset=null};el.addEventListener("touchstart",onTouchStart,false)}else{el.style.msTouchAction="none";el._gesture=new MSGesture;el._gesture.target=el;el.addEventListener("MSPointerDown",onMSPointerDown,false);el._slider=slider;el.addEventListener("MSGestureChange",onMSGestureChange,false);el.addEventListener("MSGestureEnd",onMSGestureEnd,false);function onMSPointerDown(e){e.stopPropagation();if(slider.animating){e.preventDefault()}else{slider.pause();el._gesture.addPointer(e.pointerId);accDx=0;cwidth=vertical?slider.h:slider.w;startT=Number(new Date);offset=carousel&&reverse&&slider.animatingTo===slider.last?0:carousel&&reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:carousel&&slider.currentSlide===slider.last?slider.limit:carousel?(slider.itemW+slider.vars.itemMargin)*slider.move*slider.currentSlide:reverse?(slider.last-slider.currentSlide+slider.cloneOffset)*cwidth:(slider.currentSlide+slider.cloneOffset)*cwidth}}function onMSGestureChange(e){e.stopPropagation();var slider=e.target._slider;if(!slider){return}var transX=-e.translationX,transY=-e.translationY;accDx=accDx+(vertical?transY:transX);dx=accDx;scrolling=vertical?Math.abs(accDx)<Math.abs(-transX):Math.abs(accDx)<Math.abs(-transY);if(e.detail===e.MSGESTURE_FLAG_INERTIA){setImmediate(function(){el._gesture.stop()});return}if(!scrolling||Number(new Date)-startT>500){e.preventDefault();if(!fade&&slider.transitions){if(!slider.vars.animationLoop){dx=accDx/(slider.currentSlide===0&&accDx<0||slider.currentSlide===slider.last&&accDx>0?Math.abs(accDx)/cwidth+2:1)}slider.setProps(offset+dx,"setTouch")}}}function onMSGestureEnd(e){e.stopPropagation();var slider=e.target._slider;if(!slider){return}if(slider.animatingTo===slider.currentSlide&&!scrolling&&!(dx===null)){var updateDx=reverse?-dx:dx,target=updateDx>0?slider.getTarget("next"):slider.getTarget("prev");if(slider.canAdvance(target)&&(Number(new Date)-startT<550&&Math.abs(updateDx)>50||Math.abs(updateDx)>cwidth/2)){slider.flexAnimate(target,slider.vars.pauseOnAction)}else{if(!fade){slider.flexAnimate(slider.currentSlide,slider.vars.pauseOnAction,true)}}}startX=null;startY=null;dx=null;offset=null;accDx=0}}},resize:function(){if(!slider.animating&&slider.is(":visible")){if(!carousel){slider.doMath()}if(fade){methods.smoothHeight()}else if(carousel){slider.slides.width(slider.computedW);slider.update(slider.pagingCount);slider.setProps()}else if(vertical){slider.viewport.height(slider.h);slider.setProps(slider.h,"setTotal")}else{if(slider.vars.smoothHeight){methods.smoothHeight()}slider.newSlides.width(slider.computedW);slider.setProps(slider.computedW,"setTotal")}}},smoothHeight:function(dur){if(!vertical||fade){var $obj=fade?slider:slider.viewport;dur?$obj.animate({height:slider.slides.eq(slider.animatingTo).height()},dur):$obj.height(slider.slides.eq(slider.animatingTo).height())}},sync:function(action){var $obj=$(slider.vars.sync).data("flexslider"),target=slider.animatingTo;switch(action){case"animate":$obj.flexAnimate(target,slider.vars.pauseOnAction,false,true);break;case"play":if(!$obj.playing&&!$obj.asNav){$obj.play()}break;case"pause":$obj.pause();break}},uniqueID:function($clone){$clone.filter("[id]").add($clone.find("[id]")).each(function(){var $this=$(this);$this.attr("id",$this.attr("id")+"_clone")});return $clone},pauseInvisible:{visProp:null,init:function(){var visProp=methods.pauseInvisible.getHiddenProp();if(visProp){var evtname=visProp.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(evtname,function(){if(methods.pauseInvisible.isHidden()){if(slider.startTimeout){clearTimeout(slider.startTimeout)}else{slider.pause()}}else{if(slider.started){slider.play()}else{if(slider.vars.initDelay>0){setTimeout(slider.play,slider.vars.initDelay)}else{slider.play()}}}})}},isHidden:function(){var prop=methods.pauseInvisible.getHiddenProp();if(!prop){return false}return document[prop]},getHiddenProp:function(){var prefixes=["webkit","moz","ms","o"];if("hidden"in document){return"hidden"}for(var i=0;i<prefixes.length;i++){if(prefixes[i]+"Hidden"in document){return prefixes[i]+"Hidden"}}return null}},setToClearWatchedEvent:function(){clearTimeout(watchedEventClearTimer);watchedEventClearTimer=setTimeout(function(){watchedEvent=""},3e3)}};slider.flexAnimate=function(target,pause,override,withSync,fromNav){if(!slider.vars.animationLoop&&target!==slider.currentSlide){slider.direction=target>slider.currentSlide?"next":"prev"}if(asNav&&slider.pagingCount===1)slider.direction=slider.currentItem<target?"next":"prev";if(!slider.animating&&(slider.canAdvance(target,fromNav)||override)&&slider.is(":visible")){if(asNav&&withSync){var master=$(slider.vars.asNavFor).data("flexslider");slider.atEnd=target===0||target===slider.count-1;master.flexAnimate(target,true,false,true,fromNav);slider.direction=slider.currentItem<target?"next":"prev";master.direction=slider.direction;if(Math.ceil((target+1)/slider.visible)-1!==slider.currentSlide&&target!==0){slider.currentItem=target;slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide");target=Math.floor(target/slider.visible)}else{slider.currentItem=target;slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide");return false}}slider.animating=true;slider.animatingTo=target;if(pause){slider.pause()}slider.vars.before(slider);if(slider.syncExists&&!fromNav){methods.sync("animate")}if(slider.vars.controlNav){methods.controlNav.active()}if(!carousel){slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide")}slider.atEnd=target===0||target===slider.last;if(slider.vars.directionNav){methods.directionNav.update()}if(target===slider.last){slider.vars.end(slider);if(!slider.vars.animationLoop){slider.pause()}}if(!fade){var dimension=vertical?slider.slides.filter(":first").height():slider.computedW,margin,slideString,calcNext;if(carousel){margin=slider.vars.itemMargin;calcNext=(slider.itemW+margin)*slider.move*slider.animatingTo;slideString=calcNext>slider.limit&&slider.visible!==1?slider.limit:calcNext}else if(slider.currentSlide===0&&target===slider.count-1&&slider.vars.animationLoop&&slider.direction!=="next"){slideString=reverse?(slider.count+slider.cloneOffset)*dimension:0}else if(slider.currentSlide===slider.last&&target===0&&slider.vars.animationLoop&&slider.direction!=="prev"){slideString=reverse?0:(slider.count+1)*dimension}else{slideString=reverse?(slider.count-1-target+slider.cloneOffset)*dimension:(target+slider.cloneOffset)*dimension}slider.setProps(slideString,"",slider.vars.animationSpeed);if(slider.transitions){if(!slider.vars.animationLoop||!slider.atEnd){slider.animating=false;slider.currentSlide=slider.animatingTo}slider.container.unbind("webkitTransitionEnd transitionend");slider.container.bind("webkitTransitionEnd transitionend",function(){clearTimeout(slider.ensureAnimationEnd);slider.wrapup(dimension)});clearTimeout(slider.ensureAnimationEnd);slider.ensureAnimationEnd=setTimeout(function(){slider.wrapup(dimension)},slider.vars.animationSpeed+100)}else{slider.container.animate(slider.args,slider.vars.animationSpeed,slider.vars.easing,function(){slider.wrapup(dimension)})}}else{if(!touch){slider.slides.eq(slider.currentSlide).css({zIndex:1}).animate({opacity:0},slider.vars.animationSpeed,slider.vars.easing);slider.slides.eq(target).css({zIndex:2}).animate({opacity:1},slider.vars.animationSpeed,slider.vars.easing,slider.wrapup)}else{slider.slides.eq(slider.currentSlide).css({opacity:0,zIndex:1});slider.slides.eq(target).css({opacity:1,zIndex:2});slider.wrapup(dimension)}}if(slider.vars.smoothHeight){methods.smoothHeight(slider.vars.animationSpeed)}}};slider.wrapup=function(dimension){if(!fade&&!carousel){if(slider.currentSlide===0&&slider.animatingTo===slider.last&&slider.vars.animationLoop){slider.setProps(dimension,"jumpEnd")}else if(slider.currentSlide===slider.last&&slider.animatingTo===0&&slider.vars.animationLoop){slider.setProps(dimension,"jumpStart")}}slider.animating=false;slider.currentSlide=slider.animatingTo;slider.vars.after(slider)};slider.animateSlides=function(){if(!slider.animating&&focused){slider.flexAnimate(slider.getTarget("next"))}};slider.pause=function(){clearInterval(slider.animatedSlides);slider.animatedSlides=null;slider.playing=false;if(slider.vars.pausePlay){methods.pausePlay.update("play")}if(slider.syncExists){methods.sync("pause")}};slider.play=function(){if(slider.playing){clearInterval(slider.animatedSlides)}slider.animatedSlides=slider.animatedSlides||setInterval(slider.animateSlides,slider.vars.slideshowSpeed);slider.started=slider.playing=true;if(slider.vars.pausePlay){methods.pausePlay.update("pause")}if(slider.syncExists){methods.sync("play")}};slider.stop=function(){slider.pause();slider.stopped=true};slider.canAdvance=function(target,fromNav){var last=asNav?slider.pagingCount-1:slider.last;return fromNav?true:asNav&&slider.currentItem===slider.count-1&&target===0&&slider.direction==="prev"?true:asNav&&slider.currentItem===0&&target===slider.pagingCount-1&&slider.direction!=="next"?false:target===slider.currentSlide&&!asNav?false:slider.vars.animationLoop?true:slider.atEnd&&slider.currentSlide===0&&target===last&&slider.direction!=="next"?false:slider.atEnd&&slider.currentSlide===last&&target===0&&slider.direction==="next"?false:true};slider.getTarget=function(dir){slider.direction=dir;if(dir==="next"){return slider.currentSlide===slider.last?0:slider.currentSlide+1}else{return slider.currentSlide===0?slider.last:slider.currentSlide-1}};slider.setProps=function(pos,special,dur){var target=function(){var posCheck=pos?pos:(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo,posCalc=function(){if(carousel){return special==="setTouch"?pos:reverse&&slider.animatingTo===slider.last?0:reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:slider.animatingTo===slider.last?slider.limit:posCheck}else{switch(special){case"setTotal":return reverse?(slider.count-1-slider.currentSlide+slider.cloneOffset)*pos:(slider.currentSlide+slider.cloneOffset)*pos;case"setTouch":return reverse?pos:pos;case"jumpEnd":return reverse?pos:slider.count*pos;case"jumpStart":return reverse?slider.count*pos:pos;default:return pos}}}();return posCalc*-1+"px"}();if(slider.transitions){target=vertical?"translate3d(0,"+target+",0)":"translate3d("+target+",0,0)";dur=dur!==undefined?dur/1e3+"s":"0s";slider.container.css("-"+slider.pfx+"-transition-duration",dur);slider.container.css("transition-duration",dur)}slider.args[slider.prop]=target;if(slider.transitions||dur===undefined){slider.container.css(slider.args)}slider.container.css("transform",target)};slider.setup=function(type){if(!fade){var sliderOffset,arr;if(type==="init"){slider.viewport=$('<div class="'+namespace+'viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(slider).append(slider.container);slider.cloneCount=0;slider.cloneOffset=0;if(reverse){arr=$.makeArray(slider.slides).reverse();slider.slides=$(arr);slider.container.empty().append(slider.slides)}}if(slider.vars.animationLoop&&!carousel){slider.cloneCount=2;slider.cloneOffset=1;if(type!=="init"){slider.container.find(".clone").remove()}slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass("clone")).attr("aria-hidden","true")).prepend(methods.uniqueID(slider.slides.last().clone().addClass("clone")).attr("aria-hidden","true"))}slider.newSlides=$(slider.vars.selector,slider);sliderOffset=reverse?slider.count-1-slider.currentSlide+slider.cloneOffset:slider.currentSlide+slider.cloneOffset;if(vertical&&!carousel){slider.container.height((slider.count+slider.cloneCount)*200+"%").css("position","absolute").width("100%");setTimeout(function(){slider.newSlides.css({display:"block"});slider.doMath();slider.viewport.height(slider.h);slider.setProps(sliderOffset*slider.h,"init")},type==="init"?100:0)}else{slider.container.width((slider.count+slider.cloneCount)*200+"%");slider.setProps(sliderOffset*slider.computedW,"init");setTimeout(function(){slider.doMath();slider.newSlides.css({width:slider.computedW,marginRight:slider.computedM,float:"left",display:"block"});if(slider.vars.smoothHeight){methods.smoothHeight()}},type==="init"?100:0)}}else{slider.slides.css({width:"100%",float:"left",marginRight:"-100%",position:"relative"});if(type==="init"){if(!touch){if(slider.vars.fadeFirstSlide==false){slider.slides.css({opacity:0,display:"block",zIndex:1}).eq(slider.currentSlide).css({zIndex:2}).css({opacity:1})}else{slider.slides.css({opacity:0,display:"block",zIndex:1}).eq(slider.currentSlide).css({zIndex:2}).animate({opacity:1},slider.vars.animationSpeed,slider.vars.easing)}}else{slider.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+slider.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(slider.currentSlide).css({opacity:1,zIndex:2})}}if(slider.vars.smoothHeight){methods.smoothHeight()}}if(!carousel){slider.slides.removeClass(namespace+"active-slide").eq(slider.currentSlide).addClass(namespace+"active-slide")}slider.vars.init(slider)};slider.doMath=function(){var slide=slider.slides.first(),slideMargin=slider.vars.itemMargin,minItems=slider.vars.minItems,maxItems=slider.vars.maxItems;slider.w=slider.viewport===undefined?slider.width():slider.viewport.width();slider.h=slide.height();slider.boxPadding=slide.outerWidth()-slide.width();if(carousel){slider.itemT=slider.vars.itemWidth+slideMargin;slider.itemM=slideMargin;slider.minW=minItems?minItems*slider.itemT:slider.w;slider.maxW=maxItems?maxItems*slider.itemT-slideMargin:slider.w;slider.itemW=slider.minW>slider.w?(slider.w-slideMargin*(minItems-1))/minItems:slider.maxW<slider.w?(slider.w-slideMargin*(maxItems-1))/maxItems:slider.vars.itemWidth>slider.w?slider.w:slider.vars.itemWidth;slider.visible=Math.floor(slider.w/slider.itemW);slider.move=slider.vars.move>0&&slider.vars.move<slider.visible?slider.vars.move:slider.visible;slider.pagingCount=Math.ceil((slider.count-slider.visible)/slider.move+1);slider.last=slider.pagingCount-1;slider.limit=slider.pagingCount===1?0:slider.vars.itemWidth>slider.w?slider.itemW*(slider.count-1)+slideMargin*(slider.count-1):(slider.itemW+slideMargin)*slider.count-slider.w-slideMargin}else{slider.itemW=slider.w;slider.itemM=slideMargin;slider.pagingCount=slider.count;slider.last=slider.count-1}slider.computedW=slider.itemW-slider.boxPadding;slider.computedM=slider.itemM};slider.update=function(pos,action){slider.doMath();if(!carousel){if(pos<slider.currentSlide){slider.currentSlide+=1}else if(pos<=slider.currentSlide&&pos!==0){slider.currentSlide-=1}slider.animatingTo=slider.currentSlide}if(slider.vars.controlNav&&!slider.manualControls){if(action==="add"&&!carousel||slider.pagingCount>slider.controlNav.length){methods.controlNav.update("add")}else if(action==="remove"&&!carousel||slider.pagingCount<slider.controlNav.length){if(carousel&&slider.currentSlide>slider.last){slider.currentSlide-=1;slider.animatingTo-=1}methods.controlNav.update("remove",slider.last)}}if(slider.vars.directionNav){methods.directionNav.update()}};slider.addSlide=function(obj,pos){var $obj=$(obj);slider.count+=1;slider.last=slider.count-1;if(vertical&&reverse){pos!==undefined?slider.slides.eq(slider.count-pos).after($obj):slider.container.prepend($obj)}else{pos!==undefined?slider.slides.eq(pos).before($obj):slider.container.append($obj)}slider.update(pos,"add");slider.slides=$(slider.vars.selector+":not(.clone)",slider);slider.setup();slider.vars.added(slider)};slider.removeSlide=function(obj){var pos=isNaN(obj)?slider.slides.index($(obj)):obj;slider.count-=1;slider.last=slider.count-1;if(isNaN(obj)){$(obj,slider.slides).remove()}else{vertical&&reverse?slider.slides.eq(slider.last).remove():slider.slides.eq(obj).remove()}slider.doMath();slider.update(pos,"remove");slider.slides=$(slider.vars.selector+":not(.clone)",slider);slider.setup();slider.vars.removed(slider)};methods.init()};$(window).blur(function(e){focused=false}).focus(function(e){focused=true});$.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:false,animationLoop:true,smoothHeight:false,startAt:0,slideshow:true,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:false,fadeFirstSlide:true,thumbCaptions:false,pauseOnAction:true,pauseOnHover:false,pauseInvisible:true,useCSS:true,touch:true,video:false,controlNav:true,directionNav:true,prevText:"Previous",nextText:"Next",keyboard:true,multipleKeyboard:false,mousewheel:false,pausePlay:false,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",customDirectionNav:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:true,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){},init:function(){}};$.fn.flexslider=function(options){if(options===undefined){options={}}if(typeof options==="object"){return this.each(function(){var $this=$(this),selector=options.selector?options.selector:".slides > li",$slides=$this.find(selector);if($slides.length===1&&options.allowOneSlide===true||$slides.length===0){$slides.fadeIn(400);if(options.start){options.start($this)}}else if($this.data("flexslider")===undefined){new $.flexslider(this,options)}})}else{var $slider=$(this).data("flexslider");switch(options){case"play":$slider.play();break;case"pause":$slider.pause();break;case"stop":$slider.stop();break;case"next":$slider.flexAnimate($slider.getTarget("next"),true);break;case"prev":case"previous":$slider.flexAnimate($slider.getTarget("prev"),true);break;default:if(typeof options==="number"){$slider.flexAnimate(options,true)}}}}})(jQuery);
assets/js/jquery.stats.js ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! odometer 0.4.7
2
+ * https://github.com/HubSpot/odometer
3
+ */
4
+ (function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G=[].slice;q='<span class="odometer-value"></span>',n='<span class="odometer-ribbon"><span class="odometer-ribbon-inner">'+q+"</span></span>",d='<span class="odometer-digit"><span class="odometer-digit-spacer">8</span><span class="odometer-digit-inner">'+n+"</span></span>",g='<span class="odometer-formatting-mark"></span>',c="(,ddd).dd",h=/^\(?([^)]*)\)?(?:(.)(d+))?$/,i=30,f=2e3,a=20,j=2,e=.5,k=1e3/i,b=1e3/a,o="transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",y=document.createElement("div").style,p=null!=y.transition||null!=y.webkitTransition||null!=y.mozTransition||null!=y.oTransition,w=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,l=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,s=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},v=function(a,b){return a.className=a.className.replace(new RegExp("(^| )"+b.split(" ").join("|")+"( |$)","gi")," ")},r=function(a,b){return v(a,b),a.className+=" "+b},z=function(a,b){var c;return null!=document.createEvent?(c=document.createEvent("HTMLEvents"),c.initEvent(b,!0,!0),a.dispatchEvent(c)):void 0},u=function(){var a,b;return null!=(a=null!=(b=window.performance)&&"function"==typeof b.now?b.now():void 0)?a:+new Date},x=function(a,b){return null==b&&(b=0),b?(a*=Math.pow(10,b),a+=.5,a=Math.floor(a),a/=Math.pow(10,b)):Math.round(a)},A=function(a){return 0>a?Math.ceil(a):Math.floor(a)},t=function(a){return a-x(a)},C=!1,(B=function(){var a,b,c,d,e;if(!C&&null!=window.jQuery){for(C=!0,d=["html","text"],e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(function(a){var b;return b=window.jQuery.fn[a],window.jQuery.fn[a]=function(a){var c;return null==a||null==(null!=(c=this[0])?c.odometer:void 0)?b.apply(this,arguments):this[0].odometer.update(a)}}(a));return e}})(),setTimeout(B,0),m=function(){function a(b){var c,d,e,g,h,i,l,m,n,o,p=this;if(this.options=b,this.el=this.options.el,null!=this.el.odometer)return this.el.odometer;this.el.odometer=this,m=a.options;for(d in m)g=m[d],null==this.options[d]&&(this.options[d]=g);null==(h=this.options).duration&&(h.duration=f),this.MAX_VALUES=this.options.duration/k/j|0,this.resetFormat(),this.value=this.cleanValue(null!=(n=this.options.value)?n:""),this.renderInside(),this.render();try{for(o=["innerHTML","innerText","textContent"],i=0,l=o.length;l>i;i++)e=o[i],null!=this.el[e]&&!function(a){return Object.defineProperty(p.el,a,{get:function(){var b;return"innerHTML"===a?p.inside.outerHTML:null!=(b=p.inside.innerText)?b:p.inside.textContent},set:function(a){return p.update(a)}})}(e)}catch(q){c=q,this.watchForMutations()}}return a.prototype.renderInside=function(){return this.inside=document.createElement("div"),this.inside.className="odometer-inside",this.el.innerHTML="",this.el.appendChild(this.inside)},a.prototype.watchForMutations=function(){var a,b=this;if(null!=l)try{return null==this.observer&&(this.observer=new l(function(){var a;return a=b.el.innerText,b.renderInside(),b.render(b.value),b.update(a)})),this.watchMutations=!0,this.startWatchingMutations()}catch(c){a=c}},a.prototype.startWatchingMutations=function(){return this.watchMutations?this.observer.observe(this.el,{childList:!0}):void 0},a.prototype.stopWatchingMutations=function(){var a;return null!=(a=this.observer)?a.disconnect():void 0},a.prototype.cleanValue=function(a){var b;return"string"==typeof a&&(a=a.replace(null!=(b=this.format.radix)?b:".","<radix>"),a=a.replace(/[.,]/g,""),a=a.replace("<radix>","."),a=parseFloat(a,10)||0),x(a,this.format.precision)},a.prototype.bindTransitionEnd=function(){var a,b,c,d,e,f,g=this;if(!this.transitionEndBound){for(this.transitionEndBound=!0,b=!1,e=o.split(" "),f=[],c=0,d=e.length;d>c;c++)a=e[c],f.push(this.el.addEventListener(a,function(){return b?!0:(b=!0,setTimeout(function(){return g.render(),b=!1,z(g.el,"odometerdone")},0),!0)},!1));return f}},a.prototype.resetFormat=function(){var a,b,d,e,f,g,i,j;if(a=null!=(i=this.options.format)?i:c,a||(a="d"),d=h.exec(a),!d)throw new Error("Odometer: Unparsable digit format");return j=d.slice(1,4),g=j[0],f=j[1],b=j[2],e=(null!=b?b.length:void 0)||0,this.format={repeating:g,radix:f,precision:e}},a.prototype.render=function(a){var b,c,d,e,f,g,h;for(null==a&&(a=this.value),this.stopWatchingMutations(),this.resetFormat(),this.inside.innerHTML="",f=this.options.theme,b=this.el.className.split(" "),e=[],g=0,h=b.length;h>g;g++)c=b[g],c.length&&((d=/^odometer-theme-(.+)$/.exec(c))?f=d[1]:/^odometer(-|$)/.test(c)||e.push(c));return e.push("odometer"),p||e.push("odometer-no-transitions"),e.push(f?"odometer-theme-"+f:"odometer-auto-theme"),this.el.className=e.join(" "),this.ribbons={},this.formatDigits(a),this.startWatchingMutations()},a.prototype.formatDigits=function(a){var b,c,d,e,f,g,h,i,j,k;if(this.digits=[],this.options.formatFunction)for(d=this.options.formatFunction(a),j=d.split("").reverse(),f=0,h=j.length;h>f;f++)c=j[f],c.match(/0-9/)?(b=this.renderDigit(),b.querySelector(".odometer-value").innerHTML=c,this.digits.push(b),this.insertDigit(b)):this.addSpacer(c);else for(e=!this.format.precision||!t(a)||!1,k=a.toString().split("").reverse(),g=0,i=k.length;i>g;g++)b=k[g],"."===b&&(e=!0),this.addDigit(b,e)},a.prototype.update=function(a){var b,c=this;return a=this.cleanValue(a),(b=a-this.value)?(v(this.el,"odometer-animating-up odometer-animating-down odometer-animating"),b>0?r(this.el,"odometer-animating-up"):r(this.el,"odometer-animating-down"),this.stopWatchingMutations(),this.animate(a),this.startWatchingMutations(),setTimeout(function(){return c.el.offsetHeight,r(c.el,"odometer-animating")},0),this.value=a):void 0},a.prototype.renderDigit=function(){return s(d)},a.prototype.insertDigit=function(a,b){return null!=b?this.inside.insertBefore(a,b):this.inside.children.length?this.inside.insertBefore(a,this.inside.children[0]):this.inside.appendChild(a)},a.prototype.addSpacer=function(a,b,c){var d;return d=s(g),d.innerHTML=a,c&&r(d,c),this.insertDigit(d,b)},a.prototype.addDigit=function(a,b){var c,d,e,f;if(null==b&&(b=!0),"-"===a)return this.addSpacer(a,null,"odometer-negation-mark");if("."===a)return this.addSpacer(null!=(f=this.format.radix)?f:".",null,"odometer-radix-mark");if(b)for(e=!1;;){if(!this.format.repeating.length){if(e)throw new Error("Bad odometer format without digits");this.resetFormat(),e=!0}if(c=this.format.repeating[this.format.repeating.length-1],this.format.repeating=this.format.repeating.substring(0,this.format.repeating.length-1),"d"===c)break;this.addSpacer(c)}return d=this.renderDigit(),d.querySelector(".odometer-value").innerHTML=a,this.digits.push(d),this.insertDigit(d)},a.prototype.animate=function(a){return p&&"count"!==this.options.animation?this.animateSlide(a):this.animateCount(a)},a.prototype.animateCount=function(a){var c,d,e,f,g,h=this;if(d=+a-this.value)return f=e=u(),c=this.value,(g=function(){var i,j,k;return u()-f>h.options.duration?(h.value=a,h.render(),void z(h.el,"odometerdone")):(i=u()-e,i>b&&(e=u(),k=i/h.options.duration,j=d*k,c+=j,h.render(Math.round(c))),null!=w?w(g):setTimeout(g,b))})()},a.prototype.getDigitCount=function(){var a,b,c,d,e,f;for(d=1<=arguments.length?G.call(arguments,0):[],a=e=0,f=d.length;f>e;a=++e)c=d[a],d[a]=Math.abs(c);return b=Math.max.apply(Math,d),Math.ceil(Math.log(b+1)/Math.log(10))},a.prototype.getFractionalDigitCount=function(){var a,b,c,d,e,f,g;for(e=1<=arguments.length?G.call(arguments,0):[],b=/^\-?\d*\.(\d*?)0*$/,a=f=0,g=e.length;g>f;a=++f)d=e[a],e[a]=d.toString(),c=b.exec(e[a]),e[a]=null==c?0:c[1].length;return Math.max.apply(Math,e)},a.prototype.resetDigits=function(){return this.digits=[],this.ribbons=[],this.inside.innerHTML="",this.resetFormat()},a.prototype.animateSlide=function(a){var b,c,d,f,g,h,i,j,k,l,m,n,o,p,q,s,t,u,v,w,x,y,z,B,C,D,E;if(s=this.value,j=this.getFractionalDigitCount(s,a),j&&(a*=Math.pow(10,j),s*=Math.pow(10,j)),d=a-s){for(this.bindTransitionEnd(),f=this.getDigitCount(s,a),g=[],b=0,m=v=0;f>=0?f>v:v>f;m=f>=0?++v:--v){if(t=A(s/Math.pow(10,f-m-1)),i=A(a/Math.pow(10,f-m-1)),h=i-t,Math.abs(h)>this.MAX_VALUES){for(l=[],n=h/(this.MAX_VALUES+this.MAX_VALUES*b*e),c=t;h>0&&i>c||0>h&&c>i;)l.push(Math.round(c)),c+=n;l[l.length-1]!==i&&l.push(i),b++}else l=function(){E=[];for(var a=t;i>=t?i>=a:a>=i;i>=t?a++:a--)E.push(a);return E}.apply(this);for(m=w=0,y=l.length;y>w;m=++w)k=l[m],l[m]=Math.abs(k%10);g.push(l)}for(this.resetDigits(),D=g.reverse(),m=x=0,z=D.length;z>x;m=++x)for(l=D[m],this.digits[m]||this.addDigit(" ",m>=j),null==(u=this.ribbons)[m]&&(u[m]=this.digits[m].querySelector(".odometer-ribbon-inner")),this.ribbons[m].innerHTML="",0>d&&(l=l.reverse()),o=C=0,B=l.length;B>C;o=++C)k=l[o],q=document.createElement("div"),q.className="odometer-value",q.innerHTML=k,this.ribbons[m].appendChild(q),o===l.length-1&&r(q,"odometer-last-value"),0===o&&r(q,"odometer-first-value");return 0>t&&this.addDigit("-"),p=this.inside.querySelector(".odometer-radix-mark"),null!=p&&p.parent.removeChild(p),j?this.addSpacer(this.format.radix,this.digits[j-1],"odometer-radix-mark"):void 0}},a}(),m.options=null!=(E=window.odometerOptions)?E:{},setTimeout(function(){var a,b,c,d,e;if(window.odometerOptions){d=window.odometerOptions,e=[];for(a in d)b=d[a],e.push(null!=(c=m.options)[a]?(c=m.options)[a]:c[a]=b);return e}},0),m.init=function(){var a,b,c,d,e,f;if(null!=document.querySelectorAll){for(b=document.querySelectorAll(m.options.selector||".odometer"),f=[],c=0,d=b.length;d>c;c++)a=b[c],f.push(a.odometer=new m({el:a,value:null!=(e=a.innerText)?e:a.textContent}));return f}},null!=(null!=(F=document.documentElement)?F.doScroll:void 0)&&null!=document.createEventObject?(D=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&m.options.auto!==!1&&m.init(),null!=D?D.apply(this,arguments):void 0}):document.addEventListener("DOMContentLoaded",function(){return m.options.auto!==!1?m.init():void 0},!1),"function"==typeof define&&define.amd?define(["jquery"],function(){return m}):"undefined"!=typeof exports&&null!==exports?module.exports=m:window.Odometer=m}).call(this);
5
+
6
+ /*!
7
+ * The Final Countdown for jQuery v2.1.0 (http://hilios.github.io/jQuery.countdown/)
8
+ * Copyright (c) 2015 Edson Hilios
9
+ *
10
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
11
+ * this software and associated documentation files (the "Software"), to deal in
12
+ * the Software without restriction, including without limitation the rights to
13
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
14
+ * the Software, and to permit persons to whom the Software is furnished to do so,
15
+ * subject to the following conditions:
16
+ *
17
+ * The above copyright notice and this permission notice shall be included in all
18
+ * copies or substantial portions of the Software.
19
+ *
20
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
22
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
23
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
24
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
+ */
27
+ !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";function b(a){if(a instanceof Date)return a;if(String(a).match(g))return String(a).match(/^[0-9]*$/)&&(a=Number(a)),String(a).match(/\-/)&&(a=String(a).replace(/\-/g,"/")),new Date(a);throw new Error("Couldn't cast `"+a+"` to a date object.")}function c(a){var b=a.toString().replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");return new RegExp(b)}function d(a){return function(b){var d=b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);if(d)for(var f=0,g=d.length;g>f;++f){var h=d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),j=c(h[0]),k=h[1]||"",l=h[3]||"",m=null;h=h[2],i.hasOwnProperty(h)&&(m=i[h],m=Number(a[m])),null!==m&&("!"===k&&(m=e(l,m)),""===k&&10>m&&(m="0"+m.toString()),b=b.replace(j,m.toString()))}return b=b.replace(/%%/,"%")}}function e(a,b){var c="s",d="";return a&&(a=a.replace(/(:|;|\s)/gi,"").split(/\,/),1===a.length?c=a[0]:(d=a[0],c=a[1])),1===Math.abs(b)?d:c}var f=[],g=[],h={precision:100,elapse:!1};g.push(/^[0-9]*$/.source),g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g=new RegExp(g.join("|"));var i={Y:"years",m:"months",n:"daysToMonth",w:"weeks",d:"daysToWeek",D:"totalDays",H:"hours",M:"minutes",S:"seconds"},j=function(b,c,d){this.el=b,this.$el=a(b),this.interval=null,this.offset={},this.options=a.extend({},h),this.instanceNumber=f.length,f.push(this),this.$el.data("countdown-instance",this.instanceNumber),d&&("function"==typeof d?(this.$el.on("update.countdown",d),this.$el.on("stoped.countdown",d),this.$el.on("finish.countdown",d)):this.options=a.extend({},h,d)),this.setFinalDate(c),this.start()};a.extend(j.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var a=this;this.update(),this.interval=setInterval(function(){a.update.call(a)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent("stoped")},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),f[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(a){this.finalDate=b(a)},update:function(){if(0===this.$el.closest("html").length)return void this.remove();var b,c=void 0!==a._data(this.el,"events"),d=new Date;b=this.finalDate.getTime()-d.getTime(),b=Math.ceil(b/1e3),b=!this.options.elapse&&0>b?0:Math.abs(b),this.totalSecsLeft!==b&&c&&(this.totalSecsLeft=b,this.elapsed=d>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),totalDays:Math.floor(this.totalSecsLeft/60/60/24),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-d.getFullYear())},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent("update"):(this.stop(),this.dispatchEvent("finish")))},dispatchEvent:function(b){var c=a.Event(b+".countdown");c.finalDate=this.finalDate,c.elapsed=this.elapsed,c.offset=a.extend({},this.offset),c.strftime=d(this.offset),this.$el.trigger(c)}}),a.fn.countdown=function(){var b=Array.prototype.slice.call(arguments,0);return this.each(function(){var c=a(this).data("countdown-instance");if(void 0!==c){var d=f[c],e=b[0];j.prototype.hasOwnProperty(e)?d[e].apply(d,b.slice(1)):null===String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(d.setFinalDate.call(d,e),d.start()):a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi,e))}else new j(this,b[0],b[1])})}});
28
+
29
+
30
+ /**!
31
+ * easyPieChart
32
+ * Lightweight plugin to render simple, animated and retina optimized pie charts
33
+ *
34
+ * @license Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
35
+ * @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de)
36
+ * @version 2.1.1
37
+ **/
38
+ /**!
39
+ * easy-pie-chart
40
+ * Lightweight plugin to render simple, animated and retina optimized pie charts
41
+ *
42
+ * @license
43
+ * @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de)
44
+ * @version 2.1.7
45
+ **/
46
+ !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){var b=function(a,b){var c,d=document.createElement("canvas");a.appendChild(d),"object"==typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(d);var e=d.getContext("2d");d.width=d.height=b.size;var f=1;window.devicePixelRatio>1&&(f=window.devicePixelRatio,d.style.width=d.style.height=[b.size,"px"].join(""),d.width=d.height=b.size*f,e.scale(f,f)),e.translate(b.size/2,b.size/2),e.rotate((-0.5+b.rotate/180)*Math.PI);var g=(b.size-b.lineWidth)/2;b.scaleColor&&b.scaleLength&&(g-=b.scaleLength+2),Date.now=Date.now||function(){return+new Date};var h=function(a,b,c){c=Math.min(Math.max(-1,c||0),1);var d=0>=c?!0:!1;e.beginPath(),e.arc(0,0,g,0,2*Math.PI*c,d),e.strokeStyle=a,e.lineWidth=b,e.stroke()},i=function(){var a,c;e.lineWidth=1,e.fillStyle=b.scaleColor,e.save();for(var d=24;d>0;--d)d%6===0?(c=b.scaleLength,a=0):(c=.6*b.scaleLength,a=b.scaleLength-c),e.fillRect(-b.size/2+a,0,c,1),e.rotate(Math.PI/12);e.restore()},j=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(a){window.setTimeout(a,1e3/60)}}(),k=function(){b.scaleColor&&i(),b.trackColor&&h(b.trackColor,b.trackWidth||b.lineWidth,1)};this.getCanvas=function(){return d},this.getCtx=function(){return e},this.clear=function(){e.clearRect(b.size/-2,b.size/-2,b.size,b.size)},this.draw=function(a){b.scaleColor||b.trackColor?e.getImageData&&e.putImageData?c?e.putImageData(c,0,0):(k(),c=e.getImageData(0,0,b.size*f,b.size*f)):(this.clear(),k()):this.clear(),e.lineCap=b.lineCap;var d;d="function"==typeof b.barColor?b.barColor(a):b.barColor,h(d,b.lineWidth,a/100)}.bind(this),this.animate=function(a,c){var d=Date.now();b.onStart(a,c);var e=function(){var f=Math.min(Date.now()-d,b.animate.duration),g=b.easing(this,f,a,c-a,b.animate.duration);this.draw(g),b.onStep(a,c,g),f>=b.animate.duration?b.onStop(a,c):j(e)}.bind(this);j(e)}.bind(this)},c=function(a,c){var d={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(a,b,c,d,e){return b/=e/2,1>b?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},onStart:function(a,b){},onStep:function(a,b,c){},onStop:function(a,b){}};if("undefined"!=typeof b)d.renderer=b;else{if("undefined"==typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");d.renderer=SVGRenderer}var e={},f=0,g=function(){this.el=a,this.options=e;for(var b in d)d.hasOwnProperty(b)&&(e[b]=c&&"undefined"!=typeof c[b]?c[b]:d[b],"function"==typeof e[b]&&(e[b]=e[b].bind(this)));"string"==typeof e.easing&&"undefined"!=typeof jQuery&&jQuery.isFunction(jQuery.easing[e.easing])?e.easing=jQuery.easing[e.easing]:e.easing=d.easing,"number"==typeof e.animate&&(e.animate={duration:e.animate,enabled:!0}),"boolean"!=typeof e.animate||e.animate||(e.animate={duration:1e3,enabled:e.animate}),this.renderer=new e.renderer(a,e),this.renderer.draw(f),a.dataset&&a.dataset.percent?this.update(parseFloat(a.dataset.percent)):a.getAttribute&&a.getAttribute("data-percent")&&this.update(parseFloat(a.getAttribute("data-percent")))}.bind(this);this.update=function(a){return a=parseFloat(a),e.animate.enabled?this.renderer.animate(f,a):this.renderer.draw(a),f=a,this}.bind(this),this.disableAnimation=function(){return e.animate.enabled=!1,this},this.enableAnimation=function(){return e.animate.enabled=!0,this},g()};a.fn.easyPieChart=function(b){return this.each(function(){var d;a.data(this,"easyPieChart")||(d=a.extend({},b,a(this).data()),a.data(this,"easyPieChart",new c(this,d)))})}});
47
+
48
+ /***********
49
+ Animates element's number to new number with commas
50
+ Parameters:
51
+ stop (number): number to stop on
52
+ commas (boolean): turn commas on/off (default is true)
53
+ duration (number): how long in ms (default is 1000)
54
+ ease (string): type of easing (default is "swing", others are avaiable from jQuery's easing plugin
55
+ Examples:
56
+ $("#div").animateNumbers(1234, false, 500, "linear"); // half second linear without commas
57
+ $("#div").animateNumbers(1234, true, 2000); // two second swing with commas
58
+ $("#div").animateNumbers(4321); // one second swing with commas
59
+ This fully expects an element containing an integer
60
+ If the number is within copy then separate it with a span and target the span
61
+ Inserts and accounts for commas during animation by default
62
+ ***********/
63
+
64
+ (function(e){e.fn.animateNumbers=function(t,n,r,i){return this.each(function(){var s=e(this);var o=parseInt(s.text().replace(/,/g,""));n=n===undefined?true:n;e({value:o}).animate({value:t},{duration:r==undefined?1e3:r,easing:i==undefined?"swing":i,step:function(){s.text(Math.floor(this.value));if(n){s.text(s.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"))}},complete:function(){if(parseInt(s.text())!==t){s.text(t);if(n){s.text(s.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"))}}}})})}})(jQuery);
assets/js/jquery.stats.min.js ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! odometer 0.4.7
2
+ * https://github.com/HubSpot/odometer
3
+ */
4
+ (function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G=[].slice;q='<span class="odometer-value"></span>',n='<span class="odometer-ribbon"><span class="odometer-ribbon-inner">'+q+"</span></span>",d='<span class="odometer-digit"><span class="odometer-digit-spacer">8</span><span class="odometer-digit-inner">'+n+"</span></span>",g='<span class="odometer-formatting-mark"></span>',c="(,ddd).dd",h=/^\(?([^)]*)\)?(?:(.)(d+))?$/,i=30,f=2e3,a=20,j=2,e=.5,k=1e3/i,b=1e3/a,o="transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",y=document.createElement("div").style,p=null!=y.transition||null!=y.webkitTransition||null!=y.mozTransition||null!=y.oTransition,w=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,l=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,s=function(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.children[0]},v=function(a,b){return a.className=a.className.replace(new RegExp("(^| )"+b.split(" ").join("|")+"( |$)","gi")," ")},r=function(a,b){return v(a,b),a.className+=" "+b},z=function(a,b){var c;return null!=document.createEvent?(c=document.createEvent("HTMLEvents"),c.initEvent(b,!0,!0),a.dispatchEvent(c)):void 0},u=function(){var a,b;return null!=(a=null!=(b=window.performance)&&"function"==typeof b.now?b.now():void 0)?a:+new Date},x=function(a,b){return null==b&&(b=0),b?(a*=Math.pow(10,b),a+=.5,a=Math.floor(a),a/=Math.pow(10,b)):Math.round(a)},A=function(a){return 0>a?Math.ceil(a):Math.floor(a)},t=function(a){return a-x(a)},C=!1,(B=function(){var a,b,c,d,e;if(!C&&null!=window.jQuery){for(C=!0,d=["html","text"],e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(function(a){var b;return b=window.jQuery.fn[a],window.jQuery.fn[a]=function(a){var c;return null==a||null==(null!=(c=this[0])?c.odometer:void 0)?b.apply(this,arguments):this[0].odometer.update(a)}}(a));return e}})(),setTimeout(B,0),m=function(){function a(b){var c,d,e,g,h,i,l,m,n,o,p=this;if(this.options=b,this.el=this.options.el,null!=this.el.odometer)return this.el.odometer;this.el.odometer=this,m=a.options;for(d in m)g=m[d],null==this.options[d]&&(this.options[d]=g);null==(h=this.options).duration&&(h.duration=f),this.MAX_VALUES=this.options.duration/k/j|0,this.resetFormat(),this.value=this.cleanValue(null!=(n=this.options.value)?n:""),this.renderInside(),this.render();try{for(o=["innerHTML","innerText","textContent"],i=0,l=o.length;l>i;i++)e=o[i],null!=this.el[e]&&!function(a){return Object.defineProperty(p.el,a,{get:function(){var b;return"innerHTML"===a?p.inside.outerHTML:null!=(b=p.inside.innerText)?b:p.inside.textContent},set:function(a){return p.update(a)}})}(e)}catch(q){c=q,this.watchForMutations()}}return a.prototype.renderInside=function(){return this.inside=document.createElement("div"),this.inside.className="odometer-inside",this.el.innerHTML="",this.el.appendChild(this.inside)},a.prototype.watchForMutations=function(){var a,b=this;if(null!=l)try{return null==this.observer&&(this.observer=new l(function(){var a;return a=b.el.innerText,b.renderInside(),b.render(b.value),b.update(a)})),this.watchMutations=!0,this.startWatchingMutations()}catch(c){a=c}},a.prototype.startWatchingMutations=function(){return this.watchMutations?this.observer.observe(this.el,{childList:!0}):void 0},a.prototype.stopWatchingMutations=function(){var a;return null!=(a=this.observer)?a.disconnect():void 0},a.prototype.cleanValue=function(a){var b;return"string"==typeof a&&(a=a.replace(null!=(b=this.format.radix)?b:".","<radix>"),a=a.replace(/[.,]/g,""),a=a.replace("<radix>","."),a=parseFloat(a,10)||0),x(a,this.format.precision)},a.prototype.bindTransitionEnd=function(){var a,b,c,d,e,f,g=this;if(!this.transitionEndBound){for(this.transitionEndBound=!0,b=!1,e=o.split(" "),f=[],c=0,d=e.length;d>c;c++)a=e[c],f.push(this.el.addEventListener(a,function(){return b?!0:(b=!0,setTimeout(function(){return g.render(),b=!1,z(g.el,"odometerdone")},0),!0)},!1));return f}},a.prototype.resetFormat=function(){var a,b,d,e,f,g,i,j;if(a=null!=(i=this.options.format)?i:c,a||(a="d"),d=h.exec(a),!d)throw new Error("Odometer: Unparsable digit format");return j=d.slice(1,4),g=j[0],f=j[1],b=j[2],e=(null!=b?b.length:void 0)||0,this.format={repeating:g,radix:f,precision:e}},a.prototype.render=function(a){var b,c,d,e,f,g,h;for(null==a&&(a=this.value),this.stopWatchingMutations(),this.resetFormat(),this.inside.innerHTML="",f=this.options.theme,b=this.el.className.split(" "),e=[],g=0,h=b.length;h>g;g++)c=b[g],c.length&&((d=/^odometer-theme-(.+)$/.exec(c))?f=d[1]:/^odometer(-|$)/.test(c)||e.push(c));return e.push("odometer"),p||e.push("odometer-no-transitions"),e.push(f?"odometer-theme-"+f:"odometer-auto-theme"),this.el.className=e.join(" "),this.ribbons={},this.formatDigits(a),this.startWatchingMutations()},a.prototype.formatDigits=function(a){var b,c,d,e,f,g,h,i,j,k;if(this.digits=[],this.options.formatFunction)for(d=this.options.formatFunction(a),j=d.split("").reverse(),f=0,h=j.length;h>f;f++)c=j[f],c.match(/0-9/)?(b=this.renderDigit(),b.querySelector(".odometer-value").innerHTML=c,this.digits.push(b),this.insertDigit(b)):this.addSpacer(c);else for(e=!this.format.precision||!t(a)||!1,k=a.toString().split("").reverse(),g=0,i=k.length;i>g;g++)b=k[g],"."===b&&(e=!0),this.addDigit(b,e)},a.prototype.update=function(a){var b,c=this;return a=this.cleanValue(a),(b=a-this.value)?(v(this.el,"odometer-animating-up odometer-animating-down odometer-animating"),b>0?r(this.el,"odometer-animating-up"):r(this.el,"odometer-animating-down"),this.stopWatchingMutations(),this.animate(a),this.startWatchingMutations(),setTimeout(function(){return c.el.offsetHeight,r(c.el,"odometer-animating")},0),this.value=a):void 0},a.prototype.renderDigit=function(){return s(d)},a.prototype.insertDigit=function(a,b){return null!=b?this.inside.insertBefore(a,b):this.inside.children.length?this.inside.insertBefore(a,this.inside.children[0]):this.inside.appendChild(a)},a.prototype.addSpacer=function(a,b,c){var d;return d=s(g),d.innerHTML=a,c&&r(d,c),this.insertDigit(d,b)},a.prototype.addDigit=function(a,b){var c,d,e,f;if(null==b&&(b=!0),"-"===a)return this.addSpacer(a,null,"odometer-negation-mark");if("."===a)return this.addSpacer(null!=(f=this.format.radix)?f:".",null,"odometer-radix-mark");if(b)for(e=!1;;){if(!this.format.repeating.length){if(e)throw new Error("Bad odometer format without digits");this.resetFormat(),e=!0}if(c=this.format.repeating[this.format.repeating.length-1],this.format.repeating=this.format.repeating.substring(0,this.format.repeating.length-1),"d"===c)break;this.addSpacer(c)}return d=this.renderDigit(),d.querySelector(".odometer-value").innerHTML=a,this.digits.push(d),this.insertDigit(d)},a.prototype.animate=function(a){return p&&"count"!==this.options.animation?this.animateSlide(a):this.animateCount(a)},a.prototype.animateCount=function(a){var c,d,e,f,g,h=this;if(d=+a-this.value)return f=e=u(),c=this.value,(g=function(){var i,j,k;return u()-f>h.options.duration?(h.value=a,h.render(),void z(h.el,"odometerdone")):(i=u()-e,i>b&&(e=u(),k=i/h.options.duration,j=d*k,c+=j,h.render(Math.round(c))),null!=w?w(g):setTimeout(g,b))})()},a.prototype.getDigitCount=function(){var a,b,c,d,e,f;for(d=1<=arguments.length?G.call(arguments,0):[],a=e=0,f=d.length;f>e;a=++e)c=d[a],d[a]=Math.abs(c);return b=Math.max.apply(Math,d),Math.ceil(Math.log(b+1)/Math.log(10))},a.prototype.getFractionalDigitCount=function(){var a,b,c,d,e,f,g;for(e=1<=arguments.length?G.call(arguments,0):[],b=/^\-?\d*\.(\d*?)0*$/,a=f=0,g=e.length;g>f;a=++f)d=e[a],e[a]=d.toString(),c=b.exec(e[a]),e[a]=null==c?0:c[1].length;return Math.max.apply(Math,e)},a.prototype.resetDigits=function(){return this.digits=[],this.ribbons=[],this.inside.innerHTML="",this.resetFormat()},a.prototype.animateSlide=function(a){var b,c,d,f,g,h,i,j,k,l,m,n,o,p,q,s,t,u,v,w,x,y,z,B,C,D,E;if(s=this.value,j=this.getFractionalDigitCount(s,a),j&&(a*=Math.pow(10,j),s*=Math.pow(10,j)),d=a-s){for(this.bindTransitionEnd(),f=this.getDigitCount(s,a),g=[],b=0,m=v=0;f>=0?f>v:v>f;m=f>=0?++v:--v){if(t=A(s/Math.pow(10,f-m-1)),i=A(a/Math.pow(10,f-m-1)),h=i-t,Math.abs(h)>this.MAX_VALUES){for(l=[],n=h/(this.MAX_VALUES+this.MAX_VALUES*b*e),c=t;h>0&&i>c||0>h&&c>i;)l.push(Math.round(c)),c+=n;l[l.length-1]!==i&&l.push(i),b++}else l=function(){E=[];for(var a=t;i>=t?i>=a:a>=i;i>=t?a++:a--)E.push(a);return E}.apply(this);for(m=w=0,y=l.length;y>w;m=++w)k=l[m],l[m]=Math.abs(k%10);g.push(l)}for(this.resetDigits(),D=g.reverse(),m=x=0,z=D.length;z>x;m=++x)for(l=D[m],this.digits[m]||this.addDigit(" ",m>=j),null==(u=this.ribbons)[m]&&(u[m]=this.digits[m].querySelector(".odometer-ribbon-inner")),this.ribbons[m].innerHTML="",0>d&&(l=l.reverse()),o=C=0,B=l.length;B>C;o=++C)k=l[o],q=document.createElement("div"),q.className="odometer-value",q.innerHTML=k,this.ribbons[m].appendChild(q),o===l.length-1&&r(q,"odometer-last-value"),0===o&&r(q,"odometer-first-value");return 0>t&&this.addDigit("-"),p=this.inside.querySelector(".odometer-radix-mark"),null!=p&&p.parent.removeChild(p),j?this.addSpacer(this.format.radix,this.digits[j-1],"odometer-radix-mark"):void 0}},a}(),m.options=null!=(E=window.odometerOptions)?E:{},setTimeout(function(){var a,b,c,d,e;if(window.odometerOptions){d=window.odometerOptions,e=[];for(a in d)b=d[a],e.push(null!=(c=m.options)[a]?(c=m.options)[a]:c[a]=b);return e}},0),m.init=function(){var a,b,c,d,e,f;if(null!=document.querySelectorAll){for(b=document.querySelectorAll(m.options.selector||".odometer"),f=[],c=0,d=b.length;d>c;c++)a=b[c],f.push(a.odometer=new m({el:a,value:null!=(e=a.innerText)?e:a.textContent}));return f}},null!=(null!=(F=document.documentElement)?F.doScroll:void 0)&&null!=document.createEventObject?(D=document.onreadystatechange,document.onreadystatechange=function(){return"complete"===document.readyState&&m.options.auto!==!1&&m.init(),null!=D?D.apply(this,arguments):void 0}):document.addEventListener("DOMContentLoaded",function(){return m.options.auto!==!1?m.init():void 0},!1),"function"==typeof define&&define.amd?define(["jquery"],function(){return m}):"undefined"!=typeof exports&&null!==exports?module.exports=m:window.Odometer=m}).call(this);
5
+
6
+ /*!
7
+ * The Final Countdown for jQuery v2.1.0 (http://hilios.github.io/jQuery.countdown/)
8
+ * Copyright (c) 2015 Edson Hilios
9
+ *
10
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
11
+ * this software and associated documentation files (the "Software"), to deal in
12
+ * the Software without restriction, including without limitation the rights to
13
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
14
+ * the Software, and to permit persons to whom the Software is furnished to do so,
15
+ * subject to the following conditions:
16
+ *
17
+ * The above copyright notice and this permission notice shall be included in all
18
+ * copies or substantial portions of the Software.
19
+ *
20
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
22
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
23
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
24
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
+ */
27
+ !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";function b(a){if(a instanceof Date)return a;if(String(a).match(g))return String(a).match(/^[0-9]*$/)&&(a=Number(a)),String(a).match(/\-/)&&(a=String(a).replace(/\-/g,"/")),new Date(a);throw new Error("Couldn't cast `"+a+"` to a date object.")}function c(a){var b=a.toString().replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");return new RegExp(b)}function d(a){return function(b){var d=b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);if(d)for(var f=0,g=d.length;g>f;++f){var h=d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),j=c(h[0]),k=h[1]||"",l=h[3]||"",m=null;h=h[2],i.hasOwnProperty(h)&&(m=i[h],m=Number(a[m])),null!==m&&("!"===k&&(m=e(l,m)),""===k&&10>m&&(m="0"+m.toString()),b=b.replace(j,m.toString()))}return b=b.replace(/%%/,"%")}}function e(a,b){var c="s",d="";return a&&(a=a.replace(/(:|;|\s)/gi,"").split(/\,/),1===a.length?c=a[0]:(d=a[0],c=a[1])),1===Math.abs(b)?d:c}var f=[],g=[],h={precision:100,elapse:!1};g.push(/^[0-9]*$/.source),g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g=new RegExp(g.join("|"));var i={Y:"years",m:"months",n:"daysToMonth",w:"weeks",d:"daysToWeek",D:"totalDays",H:"hours",M:"minutes",S:"seconds"},j=function(b,c,d){this.el=b,this.$el=a(b),this.interval=null,this.offset={},this.options=a.extend({},h),this.instanceNumber=f.length,f.push(this),this.$el.data("countdown-instance",this.instanceNumber),d&&("function"==typeof d?(this.$el.on("update.countdown",d),this.$el.on("stoped.countdown",d),this.$el.on("finish.countdown",d)):this.options=a.extend({},h,d)),this.setFinalDate(c),this.start()};a.extend(j.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var a=this;this.update(),this.interval=setInterval(function(){a.update.call(a)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent("stoped")},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),f[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(a){this.finalDate=b(a)},update:function(){if(0===this.$el.closest("html").length)return void this.remove();var b,c=void 0!==a._data(this.el,"events"),d=new Date;b=this.finalDate.getTime()-d.getTime(),b=Math.ceil(b/1e3),b=!this.options.elapse&&0>b?0:Math.abs(b),this.totalSecsLeft!==b&&c&&(this.totalSecsLeft=b,this.elapsed=d>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),totalDays:Math.floor(this.totalSecsLeft/60/60/24),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-d.getFullYear())},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent("update"):(this.stop(),this.dispatchEvent("finish")))},dispatchEvent:function(b){var c=a.Event(b+".countdown");c.finalDate=this.finalDate,c.elapsed=this.elapsed,c.offset=a.extend({},this.offset),c.strftime=d(this.offset),this.$el.trigger(c)}}),a.fn.countdown=function(){var b=Array.prototype.slice.call(arguments,0);return this.each(function(){var c=a(this).data("countdown-instance");if(void 0!==c){var d=f[c],e=b[0];j.prototype.hasOwnProperty(e)?d[e].apply(d,b.slice(1)):null===String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(d.setFinalDate.call(d,e),d.start()):a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi,e))}else new j(this,b[0],b[1])})}});
28
+
29
+
30
+ /**!
31
+ * easy-pie-chart
32
+ * Lightweight plugin to render simple, animated and retina optimized pie charts
33
+ *
34
+ * @license
35
+ * @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de)
36
+ * @version 2.1.7
37
+ **/
38
+ !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){var b=function(a,b){var c,d=document.createElement("canvas");a.appendChild(d),"object"==typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(d);var e=d.getContext("2d");d.width=d.height=b.size;var f=1;window.devicePixelRatio>1&&(f=window.devicePixelRatio,d.style.width=d.style.height=[b.size,"px"].join(""),d.width=d.height=b.size*f,e.scale(f,f)),e.translate(b.size/2,b.size/2),e.rotate((-0.5+b.rotate/180)*Math.PI);var g=(b.size-b.lineWidth)/2;b.scaleColor&&b.scaleLength&&(g-=b.scaleLength+2),Date.now=Date.now||function(){return+new Date};var h=function(a,b,c){c=Math.min(Math.max(-1,c||0),1);var d=0>=c?!0:!1;e.beginPath(),e.arc(0,0,g,0,2*Math.PI*c,d),e.strokeStyle=a,e.lineWidth=b,e.stroke()},i=function(){var a,c;e.lineWidth=1,e.fillStyle=b.scaleColor,e.save();for(var d=24;d>0;--d)d%6===0?(c=b.scaleLength,a=0):(c=.6*b.scaleLength,a=b.scaleLength-c),e.fillRect(-b.size/2+a,0,c,1),e.rotate(Math.PI/12);e.restore()},j=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(a){window.setTimeout(a,1e3/60)}}(),k=function(){b.scaleColor&&i(),b.trackColor&&h(b.trackColor,b.trackWidth||b.lineWidth,1)};this.getCanvas=function(){return d},this.getCtx=function(){return e},this.clear=function(){e.clearRect(b.size/-2,b.size/-2,b.size,b.size)},this.draw=function(a){b.scaleColor||b.trackColor?e.getImageData&&e.putImageData?c?e.putImageData(c,0,0):(k(),c=e.getImageData(0,0,b.size*f,b.size*f)):(this.clear(),k()):this.clear(),e.lineCap=b.lineCap;var d;d="function"==typeof b.barColor?b.barColor(a):b.barColor,h(d,b.lineWidth,a/100)}.bind(this),this.animate=function(a,c){var d=Date.now();b.onStart(a,c);var e=function(){var f=Math.min(Date.now()-d,b.animate.duration),g=b.easing(this,f,a,c-a,b.animate.duration);this.draw(g),b.onStep(a,c,g),f>=b.animate.duration?b.onStop(a,c):j(e)}.bind(this);j(e)}.bind(this)},c=function(a,c){var d={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(a,b,c,d,e){return b/=e/2,1>b?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},onStart:function(a,b){},onStep:function(a,b,c){},onStop:function(a,b){}};if("undefined"!=typeof b)d.renderer=b;else{if("undefined"==typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");d.renderer=SVGRenderer}var e={},f=0,g=function(){this.el=a,this.options=e;for(var b in d)d.hasOwnProperty(b)&&(e[b]=c&&"undefined"!=typeof c[b]?c[b]:d[b],"function"==typeof e[b]&&(e[b]=e[b].bind(this)));"string"==typeof e.easing&&"undefined"!=typeof jQuery&&jQuery.isFunction(jQuery.easing[e.easing])?e.easing=jQuery.easing[e.easing]:e.easing=d.easing,"number"==typeof e.animate&&(e.animate={duration:e.animate,enabled:!0}),"boolean"!=typeof e.animate||e.animate||(e.animate={duration:1e3,enabled:e.animate}),this.renderer=new e.renderer(a,e),this.renderer.draw(f),a.dataset&&a.dataset.percent?this.update(parseFloat(a.dataset.percent)):a.getAttribute&&a.getAttribute("data-percent")&&this.update(parseFloat(a.getAttribute("data-percent")))}.bind(this);this.update=function(a){return a=parseFloat(a),e.animate.enabled?this.renderer.animate(f,a):this.renderer.draw(a),f=a,this}.bind(this),this.disableAnimation=function(){return e.animate.enabled=!1,this},this.enableAnimation=function(){return e.animate.enabled=!0,this},g()};a.fn.easyPieChart=function(b){return this.each(function(){var d;a.data(this,"easyPieChart")||(d=a.extend({},b,a(this).data()),a.data(this,"easyPieChart",new c(this,d)))})}});
39
+
40
+
41
+ /***********
42
+ Animates element's number to new number with commas
43
+ Parameters:
44
+ stop (number): number to stop on
45
+ commas (boolean): turn commas on/off (default is true)
46
+ duration (number): how long in ms (default is 1000)
47
+ ease (string): type of easing (default is "swing", others are avaiable from jQuery's easing plugin
48
+ Examples:
49
+ $("#div").animateNumbers(1234, false, 500, "linear"); // half second linear without commas
50
+ $("#div").animateNumbers(1234, true, 2000); // two second swing with commas
51
+ $("#div").animateNumbers(4321); // one second swing with commas
52
+ This fully expects an element containing an integer
53
+ If the number is within copy then separate it with a span and target the span
54
+ Inserts and accounts for commas during animation by default
55
+ ***********/
56
+
57
+ (function(e){e.fn.animateNumbers=function(t,n,r,i){return this.each(function(){var s=e(this);var o=parseInt(s.text().replace(/,/g,""));n=n===undefined?true:n;e({value:o}).animate({value:t},{duration:r==undefined?1e3:r,easing:i==undefined?"swing":i,step:function(){s.text(Math.floor(this.value));if(n){s.text(s.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"))}},complete:function(){if(parseInt(s.text())!==t){s.text(t);if(n){s.text(s.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1,"))}}}})})}})(jQuery);
assets/js/jquery.waypoints.js ADDED
@@ -0,0 +1,662 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ Waypoints - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
+ Licensed under the MIT license.
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
+ */
7
+ (function() {
8
+ 'use strict'
9
+
10
+ var keyCounter = 0
11
+ var allWaypoints = {}
12
+
13
+ /* http://imakewebthings.com/waypoints/api/waypoint */
14
+ function Waypoint(options) {
15
+ if (!options) {
16
+ throw new Error('No options passed to Waypoint constructor')
17
+ }
18
+ if (!options.element) {
19
+ throw new Error('No element option passed to Waypoint constructor')
20
+ }
21
+ if (!options.handler) {
22
+ throw new Error('No handler option passed to Waypoint constructor')
23
+ }
24
+
25
+ this.key = 'waypoint-' + keyCounter
26
+ this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options)
27
+ this.element = this.options.element
28
+ this.adapter = new Waypoint.Adapter(this.element)
29
+ this.callback = options.handler
30
+ this.axis = this.options.horizontal ? 'horizontal' : 'vertical'
31
+ this.enabled = this.options.enabled
32
+ this.triggerPoint = null
33
+ this.group = Waypoint.Group.findOrCreate({
34
+ name: this.options.group,
35
+ axis: this.axis
36
+ })
37
+ this.context = Waypoint.Context.findOrCreateByElement(this.options.context)
38
+
39
+ if (Waypoint.offsetAliases[this.options.offset]) {
40
+ this.options.offset = Waypoint.offsetAliases[this.options.offset]
41
+ }
42
+ this.group.add(this)
43
+ this.context.add(this)
44
+ allWaypoints[this.key] = this
45
+ keyCounter += 1
46
+ }
47
+
48
+ /* Private */
49
+ Waypoint.prototype.queueTrigger = function(direction) {
50
+ this.group.queueTrigger(this, direction)
51
+ }
52
+
53
+ /* Private */
54
+ Waypoint.prototype.trigger = function(args) {
55
+ if (!this.enabled) {
56
+ return
57
+ }
58
+ if (this.callback) {
59
+ this.callback.apply(this, args)
60
+ }
61
+ }
62
+
63
+ /* Public */
64
+ /* http://imakewebthings.com/waypoints/api/destroy */
65
+ Waypoint.prototype.destroy = function() {
66
+ this.context.remove(this)
67
+ this.group.remove(this)
68
+ delete allWaypoints[this.key]
69
+ }
70
+
71
+ /* Public */
72
+ /* http://imakewebthings.com/waypoints/api/disable */
73
+ Waypoint.prototype.disable = function() {
74
+ this.enabled = false
75
+ return this
76
+ }
77
+
78
+ /* Public */
79
+ /* http://imakewebthings.com/waypoints/api/enable */
80
+ Waypoint.prototype.enable = function() {
81
+ this.context.refresh()
82
+ this.enabled = true
83
+ return this
84
+ }
85
+
86
+ /* Public */
87
+ /* http://imakewebthings.com/waypoints/api/next */
88
+ Waypoint.prototype.next = function() {
89
+ return this.group.next(this)
90
+ }
91
+
92
+ /* Public */
93
+ /* http://imakewebthings.com/waypoints/api/previous */
94
+ Waypoint.prototype.previous = function() {
95
+ return this.group.previous(this)
96
+ }
97
+
98
+ /* Private */
99
+ Waypoint.invokeAll = function(method) {
100
+ var allWaypointsArray = []
101
+ for (var waypointKey in allWaypoints) {
102
+ allWaypointsArray.push(allWaypoints[waypointKey])
103
+ }
104
+ for (var i = 0, end = allWaypointsArray.length; i < end; i++) {
105
+ allWaypointsArray[i][method]()
106
+ }
107
+ }
108
+
109
+ /* Public */
110
+ /* http://imakewebthings.com/waypoints/api/destroy-all */
111
+ Waypoint.destroyAll = function() {
112
+ Waypoint.invokeAll('destroy')
113
+ }
114
+
115
+ /* Public */
116
+ /* http://imakewebthings.com/waypoints/api/disable-all */
117
+ Waypoint.disableAll = function() {
118
+ Waypoint.invokeAll('disable')
119
+ }
120
+
121
+ /* Public */
122
+ /* http://imakewebthings.com/waypoints/api/enable-all */
123
+ Waypoint.enableAll = function() {
124
+ Waypoint.Context.refreshAll()
125
+ for (var waypointKey in allWaypoints) {
126
+ allWaypoints[waypointKey].enabled = true
127
+ }
128
+ return this
129
+ }
130
+
131
+ /* Public */
132
+ /* http://imakewebthings.com/waypoints/api/refresh-all */
133
+ Waypoint.refreshAll = function() {
134
+ Waypoint.Context.refreshAll()
135
+ }
136
+
137
+ /* Public */
138
+ /* http://imakewebthings.com/waypoints/api/viewport-height */
139
+ Waypoint.viewportHeight = function() {
140
+ return window.innerHeight || document.documentElement.clientHeight
141
+ }
142
+
143
+ /* Public */
144
+ /* http://imakewebthings.com/waypoints/api/viewport-width */
145
+ Waypoint.viewportWidth = function() {
146
+ return document.documentElement.clientWidth
147
+ }
148
+
149
+ Waypoint.adapters = []
150
+
151
+ Waypoint.defaults = {
152
+ context: window,
153
+ continuous: true,
154
+ enabled: true,
155
+ group: 'default',
156
+ horizontal: false,
157
+ offset: 0
158
+ }
159
+
160
+ Waypoint.offsetAliases = {
161
+ 'bottom-in-view': function() {
162
+ return this.context.innerHeight() - this.adapter.outerHeight()
163
+ },
164
+ 'right-in-view': function() {
165
+ return this.context.innerWidth() - this.adapter.outerWidth()
166
+ }
167
+ }
168
+
169
+ window.Waypoint = Waypoint
170
+ }())
171
+ ;(function() {
172
+ 'use strict'
173
+
174
+ function requestAnimationFrameShim(callback) {
175
+ window.setTimeout(callback, 1000 / 60)
176
+ }
177
+
178
+ var keyCounter = 0
179
+ var contexts = {}
180
+ var Waypoint = window.Waypoint
181
+ var oldWindowLoad = window.onload
182
+
183
+ /* http://imakewebthings.com/waypoints/api/context */
184
+ function Context(element) {
185
+ this.element = element
186
+ this.Adapter = Waypoint.Adapter
187
+ this.adapter = new this.Adapter(element)
188
+ this.key = 'waypoint-context-' + keyCounter
189
+ this.didScroll = false
190
+ this.didResize = false
191
+ this.oldScroll = {
192
+ x: this.adapter.scrollLeft(),
193
+ y: this.adapter.scrollTop()
194
+ }
195
+ this.waypoints = {
196
+ vertical: {},
197
+ horizontal: {}
198
+ }
199
+
200
+ element.waypointContextKey = this.key
201
+ contexts[element.waypointContextKey] = this
202
+ keyCounter += 1
203
+ if (!Waypoint.windowContext) {
204
+ Waypoint.windowContext = true
205
+ Waypoint.windowContext = new Context(window)
206
+ }
207
+
208
+ this.createThrottledScrollHandler()
209
+ this.createThrottledResizeHandler()
210
+ }
211
+
212
+ /* Private */
213
+ Context.prototype.add = function(waypoint) {
214
+ var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical'
215
+ this.waypoints[axis][waypoint.key] = waypoint
216
+ this.refresh()
217
+ }
218
+
219
+ /* Private */
220
+ Context.prototype.checkEmpty = function() {
221
+ var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal)
222
+ var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical)
223
+ var isWindow = this.element == this.element.window
224
+ if (horizontalEmpty && verticalEmpty && !isWindow) {
225
+ this.adapter.off('.waypoints')
226
+ delete contexts[this.key]
227
+ }
228
+ }
229
+
230
+ /* Private */
231
+ Context.prototype.createThrottledResizeHandler = function() {
232
+ var self = this
233
+
234
+ function resizeHandler() {
235
+ self.handleResize()
236
+ self.didResize = false
237
+ }
238
+
239
+ this.adapter.on('resize.waypoints', function() {
240
+ if (!self.didResize) {
241
+ self.didResize = true
242
+ Waypoint.requestAnimationFrame(resizeHandler)
243
+ }
244
+ })
245
+ }
246
+
247
+ /* Private */
248
+ Context.prototype.createThrottledScrollHandler = function() {
249
+ var self = this
250
+ function scrollHandler() {
251
+ self.handleScroll()
252
+ self.didScroll = false
253
+ }
254
+
255
+ this.adapter.on('scroll.waypoints', function() {
256
+ if (!self.didScroll || Waypoint.isTouch) {
257
+ self.didScroll = true
258
+ Waypoint.requestAnimationFrame(scrollHandler)
259
+ }
260
+ })
261
+ }
262
+
263
+ /* Private */
264
+ Context.prototype.handleResize = function() {
265
+ Waypoint.Context.refreshAll()
266
+ }
267
+
268
+ /* Private */
269
+ Context.prototype.handleScroll = function() {
270
+ var triggeredGroups = {}
271
+ var axes = {
272
+ horizontal: {
273
+ newScroll: this.adapter.scrollLeft(),
274
+ oldScroll: this.oldScroll.x,
275
+ forward: 'right',
276
+ backward: 'left'
277
+ },
278
+ vertical: {
279
+ newScroll: this.adapter.scrollTop(),
280
+ oldScroll: this.oldScroll.y,
281
+ forward: 'down',
282
+ backward: 'up'
283
+ }
284
+ }
285
+
286
+ for (var axisKey in axes) {
287
+ var axis = axes[axisKey]
288
+ var isForward = axis.newScroll > axis.oldScroll
289
+ var direction = isForward ? axis.forward : axis.backward
290
+
291
+ for (var waypointKey in this.waypoints[axisKey]) {
292
+ var waypoint = this.waypoints[axisKey][waypointKey]
293
+ if (waypoint.triggerPoint === null) {
294
+ continue
295
+ }
296
+ var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint
297
+ var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint
298
+ var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint
299
+ var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint
300
+ if (crossedForward || crossedBackward) {
301
+ waypoint.queueTrigger(direction)
302
+ triggeredGroups[waypoint.group.id] = waypoint.group
303
+ }
304
+ }
305
+ }
306
+
307
+ for (var groupKey in triggeredGroups) {
308
+ triggeredGroups[groupKey].flushTriggers()
309
+ }
310
+
311
+ this.oldScroll = {
312
+ x: axes.horizontal.newScroll,
313
+ y: axes.vertical.newScroll
314
+ }
315
+ }
316
+
317
+ /* Private */
318
+ Context.prototype.innerHeight = function() {
319
+ /*eslint-disable eqeqeq */
320
+ if (this.element == this.element.window) {
321
+ return Waypoint.viewportHeight()
322
+ }
323
+ /*eslint-enable eqeqeq */
324
+ return this.adapter.innerHeight()
325
+ }
326
+
327
+ /* Private */
328
+ Context.prototype.remove = function(waypoint) {
329
+ delete this.waypoints[waypoint.axis][waypoint.key]
330
+ this.checkEmpty()
331
+ }
332
+
333
+ /* Private */
334
+ Context.prototype.innerWidth = function() {
335
+ /*eslint-disable eqeqeq */
336
+ if (this.element == this.element.window) {
337
+ return Waypoint.viewportWidth()
338
+ }
339
+ /*eslint-enable eqeqeq */
340
+ return this.adapter.innerWidth()
341
+ }
342
+
343
+ /* Public */
344
+ /* http://imakewebthings.com/waypoints/api/context-destroy */
345
+ Context.prototype.destroy = function() {
346
+ var allWaypoints = []
347
+ for (var axis in this.waypoints) {
348
+ for (var waypointKey in this.waypoints[axis]) {
349
+ allWaypoints.push(this.waypoints[axis][waypointKey])
350
+ }
351
+ }
352
+ for (var i = 0, end = allWaypoints.length; i < end; i++) {
353
+ allWaypoints[i].destroy()
354
+ }
355
+ }
356
+
357
+ /* Public */
358
+ /* http://imakewebthings.com/waypoints/api/context-refresh */
359
+ Context.prototype.refresh = function() {
360
+ /*eslint-disable eqeqeq */
361
+ var isWindow = this.element == this.element.window
362
+ /*eslint-enable eqeqeq */
363
+ var contextOffset = isWindow ? undefined : this.adapter.offset()
364
+ var triggeredGroups = {}
365
+ var axes
366
+
367
+ this.handleScroll()
368
+ axes = {
369
+ horizontal: {
370
+ contextOffset: isWindow ? 0 : contextOffset.left,
371
+ contextScroll: isWindow ? 0 : this.oldScroll.x,
372
+ contextDimension: this.innerWidth(),
373
+ oldScroll: this.oldScroll.x,
374
+ forward: 'right',
375
+ backward: 'left',
376
+ offsetProp: 'left'
377
+ },
378
+ vertical: {
379
+ contextOffset: isWindow ? 0 : contextOffset.top,
380
+ contextScroll: isWindow ? 0 : this.oldScroll.y,
381
+ contextDimension: this.innerHeight(),
382
+ oldScroll: this.oldScroll.y,
383
+ forward: 'down',
384
+ backward: 'up',
385
+ offsetProp: 'top'
386
+ }
387
+ }
388
+
389
+ for (var axisKey in axes) {
390
+ var axis = axes[axisKey]
391
+ for (var waypointKey in this.waypoints[axisKey]) {
392
+ var waypoint = this.waypoints[axisKey][waypointKey]
393
+ var adjustment = waypoint.options.offset
394
+ var oldTriggerPoint = waypoint.triggerPoint
395
+ var elementOffset = 0
396
+ var freshWaypoint = oldTriggerPoint == null
397
+ var contextModifier, wasBeforeScroll, nowAfterScroll
398
+ var triggeredBackward, triggeredForward
399
+
400
+ if (waypoint.element !== waypoint.element.window) {
401
+ elementOffset = waypoint.adapter.offset()[axis.offsetProp]
402
+ }
403
+
404
+ if (typeof adjustment === 'function') {
405
+ adjustment = adjustment.apply(waypoint)
406
+ }
407
+ else if (typeof adjustment === 'string') {
408
+ adjustment = parseFloat(adjustment)
409
+ if (waypoint.options.offset.indexOf('%') > - 1) {
410
+ adjustment = Math.ceil(axis.contextDimension * adjustment / 100)
411
+ }
412
+ }
413
+
414
+ contextModifier = axis.contextScroll - axis.contextOffset
415
+ waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment)
416
+ wasBeforeScroll = oldTriggerPoint < axis.oldScroll
417
+ nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll
418
+ triggeredBackward = wasBeforeScroll && nowAfterScroll
419
+ triggeredForward = !wasBeforeScroll && !nowAfterScroll
420
+
421
+ if (!freshWaypoint && triggeredBackward) {
422
+ waypoint.queueTrigger(axis.backward)
423
+ triggeredGroups[waypoint.group.id] = waypoint.group
424
+ }
425
+ else if (!freshWaypoint && triggeredForward) {
426
+ waypoint.queueTrigger(axis.forward)
427
+ triggeredGroups[waypoint.group.id] = waypoint.group
428
+ }
429
+ else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {
430
+ waypoint.queueTrigger(axis.forward)
431
+ triggeredGroups[waypoint.group.id] = waypoint.group
432
+ }
433
+ }
434
+ }
435
+
436
+ Waypoint.requestAnimationFrame(function() {
437
+ for (var groupKey in triggeredGroups) {
438
+ triggeredGroups[groupKey].flushTriggers()
439
+ }
440
+ })
441
+
442
+ return this
443
+ }
444
+
445
+ /* Private */
446
+ Context.findOrCreateByElement = function(element) {
447
+ return Context.findByElement(element) || new Context(element)
448
+ }
449
+
450
+ /* Private */
451
+ Context.refreshAll = function() {
452
+ for (var contextId in contexts) {
453
+ contexts[contextId].refresh()
454
+ }
455
+ }
456
+
457
+ /* Public */
458
+ /* http://imakewebthings.com/waypoints/api/context-find-by-element */
459
+ Context.findByElement = function(element) {
460
+ return contexts[element.waypointContextKey]
461
+ }
462
+
463
+ window.onload = function() {
464
+ if (oldWindowLoad) {
465
+ oldWindowLoad()
466
+ }
467
+ Context.refreshAll()
468
+ }
469
+
470
+
471
+ Waypoint.requestAnimationFrame = function(callback) {
472
+ var requestFn = window.requestAnimationFrame ||
473
+ window.mozRequestAnimationFrame ||
474
+ window.webkitRequestAnimationFrame ||
475
+ requestAnimationFrameShim
476
+ requestFn.call(window, callback)
477
+ }
478
+ Waypoint.Context = Context
479
+ }())
480
+ ;(function() {
481
+ 'use strict'
482
+
483
+ function byTriggerPoint(a, b) {
484
+ return a.triggerPoint - b.triggerPoint
485
+ }
486
+
487
+ function byReverseTriggerPoint(a, b) {
488
+ return b.triggerPoint - a.triggerPoint
489
+ }
490
+
491
+ var groups = {
492
+ vertical: {},
493
+ horizontal: {}
494
+ }
495
+ var Waypoint = window.Waypoint
496
+
497
+ /* http://imakewebthings.com/waypoints/api/group */
498
+ function Group(options) {
499
+ this.name = options.name
500
+ this.axis = options.axis
501
+ this.id = this.name + '-' + this.axis
502
+ this.waypoints = []
503
+ this.clearTriggerQueues()
504
+ groups[this.axis][this.name] = this
505
+ }
506
+
507
+ /* Private */
508
+ Group.prototype.add = function(waypoint) {
509
+ this.waypoints.push(waypoint)
510
+ }
511
+
512
+ /* Private */
513
+ Group.prototype.clearTriggerQueues = function() {
514
+ this.triggerQueues = {
515
+ up: [],
516
+ down: [],
517
+ left: [],
518
+ right: []
519
+ }
520
+ }
521
+
522
+ /* Private */
523
+ Group.prototype.flushTriggers = function() {
524
+ for (var direction in this.triggerQueues) {
525
+ var waypoints = this.triggerQueues[direction]
526
+ var reverse = direction === 'up' || direction === 'left'
527
+ waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)
528
+ for (var i = 0, end = waypoints.length; i < end; i += 1) {
529
+ var waypoint = waypoints[i]
530
+ if (waypoint.options.continuous || i === waypoints.length - 1) {
531
+ waypoint.trigger([direction])
532
+ }
533
+ }
534
+ }
535
+ this.clearTriggerQueues()
536
+ }
537
+
538
+ /* Private */
539
+ Group.prototype.next = function(waypoint) {
540
+ this.waypoints.sort(byTriggerPoint)
541
+ var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)
542
+ var isLast = index === this.waypoints.length - 1
543
+ return isLast ? null : this.waypoints[index + 1]
544
+ }
545
+
546
+ /* Private */
547
+ Group.prototype.previous = function(waypoint) {
548
+ this.waypoints.sort(byTriggerPoint)
549
+ var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)
550
+ return index ? this.waypoints[index - 1] : null
551
+ }
552
+
553
+ /* Private */
554
+ Group.prototype.queueTrigger = function(waypoint, direction) {
555
+ this.triggerQueues[direction].push(waypoint)
556
+ }
557
+
558
+ /* Private */
559
+ Group.prototype.remove = function(waypoint) {
560
+ var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)
561
+ if (index > -1) {
562
+ this.waypoints.splice(index, 1)
563
+ }
564
+ }
565
+
566
+ /* Public */
567
+ /* http://imakewebthings.com/waypoints/api/first */
568
+ Group.prototype.first = function() {
569
+ return this.waypoints[0]
570
+ }
571
+
572
+ /* Public */
573
+ /* http://imakewebthings.com/waypoints/api/last */
574
+ Group.prototype.last = function() {
575
+ return this.waypoints[this.waypoints.length - 1]
576
+ }
577
+
578
+ /* Private */
579
+ Group.findOrCreate = function(options) {
580
+ return groups[options.axis][options.name] || new Group(options)
581
+ }
582
+
583
+ Waypoint.Group = Group
584
+ }())
585
+ ;(function() {
586
+ 'use strict'
587
+
588
+ var $ = window.jQuery
589
+ var Waypoint = window.Waypoint
590
+
591
+ function JQueryAdapter(element) {
592
+ this.$element = $(element)
593
+ }
594
+
595
+ $.each([
596
+ 'innerHeight',
597
+ 'innerWidth',
598
+ 'off',
599
+ 'offset',
600
+ 'on',
601
+ 'outerHeight',
602
+ 'outerWidth',
603
+ 'scrollLeft',
604
+ 'scrollTop'
605
+ ], function(i, method) {
606
+ JQueryAdapter.prototype[method] = function() {
607
+ var args = Array.prototype.slice.call(arguments)
608
+ return this.$element[method].apply(this.$element, args)
609
+ }
610
+ })
611
+
612
+ $.each([
613
+ 'extend',
614
+ 'inArray',
615
+ 'isEmptyObject'
616
+ ], function(i, method) {
617
+ JQueryAdapter[method] = $[method]
618
+ })
619
+
620
+ Waypoint.adapters.push({
621
+ name: 'jquery',
622
+ Adapter: JQueryAdapter
623
+ })
624
+ Waypoint.Adapter = JQueryAdapter
625
+ }())
626
+ ;(function() {
627
+ 'use strict'
628
+
629
+ var Waypoint = window.Waypoint
630
+
631
+ function createExtension(framework) {
632
+ return function() {
633
+ var waypoints = []
634
+ var overrides = arguments[0]
635
+
636
+ if (framework.isFunction(arguments[0])) {
637
+ overrides = framework.extend({}, arguments[1])
638
+ overrides.handler = arguments[0]
639
+ }
640
+
641
+ this.each(function() {
642
+ var options = framework.extend({}, overrides, {
643
+ element: this
644
+ })
645
+ if (typeof options.context === 'string') {
646
+ options.context = framework(this).closest(options.context)[0]
647
+ }
648
+ waypoints.push(new Waypoint(options))
649
+ })
650
+
651
+ return waypoints
652
+ }
653
+ }
654
+
655
+ if (window.jQuery) {
656
+ window.jQuery.fn.livemeshWaypoint = createExtension(window.jQuery)
657
+ }
658
+ if (window.Zepto) {
659
+ window.Zepto.fn.livemeshWaypoint = createExtension(window.Zepto)
660
+ }
661
+ }())
662
+ ;
assets/js/jquery.waypoints.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ Waypoints - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
+ Licensed under the MIT license.
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
+ */
7
+ !function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.livemeshWaypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.livemeshWaypoint=t(window.Zepto))}();
assets/js/lvca-frontend.js ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Reviews JS
3
+ */
4
+ if (typeof (jQuery) != 'undefined') {
5
+
6
+ (function ($) {
7
+ "use strict";
8
+
9
+ $(function () {
10
+
11
+
12
+ var LVCA_Frontend = {
13
+
14
+ init: function () {
15
+ this.carousel();
16
+ this.output_custom_css();
17
+ this.setup_animations();
18
+ },
19
+
20
+ isMobile: function () {
21
+ "use strict";
22
+ if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
23
+ return true;
24
+ }
25
+ return false;
26
+ },
27
+
28
+ vendor_prefix: function () {
29
+
30
+ var prefix;
31
+
32
+ function prefix() {
33
+ var styles = window.getComputedStyle(document.documentElement, '');
34
+ prefix = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o']))[1];
35
+
36
+ return prefix;
37
+ }
38
+
39
+ prefix();
40
+
41
+ return prefix;
42
+ },
43
+
44
+ output_custom_css: function () {
45
+
46
+ var custom_css = lvca_settings['custom_css'];
47
+ if (custom_css !== undefined && custom_css !== '') {
48
+ custom_css = '<style type="text/css">' + custom_css + '</style>';
49
+ $('head').append(custom_css);
50
+ }
51
+ },
52
+
53
+ setup_animations: function () {
54
+
55
+ /* Hide the elements if required to prepare for animation */
56
+ $(".lvca-visible-on-scroll:not(.animated)").css('opacity', 0);
57
+
58
+ "function" != typeof window.lvca_animate_widgets && (window.lvca_animate_widgets = function () {
59
+ "undefined" != typeof $.fn.livemeshWaypoint && $(".lvca-animate-on-scroll:not(.animated)").livemeshWaypoint(function () {
60
+ var animateClass = $(this.element).data("animation");
61
+ $(this.element).addClass("animated " + animateClass).css('opacity', 1);
62
+ }, {
63
+ offset: "85%"
64
+ })
65
+ });
66
+
67
+ window.setTimeout(lvca_animate_widgets, 500)
68
+ },
69
+
70
+ carousel: function () {
71
+
72
+ if ($().slick === undefined) {
73
+ return;
74
+ }
75
+
76
+ var carousel_elements = $('.lvca-carousel, .lvca-posts-carousel, .lvca-gallery-carousel');
77
+
78
+ carousel_elements.each(function () {
79
+
80
+ var carousel_elem = $(this);
81
+
82
+ var settings = carousel_elem.data('settings');
83
+
84
+ var arrows = settings['arrows'] ? true : false;
85
+
86
+ var dots = settings['dots'] ? true : false;
87
+
88
+ var autoplay = settings['autoplay'] ? true : false;
89
+
90
+ var autoplay_speed = parseInt(settings['autoplay_speed']) || 3000;
91
+
92
+ var animation_speed = parseInt(settings['animation_speed']) || 300;
93
+
94
+ var fade = settings['fade'] ? true : false;
95
+
96
+ var pause_on_hover = settings['pause_on_hover'] ? true : false;
97
+
98
+ var display_columns = parseInt(settings['display_columns']) || 4;
99
+
100
+ var scroll_columns = parseInt(settings['scroll_columns']) || 4;
101
+
102
+ var tablet_width = parseInt(settings['tablet_width']) || 800;
103
+
104
+ var tablet_display_columns = parseInt(settings['tablet_display_columns']) || 2;
105
+
106
+ var tablet_scroll_columns = parseInt(settings['tablet_scroll_columns']) || 2;
107
+
108
+ var mobile_width = parseInt(settings['mobile_width']) || 480;
109
+
110
+ var mobile_display_columns = parseInt(settings['mobile_display_columns']) || 1;
111
+
112
+ var mobile_scroll_columns = parseInt(settings['mobile_scroll_columns']) || 1;
113
+
114
+ carousel_elem.slick({
115
+ arrows: arrows,
116
+ dots: dots,
117
+ infinite: true,
118
+ autoplay: autoplay,
119
+ autoplaySpeed: autoplay_speed,
120
+ speed: animation_speed,
121
+ fade: false,
122
+ pauseOnHover: pause_on_hover,
123
+ slidesToShow: display_columns,
124
+ slidesToScroll: scroll_columns,
125
+ responsive: [
126
+ {
127
+ breakpoint: tablet_width,
128
+ settings: {
129
+ slidesToShow: tablet_display_columns,
130
+ slidesToScroll: tablet_scroll_columns
131
+ }
132
+ },
133
+ {
134
+ breakpoint: mobile_width,
135
+ settings: {
136
+ slidesToShow: mobile_display_columns,
137
+ slidesToScroll: mobile_scroll_columns
138
+ }
139
+ }
140
+ ]
141
+ });
142
+ });
143
+ }
144
+
145
+ }
146
+
147
+ LVCA_Frontend.init();
148
+
149
+ });
150
+
151
+ }(jQuery));
152
+
153
+ }
assets/js/lvca-frontend.min.js ADDED
@@ -0,0 +1 @@
 
1
+ if(typeof jQuery!="undefined"){(function($){"use strict";$(function(){var LVCA_Frontend={init:function(){this.carousel();this.output_custom_css();this.setup_animations()},isMobile:function(){"use strict";if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){return true}return false},vendor_prefix:function(){var prefix;function prefix(){var styles=window.getComputedStyle(document.documentElement,"");prefix=(Array.prototype.slice.call(styles).join("").match(/-(moz|webkit|ms)-/)||styles.OLink===""&&["","o"])[1];return prefix}prefix();return prefix},output_custom_css:function(){var custom_css=lvca_settings["custom_css"];if(custom_css!==undefined&&custom_css!==""){custom_css='<style type="text/css">'+custom_css+"</style>";$("head").append(custom_css)}},setup_animations:function(){$(".lvca-visible-on-scroll:not(.animated)").css("opacity",0);"function"!=typeof window.lvca_animate_widgets&&(window.lvca_animate_widgets=function(){"undefined"!=typeof $.fn.livemeshWaypoint&&$(".lvca-animate-on-scroll:not(.animated)").livemeshWaypoint(function(){var animateClass=$(this.element).data("animation");$(this.element).addClass("animated "+animateClass).css("opacity",1)},{offset:"85%"})});window.setTimeout(lvca_animate_widgets,500)},carousel:function(){if($().slick===undefined){return}var carousel_elements=$(".lvca-carousel, .lvca-posts-carousel, .lvca-gallery-carousel");carousel_elements.each(function(){var carousel_elem=$(this);var settings=carousel_elem.data("settings");var arrows=settings["arrows"]?true:false;var dots=settings["dots"]?true:false;var autoplay=settings["autoplay"]?true:false;var autoplay_speed=parseInt(settings["autoplay_speed"])||3e3;var animation_speed=parseInt(settings["animation_speed"])||300;var fade=settings["fade"]?true:false;var pause_on_hover=settings["pause_on_hover"]?true:false;var display_columns=parseInt(settings["display_columns"])||4;var scroll_columns=parseInt(settings["scroll_columns"])||4;var tablet_width=parseInt(settings["tablet_width"])||800;var tablet_display_columns=parseInt(settings["tablet_display_columns"])||2;var tablet_scroll_columns=parseInt(settings["tablet_scroll_columns"])||2;var mobile_width=parseInt(settings["mobile_width"])||480;var mobile_display_columns=parseInt(settings["mobile_display_columns"])||1;var mobile_scroll_columns=parseInt(settings["mobile_scroll_columns"])||1;carousel_elem.slick({arrows:arrows,dots:dots,infinite:true,autoplay:autoplay,autoplaySpeed:autoplay_speed,speed:animation_speed,fade:false,pauseOnHover:pause_on_hover,slidesToShow:display_columns,slidesToScroll:scroll_columns,responsive:[{breakpoint:tablet_width,settings:{slidesToShow:tablet_display_columns,slidesToScroll:tablet_scroll_columns}},{breakpoint:mobile_width,settings:{slidesToShow:mobile_display_columns,slidesToScroll:mobile_scroll_columns}}]})})}};LVCA_Frontend.init()})})(jQuery)}
assets/js/modernizr-custom.js ADDED
@@ -0,0 +1,1384 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * modernizr v3.3.1
3
+ * Build http://modernizr.com/download?-csstransforms-csstransforms3d-flexbox-flexboxlegacy-touchevents-setclasses-shiv-dontmin-cssclassprefix:lvca-
4
+ *
5
+ * Copyright (c)
6
+ * Faruk Ates
7
+ * Paul Irish
8
+ * Alex Sexton
9
+ * Ryan Seddon
10
+ * Patrick Kettner
11
+ * Stu Cox
12
+ * Richard Herrera
13
+
14
+ * MIT License
15
+ */
16
+
17
+ /*
18
+ * Modernizr tests which native CSS3 and HTML5 features are available in the
19
+ * current UA and makes the results available to you in two ways: as properties on
20
+ * a global `Modernizr` object, and as classes on the `<html>` element. This
21
+ * information allows you to progressively enhance your pages with a granular level
22
+ * of control over the experience.
23
+ */
24
+
25
+ ;(function(window, document, undefined){
26
+ var classes = [];
27
+
28
+
29
+ var tests = [];
30
+
31
+
32
+ /**
33
+ *
34
+ * ModernizrProto is the constructor for Modernizr
35
+ *
36
+ * @class
37
+ * @access public
38
+ */
39
+
40
+ var ModernizrProto = {
41
+ // The current version, dummy
42
+ _version: '3.3.1',
43
+
44
+ // Any settings that don't work as separate modules
45
+ // can go in here as configuration.
46
+ _config: {
47
+ 'classPrefix': "lvca-",
48
+ 'enableClasses': true,
49
+ 'enableJSClass': true,
50
+ 'usePrefixes': true
51
+ },
52
+
53
+ // Queue of tests
54
+ _q: [],
55
+
56
+ // Stub these for people who are listening
57
+ on: function(test, cb) {
58
+ // I don't really think people should do this, but we can
59
+ // safe guard it a bit.
60
+ // -- NOTE:: this gets WAY overridden in src/addTest for actual async tests.
61
+ // This is in case people listen to synchronous tests. I would leave it out,
62
+ // but the code to *disallow* sync tests in the real version of this
63
+ // function is actually larger than this.
64
+ var self = this;
65
+ setTimeout(function() {
66
+ cb(self[test]);
67
+ }, 0);
68
+ },
69
+
70
+ addTest: function(name, fn, options) {
71
+ tests.push({name: name, fn: fn, options: options});
72
+ },
73
+
74
+ addAsyncTest: function(fn) {
75
+ tests.push({name: null, fn: fn});
76
+ }
77
+ };
78
+
79
+
80
+
81
+ // Fake some of Object.create so we can force non test results to be non "own" properties.
82
+ var Modernizr = function() {};
83
+ Modernizr.prototype = ModernizrProto;
84
+
85
+ // Leak modernizr globally when you `require` it rather than force it here.
86
+ // Overwrite name so constructor name is nicer :D
87
+ Modernizr = new Modernizr();
88
+
89
+
90
+
91
+ /**
92
+ * is returns a boolean if the typeof an obj is exactly type.
93
+ *
94
+ * @access private
95
+ * @function is
96
+ * @param {*} obj - A thing we want to check the type of
97
+ * @param {string} type - A string to compare the typeof against
98
+ * @returns {boolean}
99
+ */
100
+
101
+ function is(obj, type) {
102
+ return typeof obj === type;
103
+ }
104
+ ;
105
+
106
+ /**
107
+ * Run through all tests and detect their support in the current UA.
108
+ *
109
+ * @access private
110
+ */
111
+
112
+ function testRunner() {
113
+ var featureNames;
114
+ var feature;
115
+ var aliasIdx;
116
+ var result;
117
+ var nameIdx;
118
+ var featureName;
119
+ var featureNameSplit;
120
+
121
+ for (var featureIdx in tests) {
122
+ if (tests.hasOwnProperty(featureIdx)) {
123
+ featureNames = [];
124
+ feature = tests[featureIdx];
125
+ // run the test, throw the return value into the Modernizr,
126
+ // then based on that boolean, define an appropriate className
127
+ // and push it into an array of classes we'll join later.
128
+ //
129
+ // If there is no name, it's an 'async' test that is run,
130
+ // but not directly added to the object. That should
131
+ // be done with a post-run addTest call.
132
+ if (feature.name) {
133
+ featureNames.push(feature.name.toLowerCase());
134
+
135
+ if (feature.options && feature.options.aliases && feature.options.aliases.length) {
136
+ // Add all the aliases into the names list
137
+ for (aliasIdx = 0; aliasIdx < feature.options.aliases.length; aliasIdx++) {
138
+ featureNames.push(feature.options.aliases[aliasIdx].toLowerCase());
139
+ }
140
+ }
141
+ }
142
+
143
+ // Run the test, or use the raw value if it's not a function
144
+ result = is(feature.fn, 'function') ? feature.fn() : feature.fn;
145
+
146
+
147
+ // Set each of the names on the Modernizr object
148
+ for (nameIdx = 0; nameIdx < featureNames.length; nameIdx++) {
149
+ featureName = featureNames[nameIdx];
150
+ // Support dot properties as sub tests. We don't do checking to make sure
151
+ // that the implied parent tests have been added. You must call them in
152
+ // order (either in the test, or make the parent test a dependency).
153
+ //
154
+ // Cap it to TWO to make the logic simple and because who needs that kind of subtesting
155
+ // hashtag famous last words
156
+ featureNameSplit = featureName.split('.');
157
+
158
+ if (featureNameSplit.length === 1) {
159
+ Modernizr[featureNameSplit[0]] = result;
160
+ } else {
161
+ // cast to a Boolean, if not one already
162
+ /* jshint -W053 */
163
+ if (Modernizr[featureNameSplit[0]] && !(Modernizr[featureNameSplit[0]] instanceof Boolean)) {
164
+ Modernizr[featureNameSplit[0]] = new Boolean(Modernizr[featureNameSplit[0]]);
165
+ }
166
+
167
+ Modernizr[featureNameSplit[0]][featureNameSplit[1]] = result;
168
+ }
169
+
170
+ classes.push((result ? '' : 'no-') + featureNameSplit.join('-'));
171
+ }
172
+ }
173
+ }
174
+ }
175
+ ;
176
+
177
+ /**
178
+ * docElement is a convenience wrapper to grab the root element of the document
179
+ *
180
+ * @access private
181
+ * @returns {HTMLElement|SVGElement} The root element of the document
182
+ */
183
+
184
+ var docElement = document.documentElement;
185
+
186
+
187
+ /**
188
+ * A convenience helper to check if the document we are running in is an SVG document
189
+ *
190
+ * @access private
191
+ * @returns {boolean}
192
+ */
193
+
194
+ var isSVG = docElement.nodeName.toLowerCase() === 'svg';
195
+
196
+
197
+ /**
198
+ * setClasses takes an array of class names and adds them to the root element
199
+ *
200
+ * @access private
201
+ * @function setClasses
202
+ * @param {string[]} classes - Array of class names
203
+ */
204
+
205
+ // Pass in an and array of class names, e.g.:
206
+ // ['no-webp', 'borderradius', ...]
207
+ function setClasses(classes) {
208
+ var className = docElement.className;
209
+ var classPrefix = Modernizr._config.classPrefix || '';
210
+
211
+ if (isSVG) {
212
+ className = className.baseVal;
213
+ }
214
+
215
+ // Change `no-js` to `js` (independently of the `enableClasses` option)
216
+ // Handle classPrefix on this too
217
+ if (Modernizr._config.enableJSClass) {
218
+ var reJS = new RegExp('(^|\\s)' + classPrefix + 'no-js(\\s|$)');
219
+ className = className.replace(reJS, '$1' + classPrefix + 'js$2');
220
+ }
221
+
222
+ if (Modernizr._config.enableClasses) {
223
+ // Add the new classes
224
+ className += ' ' + classPrefix + classes.join(' ' + classPrefix);
225
+ isSVG ? docElement.className.baseVal = className : docElement.className = className;
226
+ }
227
+
228
+ }
229
+
230
+ ;
231
+
232
+ /**
233
+ * @optionName html5shiv
234
+ * @optionProp html5shiv
235
+ */
236
+
237
+ // Take the html5 variable out of the html5shiv scope so we can return it.
238
+ var html5;
239
+ if (!isSVG) {
240
+ /**
241
+ * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
242
+ */
243
+ ;(function(window, document) {
244
+ /*jshint evil:true */
245
+ /** version */
246
+ var version = '3.7.3';
247
+
248
+ /** Preset options */
249
+ var options = window.html5 || {};
250
+
251
+ /** Used to skip problem elements */
252
+ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
253
+
254
+ /** Not all elements can be cloned in IE **/
255
+ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
256
+
257
+ /** Detect whether the browser supports default html5 styles */
258
+ var supportsHtml5Styles;
259
+
260
+ /** Name of the expando, to work with multiple documents or to re-shiv one document */
261
+ var expando = '_html5shiv';
262
+
263
+ /** The id for the the documents expando */
264
+ var expanID = 0;
265
+
266
+ /** Cached data for each document */
267
+ var expandoData = {};
268
+
269
+ /** Detect whether the browser supports unknown elements */
270
+ var supportsUnknownElements;
271
+
272
+ (function() {
273
+ try {
274
+ var a = document.createElement('a');
275
+ a.innerHTML = '<xyz></xyz>';
276
+ //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
277
+ supportsHtml5Styles = ('hidden' in a);
278
+
279
+ supportsUnknownElements = a.childNodes.length == 1 || (function() {
280
+ // assign a false positive if unable to shiv
281
+ (document.createElement)('a');
282
+ var frag = document.createDocumentFragment();
283
+ return (
284
+ typeof frag.cloneNode == 'undefined' ||
285
+ typeof frag.createDocumentFragment == 'undefined' ||
286
+ typeof frag.createElement == 'undefined'
287
+ );
288
+ }());
289
+ } catch(e) {
290
+ // assign a false positive if detection fails => unable to shiv
291
+ supportsHtml5Styles = true;
292
+ supportsUnknownElements = true;
293
+ }
294
+
295
+ }());
296
+
297
+ /*--------------------------------------------------------------------------*/
298
+
299
+ /**
300
+ * Creates a style sheet with the given CSS text and adds it to the document.
301
+ * @private
302
+ * @param {Document} ownerDocument The document.
303
+ * @param {String} cssText The CSS text.
304
+ * @returns {StyleSheet} The style element.
305
+ */
306
+ function addStyleSheet(ownerDocument, cssText) {
307
+ var p = ownerDocument.createElement('p'),
308
+ parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
309
+
310
+ p.innerHTML = 'x<style>' + cssText + '</style>';
311
+ return parent.insertBefore(p.lastChild, parent.firstChild);
312
+ }
313
+
314
+ /**
315
+ * Returns the value of `html5.elements` as an array.
316
+ * @private
317
+ * @returns {Array} An array of shived element node names.
318
+ */
319
+ function getElements() {
320
+ var elements = html5.elements;
321
+ return typeof elements == 'string' ? elements.split(' ') : elements;
322
+ }
323
+
324
+ /**
325
+ * Extends the built-in list of html5 elements
326
+ * @memberOf html5
327
+ * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
328
+ * @param {Document} ownerDocument The context document.
329
+ */
330
+ function addElements(newElements, ownerDocument) {
331
+ var elements = html5.elements;
332
+ if(typeof elements != 'string'){
333
+ elements = elements.join(' ');
334
+ }
335
+ if(typeof newElements != 'string'){
336
+ newElements = newElements.join(' ');
337
+ }
338
+ html5.elements = elements +' '+ newElements;
339
+ shivDocument(ownerDocument);
340
+ }
341
+
342
+ /**
343
+ * Returns the data associated to the given document
344
+ * @private
345
+ * @param {Document} ownerDocument The document.
346
+ * @returns {Object} An object of data.
347
+ */
348
+ function getExpandoData(ownerDocument) {
349
+ var data = expandoData[ownerDocument[expando]];
350
+ if (!data) {
351
+ data = {};
352
+ expanID++;
353
+ ownerDocument[expando] = expanID;
354
+ expandoData[expanID] = data;
355
+ }
356
+ return data;
357
+ }
358
+
359
+ /**
360
+ * returns a shived element for the given nodeName and document
361
+ * @memberOf html5
362
+ * @param {String} nodeName name of the element
363
+ * @param {Document|DocumentFragment} ownerDocument The context document.
364
+ * @returns {Object} The shived element.
365
+ */
366
+ function createElement(nodeName, ownerDocument, data){
367
+ if (!ownerDocument) {
368
+ ownerDocument = document;
369
+ }
370
+ if(supportsUnknownElements){
371
+ return ownerDocument.createElement(nodeName);
372
+ }
373
+ if (!data) {
374
+ data = getExpandoData(ownerDocument);
375
+ }
376
+ var node;
377
+
378
+ if (data.cache[nodeName]) {
379
+ node = data.cache[nodeName].cloneNode();
380
+ } else if (saveClones.test(nodeName)) {
381
+ node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
382
+ } else {
383
+ node = data.createElem(nodeName);
384
+ }
385
+
386
+ // Avoid adding some elements to fragments in IE < 9 because
387
+ // * Attributes like `name` or `type` cannot be set/changed once an element
388
+ // is inserted into a document/fragment
389
+ // * Link elements with `src` attributes that are inaccessible, as with
390
+ // a 403 response, will cause the tab/window to crash
391
+ // * Script elements appended to fragments will execute when their `src`
392
+ // or `text` property is set
393
+ return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
394
+ }
395
+
396
+ /**
397
+ * returns a shived DocumentFragment for the given document
398
+ * @memberOf html5
399
+ * @param {Document} ownerDocument The context document.
400
+ * @returns {Object} The shived DocumentFragment.
401
+ */
402
+ function createDocumentFragment(ownerDocument, data){
403
+ if (!ownerDocument) {
404
+ ownerDocument = document;
405
+ }
406
+ if(supportsUnknownElements){
407
+ return ownerDocument.createDocumentFragment();
408
+ }
409
+ data = data || getExpandoData(ownerDocument);
410
+ var clone = data.frag.cloneNode(),
411
+ i = 0,
412
+ elems = getElements(),
413
+ l = elems.length;
414
+ for(;i<l;i++){
415
+ clone.createElement(elems[i]);
416
+ }
417
+ return clone;
418
+ }
419
+
420
+ /**
421
+ * Shivs the `createElement` and `createDocumentFragment` methods of the document.
422
+ * @private
423
+ * @param {Document|DocumentFragment} ownerDocument The document.
424
+ * @param {Object} data of the document.
425
+ */
426
+ function shivMethods(ownerDocument, data) {
427
+ if (!data.cache) {
428
+ data.cache = {};
429
+ data.createElem = ownerDocument.createElement;
430
+ data.createFrag = ownerDocument.createDocumentFragment;
431
+ data.frag = data.createFrag();
432
+ }
433
+
434
+
435
+ ownerDocument.createElement = function(nodeName) {
436
+ //abort shiv
437
+ if (!html5.shivMethods) {
438
+ return data.createElem(nodeName);
439
+ }
440
+ return createElement(nodeName, ownerDocument, data);
441
+ };
442
+
443
+ ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
444
+ 'var n=f.cloneNode(),c=n.createElement;' +
445
+ 'h.shivMethods&&(' +
446
+ // unroll the `createElement` calls
447
+ getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
448
+ data.createElem(nodeName);
449
+ data.frag.createElement(nodeName);
450
+ return 'c("' + nodeName + '")';
451
+ }) +
452
+ ');return n}'
453
+ )(html5, data.frag);
454
+ }
455
+
456
+ /*--------------------------------------------------------------------------*/
457
+
458
+ /**
459
+ * Shivs the given document.
460
+ * @memberOf html5
461
+ * @param {Document} ownerDocument The document to shiv.
462
+ * @returns {Document} The shived document.
463
+ */
464
+ function shivDocument(ownerDocument) {
465
+ if (!ownerDocument) {
466
+ ownerDocument = document;
467
+ }
468
+ var data = getExpandoData(ownerDocument);
469
+
470
+ if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
471
+ data.hasCSS = !!addStyleSheet(ownerDocument,
472
+ // corrects block display not defined in IE6/7/8/9
473
+ 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
474
+ // adds styling not present in IE6/7/8/9
475
+ 'mark{background:#FF0;color:#000}' +
476
+ // hides non-rendered elements
477
+ 'template{display:none}'
478
+ );
479
+ }
480
+ if (!supportsUnknownElements) {
481
+ shivMethods(ownerDocument, data);
482
+ }
483
+ return ownerDocument;
484
+ }
485
+
486
+ /*--------------------------------------------------------------------------*/
487
+
488
+ /**
489
+ * The `html5` object is exposed so that more elements can be shived and
490
+ * existing shiving can be detected on iframes.
491
+ * @type Object
492
+ * @example
493
+ *
494
+ * // options can be changed before the script is included
495
+ * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
496
+ */
497
+ var html5 = {
498
+
499
+ /**
500
+ * An array or space separated string of node names of the elements to shiv.
501
+ * @memberOf html5
502
+ * @type Array|String
503
+ */
504
+ 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
505
+
506
+ /**
507
+ * current version of html5shiv
508
+ */
509
+ 'version': version,
510
+
511
+ /**
512
+ * A flag to indicate that the HTML5 style sheet should be inserted.
513
+ * @memberOf html5
514
+ * @type Boolean
515
+ */
516
+ 'shivCSS': (options.shivCSS !== false),
517
+
518
+ /**
519
+ * Is equal to true if a browser supports creating unknown/HTML5 elements
520
+ * @memberOf html5
521
+ * @type boolean
522
+ */
523
+ 'supportsUnknownElements': supportsUnknownElements,
524
+
525
+ /**
526
+ * A flag to indicate that the document's `createElement` and `createDocumentFragment`
527
+ * methods should be overwritten.
528
+ * @memberOf html5
529
+ * @type Boolean
530
+ */
531
+ 'shivMethods': (options.shivMethods !== false),
532
+
533
+ /**
534
+ * A string to describe the type of `html5` object ("default" or "default print").
535
+ * @memberOf html5
536
+ * @type String
537
+ */
538
+ 'type': 'default',
539
+
540
+ // shivs the document according to the specified `html5` object options
541
+ 'shivDocument': shivDocument,
542
+
543
+ //creates a shived element
544
+ createElement: createElement,
545
+
546
+ //creates a shived documentFragment
547
+ createDocumentFragment: createDocumentFragment,
548
+
549
+ //extends list of elements
550
+ addElements: addElements
551
+ };
552
+
553
+ /*--------------------------------------------------------------------------*/
554
+
555
+ // expose html5
556
+ window.html5 = html5;
557
+
558
+ // shiv the document
559
+ shivDocument(document);
560
+
561
+ if(typeof module == 'object' && module.exports){
562
+ module.exports = html5;
563
+ }
564
+
565
+ }(typeof window !== "undefined" ? window : this, document));
566
+ }
567
+ ;
568
+
569
+ /**
570
+ * List of property values to set for css tests. See ticket #21
571
+ * http://git.io/vUGl4
572
+ *
573
+ * @memberof Modernizr
574
+ * @name Modernizr._prefixes
575
+ * @optionName Modernizr._prefixes
576
+ * @optionProp prefixes
577
+ * @access public
578
+ * @example
579
+ *
580
+ * Modernizr._prefixes is the internal list of prefixes that we test against
581
+ * inside of things like [prefixed](#modernizr-prefixed) and [prefixedCSS](#-code-modernizr-prefixedcss). It is simply
582
+ * an array of kebab-case vendor prefixes you can use within your code.
583
+ *
584
+ * Some common use cases include
585
+ *
586
+ * Generating all possible prefixed version of a CSS property
587
+ * ```js
588
+ * var rule = Modernizr._prefixes.join('transform: rotate(20deg); ');
589
+ *
590
+ * rule === 'transform: rotate(20deg); webkit-transform: rotate(20deg); moz-transform: rotate(20deg); o-transform: rotate(20deg); ms-transform: rotate(20deg);'
591
+ * ```
592
+ *
593
+ * Generating all possible prefixed version of a CSS value
594
+ * ```js
595
+ * rule = 'display:' + Modernizr._prefixes.join('flex; display:') + 'flex';
596
+ *
597
+ * rule === 'display:flex; display:-webkit-flex; display:-moz-flex; display:-o-flex; display:-ms-flex; display:flex'
598
+ * ```
599
+ */
600
+
601
+ // we use ['',''] rather than an empty array in order to allow a pattern of .`join()`ing prefixes to test
602
+ // values in feature detects to continue to work
603
+ var prefixes = (ModernizrProto._config.usePrefixes ? ' -webkit- -moz- -o- -ms- '.split(' ') : ['','']);
604
+
605
+ // expose these for the plugin API. Look in the source for how to join() them against your input
606
+ ModernizrProto._prefixes = prefixes;
607
+
608
+
609
+ /*!
610
+ {
611
+ "name": "CSS Supports",
612
+ "property": "supports",
613
+ "caniuse": "css-featurequeries",
614
+ "tags": ["css"],
615
+ "builderAliases": ["css_supports"],
616
+ "notes": [{
617
+ "name": "W3 Spec",
618
+ "href": "http://dev.w3.org/csswg/css3-conditional/#at-supports"
619
+ },{
620
+ "name": "Related Github Issue",
621
+ "href": "github.com/Modernizr/Modernizr/issues/648"
622
+ },{
623
+ "name": "W3 Info",
624
+ "href": "http://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface"
625
+ }]
626
+ }
627
+ !*/
628
+
629
+ var newSyntax = 'CSS' in window && 'supports' in window.CSS;
630
+ var oldSyntax = 'supportsCSS' in window;
631
+ Modernizr.addTest('supports', newSyntax || oldSyntax);
632
+
633
+
634
+ /**
635
+ * createElement is a convenience wrapper around document.createElement. Since we
636
+ * use createElement all over the place, this allows for (slightly) smaller code
637
+ * as well as abstracting away issues with creating elements in contexts other than
638
+ * HTML documents (e.g. SVG documents).
639
+ *
640
+ * @access private
641
+ * @function createElement
642
+ * @returns {HTMLElement|SVGElement} An HTML or SVG element
643
+ */
644
+
645
+ function createElement() {
646
+ if (typeof document.createElement !== 'function') {
647
+ // This is the case in IE7, where the type of createElement is "object".
648
+ // For this reason, we cannot call apply() as Object is not a Function.
649
+ return document.createElement(arguments[0]);
650
+ } else if (isSVG) {
651
+ return document.createElementNS.call(document, 'http://www.w3.org/2000/svg', arguments[0]);
652
+ } else {
653
+ return document.createElement.apply(document, arguments);
654
+ }
655
+ }
656
+
657
+ ;
658
+
659
+ /**
660
+ * getBody returns the body of a document, or an element that can stand in for
661
+ * the body if a real body does not exist
662
+ *
663
+ * @access private
664
+ * @function getBody
665
+ * @returns {HTMLElement|SVGElement} Returns the real body of a document, or an
666
+ * artificially created element that stands in for the body
667
+ */
668
+
669
+ function getBody() {
670
+ // After page load injecting a fake body doesn't work so check if body exists
671
+ var body = document.body;
672
+
673
+ if (!body) {
674
+ // Can't use the real body create a fake one.
675
+ body = createElement(isSVG ? 'svg' : 'body');
676
+ body.fake = true;
677
+ }
678
+
679
+ return body;
680
+ }
681
+
682
+ ;
683
+
684
+ /**
685
+ * injectElementWithStyles injects an element with style element and some CSS rules
686
+ *
687
+ * @access private
688
+ * @function injectElementWithStyles
689
+ * @param {string} rule - String representing a css rule
690
+ * @param {function} callback - A function that is used to test the injected element
691
+ * @param {number} [nodes] - An integer representing the number of additional nodes you want injected
692
+ * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes
693
+ * @returns {boolean}
694
+ */
695
+
696
+ function injectElementWithStyles(rule, callback, nodes, testnames) {
697
+ var mod = 'modernizr';
698
+ var style;
699
+ var ret;
700
+ var node;
701
+ var docOverflow;
702
+ var div = createElement('div');
703
+ var body = getBody();
704
+
705
+ if (parseInt(nodes, 10)) {
706
+ // In order not to give false positives we create a node for each test
707
+ // This also allows the method to scale for unspecified uses
708
+ while (nodes--) {
709
+ node = createElement('div');
710
+ node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
711
+ div.appendChild(node);
712
+ }
713
+ }
714
+
715
+ style = createElement('style');
716
+ style.type = 'text/css';
717
+ style.id = 's' + mod;
718
+
719
+ // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
720
+ // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
721
+ (!body.fake ? div : body).appendChild(style);
722
+ body.appendChild(div);
723
+
724
+ if (style.styleSheet) {
725
+ style.styleSheet.cssText = rule;
726
+ } else {
727
+ style.appendChild(document.createTextNode(rule));
728
+ }
729
+ div.id = mod;
730
+
731
+ if (body.fake) {
732
+ //avoid crashing IE8, if background image is used
733
+ body.style.background = '';
734
+ //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
735
+ body.style.overflow = 'hidden';
736
+ docOverflow = docElement.style.overflow;
737
+ docElement.style.overflow = 'hidden';
738
+ docElement.appendChild(body);
739
+ }
740
+
741
+ ret = callback(div, rule);
742
+ // If this is done after page load we don't want to remove the body so check if body exists
743
+ if (body.fake) {
744
+ body.parentNode.removeChild(body);
745
+ docElement.style.overflow = docOverflow;
746
+ // Trigger layout so kinetic scrolling isn't disabled in iOS6+
747
+ docElement.offsetHeight;
748
+ } else {
749
+ div.parentNode.removeChild(div);
750
+ }
751
+
752
+ return !!ret;
753
+
754
+ }
755
+
756
+ ;
757
+
758
+ /**
759
+ * testStyles injects an element with style element and some CSS rules
760
+ *
761
+ * @memberof Modernizr
762
+ * @name Modernizr.testStyles
763
+ * @optionName Modernizr.testStyles()
764
+ * @optionProp testStyles
765
+ * @access public
766
+ * @function testStyles
767
+ * @param {string} rule - String representing a css rule
768
+ * @param {function} callback - A function that is used to test the injected element
769
+ * @param {number} [nodes] - An integer representing the number of additional nodes you want injected
770
+ * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes
771
+ * @returns {boolean}
772
+ * @example
773
+ *
774
+ * `Modernizr.testStyles` takes a CSS rule and injects it onto the current page
775
+ * along with (possibly multiple) DOM elements. This lets you check for features
776
+ * that can not be detected by simply checking the [IDL](https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Interface_development_guide/IDL_interface_rules).
777
+ *
778
+ * ```js
779
+ * Modernizr.testStyles('#modernizr { width: 9px; color: papayawhip; }', function(elem, rule) {
780
+ * // elem is the first DOM node in the page (by default #modernizr)
781
+ * // rule is the first argument you supplied - the CSS rule in string form
782
+ *
783
+ * addTest('widthworks', elem.style.width === '9px')
784
+ * });
785
+ * ```
786
+ *
787
+ * If your test requires multiple nodes, you can include a third argument
788
+ * indicating how many additional div elements to include on the page. The
789
+ * additional nodes are injected as children of the `elem` that is returned as
790
+ * the first argument to the callback.
791
+ *
792
+ * ```js
793
+ * Modernizr.testStyles('#modernizr {width: 1px}; #modernizr2 {width: 2px}', function(elem) {
794
+ * document.getElementById('modernizr').style.width === '1px'; // true
795
+ * document.getElementById('modernizr2').style.width === '2px'; // true
796
+ * elem.firstChild === document.getElementById('modernizr2'); // true
797
+ * }, 1);
798
+ * ```
799
+ *
800
+ * By default, all of the additional elements have an ID of `modernizr[n]`, where
801
+ * `n` is its index (e.g. the first additional, second overall is `#modernizr2`,
802
+ * the second additional is `#modernizr3`, etc.).
803
+ * If you want to have more meaningful IDs for your function, you can provide
804
+ * them as the fourth argument, as an array of strings
805
+ *
806
+ * ```js
807
+ * Modernizr.testStyles('#foo {width: 10px}; #bar {height: 20px}', function(elem) {
808
+ * elem.firstChild === document.getElementById('foo'); // true
809
+ * elem.lastChild === document.getElementById('bar'); // true
810
+ * }, 2, ['foo', 'bar']);
811
+ * ```
812
+ *
813
+ */
814
+
815
+ var testStyles = ModernizrProto.testStyles = injectElementWithStyles;
816
+
817
+ /*!
818
+ {
819
+ "name": "Touch Events",
820
+ "property": "touchevents",
821
+ "caniuse" : "touch",
822
+ "tags": ["media", "attribute"],
823
+ "notes": [{
824
+ "name": "Touch Events spec",
825
+ "href": "https://www.w3.org/TR/2013/WD-touch-events-20130124/"
826
+ }],
827
+ "warnings": [
828
+ "Indicates if the browser supports the Touch Events spec, and does not necessarily reflect a touchscreen device"
829
+ ],
830
+ "knownBugs": [
831
+ "False-positive on some configurations of Nokia N900",
832
+ "False-positive on some BlackBerry 6.0 builds – https://github.com/Modernizr/Modernizr/issues/372#issuecomment-3112695"
833
+ ]
834
+ }
835
+ !*/
836
+ /* DOC
837
+ Indicates if the browser supports the W3C Touch Events API.
838
+
839
+ This *does not* necessarily reflect a touchscreen device:
840
+
841
+ * Older touchscreen devices only emulate mouse events
842
+ * Modern IE touch devices implement the Pointer Events API instead: use `Modernizr.pointerevents` to detect support for that
843
+ * Some browsers & OS setups may enable touch APIs when no touchscreen is connected
844
+ * Future browsers may implement other event models for touch interactions
845
+
846
+ See this article: [You Can't Detect A Touchscreen](http://www.stucox.com/blog/you-cant-detect-a-touchscreen/).
847
+
848
+ It's recommended to bind both mouse and touch/pointer events simultaneously – see [this HTML5 Rocks tutorial](http://www.html5rocks.com/en/mobile/touchandmouse/).
849
+
850
+ This test will also return `true` for Firefox 4 Multitouch support.
851
+ */
852
+
853
+ // Chrome (desktop) used to lie about its support on this, but that has since been rectified: http://crbug.com/36415
854
+ Modernizr.addTest('touchevents', function() {
855
+ var bool;
856
+ if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
857
+ bool = true;
858
+ } else {
859
+ // include the 'heartz' as a way to have a non matching MQ to help terminate the join
860
+ // https://git.io/vznFH
861
+ var query = ['@media (', prefixes.join('touch-enabled),('), 'heartz', ')', '{#modernizr{top:9px;position:absolute}}'].join('');
862
+ testStyles(query, function(node) {
863
+ bool = node.offsetTop === 9;
864
+ });
865
+ }
866
+ return bool;
867
+ });
868
+
869
+
870
+ /**
871
+ * If the browsers follow the spec, then they would expose vendor-specific style as:
872
+ * elem.style.WebkitBorderRadius
873
+ * instead of something like the following, which would be technically incorrect:
874
+ * elem.style.webkitBorderRadius
875
+
876
+ * Webkit ghosts their properties in lowercase but Opera & Moz do not.
877
+ * Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+
878
+ * erik.eae.net/archives/2008/03/10/21.48.10/
879
+
880
+ * More here: github.com/Modernizr/Modernizr/issues/issue/21
881
+ *
882
+ * @access private
883
+ * @returns {string} The string representing the vendor-specific style properties
884
+ */
885
+
886
+ var omPrefixes = 'Moz O ms Webkit';
887
+
888
+
889
+ var cssomPrefixes = (ModernizrProto._config.usePrefixes ? omPrefixes.split(' ') : []);
890
+ ModernizrProto._cssomPrefixes = cssomPrefixes;
891
+
892
+
893
+ /**
894
+ * List of JavaScript DOM values used for tests
895
+ *
896
+ * @memberof Modernizr
897
+ * @name Modernizr._domPrefixes
898
+ * @optionName Modernizr._domPrefixes
899
+ * @optionProp domPrefixes
900
+ * @access public
901
+ * @example
902
+ *
903
+ * Modernizr._domPrefixes is exactly the same as [_prefixes](#modernizr-_prefixes), but rather
904
+ * than kebab-case properties, all properties are their Capitalized variant
905
+ *
906
+ * ```js
907
+ * Modernizr._domPrefixes === [ "Moz", "O", "ms", "Webkit" ];
908
+ * ```
909
+ */
910
+
911
+ var domPrefixes = (ModernizrProto._config.usePrefixes ? omPrefixes.toLowerCase().split(' ') : []);
912
+ ModernizrProto._domPrefixes = domPrefixes;
913
+
914
+
915
+
916
+ /**
917
+ * contains checks to see if a string contains another string
918
+ *
919
+ * @access private
920
+ * @function contains
921
+ * @param {string} str - The string we want to check for substrings
922
+ * @param {string} substr - The substring we want to search the first string for
923
+ * @returns {boolean}
924
+ */
925
+
926
+ function contains(str, substr) {
927
+ return !!~('' + str).indexOf(substr);
928
+ }
929
+
930
+ ;
931
+
932
+ /**
933
+ * cssToDOM takes a kebab-case string and converts it to camelCase
934
+ * e.g. box-sizing -> boxSizing
935
+ *
936
+ * @access private
937
+ * @function cssToDOM
938
+ * @param {string} name - String name of kebab-case prop we want to convert
939
+ * @returns {string} The camelCase version of the supplied name
940
+ */
941
+
942
+ function cssToDOM(name) {
943
+ return name.replace(/([a-z])-([a-z])/g, function(str, m1, m2) {
944
+ return m1 + m2.toUpperCase();
945
+ }).replace(/^-/, '');
946
+ }
947
+ ;
948
+
949
+ /**
950
+ * fnBind is a super small [bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) polyfill.
951
+ *
952
+ * @access private
953
+ * @function fnBind
954
+ * @param {function} fn - a function you want to change `this` reference to
955
+ * @param {object} that - the `this` you want to call the function with
956
+ * @returns {function} The wrapped version of the supplied function
957
+ */
958
+
959
+ function fnBind(fn, that) {
960
+ return function() {
961
+ return fn.apply(that, arguments);
962
+ };
963
+ }
964
+
965
+ ;
966
+
967
+ /**
968
+ * testDOMProps is a generic DOM property test; if a browser supports
969
+ * a certain property, it won't return undefined for it.
970
+ *
971
+ * @access private
972
+ * @function testDOMProps
973
+ * @param {array.<string>} props - An array of properties to test for
974
+ * @param {object} obj - An object or Element you want to use to test the parameters again
975
+ * @param {boolean|object} elem - An Element to bind the property lookup again. Use `false` to prevent the check
976
+ */
977
+ function testDOMProps(props, obj, elem) {
978
+ var item;
979
+
980
+ for (var i in props) {
981
+ if (props[i] in obj) {
982
+
983
+ // return the property name as a string
984
+ if (elem === false) {
985
+ return props[i];
986
+ }
987
+
988
+ item = obj[props[i]];
989
+
990
+ // let's bind a function
991
+ if (is(item, 'function')) {
992
+ // bind to obj unless overriden
993
+ return fnBind(item, elem || obj);
994
+ }
995
+
996
+ // return the unbound function or obj or value
997
+ return item;
998
+ }
999
+ }
1000
+ return false;
1001
+ }
1002
+
1003
+ ;
1004
+
1005
+ /**
1006
+ * Create our "modernizr" element that we do most feature tests on.
1007
+ *
1008
+ * @access private
1009
+ */
1010
+
1011
+ var modElem = {
1012
+ elem: createElement('modernizr')
1013
+ };
1014
+
1015
+ // Clean up this element
1016
+ Modernizr._q.push(function() {
1017
+ delete modElem.elem;
1018
+ });
1019
+
1020
+
1021
+
1022
+ var mStyle = {
1023
+ style: modElem.elem.style
1024
+ };
1025
+
1026
+ // kill ref for gc, must happen before mod.elem is removed, so we unshift on to
1027
+ // the front of the queue.
1028
+ Modernizr._q.unshift(function() {
1029
+ delete mStyle.style;
1030
+ });
1031
+
1032
+
1033
+
1034
+ /**
1035
+ * domToCSS takes a camelCase string and converts it to kebab-case
1036
+ * e.g. boxSizing -> box-sizing
1037
+ *
1038
+ * @access private
1039
+ * @function domToCSS
1040
+ * @param {string} name - String name of camelCase prop we want to convert
1041
+ * @returns {string} The kebab-case version of the supplied name
1042
+ */
1043
+
1044
+ function domToCSS(name) {
1045
+ return name.replace(/([A-Z])/g, function(str, m1) {
1046
+ return '-' + m1.toLowerCase();
1047
+ }).replace(/^ms-/, '-ms-');
1048
+ }
1049
+ ;
1050
+
1051
+ /**
1052
+ * nativeTestProps allows for us to use native feature detection functionality if available.
1053
+ * some prefixed form, or false, in the case of an unsupported rule
1054
+ *
1055
+ * @access private
1056
+ * @function nativeTestProps
1057
+ * @param {array} props - An array of property names
1058
+ * @param {string} value - A string representing the value we want to check via @supports
1059
+ * @returns {boolean|undefined} A boolean when @supports exists, undefined otherwise
1060
+ */
1061
+
1062
+ // Accepts a list of property names and a single value
1063
+ // Returns `undefined` if native detection not available
1064
+ function nativeTestProps(props, value) {
1065
+ var i = props.length;
1066
+ // Start with the JS API: http://www.w3.org/TR/css3-conditional/#the-css-interface
1067
+ if ('CSS' in window && 'supports' in window.CSS) {
1068
+ // Try every prefixed variant of the property
1069
+ while (i--) {
1070
+ if (window.CSS.supports(domToCSS(props[i]), value)) {
1071
+ return true;
1072
+ }
1073
+ }
1074
+ return false;
1075
+ }
1076
+ // Otherwise fall back to at-rule (for Opera 12.x)
1077
+ else if ('CSSSupportsRule' in window) {
1078
+ // Build a condition string for every prefixed variant
1079
+ var conditionText = [];
1080
+ while (i--) {
1081
+ conditionText.push('(' + domToCSS(props[i]) + ':' + value + ')');
1082
+ }
1083
+ conditionText = conditionText.join(' or ');
1084
+ return injectElementWithStyles('@supports (' + conditionText + ') { #modernizr { position: absolute; } }', function(node) {
1085
+ return getComputedStyle(node, null).position == 'absolute';
1086
+ });
1087
+ }
1088
+ return undefined;
1089
+ }
1090
+ ;
1091
+
1092
+ // testProps is a generic CSS / DOM property test.
1093
+
1094
+ // In testing support for a given CSS property, it's legit to test:
1095
+ // `elem.style[styleName] !== undefined`
1096
+ // If the property is supported it will return an empty string,
1097
+ // if unsupported it will return undefined.
1098
+
1099
+ // We'll take advantage of this quick test and skip setting a style
1100
+ // on our modernizr element, but instead just testing undefined vs
1101
+ // empty string.
1102
+
1103
+ // Property names can be provided in either camelCase or kebab-case.
1104
+
1105
+ function testProps(props, prefixed, value, skipValueTest) {
1106
+ skipValueTest = is(skipValueTest, 'undefined') ? false : skipValueTest;
1107
+
1108
+ // Try native detect first
1109
+ if (!is(value, 'undefined')) {
1110
+ var result = nativeTestProps(props, value);
1111
+ if (!is(result, 'undefined')) {
1112
+ return result;
1113
+ }
1114
+ }
1115
+
1116
+ // Otherwise do it properly
1117
+ var afterInit, i, propsLength, prop, before;
1118
+
1119
+ // If we don't have a style element, that means we're running async or after
1120
+ // the core tests, so we'll need to create our own elements to use
1121
+
1122
+ // inside of an SVG element, in certain browsers, the `style` element is only
1123
+ // defined for valid tags. Therefore, if `modernizr` does not have one, we
1124
+ // fall back to a less used element and hope for the best.
1125
+ var elems = ['modernizr', 'tspan'];
1126
+ while (!mStyle.style) {
1127
+ afterInit = true;
1128
+ mStyle.modElem = createElement(elems.shift());
1129
+ mStyle.style = mStyle.modElem.style;
1130
+ }
1131
+
1132
+ // Delete the objects if we created them.
1133
+ function cleanElems() {
1134
+ if (afterInit) {
1135
+ delete mStyle.style;
1136
+ delete mStyle.modElem;
1137
+ }
1138
+ }
1139
+
1140
+ propsLength = props.length;
1141
+ for (i = 0; i < propsLength; i++) {
1142
+ prop = props[i];
1143
+ before = mStyle.style[prop];
1144
+
1145
+ if (contains(prop, '-')) {
1146
+ prop = cssToDOM(prop);
1147
+ }
1148
+
1149
+ if (mStyle.style[prop] !== undefined) {
1150
+
1151
+ // If value to test has been passed in, do a set-and-check test.
1152
+ // 0 (integer) is a valid property value, so check that `value` isn't
1153
+ // undefined, rather than just checking it's truthy.
1154
+ if (!skipValueTest && !is(value, 'undefined')) {
1155
+
1156
+ // Needs a try catch block because of old IE. This is slow, but will
1157
+ // be avoided in most cases because `skipValueTest` will be used.
1158
+ try {
1159
+ mStyle.style[prop] = value;
1160
+ } catch (e) {}
1161
+
1162
+ // If the property value has changed, we assume the value used is
1163
+ // supported. If `value` is empty string, it'll fail here (because
1164
+ // it hasn't changed), which matches how browsers have implemented
1165
+ // CSS.supports()
1166
+ if (mStyle.style[prop] != before) {
1167
+ cleanElems();
1168
+ return prefixed == 'pfx' ? prop : true;
1169
+ }
1170
+ }
1171
+ // Otherwise just return true, or the property name if this is a
1172
+ // `prefixed()` call
1173
+ else {
1174
+ cleanElems();
1175
+ return prefixed == 'pfx' ? prop : true;
1176
+ }
1177
+ }
1178
+ }
1179
+ cleanElems();
1180
+ return false;
1181
+ }
1182
+
1183
+ ;
1184
+
1185
+ /**
1186
+ * testPropsAll tests a list of DOM properties we want to check against.
1187
+ * We specify literally ALL possible (known and/or likely) properties on
1188
+ * the element including the non-vendor prefixed one, for forward-
1189
+ * compatibility.
1190
+ *
1191
+ * @access private
1192
+ * @function testPropsAll
1193
+ * @param {string} prop - A string of the property to test for
1194
+ * @param {string|object} [prefixed] - An object to check the prefixed properties on. Use a string to skip
1195
+ * @param {HTMLElement|SVGElement} [elem] - An element used to test the property and value against
1196
+ * @param {string} [value] - A string of a css value
1197
+ * @param {boolean} [skipValueTest] - An boolean representing if you want to test if value sticks when set
1198
+ */
1199
+ function testPropsAll(prop, prefixed, elem, value, skipValueTest) {
1200
+
1201
+ var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
1202
+ props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
1203
+
1204
+ // did they call .prefixed('boxSizing') or are we just testing a prop?
1205
+ if (is(prefixed, 'string') || is(prefixed, 'undefined')) {
1206
+ return testProps(props, prefixed, value, skipValueTest);
1207
+
1208
+ // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])
1209
+ } else {
1210
+ props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
1211
+ return testDOMProps(props, prefixed, elem);
1212
+ }
1213
+ }
1214
+
1215
+ // Modernizr.testAllProps() investigates whether a given style property,
1216
+ // or any of its vendor-prefixed variants, is recognized
1217
+ //
1218
+ // Note that the property names must be provided in the camelCase variant.
1219
+ // Modernizr.testAllProps('boxSizing')
1220
+ ModernizrProto.testAllProps = testPropsAll;
1221
+
1222
+
1223
+
1224
+ /**
1225
+ * testAllProps determines whether a given CSS property is supported in the browser
1226
+ *
1227
+ * @memberof Modernizr
1228
+ * @name Modernizr.testAllProps
1229
+ * @optionName Modernizr.testAllProps()
1230
+ * @optionProp testAllProps
1231
+ * @access public
1232
+ * @function testAllProps
1233
+ * @param {string} prop - String naming the property to test (either camelCase or kebab-case)
1234
+ * @param {string} [value] - String of the value to test
1235
+ * @param {boolean} [skipValueTest=false] - Whether to skip testing that the value is supported when using non-native detection
1236
+ * @example
1237
+ *
1238
+ * testAllProps determines whether a given CSS property, in some prefixed form,
1239
+ * is supported by the browser.
1240
+ *
1241
+ * ```js
1242
+ * testAllProps('boxSizing') // true
1243
+ * ```
1244
+ *
1245
+ * It can optionally be given a CSS value in string form to test if a property
1246
+ * value is valid
1247
+ *
1248
+ * ```js
1249
+ * testAllProps('display', 'block') // true
1250
+ * testAllProps('display', 'penguin') // false
1251
+ * ```
1252
+ *
1253
+ * A boolean can be passed as a third parameter to skip the value check when
1254
+ * native detection (@supports) isn't available.
1255
+ *
1256
+ * ```js
1257
+ * testAllProps('shapeOutside', 'content-box', true);
1258
+ * ```
1259
+ */
1260
+
1261
+ function testAllProps(prop, value, skipValueTest) {
1262
+ return testPropsAll(prop, undefined, undefined, value, skipValueTest);
1263
+ }
1264
+ ModernizrProto.testAllProps = testAllProps;
1265
+
1266
+ /*!
1267
+ {
1268
+ "name": "Flexbox",
1269
+ "property": "flexbox",
1270
+ "caniuse": "flexbox",
1271
+ "tags": ["css"],
1272
+ "notes": [{
1273
+ "name": "The _new_ flexbox",
1274
+ "href": "http://dev.w3.org/csswg/css3-flexbox"
1275
+ }],
1276
+ "warnings": [
1277
+ "A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect."
1278
+ ]
1279
+ }
1280
+ !*/
1281
+ /* DOC
1282
+ Detects support for the Flexible Box Layout model, a.k.a. Flexbox, which allows easy manipulation of layout order and sizing within a container.
1283
+ */
1284
+
1285
+ Modernizr.addTest('flexbox', testAllProps('flexBasis', '1px', true));
1286
+
1287
+ /*!
1288
+ {
1289
+ "name": "Flexbox (legacy)",
1290
+ "property": "flexboxlegacy",
1291
+ "tags": ["css"],
1292
+ "polyfills": ["flexie"],
1293
+ "notes": [{
1294
+ "name": "The _old_ flexbox",
1295
+ "href": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/"
1296
+ }]
1297
+ }
1298
+ !*/
1299
+
1300
+ Modernizr.addTest('flexboxlegacy', testAllProps('boxDirection', 'reverse', true));
1301
+
1302
+ /*!
1303
+ {
1304
+ "name": "CSS Transforms",
1305
+ "property": "csstransforms",
1306
+ "caniuse": "transforms2d",
1307
+ "tags": ["css"]
1308
+ }
1309
+ !*/
1310
+
1311
+ Modernizr.addTest('csstransforms', function() {
1312
+ // Android < 3.0 is buggy, so we sniff and blacklist
1313
+ // http://git.io/hHzL7w
1314
+ return navigator.userAgent.indexOf('Android 2.') === -1 &&
1315
+ testAllProps('transform', 'scale(1)', true);
1316
+ });
1317
+
1318
+ /*!
1319
+ {
1320
+ "name": "CSS Transforms 3D",
1321
+ "property": "csstransforms3d",
1322
+ "caniuse": "transforms3d",
1323
+ "tags": ["css"],
1324
+ "warnings": [
1325
+ "Chrome may occassionally fail this test on some systems; more info: https://code.google.com/p/chromium/issues/detail?id=129004"
1326
+ ]
1327
+ }
1328
+ !*/
1329
+
1330
+ Modernizr.addTest('csstransforms3d', function() {
1331
+ var ret = !!testAllProps('perspective', '1px', true);
1332
+ var usePrefix = Modernizr._config.usePrefixes;
1333
+
1334
+ // Webkit's 3D transforms are passed off to the browser's own graphics renderer.
1335
+ // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
1336
+ // some conditions. As a result, Webkit typically recognizes the syntax but
1337
+ // will sometimes throw a false positive, thus we must do a more thorough check:
1338
+ if (ret && (!usePrefix || 'webkitPerspective' in docElement.style)) {
1339
+ var mq;
1340
+ var defaultStyle = '#modernizr{width:0;height:0}';
1341
+ // Use CSS Conditional Rules if available
1342
+ if (Modernizr.supports) {
1343
+ mq = '@supports (perspective: 1px)';
1344
+ } else {
1345
+ // Otherwise, Webkit allows this media query to succeed only if the feature is enabled.
1346
+ // `@media (transform-3d),(-webkit-transform-3d){ ... }`
1347
+ mq = '@media (transform-3d)';
1348
+ if (usePrefix) {
1349
+ mq += ',(-webkit-transform-3d)';
1350
+ }
1351
+ }
1352
+
1353
+ mq += '{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}';
1354
+
1355
+ testStyles(defaultStyle + mq, function(elem) {
1356
+ ret = elem.offsetWidth === 7 && elem.offsetHeight === 18;
1357
+ });
1358
+ }
1359
+
1360
+ return ret;
1361
+ });
1362
+
1363
+
1364
+ // Run each test
1365
+ testRunner();
1366
+
1367
+ // Remove the "no-js" class if it exists
1368
+ setClasses(classes);
1369
+
1370
+ delete ModernizrProto.addTest;
1371
+ delete ModernizrProto.addAsyncTest;
1372
+
1373
+ // Run the things that are supposed to run after the tests
1374
+ for (var i = 0; i < Modernizr._q.length; i++) {
1375
+ Modernizr._q[i]();
1376
+ }
1377
+
1378
+ // Leak Modernizr namespace
1379
+ window.lvcaModernizr = Modernizr;
1380
+
1381
+
1382
+ ;
1383
+
1384
+ })(window, document);
assets/js/modernizr-custom.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(window,document,undefined){var classes=[];var tests=[];var ModernizrProto={_version:"3.3.1",_config:{classPrefix:"lvca-",enableClasses:true,enableJSClass:true,usePrefixes:true},_q:[],on:function(test,cb){var self=this;setTimeout(function(){cb(self[test])},0)},addTest:function(name,fn,options){tests.push({name:name,fn:fn,options:options})},addAsyncTest:function(fn){tests.push({name:null,fn:fn})}};var Modernizr=function(){};Modernizr.prototype=ModernizrProto;Modernizr=new Modernizr;function is(obj,type){return typeof obj===type}function testRunner(){var featureNames;var feature;var aliasIdx;var result;var nameIdx;var featureName;var featureNameSplit;for(var featureIdx in tests){if(tests.hasOwnProperty(featureIdx)){featureNames=[];feature=tests[featureIdx];if(feature.name){featureNames.push(feature.name.toLowerCase());if(feature.options&&feature.options.aliases&&feature.options.aliases.length){for(aliasIdx=0;aliasIdx<feature.options.aliases.length;aliasIdx++){featureNames.push(feature.options.aliases[aliasIdx].toLowerCase())}}}result=is(feature.fn,"function")?feature.fn():feature.fn;for(nameIdx=0;nameIdx<featureNames.length;nameIdx++){featureName=featureNames[nameIdx];featureNameSplit=featureName.split(".");if(featureNameSplit.length===1){Modernizr[featureNameSplit[0]]=result}else{if(Modernizr[featureNameSplit[0]]&&!(Modernizr[featureNameSplit[0]]instanceof Boolean)){Modernizr[featureNameSplit[0]]=new Boolean(Modernizr[featureNameSplit[0]])}Modernizr[featureNameSplit[0]][featureNameSplit[1]]=result}classes.push((result?"":"no-")+featureNameSplit.join("-"))}}}}var docElement=document.documentElement;var isSVG=docElement.nodeName.toLowerCase()==="svg";function setClasses(classes){var className=docElement.className;var classPrefix=Modernizr._config.classPrefix||"";if(isSVG){className=className.baseVal}if(Modernizr._config.enableJSClass){var reJS=new RegExp("(^|\\s)"+classPrefix+"no-js(\\s|$)");className=className.replace(reJS,"$1"+classPrefix+"js$2")}if(Modernizr._config.enableClasses){className+=" "+classPrefix+classes.join(" "+classPrefix);isSVG?docElement.className.baseVal=className:docElement.className=className}}var html5;if(!isSVG){(function(window,document){var version="3.7.3";var options=window.html5||{};var reSkip=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;var saveClones=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;var supportsHtml5Styles;var expando="_html5shiv";var expanID=0;var expandoData={};var supportsUnknownElements;(function(){try{var a=document.createElement("a");a.innerHTML="<xyz></xyz>";supportsHtml5Styles="hidden"in a;supportsUnknownElements=a.childNodes.length==1||function(){document.createElement("a");var frag=document.createDocumentFragment();return typeof frag.cloneNode=="undefined"||typeof frag.createDocumentFragment=="undefined"||typeof frag.createElement=="undefined"}()}catch(e){supportsHtml5Styles=true;supportsUnknownElements=true}})();function addStyleSheet(ownerDocument,cssText){var p=ownerDocument.createElement("p"),parent=ownerDocument.getElementsByTagName("head")[0]||ownerDocument.documentElement;p.innerHTML="x<style>"+cssText+"</style>";return parent.insertBefore(p.lastChild,parent.firstChild)}function getElements(){var elements=html5.elements;return typeof elements=="string"?elements.split(" "):elements}function addElements(newElements,ownerDocument){var elements=html5.elements;if(typeof elements!="string"){elements=elements.join(" ")}if(typeof newElements!="string"){newElements=newElements.join(" ")}html5.elements=elements+" "+newElements;shivDocument(ownerDocument)}function getExpandoData(ownerDocument){var data=expandoData[ownerDocument[expando]];if(!data){data={};expanID++;ownerDocument[expando]=expanID;expandoData[expanID]=data}return data}function createElement(nodeName,ownerDocument,data){if(!ownerDocument){ownerDocument=document}if(supportsUnknownElements){return ownerDocument.createElement(nodeName)}if(!data){data=getExpandoData(ownerDocument)}var node;if(data.cache[nodeName]){node=data.cache[nodeName].cloneNode()}else if(saveClones.test(nodeName)){node=(data.cache[nodeName]=data.createElem(nodeName)).cloneNode()}else{node=data.createElem(nodeName)}return node.canHaveChildren&&!reSkip.test(nodeName)&&!node.tagUrn?data.frag.appendChild(node):node}function createDocumentFragment(ownerDocument,data){if(!ownerDocument){ownerDocument=document}if(supportsUnknownElements){return ownerDocument.createDocumentFragment()}data=data||getExpandoData(ownerDocument);var clone=data.frag.cloneNode(),i=0,elems=getElements(),l=elems.length;for(;i<l;i++){clone.createElement(elems[i])}return clone}function shivMethods(ownerDocument,data){if(!data.cache){data.cache={};data.createElem=ownerDocument.createElement;data.createFrag=ownerDocument.createDocumentFragment;data.frag=data.createFrag()}ownerDocument.createElement=function(nodeName){if(!html5.shivMethods){return data.createElem(nodeName)}return createElement(nodeName,ownerDocument,data)};ownerDocument.createDocumentFragment=Function("h,f","return function(){"+"var n=f.cloneNode(),c=n.createElement;"+"h.shivMethods&&("+getElements().join().replace(/[\w\-:]+/g,function(nodeName){data.createElem(nodeName);data.frag.createElement(nodeName);return'c("'+nodeName+'")'})+");return n}")(html5,data.frag)}function shivDocument(ownerDocument){if(!ownerDocument){ownerDocument=document}var data=getExpandoData(ownerDocument);if(html5.shivCSS&&!supportsHtml5Styles&&!data.hasCSS){data.hasCSS=!!addStyleSheet(ownerDocument,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}"+"mark{background:#FF0;color:#000}"+"template{display:none}")}if(!supportsUnknownElements){shivMethods(ownerDocument,data)}return ownerDocument}var html5={elements:options.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:version,shivCSS:options.shivCSS!==false,supportsUnknownElements:supportsUnknownElements,shivMethods:options.shivMethods!==false,type:"default",shivDocument:shivDocument,createElement:createElement,createDocumentFragment:createDocumentFragment,addElements:addElements};window.html5=html5;shivDocument(document);if(typeof module=="object"&&module.exports){module.exports=html5}})(typeof window!=="undefined"?window:this,document)}var prefixes=ModernizrProto._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""];ModernizrProto._prefixes=prefixes;var newSyntax="CSS"in window&&"supports"in window.CSS;var oldSyntax="supportsCSS"in window;Modernizr.addTest("supports",newSyntax||oldSyntax);function createElement(){if(typeof document.createElement!=="function"){return document.createElement(arguments[0])}else if(isSVG){return document.createElementNS.call(document,"http://www.w3.org/2000/svg",arguments[0])}else{return document.createElement.apply(document,arguments)}}function getBody(){var body=document.body;if(!body){body=createElement(isSVG?"svg":"body");body.fake=true}return body}function injectElementWithStyles(rule,callback,nodes,testnames){var mod="modernizr";var style;var ret;var node;var docOverflow;var div=createElement("div");var body=getBody();if(parseInt(nodes,10)){while(nodes--){node=createElement("div");node.id=testnames?testnames[nodes]:mod+(nodes+1);div.appendChild(node)}}style=createElement("style");style.type="text/css";style.id="s"+mod;(!body.fake?div:body).appendChild(style);body.appendChild(div);if(style.styleSheet){style.styleSheet.cssText=rule}else{style.appendChild(document.createTextNode(rule))}div.id=mod;if(body.fake){body.style.background="";body.style.overflow="hidden";docOverflow=docElement.style.overflow;docElement.style.overflow="hidden";docElement.appendChild(body)}ret=callback(div,rule);if(body.fake){body.parentNode.removeChild(body);docElement.style.overflow=docOverflow;docElement.offsetHeight}else{div.parentNode.removeChild(div)}return!!ret}var testStyles=ModernizrProto.testStyles=injectElementWithStyles;Modernizr.addTest("touchevents",function(){var bool;if("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch){bool=true}else{var query=["@media (",prefixes.join("touch-enabled),("),"heartz",")","{#modernizr{top:9px;position:absolute}}"].join("");testStyles(query,function(node){bool=node.offsetTop===9})}return bool});var omPrefixes="Moz O ms Webkit";var cssomPrefixes=ModernizrProto._config.usePrefixes?omPrefixes.split(" "):[];ModernizrProto._cssomPrefixes=cssomPrefixes;var domPrefixes=ModernizrProto._config.usePrefixes?omPrefixes.toLowerCase().split(" "):[];ModernizrProto._domPrefixes=domPrefixes;function contains(str,substr){return!!~(""+str).indexOf(substr)}function cssToDOM(name){return name.replace(/([a-z])-([a-z])/g,function(str,m1,m2){return m1+m2.toUpperCase()}).replace(/^-/,"")}function fnBind(fn,that){return function(){return fn.apply(that,arguments)}}function testDOMProps(props,obj,elem){var item;for(var i in props){if(props[i]in obj){if(elem===false){return props[i]}item=obj[props[i]];if(is(item,"function")){return fnBind(item,elem||obj)}return item}}return false}var modElem={elem:createElement("modernizr")};Modernizr._q.push(function(){delete modElem.elem});var mStyle={style:modElem.elem.style};Modernizr._q.unshift(function(){delete mStyle.style});function domToCSS(name){return name.replace(/([A-Z])/g,function(str,m1){return"-"+m1.toLowerCase()}).replace(/^ms-/,"-ms-")}function nativeTestProps(props,value){var i=props.length;if("CSS"in window&&"supports"in window.CSS){while(i--){if(window.CSS.supports(domToCSS(props[i]),value)){return true}}return false}else if("CSSSupportsRule"in window){var conditionText=[];while(i--){conditionText.push("("+domToCSS(props[i])+":"+value+")")}conditionText=conditionText.join(" or ");return injectElementWithStyles("@supports ("+conditionText+") { #modernizr { position: absolute; } }",function(node){return getComputedStyle(node,null).position=="absolute"})}return undefined}function testProps(props,prefixed,value,skipValueTest){skipValueTest=is(skipValueTest,"undefined")?false:skipValueTest;if(!is(value,"undefined")){var result=nativeTestProps(props,value);if(!is(result,"undefined")){return result}}var afterInit,i,propsLength,prop,before;var elems=["modernizr","tspan"];while(!mStyle.style){afterInit=true;mStyle.modElem=createElement(elems.shift());mStyle.style=mStyle.modElem.style}function cleanElems(){if(afterInit){delete mStyle.style;delete mStyle.modElem}}propsLength=props.length;for(i=0;i<propsLength;i++){prop=props[i];before=mStyle.style[prop];if(contains(prop,"-")){prop=cssToDOM(prop)}if(mStyle.style[prop]!==undefined){if(!skipValueTest&&!is(value,"undefined")){try{mStyle.style[prop]=value}catch(e){}if(mStyle.style[prop]!=before){cleanElems();return prefixed=="pfx"?prop:true}}else{cleanElems();return prefixed=="pfx"?prop:true}}}cleanElems();return false}function testPropsAll(prop,prefixed,elem,value,skipValueTest){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+" "+cssomPrefixes.join(ucProp+" ")+ucProp).split(" ");if(is(prefixed,"string")||is(prefixed,"undefined")){return testProps(props,prefixed,value,skipValueTest)}else{props=(prop+" "+domPrefixes.join(ucProp+" ")+ucProp).split(" ");return testDOMProps(props,prefixed,elem)}}ModernizrProto.testAllProps=testPropsAll;function testAllProps(prop,value,skipValueTest){return testPropsAll(prop,undefined,undefined,value,skipValueTest)}ModernizrProto.testAllProps=testAllProps;Modernizr.addTest("flexbox",testAllProps("flexBasis","1px",true));Modernizr.addTest("flexboxlegacy",testAllProps("boxDirection","reverse",true));Modernizr.addTest("csstransforms",function(){return navigator.userAgent.indexOf("Android 2.")===-1&&testAllProps("transform","scale(1)",true)});Modernizr.addTest("csstransforms3d",function(){var ret=!!testAllProps("perspective","1px",true);var usePrefix=Modernizr._config.usePrefixes;if(ret&&(!usePrefix||"webkitPerspective"in docElement.style)){var mq;var defaultStyle="#modernizr{width:0;height:0}";if(Modernizr.supports){mq="@supports (perspective: 1px)"}else{mq="@media (transform-3d)";if(usePrefix){mq+=",(-webkit-transform-3d)"}}mq+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}";testStyles(defaultStyle+mq,function(elem){ret=elem.offsetWidth===7&&elem.offsetHeight===18})}return ret});testRunner();setClasses(classes);delete ModernizrProto.addTest;delete ModernizrProto.addAsyncTest;for(var i=0;i<Modernizr._q.length;i++){Modernizr._q[i]()}window.lvcaModernizr=Modernizr})(window,document);
assets/js/slick.js ADDED
@@ -0,0 +1,2670 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ _ _ _ _
3
+ ___| (_) ___| | __ (_)___
4
+ / __| | |/ __| |/ / | / __|
5
+ \__ \ | | (__| < _ | \__ \
6
+ |___/_|_|\___|_|\_(_)/ |___/
7
+ |__/
8
+
9
+ Version: 1.5.9
10
+ Author: Ken Wheeler
11
+ Website: http://kenwheeler.github.io
12
+ Docs: http://kenwheeler.github.io/slick
13
+ Repo: http://github.com/kenwheeler/slick
14
+ Issues: http://github.com/kenwheeler/slick/issues
15
+
16
+ */
17
+ /* global window, document, define, jQuery, setInterval, clearInterval */
18
+ (function(factory) {
19
+ 'use strict';
20
+ if (typeof define === 'function' && define.amd) {
21
+ define(['jquery'], factory);
22
+ } else if (typeof exports !== 'undefined') {
23
+ module.exports = factory(require('jquery'));
24
+ } else {
25
+ factory(jQuery);
26
+ }
27
+
28
+ }(function($) {
29
+ 'use strict';
30
+ var Slick = window.Slick || {};
31
+
32
+ Slick = (function() {
33
+
34
+ var instanceUid = 0;
35
+
36
+ function Slick(element, settings) {
37
+
38
+ var _ = this, dataSettings;
39
+
40
+ _.defaults = {
41
+ accessibility: true,
42
+ adaptiveHeight: false,
43
+ appendArrows: $(element),
44
+ appendDots: $(element),
45
+ arrows: true,
46
+ asNavFor: null,
47
+ prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',
48
+ nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',
49
+ autoplay: false,
50
+ autoplaySpeed: 3000,
51
+ centerMode: false,
52
+ centerPadding: '50px',
53
+ cssEase: 'ease',
54
+ customPaging: function(slider, i) {
55
+ return '<button type="button" data-role="none" role="button" aria-required="false" tabindex="0">' + (i + 1) + '</button>';
56
+ },
57
+ dots: false,
58
+ dotsClass: 'slick-dots',
59
+ draggable: true,
60
+ easing: 'linear',
61
+ edgeFriction: 0.35,
62
+ fade: false,
63
+ focusOnSelect: false,
64
+ infinite: true,
65
+ initialSlide: 0,
66
+ lazyLoad: 'ondemand',
67
+ mobileFirst: false,
68
+ pauseOnHover: true,
69
+ pauseOnDotsHover: false,
70
+ respondTo: 'window',
71
+ responsive: null,
72
+ rows: 1,
73
+ rtl: false,
74
+ slide: '',
75
+ slidesPerRow: 1,
76
+ slidesToShow: 1,
77
+ slidesToScroll: 1,
78
+ speed: 500,
79
+ swipe: true,
80
+ swipeToSlide: false,
81
+ touchMove: true,
82
+ touchThreshold: 5,
83
+ useCSS: true,
84
+ useTransform: false,
85
+ variableWidth: false,
86
+ vertical: false,
87
+ verticalSwiping: false,
88
+ waitForAnimate: true,
89
+ zIndex: 1000
90
+ };
91
+
92
+ _.initials = {
93
+ animating: false,
94
+ dragging: false,
95
+ autoPlayTimer: null,
96
+ currentDirection: 0,
97
+ currentLeft: null,
98
+ currentSlide: 0,
99
+ direction: 1,
100
+ $dots: null,
101
+ listWidth: null,
102
+ listHeight: null,
103
+ loadIndex: 0,
104
+ $nextArrow: null,
105
+ $prevArrow: null,
106
+ slideCount: null,
107
+ slideWidth: null,
108
+ $slideTrack: null,
109
+ $slides: null,
110
+ sliding: false,
111
+ slideOffset: 0,
112
+ swipeLeft: null,
113
+ $list: null,
114
+ touchObject: {},
115
+ transformsEnabled: false,
116
+ unslicked: false
117
+ };
118
+
119
+ $.extend(_, _.initials);
120
+
121
+ _.activeBreakpoint = null;
122
+ _.animType = null;
123
+ _.animProp = null;
124
+ _.breakpoints = [];
125
+ _.breakpointSettings = [];
126
+ _.cssTransitions = false;
127
+ _.hidden = 'hidden';
128
+ _.paused = false;
129
+ _.positionProp = null;
130
+ _.respondTo = null;
131
+ _.rowCount = 1;
132
+ _.shouldClick = true;
133
+ _.$slider = $(element);
134
+ _.$slidesCache = null;
135
+ _.transformType = null;
136
+ _.transitionType = null;
137
+ _.visibilityChange = 'visibilitychange';
138
+ _.windowWidth = 0;
139
+ _.windowTimer = null;
140
+
141
+ dataSettings = $(element).data('slick') || {};
142
+
143
+ _.options = $.extend({}, _.defaults, dataSettings, settings);
144
+
145
+ _.currentSlide = _.options.initialSlide;
146
+
147
+ _.originalSettings = _.options;
148
+
149
+ if (typeof document.mozHidden !== 'undefined') {
150
+ _.hidden = 'mozHidden';
151
+ _.visibilityChange = 'mozvisibilitychange';
152
+ } else if (typeof document.webkitHidden !== 'undefined') {
153
+ _.hidden = 'webkitHidden';
154
+ _.visibilityChange = 'webkitvisibilitychange';
155
+ }
156
+
157
+ _.autoPlay = $.proxy(_.autoPlay, _);
158
+ _.autoPlayClear = $.proxy(_.autoPlayClear, _);
159
+ _.changeSlide = $.proxy(_.changeSlide, _);
160
+ _.clickHandler = $.proxy(_.clickHandler, _);
161
+ _.selectHandler = $.proxy(_.selectHandler, _);
162
+ _.setPosition = $.proxy(_.setPosition, _);
163
+ _.swipeHandler = $.proxy(_.swipeHandler, _);
164
+ _.dragHandler = $.proxy(_.dragHandler, _);
165
+ _.keyHandler = $.proxy(_.keyHandler, _);
166
+ _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
167
+
168
+ _.instanceUid = instanceUid++;
169
+
170
+ // A simple way to check for HTML strings
171
+ // Strict HTML recognition (must start with <)
172
+ // Extracted from jQuery v1.11 source
173
+ _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
174
+
175
+
176
+ _.registerBreakpoints();
177
+ _.init(true);
178
+ _.checkResponsive(true);
179
+
180
+ }
181
+
182
+ return Slick;
183
+
184
+ }());
185
+
186
+ Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {
187
+
188
+ var _ = this;
189
+
190
+ if (typeof(index) === 'boolean') {
191
+ addBefore = index;
192
+ index = null;
193
+ } else if (index < 0 || (index >= _.slideCount)) {
194
+ return false;
195
+ }
196
+
197
+ _.unload();
198
+
199
+ if (typeof(index) === 'number') {
200
+ if (index === 0 && _.$slides.length === 0) {
201
+ $(markup).appendTo(_.$slideTrack);
202
+ } else if (addBefore) {
203
+ $(markup).insertBefore(_.$slides.eq(index));
204
+ } else {
205
+ $(markup).insertAfter(_.$slides.eq(index));
206
+ }
207
+ } else {
208
+ if (addBefore === true) {
209
+ $(markup).prependTo(_.$slideTrack);
210
+ } else {
211
+ $(markup).appendTo(_.$slideTrack);
212
+ }
213
+ }
214
+
215
+ _.$slides = _.$slideTrack.children(this.options.slide);
216
+
217
+ _.$slideTrack.children(this.options.slide).detach();
218
+
219
+ _.$slideTrack.append(_.$slides);
220
+
221
+ _.$slides.each(function(index, element) {
222
+ $(element).attr('data-slick-index', index);
223
+ });
224
+
225
+ _.$slidesCache = _.$slides;
226
+
227
+ _.reinit();
228
+
229
+ };
230
+
231
+ Slick.prototype.animateHeight = function() {
232
+ var _ = this;
233
+ if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
234
+ var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
235
+ _.$list.animate({
236
+ height: targetHeight
237
+ }, _.options.speed);
238
+ }
239
+ };
240
+
241
+ Slick.prototype.animateSlide = function(targetLeft, callback) {
242
+
243
+ var animProps = {},
244
+ _ = this;
245
+
246
+ _.animateHeight();
247
+
248
+ if (_.options.rtl === true && _.options.vertical === false) {
249
+ targetLeft = -targetLeft;
250
+ }
251
+ if (_.transformsEnabled === false) {
252
+ if (_.options.vertical === false) {
253
+ _.$slideTrack.animate({
254
+ left: targetLeft
255
+ }, _.options.speed, _.options.easing, callback);
256
+ } else {
257
+ _.$slideTrack.animate({
258
+ top: targetLeft
259
+ }, _.options.speed, _.options.easing, callback);
260
+ }
261
+
262
+ } else {
263
+
264
+ if (_.cssTransitions === false) {
265
+ if (_.options.rtl === true) {
266
+ _.currentLeft = -(_.currentLeft);
267
+ }
268
+ $({
269
+ animStart: _.currentLeft
270
+ }).animate({
271
+ animStart: targetLeft
272
+ }, {
273
+ duration: _.options.speed,
274
+ easing: _.options.easing,
275
+ step: function(now) {
276
+ now = Math.ceil(now);
277
+ if (_.options.vertical === false) {
278
+ animProps[_.animType] = 'translate(' +
279
+ now + 'px, 0px)';
280
+ _.$slideTrack.css(animProps);
281
+ } else {
282
+ animProps[_.animType] = 'translate(0px,' +
283
+ now + 'px)';
284
+ _.$slideTrack.css(animProps);
285
+ }
286
+ },
287
+ complete: function() {
288
+ if (callback) {
289
+ callback.call();
290
+ }
291
+ }
292
+ });
293
+
294
+ } else {
295
+
296
+ _.applyTransition();
297
+ targetLeft = Math.ceil(targetLeft);
298
+
299
+ if (_.options.vertical === false) {
300
+ animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';
301
+ } else {
302
+ animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';
303
+ }
304
+ _.$slideTrack.css(animProps);
305
+
306
+ if (callback) {
307
+ setTimeout(function() {
308
+
309
+ _.disableTransition();
310
+
311
+ callback.call();
312
+ }, _.options.speed);
313
+ }
314
+
315
+ }
316
+
317
+ }
318
+
319
+ };
320
+
321
+ Slick.prototype.asNavFor = function(index) {
322
+
323
+ var _ = this,
324
+ asNavFor = _.options.asNavFor;
325
+
326
+ if ( asNavFor && asNavFor !== null ) {
327
+ asNavFor = $(asNavFor).not(_.$slider);
328
+ }
329
+
330
+ if ( asNavFor !== null && typeof asNavFor === 'object' ) {
331
+ asNavFor.each(function() {
332
+ var target = $(this).slick('getSlick');
333
+ if(!target.unslicked) {
334
+ target.slideHandler(index, true);
335
+ }
336
+ });
337
+ }
338
+
339
+ };
340
+
341
+ Slick.prototype.applyTransition = function(slide) {
342
+
343
+ var _ = this,
344
+ transition = {};
345
+
346
+ if (_.options.fade === false) {
347
+ transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;
348
+ } else {
349
+ transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;
350
+ }
351
+
352
+ if (_.options.fade === false) {
353
+ _.$slideTrack.css(transition);
354
+ } else {
355
+ _.$slides.eq(slide).css(transition);
356
+ }
357
+
358
+ };
359
+
360
+ Slick.prototype.autoPlay = function() {
361
+
362
+ var _ = this;
363
+
364
+ if (_.autoPlayTimer) {
365
+ clearInterval(_.autoPlayTimer);
366
+ }
367
+
368
+ if (_.slideCount > _.options.slidesToShow && _.paused !== true) {
369
+ _.autoPlayTimer = setInterval(_.autoPlayIterator,
370
+ _.options.autoplaySpeed);
371
+ }
372
+
373
+ };
374
+
375
+ Slick.prototype.autoPlayClear = function() {
376
+
377
+ var _ = this;
378
+ if (_.autoPlayTimer) {
379
+ clearInterval(_.autoPlayTimer);
380
+ }
381
+
382
+ };
383
+
384
+ Slick.prototype.autoPlayIterator = function() {
385
+
386
+ var _ = this;
387
+
388
+ if (_.options.infinite === false) {
389
+
390
+ if (_.direction === 1) {
391
+
392
+ if ((_.currentSlide + 1) === _.slideCount -
393
+ 1) {
394
+ _.direction = 0;
395
+ }
396
+
397
+ _.slideHandler(_.currentSlide + _.options.slidesToScroll);
398
+
399
+ } else {
400
+
401
+ if ((_.currentSlide - 1 === 0)) {
402
+
403
+ _.direction = 1;
404
+
405
+ }
406
+
407
+ _.slideHandler(_.currentSlide - _.options.slidesToScroll);
408
+
409
+ }
410
+
411
+ } else {
412
+
413
+ _.slideHandler(_.currentSlide + _.options.slidesToScroll);
414
+
415
+ }
416
+
417
+ };
418
+
419
+ Slick.prototype.buildArrows = function() {
420
+
421
+ var _ = this;
422
+
423
+ if (_.options.arrows === true ) {
424
+
425
+ _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');
426
+ _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');
427
+
428
+ if( _.slideCount > _.options.slidesToShow ) {
429
+
430
+ _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
431
+ _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
432
+
433
+ if (_.htmlExpr.test(_.options.prevArrow)) {
434
+ _.$prevArrow.prependTo(_.options.appendArrows);
435
+ }
436
+
437
+ if (_.htmlExpr.test(_.options.nextArrow)) {
438
+ _.$nextArrow.appendTo(_.options.appendArrows);
439
+ }
440
+
441
+ if (_.options.infinite !== true) {
442
+ _.$prevArrow
443
+ .addClass('slick-disabled')
444
+ .attr('aria-disabled', 'true');
445
+ }
446
+
447
+ } else {
448
+
449
+ _.$prevArrow.add( _.$nextArrow )
450
+
451
+ .addClass('slick-hidden')
452
+ .attr({
453
+ 'aria-disabled': 'true',
454
+ 'tabindex': '-1'
455
+ });
456
+
457
+ }
458
+
459
+ }
460
+
461
+ };
462
+
463
+ Slick.prototype.buildDots = function() {
464
+
465
+ var _ = this,
466
+ i, dotString;
467
+
468
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
469
+
470
+ dotString = '<ul class="' + _.options.dotsClass + '">';
471
+
472
+ for (i = 0; i <= _.getDotCount(); i += 1) {
473
+ dotString += '<li>' + _.options.customPaging.call(this, _, i) + '</li>';
474
+ }
475
+
476
+ dotString += '</ul>';
477
+
478
+ _.$dots = $(dotString).appendTo(
479
+ _.options.appendDots);
480
+
481
+ _.$dots.find('li').first().addClass('slick-active').attr('aria-hidden', 'false');
482
+
483
+ }
484
+
485
+ };
486
+
487
+ Slick.prototype.buildOut = function() {
488
+
489
+ var _ = this;
490
+
491
+ _.$slides =
492
+ _.$slider
493
+ .children( _.options.slide + ':not(.slick-cloned)')
494
+ .addClass('slick-slide');
495
+
496
+ _.slideCount = _.$slides.length;
497
+
498
+ _.$slides.each(function(index, element) {
499
+ $(element)
500
+ .attr('data-slick-index', index)
501
+ .data('originalStyling', $(element).attr('style') || '');
502
+ });
503
+
504
+ _.$slider.addClass('slick-slider');
505
+
506
+ _.$slideTrack = (_.slideCount === 0) ?
507
+ $('<div class="slick-track"/>').appendTo(_.$slider) :
508
+ _.$slides.wrapAll('<div class="slick-track"/>').parent();
509
+
510
+ _.$list = _.$slideTrack.wrap(
511
+ '<div aria-live="polite" class="slick-list"/>').parent();
512
+ _.$slideTrack.css('opacity', 0);
513
+
514
+ if (_.options.centerMode === true || _.options.swipeToSlide === true) {
515
+ _.options.slidesToScroll = 1;
516
+ }
517
+
518
+ $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');
519
+
520
+ _.setupInfinite();
521
+
522
+ _.buildArrows();
523
+
524
+ _.buildDots();
525
+
526
+ _.updateDots();
527
+
528
+
529
+ _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
530
+
531
+ if (_.options.draggable === true) {
532
+ _.$list.addClass('draggable');
533
+ }
534
+
535
+ };
536
+
537
+ Slick.prototype.buildRows = function() {
538
+
539
+ var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection;
540
+
541
+ newSlides = document.createDocumentFragment();
542
+ originalSlides = _.$slider.children();
543
+
544
+ if(_.options.rows > 1) {
545
+
546
+ slidesPerSection = _.options.slidesPerRow * _.options.rows;
547
+ numOfSlides = Math.ceil(
548
+ originalSlides.length / slidesPerSection
549
+ );
550
+
551
+ for(a = 0; a < numOfSlides; a++){
552
+ var slide = document.createElement('div');
553
+ for(b = 0; b < _.options.rows; b++) {
554
+ var row = document.createElement('div');
555
+ for(c = 0; c < _.options.slidesPerRow; c++) {
556
+ var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));
557
+ if (originalSlides.get(target)) {
558
+ row.appendChild(originalSlides.get(target));
559
+ }
560
+ }
561
+ slide.appendChild(row);
562
+ }
563
+ newSlides.appendChild(slide);
564
+ }
565
+
566
+ _.$slider.html(newSlides);
567
+ _.$slider.children().children().children()
568
+ .css({
569
+ 'width':(100 / _.options.slidesPerRow) + '%',
570
+ 'display': 'inline-block'
571
+ });
572
+
573
+ }
574
+
575
+ };
576
+
577
+ Slick.prototype.checkResponsive = function(initial, forceUpdate) {
578
+
579
+ var _ = this,
580
+ breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
581
+ var sliderWidth = _.$slider.width();
582
+ var windowWidth = window.innerWidth || $(window).width();
583
+
584
+ if (_.respondTo === 'window') {
585
+ respondToWidth = windowWidth;
586
+ } else if (_.respondTo === 'slider') {
587
+ respondToWidth = sliderWidth;
588
+ } else if (_.respondTo === 'min') {
589
+ respondToWidth = Math.min(windowWidth, sliderWidth);
590
+ }
591
+
592
+ if ( _.options.responsive &&
593
+ _.options.responsive.length &&
594
+ _.options.responsive !== null) {
595
+
596
+ targetBreakpoint = null;
597
+
598
+ for (breakpoint in _.breakpoints) {
599
+ if (_.breakpoints.hasOwnProperty(breakpoint)) {
600
+ if (_.originalSettings.mobileFirst === false) {
601
+ if (respondToWidth < _.breakpoints[breakpoint]) {
602
+ targetBreakpoint = _.breakpoints[breakpoint];
603
+ }
604
+ } else {
605
+ if (respondToWidth > _.breakpoints[breakpoint]) {
606
+ targetBreakpoint = _.breakpoints[breakpoint];
607
+ }
608
+ }
609
+ }
610
+ }
611
+
612
+ if (targetBreakpoint !== null) {
613
+ if (_.activeBreakpoint !== null) {
614
+ if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
615
+ _.activeBreakpoint =
616
+ targetBreakpoint;
617
+ if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
618
+ _.unslick(targetBreakpoint);
619
+ } else {
620
+ _.options = $.extend({}, _.originalSettings,
621
+ _.breakpointSettings[
622
+ targetBreakpoint]);
623
+ if (initial === true) {
624
+ _.currentSlide = _.options.initialSlide;
625
+ }
626
+ _.refresh(initial);
627
+ }
628
+ triggerBreakpoint = targetBreakpoint;
629
+ }
630
+ } else {
631
+ _.activeBreakpoint = targetBreakpoint;
632
+ if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
633
+ _.unslick(targetBreakpoint);
634
+ } else {
635
+ _.options = $.extend({}, _.originalSettings,
636
+ _.breakpointSettings[
637
+ targetBreakpoint]);
638
+ if (initial === true) {
639
+ _.currentSlide = _.options.initialSlide;
640
+ }
641
+ _.refresh(initial);
642
+ }
643
+ triggerBreakpoint = targetBreakpoint;
644
+ }
645
+ } else {
646
+ if (_.activeBreakpoint !== null) {
647
+ _.activeBreakpoint = null;
648
+ _.options = _.originalSettings;
649
+ if (initial === true) {
650
+ _.currentSlide = _.options.initialSlide;
651
+ }
652
+ _.refresh(initial);
653
+ triggerBreakpoint = targetBreakpoint;
654
+ }
655
+ }
656
+
657
+ // only trigger breakpoints during an actual break. not on initialize.
658
+ if( !initial && triggerBreakpoint !== false ) {
659
+ _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);
660
+ }
661
+ }
662
+
663
+ };
664
+
665
+ Slick.prototype.changeSlide = function(event, dontAnimate) {
666
+
667
+ var _ = this,
668
+ $target = $(event.target),
669
+ indexOffset, slideOffset, unevenOffset;
670
+
671
+ // If target is a link, prevent default action.
672
+ if($target.is('a')) {
673
+ event.preventDefault();
674
+ }
675
+
676
+ // If target is not the <li> element (ie: a child), find the <li>.
677
+ if(!$target.is('li')) {
678
+ $target = $target.closest('li');
679
+ }
680
+
681
+ unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);
682
+ indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;
683
+
684
+ switch (event.data.message) {
685
+
686
+ case 'previous':
687
+ slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
688
+ if (_.slideCount > _.options.slidesToShow) {
689
+ _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);
690
+ }
691
+ break;
692
+
693
+ case 'next':
694
+ slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
695
+ if (_.slideCount > _.options.slidesToShow) {
696
+ _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);
697
+ }
698
+ break;
699
+
700
+ case 'index':
701
+ var index = event.data.index === 0 ? 0 :
702
+ event.data.index || $target.index() * _.options.slidesToScroll;
703
+
704
+ _.slideHandler(_.checkNavigable(index), false, dontAnimate);
705
+ $target.children().trigger('focus');
706
+ break;
707
+
708
+ default:
709
+ return;
710
+ }
711
+
712
+ };
713
+
714
+ Slick.prototype.checkNavigable = function(index) {
715
+
716
+ var _ = this,
717
+ navigables, prevNavigable;
718
+
719
+ navigables = _.getNavigableIndexes();
720
+ prevNavigable = 0;
721
+ if (index > navigables[navigables.length - 1]) {
722
+ index = navigables[navigables.length - 1];
723
+ } else {
724
+ for (var n in navigables) {
725
+ if (index < navigables[n]) {
726
+ index = prevNavigable;
727
+ break;
728
+ }
729
+ prevNavigable = navigables[n];
730
+ }
731
+ }
732
+
733
+ return index;
734
+ };
735
+
736
+ Slick.prototype.cleanUpEvents = function() {
737
+
738
+ var _ = this;
739
+
740
+ if (_.options.dots && _.$dots !== null) {
741
+
742
+ $('li', _.$dots).off('click.slick', _.changeSlide);
743
+
744
+ if (_.options.pauseOnDotsHover === true && _.options.autoplay === true) {
745
+
746
+ $('li', _.$dots)
747
+ .off('mouseenter.slick', $.proxy(_.setPaused, _, true))
748
+ .off('mouseleave.slick', $.proxy(_.setPaused, _, false));
749
+
750
+ }
751
+
752
+ }
753
+
754
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
755
+ _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);
756
+ _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);
757
+ }
758
+
759
+ _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);
760
+ _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);
761
+ _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
762
+ _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);
763
+
764
+ _.$list.off('click.slick', _.clickHandler);
765
+
766
+ $(document).off(_.visibilityChange, _.visibility);
767
+
768
+ _.$list.off('mouseenter.slick', $.proxy(_.setPaused, _, true));
769
+ _.$list.off('mouseleave.slick', $.proxy(_.setPaused, _, false));
770
+
771
+ if (_.options.accessibility === true) {
772
+ _.$list.off('keydown.slick', _.keyHandler);
773
+ }
774
+
775
+ if (_.options.focusOnSelect === true) {
776
+ $(_.$slideTrack).children().off('click.slick', _.selectHandler);
777
+ }
778
+
779
+ $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);
780
+
781
+ $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);
782
+
783
+ $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);
784
+
785
+ $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);
786
+ $(document).off('ready.slick.slick-' + _.instanceUid, _.setPosition);
787
+ };
788
+
789
+ Slick.prototype.cleanUpRows = function() {
790
+
791
+ var _ = this, originalSlides;
792
+
793
+ if(_.options.rows > 1) {
794
+ originalSlides = _.$slides.children().children();
795
+ originalSlides.removeAttr('style');
796
+ _.$slider.html(originalSlides);
797
+ }
798
+
799
+ };
800
+
801
+ Slick.prototype.clickHandler = function(event) {
802
+
803
+ var _ = this;
804
+
805
+ if (_.shouldClick === false) {
806
+ event.stopImmediatePropagation();
807
+ event.stopPropagation();
808
+ event.preventDefault();
809
+ }
810
+
811
+ };
812
+
813
+ Slick.prototype.destroy = function(refresh) {
814
+
815
+ var _ = this;
816
+
817
+ _.autoPlayClear();
818
+
819
+ _.touchObject = {};
820
+
821
+ _.cleanUpEvents();
822
+
823
+ $('.slick-cloned', _.$slider).detach();
824
+
825
+ if (_.$dots) {
826
+ _.$dots.remove();
827
+ }
828
+
829
+
830
+ if ( _.$prevArrow && _.$prevArrow.length ) {
831
+
832
+ _.$prevArrow
833
+ .removeClass('slick-disabled slick-arrow slick-hidden')
834
+ .removeAttr('aria-hidden aria-disabled tabindex')
835
+ .css("display","");
836
+
837
+ if ( _.htmlExpr.test( _.options.prevArrow )) {
838
+ _.$prevArrow.remove();
839
+ }
840
+ }
841
+
842
+ if ( _.$nextArrow && _.$nextArrow.length ) {
843
+
844
+ _.$nextArrow
845
+ .removeClass('slick-disabled slick-arrow slick-hidden')
846
+ .removeAttr('aria-hidden aria-disabled tabindex')
847
+ .css("display","");
848
+
849
+ if ( _.htmlExpr.test( _.options.nextArrow )) {
850
+ _.$nextArrow.remove();
851
+ }
852
+
853
+ }
854
+
855
+
856
+ if (_.$slides) {
857
+
858
+ _.$slides
859
+ .removeClass('slick-slide slick-active slick-center slick-visible slick-current')
860
+ .removeAttr('aria-hidden')
861
+ .removeAttr('data-slick-index')
862
+ .each(function(){
863
+ $(this).attr('style', $(this).data('originalStyling'));
864
+ });
865
+
866
+ _.$slideTrack.children(this.options.slide).detach();
867
+
868
+ _.$slideTrack.detach();
869
+
870
+ _.$list.detach();
871
+
872
+ _.$slider.append(_.$slides);
873
+ }
874
+
875
+ _.cleanUpRows();
876
+
877
+ _.$slider.removeClass('slick-slider');
878
+ _.$slider.removeClass('slick-initialized');
879
+
880
+ _.unslicked = true;
881
+
882
+ if(!refresh) {
883
+ _.$slider.trigger('destroy', [_]);
884
+ }
885
+
886
+ };
887
+
888
+ Slick.prototype.disableTransition = function(slide) {
889
+
890
+ var _ = this,
891
+ transition = {};
892
+
893
+ transition[_.transitionType] = '';
894
+
895
+ if (_.options.fade === false) {
896
+ _.$slideTrack.css(transition);
897
+ } else {
898
+ _.$slides.eq(slide).css(transition);
899
+ }
900
+
901
+ };
902
+
903
+ Slick.prototype.fadeSlide = function(slideIndex, callback) {
904
+
905
+ var _ = this;
906
+
907
+ if (_.cssTransitions === false) {
908
+
909
+ _.$slides.eq(slideIndex).css({
910
+ zIndex: _.options.zIndex
911
+ });
912
+
913
+ _.$slides.eq(slideIndex).animate({
914
+ opacity: 1
915
+ }, _.options.speed, _.options.easing, callback);
916
+
917
+ } else {
918
+
919
+ _.applyTransition(slideIndex);
920
+
921
+ _.$slides.eq(slideIndex).css({
922
+ opacity: 1,
923
+ zIndex: _.options.zIndex
924
+ });
925
+
926
+ if (callback) {
927
+ setTimeout(function() {
928
+
929
+ _.disableTransition(slideIndex);
930
+
931
+ callback.call();
932
+ }, _.options.speed);
933
+ }
934
+
935
+ }
936
+
937
+ };
938
+
939
+ Slick.prototype.fadeSlideOut = function(slideIndex) {
940
+
941
+ var _ = this;
942
+
943
+ if (_.cssTransitions === false) {
944
+
945
+ _.$slides.eq(slideIndex).animate({
946
+ opacity: 0,
947
+ zIndex: _.options.zIndex - 2
948
+ }, _.options.speed, _.options.easing);
949
+
950
+ } else {
951
+
952
+ _.applyTransition(slideIndex);
953
+
954
+ _.$slides.eq(slideIndex).css({
955
+ opacity: 0,
956
+ zIndex: _.options.zIndex - 2
957
+ });
958
+
959
+ }
960
+
961
+ };
962
+
963
+ Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {
964
+
965
+ var _ = this;
966
+
967
+ if (filter !== null) {
968
+
969
+ _.$slidesCache = _.$slides;
970
+
971
+ _.unload();
972
+
973
+ _.$slideTrack.children(this.options.slide).detach();
974
+
975
+ _.$slidesCache.filter(filter).appendTo(_.$slideTrack);
976
+
977
+ _.reinit();
978
+
979
+ }
980
+
981
+ };
982
+
983
+ Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {
984
+
985
+ var _ = this;
986
+ return _.currentSlide;
987
+
988
+ };
989
+
990
+ Slick.prototype.getDotCount = function() {
991
+
992
+ var _ = this;
993
+
994
+ var breakPoint = 0;
995
+ var counter = 0;
996
+ var pagerQty = 0;
997
+
998
+ if (_.options.infinite === true) {
999
+ while (breakPoint < _.slideCount) {
1000
+ ++pagerQty;
1001
+ breakPoint = counter + _.options.slidesToScroll;
1002
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1003
+ }
1004
+ } else if (_.options.centerMode === true) {
1005
+ pagerQty = _.slideCount;
1006
+ } else {
1007
+ while (breakPoint < _.slideCount) {
1008
+ ++pagerQty;
1009
+ breakPoint = counter + _.options.slidesToScroll;
1010
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1011
+ }
1012
+ }
1013
+
1014
+ return pagerQty - 1;
1015
+
1016
+ };
1017
+
1018
+ Slick.prototype.getLeft = function(slideIndex) {
1019
+
1020
+ var _ = this,
1021
+ targetLeft,
1022
+ verticalHeight,
1023
+ verticalOffset = 0,
1024
+ targetSlide;
1025
+
1026
+ _.slideOffset = 0;
1027
+ verticalHeight = _.$slides.first().outerHeight(true);
1028
+
1029
+ if (_.options.infinite === true) {
1030
+ if (_.slideCount > _.options.slidesToShow) {
1031
+ _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
1032
+ verticalOffset = (verticalHeight * _.options.slidesToShow) * -1;
1033
+ }
1034
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
1035
+ if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
1036
+ if (slideIndex > _.slideCount) {
1037
+ _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;
1038
+ verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;
1039
+ } else {
1040
+ _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;
1041
+ verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;
1042
+ }
1043
+ }
1044
+ }
1045
+ } else {
1046
+ if (slideIndex + _.options.slidesToShow > _.slideCount) {
1047
+ _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;
1048
+ verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;
1049
+ }
1050
+ }
1051
+
1052
+ if (_.slideCount <= _.options.slidesToShow) {
1053
+ _.slideOffset = 0;
1054
+ verticalOffset = 0;
1055
+ }
1056
+
1057
+ if (_.options.centerMode === true && _.options.infinite === true) {
1058
+ _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;
1059
+ } else if (_.options.centerMode === true) {
1060
+ _.slideOffset = 0;
1061
+ _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);
1062
+ }
1063
+
1064
+ if (_.options.vertical === false) {
1065
+ targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;
1066
+ } else {
1067
+ targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;
1068
+ }
1069
+
1070
+ if (_.options.variableWidth === true) {
1071
+
1072
+ if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
1073
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
1074
+ } else {
1075
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);
1076
+ }
1077
+
1078
+ if (_.options.rtl === true) {
1079
+ if (targetSlide[0]) {
1080
+ targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
1081
+ } else {
1082
+ targetLeft = 0;
1083
+ }
1084
+ } else {
1085
+ targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
1086
+ }
1087
+
1088
+ if (_.options.centerMode === true) {
1089
+ if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
1090
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
1091
+ } else {
1092
+ targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);
1093
+ }
1094
+
1095
+ if (_.options.rtl === true) {
1096
+ if (targetSlide[0]) {
1097
+ targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
1098
+ } else {
1099
+ targetLeft = 0;
1100
+ }
1101
+ } else {
1102
+ targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
1103
+ }
1104
+
1105
+ targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;
1106
+ }
1107
+ }
1108
+
1109
+ return targetLeft;
1110
+
1111
+ };
1112
+
1113
+ Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {
1114
+
1115
+ var _ = this;
1116
+
1117
+ return _.options[option];
1118
+
1119
+ };
1120
+
1121
+ Slick.prototype.getNavigableIndexes = function() {
1122
+
1123
+ var _ = this,
1124
+ breakPoint = 0,
1125
+ counter = 0,
1126
+ indexes = [],
1127
+ max;
1128
+
1129
+ if (_.options.infinite === false) {
1130
+ max = _.slideCount;
1131
+ } else {
1132
+ breakPoint = _.options.slidesToScroll * -1;
1133
+ counter = _.options.slidesToScroll * -1;
1134
+ max = _.slideCount * 2;
1135
+ }
1136
+
1137
+ while (breakPoint < max) {
1138
+ indexes.push(breakPoint);
1139
+ breakPoint = counter + _.options.slidesToScroll;
1140
+ counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
1141
+ }
1142
+
1143
+ return indexes;
1144
+
1145
+ };
1146
+
1147
+ Slick.prototype.getSlick = function() {
1148
+
1149
+ return this;
1150
+
1151
+ };
1152
+
1153
+ Slick.prototype.getSlideCount = function() {
1154
+
1155
+ var _ = this,
1156
+ slidesTraversed, swipedSlide, centerOffset;
1157
+
1158
+ centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;
1159
+
1160
+ if (_.options.swipeToSlide === true) {
1161
+ _.$slideTrack.find('.slick-slide').each(function(index, slide) {
1162
+ if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {
1163
+ swipedSlide = slide;
1164
+ return false;
1165
+ }
1166
+ });
1167
+
1168
+ slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;
1169
+
1170
+ return slidesTraversed;
1171
+
1172
+ } else {
1173
+ return _.options.slidesToScroll;
1174
+ }
1175
+
1176
+ };
1177
+
1178
+ Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {
1179
+
1180
+ var _ = this;
1181
+
1182
+ _.changeSlide({
1183
+ data: {
1184
+ message: 'index',
1185
+ index: parseInt(slide)
1186
+ }
1187
+ }, dontAnimate);
1188
+
1189
+ };
1190
+
1191
+ Slick.prototype.init = function(creation) {
1192
+
1193
+ var _ = this;
1194
+
1195
+ if (!$(_.$slider).hasClass('slick-initialized')) {
1196
+
1197
+ $(_.$slider).addClass('slick-initialized');
1198
+
1199
+ _.buildRows();
1200
+ _.buildOut();
1201
+ _.setProps();
1202
+ _.startLoad();
1203
+ _.loadSlider();
1204
+ _.initializeEvents();
1205
+ _.updateArrows();
1206
+ _.updateDots();
1207
+
1208
+ }
1209
+
1210
+ if (creation) {
1211
+ _.$slider.trigger('init', [_]);
1212
+ }
1213
+
1214
+ if (_.options.accessibility === true) {
1215
+ _.initADA();
1216
+ }
1217
+
1218
+ };
1219
+
1220
+ Slick.prototype.initArrowEvents = function() {
1221
+
1222
+ var _ = this;
1223
+
1224
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1225
+ _.$prevArrow.on('click.slick', {
1226
+ message: 'previous'
1227
+ }, _.changeSlide);
1228
+ _.$nextArrow.on('click.slick', {
1229
+ message: 'next'
1230
+ }, _.changeSlide);
1231
+ }
1232
+
1233
+ };
1234
+
1235
+ Slick.prototype.initDotEvents = function() {
1236
+
1237
+ var _ = this;
1238
+
1239
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1240
+ $('li', _.$dots).on('click.slick', {
1241
+ message: 'index'
1242
+ }, _.changeSlide);
1243
+ }
1244
+
1245
+ if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.options.autoplay === true) {
1246
+ $('li', _.$dots)
1247
+ .on('mouseenter.slick', $.proxy(_.setPaused, _, true))
1248
+ .on('mouseleave.slick', $.proxy(_.setPaused, _, false));
1249
+ }
1250
+
1251
+ };
1252
+
1253
+ Slick.prototype.initializeEvents = function() {
1254
+
1255
+ var _ = this;
1256
+
1257
+ _.initArrowEvents();
1258
+
1259
+ _.initDotEvents();
1260
+
1261
+ _.$list.on('touchstart.slick mousedown.slick', {
1262
+ action: 'start'
1263
+ }, _.swipeHandler);
1264
+ _.$list.on('touchmove.slick mousemove.slick', {
1265
+ action: 'move'
1266
+ }, _.swipeHandler);
1267
+ _.$list.on('touchend.slick mouseup.slick', {
1268
+ action: 'end'
1269
+ }, _.swipeHandler);
1270
+ _.$list.on('touchcancel.slick mouseleave.slick', {
1271
+ action: 'end'
1272
+ }, _.swipeHandler);
1273
+
1274
+ _.$list.on('click.slick', _.clickHandler);
1275
+
1276
+ $(document).on(_.visibilityChange, $.proxy(_.visibility, _));
1277
+
1278
+ _.$list.on('mouseenter.slick', $.proxy(_.setPaused, _, true));
1279
+ _.$list.on('mouseleave.slick', $.proxy(_.setPaused, _, false));
1280
+
1281
+ if (_.options.accessibility === true) {
1282
+ _.$list.on('keydown.slick', _.keyHandler);
1283
+ }
1284
+
1285
+ if (_.options.focusOnSelect === true) {
1286
+ $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1287
+ }
1288
+
1289
+ $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));
1290
+
1291
+ $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));
1292
+
1293
+ $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);
1294
+
1295
+ $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);
1296
+ $(document).on('ready.slick.slick-' + _.instanceUid, _.setPosition);
1297
+
1298
+ };
1299
+
1300
+ Slick.prototype.initUI = function() {
1301
+
1302
+ var _ = this;
1303
+
1304
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
1305
+
1306
+ _.$prevArrow.show();
1307
+ _.$nextArrow.show();
1308
+
1309
+ }
1310
+
1311
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
1312
+
1313
+ _.$dots.show();
1314
+
1315
+ }
1316
+
1317
+ if (_.options.autoplay === true) {
1318
+
1319
+ _.autoPlay();
1320
+
1321
+ }
1322
+
1323
+ };
1324
+
1325
+ Slick.prototype.keyHandler = function(event) {
1326
+
1327
+ var _ = this;
1328
+ //Dont slide if the cursor is inside the form fields and arrow keys are pressed
1329
+ if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
1330
+ if (event.keyCode === 37 && _.options.accessibility === true) {
1331
+ _.changeSlide({
1332
+ data: {
1333
+ message: 'previous'
1334
+ }
1335
+ });
1336
+ } else if (event.keyCode === 39 && _.options.accessibility === true) {
1337
+ _.changeSlide({
1338
+ data: {
1339
+ message: 'next'
1340
+ }
1341
+ });
1342
+ }
1343
+ }
1344
+
1345
+ };
1346
+
1347
+ Slick.prototype.lazyLoad = function() {
1348
+
1349
+ var _ = this,
1350
+ loadRange, cloneRange, rangeStart, rangeEnd;
1351
+
1352
+ function loadImages(imagesScope) {
1353
+ $('img[data-lazy]', imagesScope).each(function() {
1354
+
1355
+ var image = $(this),
1356
+ imageSource = $(this).attr('data-lazy'),
1357
+ imageToLoad = document.createElement('img');
1358
+
1359
+ imageToLoad.onload = function() {
1360
+ image
1361
+ .animate({ opacity: 0 }, 100, function() {
1362
+ image
1363
+ .attr('src', imageSource)
1364
+ .animate({ opacity: 1 }, 200, function() {
1365
+ image
1366
+ .removeAttr('data-lazy')
1367
+ .removeClass('slick-loading');
1368
+ });
1369
+ });
1370
+ };
1371
+
1372
+ imageToLoad.src = imageSource;
1373
+
1374
+ });
1375
+ }
1376
+
1377
+ if (_.options.centerMode === true) {
1378
+ if (_.options.infinite === true) {
1379
+ rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
1380
+ rangeEnd = rangeStart + _.options.slidesToShow + 2;
1381
+ } else {
1382
+ rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
1383
+ rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;
1384
+ }
1385
+ } else {
1386
+ rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
1387
+ rangeEnd = rangeStart + _.options.slidesToShow;
1388
+ if (_.options.fade === true) {
1389
+ if (rangeStart > 0) rangeStart--;
1390
+ if (rangeEnd <= _.slideCount) rangeEnd++;
1391
+ }
1392
+ }
1393
+
1394
+ loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);
1395
+ loadImages(loadRange);
1396
+
1397
+ if (_.slideCount <= _.options.slidesToShow) {
1398
+ cloneRange = _.$slider.find('.slick-slide');
1399
+ loadImages(cloneRange);
1400
+ } else
1401
+ if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
1402
+ cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);
1403
+ loadImages(cloneRange);
1404
+ } else if (_.currentSlide === 0) {
1405
+ cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);
1406
+ loadImages(cloneRange);
1407
+ }
1408
+
1409
+ };
1410
+
1411
+ Slick.prototype.loadSlider = function() {
1412
+
1413
+ var _ = this;
1414
+
1415
+ _.setPosition();
1416
+
1417
+ _.$slideTrack.css({
1418
+ opacity: 1
1419
+ });
1420
+
1421
+ _.$slider.removeClass('slick-loading');
1422
+
1423
+ _.initUI();
1424
+
1425
+ if (_.options.lazyLoad === 'progressive') {
1426
+ _.progressiveLazyLoad();
1427
+ }
1428
+
1429
+ };
1430
+
1431
+ Slick.prototype.next = Slick.prototype.slickNext = function() {
1432
+
1433
+ var _ = this;
1434
+
1435
+ _.changeSlide({
1436
+ data: {
1437
+ message: 'next'
1438
+ }
1439
+ });
1440
+
1441
+ };
1442
+
1443
+ Slick.prototype.orientationChange = function() {
1444
+
1445
+ var _ = this;
1446
+
1447
+ _.checkResponsive();
1448
+ _.setPosition();
1449
+
1450
+ };
1451
+
1452
+ Slick.prototype.pause = Slick.prototype.slickPause = function() {
1453
+
1454
+ var _ = this;
1455
+
1456
+ _.autoPlayClear();
1457
+ _.paused = true;
1458
+
1459
+ };
1460
+
1461
+ Slick.prototype.play = Slick.prototype.slickPlay = function() {
1462
+
1463
+ var _ = this;
1464
+
1465
+ _.paused = false;
1466
+ _.autoPlay();
1467
+
1468
+ };
1469
+
1470
+ Slick.prototype.postSlide = function(index) {
1471
+
1472
+ var _ = this;
1473
+
1474
+ _.$slider.trigger('afterChange', [_, index]);
1475
+
1476
+ _.animating = false;
1477
+
1478
+ _.setPosition();
1479
+
1480
+ _.swipeLeft = null;
1481
+
1482
+ if (_.options.autoplay === true && _.paused === false) {
1483
+ _.autoPlay();
1484
+ }
1485
+ if (_.options.accessibility === true) {
1486
+ _.initADA();
1487
+ }
1488
+
1489
+ };
1490
+
1491
+ Slick.prototype.prev = Slick.prototype.slickPrev = function() {
1492
+
1493
+ var _ = this;
1494
+
1495
+ _.changeSlide({
1496
+ data: {
1497
+ message: 'previous'
1498
+ }
1499
+ });
1500
+
1501
+ };
1502
+
1503
+ Slick.prototype.preventDefault = function(event) {
1504
+ event.preventDefault();
1505
+ };
1506
+
1507
+ Slick.prototype.progressiveLazyLoad = function() {
1508
+
1509
+ var _ = this,
1510
+ imgCount, targetImage;
1511
+
1512
+ imgCount = $('img[data-lazy]', _.$slider).length;
1513
+
1514
+ if (imgCount > 0) {
1515
+ targetImage = $('img[data-lazy]', _.$slider).first();
1516
+ targetImage.attr('src', null);
1517
+ targetImage.attr('src', targetImage.attr('data-lazy')).removeClass('slick-loading').load(function() {
1518
+ targetImage.removeAttr('data-lazy');
1519
+ _.progressiveLazyLoad();
1520
+
1521
+ if (_.options.adaptiveHeight === true) {
1522
+ _.setPosition();
1523
+ }
1524
+ })
1525
+ .error(function() {
1526
+ targetImage.removeAttr('data-lazy');
1527
+ _.progressiveLazyLoad();
1528
+ });
1529
+ }
1530
+
1531
+ };
1532
+
1533
+ Slick.prototype.refresh = function( initializing ) {
1534
+
1535
+ var _ = this, currentSlide, firstVisible;
1536
+
1537
+ firstVisible = _.slideCount - _.options.slidesToShow;
1538
+
1539
+ // check that the new breakpoint can actually accept the
1540
+ // "current slide" as the current slide, otherwise we need
1541
+ // to set it to the closest possible value.
1542
+ if ( !_.options.infinite ) {
1543
+ if ( _.slideCount <= _.options.slidesToShow ) {
1544
+ _.currentSlide = 0;
1545
+ } else if ( _.currentSlide > firstVisible ) {
1546
+ _.currentSlide = firstVisible;
1547
+ }
1548
+ }
1549
+
1550
+ currentSlide = _.currentSlide;
1551
+
1552
+ _.destroy(true);
1553
+
1554
+ $.extend(_, _.initials, { currentSlide: currentSlide });
1555
+
1556
+ _.init();
1557
+
1558
+ if( !initializing ) {
1559
+
1560
+ _.changeSlide({
1561
+ data: {
1562
+ message: 'index',
1563
+ index: currentSlide
1564
+ }
1565
+ }, false);
1566
+
1567
+ }
1568
+
1569
+ };
1570
+
1571
+ Slick.prototype.registerBreakpoints = function() {
1572
+
1573
+ var _ = this, breakpoint, currentBreakpoint, l,
1574
+ responsiveSettings = _.options.responsive || null;
1575
+
1576
+ if ( $.type(responsiveSettings) === "array" && responsiveSettings.length ) {
1577
+
1578
+ _.respondTo = _.options.respondTo || 'window';
1579
+
1580
+ for ( breakpoint in responsiveSettings ) {
1581
+
1582
+ l = _.breakpoints.length-1;
1583
+ currentBreakpoint = responsiveSettings[breakpoint].breakpoint;
1584
+
1585
+ if (responsiveSettings.hasOwnProperty(breakpoint)) {
1586
+
1587
+ // loop through the breakpoints and cut out any existing
1588
+ // ones with the same breakpoint number, we don't want dupes.
1589
+ while( l >= 0 ) {
1590
+ if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) {
1591
+ _.breakpoints.splice(l,1);
1592
+ }
1593
+ l--;
1594
+ }
1595
+
1596
+ _.breakpoints.push(currentBreakpoint);
1597
+ _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;
1598
+
1599
+ }
1600
+
1601
+ }
1602
+
1603
+ _.breakpoints.sort(function(a, b) {
1604
+ return ( _.options.mobileFirst ) ? a-b : b-a;
1605
+ });
1606
+
1607
+ }
1608
+
1609
+ };
1610
+
1611
+ Slick.prototype.reinit = function() {
1612
+
1613
+ var _ = this;
1614
+
1615
+ _.$slides =
1616
+ _.$slideTrack
1617
+ .children(_.options.slide)
1618
+ .addClass('slick-slide');
1619
+
1620
+ _.slideCount = _.$slides.length;
1621
+
1622
+ if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
1623
+ _.currentSlide = _.currentSlide - _.options.slidesToScroll;
1624
+ }
1625
+
1626
+ if (_.slideCount <= _.options.slidesToShow) {
1627
+ _.currentSlide = 0;
1628
+ }
1629
+
1630
+ _.registerBreakpoints();
1631
+
1632
+ _.setProps();
1633
+ _.setupInfinite();
1634
+ _.buildArrows();
1635
+ _.updateArrows();
1636
+ _.initArrowEvents();
1637
+ _.buildDots();
1638
+ _.updateDots();
1639
+ _.initDotEvents();
1640
+
1641
+ _.checkResponsive(false, true);
1642
+
1643
+ if (_.options.focusOnSelect === true) {
1644
+ $(_.$slideTrack).children().on('click.slick', _.selectHandler);
1645
+ }
1646
+
1647
+ _.setSlideClasses(0);
1648
+
1649
+ _.setPosition();
1650
+
1651
+ _.$slider.trigger('reInit', [_]);
1652
+
1653
+ if (_.options.autoplay === true) {
1654
+ _.focusHandler();
1655
+ }
1656
+
1657
+ };
1658
+
1659
+ Slick.prototype.resize = function() {
1660
+
1661
+ var _ = this;
1662
+
1663
+ if ($(window).width() !== _.windowWidth) {
1664
+ clearTimeout(_.windowDelay);
1665
+ _.windowDelay = window.setTimeout(function() {
1666
+ _.windowWidth = $(window).width();
1667
+ _.checkResponsive();
1668
+ if( !_.unslicked ) { _.setPosition(); }
1669
+ }, 50);
1670
+ }
1671
+ };
1672
+
1673
+ Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {
1674
+
1675
+ var _ = this;
1676
+
1677
+ if (typeof(index) === 'boolean') {
1678
+ removeBefore = index;
1679
+ index = removeBefore === true ? 0 : _.slideCount - 1;
1680
+ } else {
1681
+ index = removeBefore === true ? --index : index;
1682
+ }
1683
+
1684
+ if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
1685
+ return false;
1686
+ }
1687
+
1688
+ _.unload();
1689
+
1690
+ if (removeAll === true) {
1691
+ _.$slideTrack.children().remove();
1692
+ } else {
1693
+ _.$slideTrack.children(this.options.slide).eq(index).remove();
1694
+ }
1695
+
1696
+ _.$slides = _.$slideTrack.children(this.options.slide);
1697
+
1698
+ _.$slideTrack.children(this.options.slide).detach();
1699
+
1700
+ _.$slideTrack.append(_.$slides);
1701
+
1702
+ _.$slidesCache = _.$slides;
1703
+
1704
+ _.reinit();
1705
+
1706
+ };
1707
+
1708
+ Slick.prototype.setCSS = function(position) {
1709
+
1710
+ var _ = this,
1711
+ positionProps = {},
1712
+ x, y;
1713
+
1714
+ if (_.options.rtl === true) {
1715
+ position = -position;
1716
+ }
1717
+ x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';
1718
+ y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';
1719
+
1720
+ positionProps[_.positionProp] = position;
1721
+
1722
+ if (_.transformsEnabled === false) {
1723
+ _.$slideTrack.css(positionProps);
1724
+ } else {
1725
+ positionProps = {};
1726
+ if (_.cssTransitions === false) {
1727
+ positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';
1728
+ _.$slideTrack.css(positionProps);
1729
+ } else {
1730
+ positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';
1731
+ _.$slideTrack.css(positionProps);
1732
+ }
1733
+ }
1734
+
1735
+ };
1736
+
1737
+ Slick.prototype.setDimensions = function() {
1738
+
1739
+ var _ = this;
1740
+
1741
+ if (_.options.vertical === false) {
1742
+ if (_.options.centerMode === true) {
1743
+ _.$list.css({
1744
+ padding: ('0px ' + _.options.centerPadding)
1745
+ });
1746
+ }
1747
+ } else {
1748
+ _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
1749
+ if (_.options.centerMode === true) {
1750
+ _.$list.css({
1751
+ padding: (_.options.centerPadding + ' 0px')
1752
+ });
1753
+ }
1754
+ }
1755
+
1756
+ _.listWidth = _.$list.width();
1757
+ _.listHeight = _.$list.height();
1758
+
1759
+
1760
+ if (_.options.vertical === false && _.options.variableWidth === false) {
1761
+ _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
1762
+ _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));
1763
+
1764
+ } else if (_.options.variableWidth === true) {
1765
+ _.$slideTrack.width(5000 * _.slideCount);
1766
+ } else {
1767
+ _.slideWidth = Math.ceil(_.listWidth);
1768
+ _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));
1769
+ }
1770
+
1771
+ var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
1772
+ if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);
1773
+
1774
+ };
1775
+
1776
+ Slick.prototype.setFade = function() {
1777
+
1778
+ var _ = this,
1779
+ targetLeft;
1780
+
1781
+ _.$slides.each(function(index, element) {
1782
+ targetLeft = (_.slideWidth * index) * -1;
1783
+ if (_.options.rtl === true) {
1784
+ $(element).css({
1785
+ position: 'relative',
1786
+ right: targetLeft,
1787
+ top: 0,
1788
+ zIndex: _.options.zIndex - 2,
1789
+ opacity: 0
1790
+ });
1791
+ } else {
1792
+ $(element).css({
1793
+ position: 'relative',
1794
+ left: targetLeft,
1795
+ top: 0,
1796
+ zIndex: _.options.zIndex - 2,
1797
+ opacity: 0
1798
+ });
1799
+ }
1800
+ });
1801
+
1802
+ _.$slides.eq(_.currentSlide).css({
1803
+ zIndex: _.options.zIndex - 1,
1804
+ opacity: 1
1805
+ });
1806
+
1807
+ };
1808
+
1809
+ Slick.prototype.setHeight = function() {
1810
+
1811
+ var _ = this;
1812
+
1813
+ if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
1814
+ var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
1815
+ _.$list.css('height', targetHeight);
1816
+ }
1817
+
1818
+ };
1819
+
1820
+ Slick.prototype.setOption = Slick.prototype.slickSetOption = function(option, value, refresh) {
1821
+
1822
+ var _ = this, l, item;
1823
+
1824
+ if( option === "responsive" && $.type(value) === "array" ) {
1825
+ for ( item in value ) {
1826
+ if( $.type( _.options.responsive ) !== "array" ) {
1827
+ _.options.responsive = [ value[item] ];
1828
+ } else {
1829
+ l = _.options.responsive.length-1;
1830
+ // loop through the responsive object and splice out duplicates.
1831
+ while( l >= 0 ) {
1832
+ if( _.options.responsive[l].breakpoint === value[item].breakpoint ) {
1833
+ _.options.responsive.splice(l,1);
1834
+ }
1835
+ l--;
1836
+ }
1837
+ _.options.responsive.push( value[item] );
1838
+ }
1839
+ }
1840
+ } else {
1841
+ _.options[option] = value;
1842
+ }
1843
+
1844
+ if (refresh === true) {
1845
+ _.unload();
1846
+ _.reinit();
1847
+ }
1848
+
1849
+ };
1850
+
1851
+ Slick.prototype.setPosition = function() {
1852
+
1853
+ var _ = this;
1854
+
1855
+ _.setDimensions();
1856
+
1857
+ _.setHeight();
1858
+
1859
+ if (_.options.fade === false) {
1860
+ _.setCSS(_.getLeft(_.currentSlide));
1861
+ } else {
1862
+ _.setFade();
1863
+ }
1864
+
1865
+ _.$slider.trigger('setPosition', [_]);
1866
+
1867
+ };
1868
+
1869
+ Slick.prototype.setProps = function() {
1870
+
1871
+ var _ = this,
1872
+ bodyStyle = document.body.style;
1873
+
1874
+ _.positionProp = _.options.vertical === true ? 'top' : 'left';
1875
+
1876
+ if (_.positionProp === 'top') {
1877
+ _.$slider.addClass('slick-vertical');
1878
+ } else {
1879
+ _.$slider.removeClass('slick-vertical');
1880
+ }
1881
+
1882
+ if (bodyStyle.WebkitTransition !== undefined ||
1883
+ bodyStyle.MozTransition !== undefined ||
1884
+ bodyStyle.msTransition !== undefined) {
1885
+ if (_.options.useCSS === true) {
1886
+ _.cssTransitions = true;
1887
+ }
1888
+ }
1889
+
1890
+ if ( _.options.fade ) {
1891
+ if ( typeof _.options.zIndex === 'number' ) {
1892
+ if( _.options.zIndex < 3 ) {
1893
+ _.options.zIndex = 3;
1894
+ }
1895
+ } else {
1896
+ _.options.zIndex = _.defaults.zIndex;
1897
+ }
1898
+ }
1899
+
1900
+ if (bodyStyle.OTransform !== undefined) {
1901
+ _.animType = 'OTransform';
1902
+ _.transformType = '-o-transform';
1903
+ _.transitionType = 'OTransition';
1904
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
1905
+ }
1906
+ if (bodyStyle.MozTransform !== undefined) {
1907
+ _.animType = 'MozTransform';
1908
+ _.transformType = '-moz-transform';
1909
+ _.transitionType = 'MozTransition';
1910
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;
1911
+ }
1912
+ if (bodyStyle.webkitTransform !== undefined) {
1913
+ _.animType = 'webkitTransform';
1914
+ _.transformType = '-webkit-transform';
1915
+ _.transitionType = 'webkitTransition';
1916
+ if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
1917
+ }
1918
+ if (bodyStyle.msTransform !== undefined) {
1919
+ _.animType = 'msTransform';
1920
+ _.transformType = '-ms-transform';
1921
+ _.transitionType = 'msTransition';
1922
+ if (bodyStyle.msTransform === undefined) _.animType = false;
1923
+ }
1924
+ if (bodyStyle.transform !== undefined && _.animType !== false) {
1925
+ _.animType = 'transform';
1926
+ _.transformType = 'transform';
1927
+ _.transitionType = 'transition';
1928
+ }
1929
+ _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);
1930
+ };
1931
+
1932
+
1933
+ Slick.prototype.setSlideClasses = function(index) {
1934
+
1935
+ var _ = this,
1936
+ centerOffset, allSlides, indexOffset, remainder;
1937
+
1938
+ allSlides = _.$slider
1939
+ .find('.slick-slide')
1940
+ .removeClass('slick-active slick-center slick-current')
1941
+ .attr('aria-hidden', 'true');
1942
+
1943
+ _.$slides
1944
+ .eq(index)
1945
+ .addClass('slick-current');
1946
+
1947
+ if (_.options.centerMode === true) {
1948
+
1949
+ centerOffset = Math.floor(_.options.slidesToShow / 2);
1950
+
1951
+ if (_.options.infinite === true) {
1952
+
1953
+ if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {
1954
+
1955
+ _.$slides
1956
+ .slice(index - centerOffset, index + centerOffset + 1)
1957
+ .addClass('slick-active')
1958
+ .attr('aria-hidden', 'false');
1959
+
1960
+ } else {
1961
+
1962
+ indexOffset = _.options.slidesToShow + index;
1963
+ allSlides
1964
+ .slice(indexOffset - centerOffset + 1, indexOffset + centerOffset + 2)
1965
+ .addClass('slick-active')
1966
+ .attr('aria-hidden', 'false');
1967
+
1968
+ }
1969
+
1970
+ if (index === 0) {
1971
+
1972
+ allSlides
1973
+ .eq(allSlides.length - 1 - _.options.slidesToShow)
1974
+ .addClass('slick-center');
1975
+
1976
+ } else if (index === _.slideCount - 1) {
1977
+
1978
+ allSlides
1979
+ .eq(_.options.slidesToShow)
1980
+ .addClass('slick-center');
1981
+
1982
+ }
1983
+
1984
+ }
1985
+
1986
+ _.$slides
1987
+ .eq(index)
1988
+ .addClass('slick-center');
1989
+
1990
+ } else {
1991
+
1992
+ if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {
1993
+
1994
+ _.$slides
1995
+ .slice(index, index + _.options.slidesToShow)
1996
+ .addClass('slick-active')
1997
+ .attr('aria-hidden', 'false');
1998
+
1999
+ } else if (allSlides.length <= _.options.slidesToShow) {
2000
+
2001
+ allSlides
2002
+ .addClass('slick-active')
2003
+ .attr('aria-hidden', 'false');
2004
+
2005
+ } else {
2006
+
2007
+ remainder = _.slideCount % _.options.slidesToShow;
2008
+ indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;
2009
+
2010
+ if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {
2011
+
2012
+ allSlides
2013
+ .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)
2014
+ .addClass('slick-active')
2015
+ .attr('aria-hidden', 'false');
2016
+
2017
+ } else {
2018
+
2019
+ allSlides
2020
+ .slice(indexOffset, indexOffset + _.options.slidesToShow)
2021
+ .addClass('slick-active')
2022
+ .attr('aria-hidden', 'false');
2023
+
2024
+ }
2025
+
2026
+ }
2027
+
2028
+ }
2029
+
2030
+ if (_.options.lazyLoad === 'ondemand') {
2031
+ _.lazyLoad();
2032
+ }
2033
+
2034
+ };
2035
+
2036
+ Slick.prototype.setupInfinite = function() {
2037
+
2038
+ var _ = this,
2039
+ i, slideIndex, infiniteCount;
2040
+
2041
+ if (_.options.fade === true) {
2042
+ _.options.centerMode = false;
2043
+ }
2044
+
2045
+ if (_.options.infinite === true && _.options.fade === false) {
2046
+
2047
+ slideIndex = null;
2048
+
2049
+ if (_.slideCount > _.options.slidesToShow) {
2050
+
2051
+ if (_.options.centerMode === true) {
2052
+ infiniteCount = _.options.slidesToShow + 1;
2053
+ } else {
2054
+ infiniteCount = _.options.slidesToShow;
2055
+ }
2056
+
2057
+ for (i = _.slideCount; i > (_.slideCount -
2058
+ infiniteCount); i -= 1) {
2059
+ slideIndex = i - 1;
2060
+ $(_.$slides[slideIndex]).clone(true).attr('id', '')
2061
+ .attr('data-slick-index', slideIndex - _.slideCount)
2062
+ .prependTo(_.$slideTrack).addClass('slick-cloned');
2063
+ }
2064
+ for (i = 0; i < infiniteCount; i += 1) {
2065
+ slideIndex = i;
2066
+ $(_.$slides[slideIndex]).clone(true).attr('id', '')
2067
+ .attr('data-slick-index', slideIndex + _.slideCount)
2068
+ .appendTo(_.$slideTrack).addClass('slick-cloned');
2069
+ }
2070
+ _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {
2071
+ $(this).attr('id', '');
2072
+ });
2073
+
2074
+ }
2075
+
2076
+ }
2077
+
2078
+ };
2079
+
2080
+ Slick.prototype.setPaused = function(paused) {
2081
+
2082
+ var _ = this;
2083
+
2084
+ if (_.options.autoplay === true && _.options.pauseOnHover === true) {
2085
+ _.paused = paused;
2086
+ if (!paused) {
2087
+ _.autoPlay();
2088
+ } else {
2089
+ _.autoPlayClear();
2090
+ }
2091
+ }
2092
+ };
2093
+
2094
+ Slick.prototype.selectHandler = function(event) {
2095
+
2096
+ var _ = this;
2097
+
2098
+ var targetElement =
2099
+ $(event.target).is('.slick-slide') ?
2100
+ $(event.target) :
2101
+ $(event.target).parents('.slick-slide');
2102
+
2103
+ var index = parseInt(targetElement.attr('data-slick-index'));
2104
+
2105
+ if (!index) index = 0;
2106
+
2107
+ if (_.slideCount <= _.options.slidesToShow) {
2108
+
2109
+ _.setSlideClasses(index);
2110
+ _.asNavFor(index);
2111
+ return;
2112
+
2113
+ }
2114
+
2115
+ _.slideHandler(index);
2116
+
2117
+ };
2118
+
2119
+ Slick.prototype.slideHandler = function(index, sync, dontAnimate) {
2120
+
2121
+ var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
2122
+ _ = this;
2123
+
2124
+ sync = sync || false;
2125
+
2126
+ if (_.animating === true && _.options.waitForAnimate === true) {
2127
+ return;
2128
+ }
2129
+
2130
+ if (_.options.fade === true && _.currentSlide === index) {
2131
+ return;
2132
+ }
2133
+
2134
+ if (_.slideCount <= _.options.slidesToShow) {
2135
+ return;
2136
+ }
2137
+
2138
+ if (sync === false) {
2139
+ _.asNavFor(index);
2140
+ }
2141
+
2142
+ targetSlide = index;
2143
+ targetLeft = _.getLeft(targetSlide);
2144
+ slideLeft = _.getLeft(_.currentSlide);
2145
+
2146
+ _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
2147
+
2148
+ if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
2149
+ if (_.options.fade === false) {
2150
+ targetSlide = _.currentSlide;
2151
+ if (dontAnimate !== true) {
2152
+ _.animateSlide(slideLeft, function() {
2153
+ _.postSlide(targetSlide);
2154
+ });
2155
+ } else {
2156
+ _.postSlide(targetSlide);
2157
+ }
2158
+ }
2159
+ return;
2160
+ } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {
2161
+ if (_.options.fade === false) {
2162
+ targetSlide = _.currentSlide;
2163
+ if (dontAnimate !== true) {
2164
+ _.animateSlide(slideLeft, function() {
2165
+ _.postSlide(targetSlide);
2166
+ });
2167
+ } else {
2168
+ _.postSlide(targetSlide);
2169
+ }
2170
+ }
2171
+ return;
2172
+ }
2173
+
2174
+ if (_.options.autoplay === true) {
2175
+ clearInterval(_.autoPlayTimer);
2176
+ }
2177
+
2178
+ if (targetSlide < 0) {
2179
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
2180
+ animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);
2181
+ } else {
2182
+ animSlide = _.slideCount + targetSlide;
2183
+ }
2184
+ } else if (targetSlide >= _.slideCount) {
2185
+ if (_.slideCount % _.options.slidesToScroll !== 0) {
2186
+ animSlide = 0;
2187
+ } else {
2188
+ animSlide = targetSlide - _.slideCount;
2189
+ }
2190
+ } else {
2191
+ animSlide = targetSlide;
2192
+ }
2193
+
2194
+ _.animating = true;
2195
+
2196
+ _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);
2197
+
2198
+ oldSlide = _.currentSlide;
2199
+ _.currentSlide = animSlide;
2200
+
2201
+ _.setSlideClasses(_.currentSlide);
2202
+
2203
+ _.updateDots();
2204
+ _.updateArrows();
2205
+
2206
+ if (_.options.fade === true) {
2207
+ if (dontAnimate !== true) {
2208
+
2209
+ _.fadeSlideOut(oldSlide);
2210
+
2211
+ _.fadeSlide(animSlide, function() {
2212
+ _.postSlide(animSlide);
2213
+ });
2214
+
2215
+ } else {
2216
+ _.postSlide(animSlide);
2217
+ }
2218
+ _.animateHeight();
2219
+ return;
2220
+ }
2221
+
2222
+ if (dontAnimate !== true) {
2223
+ _.animateSlide(targetLeft, function() {
2224
+ _.postSlide(animSlide);
2225
+ });
2226
+ } else {
2227
+ _.postSlide(animSlide);
2228
+ }
2229
+
2230
+ };
2231
+
2232
+ Slick.prototype.startLoad = function() {
2233
+
2234
+ var _ = this;
2235
+
2236
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
2237
+
2238
+ _.$prevArrow.hide();
2239
+ _.$nextArrow.hide();
2240
+
2241
+ }
2242
+
2243
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
2244
+
2245
+ _.$dots.hide();
2246
+
2247
+ }
2248
+
2249
+ _.$slider.addClass('slick-loading');
2250
+
2251
+ };
2252
+
2253
+ Slick.prototype.swipeDirection = function() {
2254
+
2255
+ var xDist, yDist, r, swipeAngle, _ = this;
2256
+
2257
+ xDist = _.touchObject.startX - _.touchObject.curX;
2258
+ yDist = _.touchObject.startY - _.touchObject.curY;
2259
+ r = Math.atan2(yDist, xDist);
2260
+
2261
+ swipeAngle = Math.round(r * 180 / Math.PI);
2262
+ if (swipeAngle < 0) {
2263
+ swipeAngle = 360 - Math.abs(swipeAngle);
2264
+ }
2265
+
2266
+ if ((swipeAngle <= 45) && (swipeAngle >= 0)) {
2267
+ return (_.options.rtl === false ? 'left' : 'right');
2268
+ }
2269
+ if ((swipeAngle <= 360) && (swipeAngle >= 315)) {
2270
+ return (_.options.rtl === false ? 'left' : 'right');
2271
+ }
2272
+ if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
2273
+ return (_.options.rtl === false ? 'right' : 'left');
2274
+ }
2275
+ if (_.options.verticalSwiping === true) {
2276
+ if ((swipeAngle >= 35) && (swipeAngle <= 135)) {
2277
+ return 'left';
2278
+ } else {
2279
+ return 'right';
2280
+ }
2281
+ }
2282
+
2283
+ return 'vertical';
2284
+
2285
+ };
2286
+
2287
+ Slick.prototype.swipeEnd = function(event) {
2288
+
2289
+ var _ = this,
2290
+ slideCount;
2291
+
2292
+ _.dragging = false;
2293
+
2294
+ _.shouldClick = (_.touchObject.swipeLength > 10) ? false : true;
2295
+
2296
+ if (_.touchObject.curX === undefined) {
2297
+ return false;
2298
+ }
2299
+
2300
+ if (_.touchObject.edgeHit === true) {
2301
+ _.$slider.trigger('edge', [_, _.swipeDirection()]);
2302
+ }
2303
+
2304
+ if (_.touchObject.swipeLength >= _.touchObject.minSwipe) {
2305
+
2306
+ switch (_.swipeDirection()) {
2307
+ case 'left':
2308
+ slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide + _.getSlideCount()) : _.currentSlide + _.getSlideCount();
2309
+ _.slideHandler(slideCount);
2310
+ _.currentDirection = 0;
2311
+ _.touchObject = {};
2312
+ _.$slider.trigger('swipe', [_, 'left']);
2313
+ break;
2314
+
2315
+ case 'right':
2316
+ slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide - _.getSlideCount()) : _.currentSlide - _.getSlideCount();
2317
+ _.slideHandler(slideCount);
2318
+ _.currentDirection = 1;
2319
+ _.touchObject = {};
2320
+ _.$slider.trigger('swipe', [_, 'right']);
2321
+ break;
2322
+ }
2323
+ } else {
2324
+ if (_.touchObject.startX !== _.touchObject.curX) {
2325
+ _.slideHandler(_.currentSlide);
2326
+ _.touchObject = {};
2327
+ }
2328
+ }
2329
+
2330
+ };
2331
+
2332
+ Slick.prototype.swipeHandler = function(event) {
2333
+
2334
+ var _ = this;
2335
+
2336
+ if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {
2337
+ return;
2338
+ } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {
2339
+ return;
2340
+ }
2341
+
2342
+ _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?
2343
+ event.originalEvent.touches.length : 1;
2344
+
2345
+ _.touchObject.minSwipe = _.listWidth / _.options
2346
+ .touchThreshold;
2347
+
2348
+ if (_.options.verticalSwiping === true) {
2349
+ _.touchObject.minSwipe = _.listHeight / _.options
2350
+ .touchThreshold;
2351
+ }
2352
+
2353
+ switch (event.data.action) {
2354
+
2355
+ case 'start':
2356
+ _.swipeStart(event);
2357
+ break;
2358
+
2359
+ case 'move':
2360
+ _.swipeMove(event);
2361
+ break;
2362
+
2363
+ case 'end':
2364
+ _.swipeEnd(event);
2365
+ break;
2366
+
2367
+ }
2368
+
2369
+ };
2370
+
2371
+ Slick.prototype.swipeMove = function(event) {
2372
+
2373
+ var _ = this,
2374
+ edgeWasHit = false,
2375
+ curLeft, swipeDirection, swipeLength, positionOffset, touches;
2376
+
2377
+ touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
2378
+
2379
+ if (!_.dragging || touches && touches.length !== 1) {
2380
+ return false;
2381
+ }
2382
+
2383
+ curLeft = _.getLeft(_.currentSlide);
2384
+
2385
+ _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
2386
+ _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
2387
+
2388
+ _.touchObject.swipeLength = Math.round(Math.sqrt(
2389
+ Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
2390
+
2391
+ if (_.options.verticalSwiping === true) {
2392
+ _.touchObject.swipeLength = Math.round(Math.sqrt(
2393
+ Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));
2394
+ }
2395
+
2396
+ swipeDirection = _.swipeDirection();
2397
+
2398
+ if (swipeDirection === 'vertical') {
2399
+ return;
2400
+ }
2401
+
2402
+ if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
2403
+ event.preventDefault();
2404
+ }
2405
+
2406
+ positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
2407
+ if (_.options.verticalSwiping === true) {
2408
+ positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;
2409
+ }
2410
+
2411
+
2412
+ swipeLength = _.touchObject.swipeLength;
2413
+
2414
+ _.touchObject.edgeHit = false;
2415
+
2416
+ if (_.options.infinite === false) {
2417
+ if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {
2418
+ swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
2419
+ _.touchObject.edgeHit = true;
2420
+ }
2421
+ }
2422
+
2423
+ if (_.options.vertical === false) {
2424
+ _.swipeLeft = curLeft + swipeLength * positionOffset;
2425
+ } else {
2426
+ _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;
2427
+ }
2428
+ if (_.options.verticalSwiping === true) {
2429
+ _.swipeLeft = curLeft + swipeLength * positionOffset;
2430
+ }
2431
+
2432
+ if (_.options.fade === true || _.options.touchMove === false) {
2433
+ return false;
2434
+ }
2435
+
2436
+ if (_.animating === true) {
2437
+ _.swipeLeft = null;
2438
+ return false;
2439
+ }
2440
+
2441
+ _.setCSS(_.swipeLeft);
2442
+
2443
+ };
2444
+
2445
+ Slick.prototype.swipeStart = function(event) {
2446
+
2447
+ var _ = this,
2448
+ touches;
2449
+
2450
+ if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
2451
+ _.touchObject = {};
2452
+ return false;
2453
+ }
2454
+
2455
+ if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
2456
+ touches = event.originalEvent.touches[0];
2457
+ }
2458
+
2459
+ _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
2460
+ _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
2461
+
2462
+ _.dragging = true;
2463
+
2464
+ };
2465
+
2466
+ Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {
2467
+
2468
+ var _ = this;
2469
+
2470
+ if (_.$slidesCache !== null) {
2471
+
2472
+ _.unload();
2473
+
2474
+ _.$slideTrack.children(this.options.slide).detach();
2475
+
2476
+ _.$slidesCache.appendTo(_.$slideTrack);
2477
+
2478
+ _.reinit();
2479
+
2480
+ }
2481
+
2482
+ };
2483
+
2484
+ Slick.prototype.unload = function() {
2485
+
2486
+ var _ = this;
2487
+
2488
+ $('.slick-cloned', _.$slider).remove();
2489
+
2490
+ if (_.$dots) {
2491
+ _.$dots.remove();
2492
+ }
2493
+
2494
+ if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
2495
+ _.$prevArrow.remove();
2496
+ }
2497
+
2498
+ if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
2499
+ _.$nextArrow.remove();
2500
+ }
2501
+
2502
+ _.$slides
2503
+ .removeClass('slick-slide slick-active slick-visible slick-current')
2504
+ .attr('aria-hidden', 'true')
2505
+ .css('width', '');
2506
+
2507
+ };
2508
+
2509
+ Slick.prototype.unslick = function(fromBreakpoint) {
2510
+
2511
+ var _ = this;
2512
+ _.$slider.trigger('unslick', [_, fromBreakpoint]);
2513
+ _.destroy();
2514
+
2515
+ };
2516
+
2517
+ Slick.prototype.updateArrows = function() {
2518
+
2519
+ var _ = this,
2520
+ centerOffset;
2521
+
2522
+ centerOffset = Math.floor(_.options.slidesToShow / 2);
2523
+
2524
+ if ( _.options.arrows === true &&
2525
+ _.slideCount > _.options.slidesToShow &&
2526
+ !_.options.infinite ) {
2527
+
2528
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2529
+ _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2530
+
2531
+ if (_.currentSlide === 0) {
2532
+
2533
+ _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2534
+ _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2535
+
2536
+ } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {
2537
+
2538
+ _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2539
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2540
+
2541
+ } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {
2542
+
2543
+ _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
2544
+ _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
2545
+
2546
+ }
2547
+
2548
+ }
2549
+
2550
+ };
2551
+
2552
+ Slick.prototype.updateDots = function() {
2553
+
2554
+ var _ = this;
2555
+
2556
+ if (_.$dots !== null) {
2557
+
2558
+ _.$dots
2559
+ .find('li')
2560
+ .removeClass('slick-active')
2561
+ .attr('aria-hidden', 'true');
2562
+
2563
+ _.$dots
2564
+ .find('li')
2565
+ .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))
2566
+ .addClass('slick-active')
2567
+ .attr('aria-hidden', 'false');
2568
+
2569
+ }
2570
+
2571
+ };
2572
+
2573
+ Slick.prototype.visibility = function() {
2574
+
2575
+ var _ = this;
2576
+
2577
+ if (document[_.hidden]) {
2578
+ _.paused = true;
2579
+ _.autoPlayClear();
2580
+ } else {
2581
+ if (_.options.autoplay === true) {
2582
+ _.paused = false;
2583
+ _.autoPlay();
2584
+ }
2585
+ }
2586
+
2587
+ };
2588
+ Slick.prototype.initADA = function() {
2589
+ var _ = this;
2590
+ _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({
2591
+ 'aria-hidden': 'true',
2592
+ 'tabindex': '-1'
2593
+ }).find('a, input, button, select').attr({
2594
+ 'tabindex': '-1'
2595
+ });
2596
+
2597
+ _.$slideTrack.attr('role', 'listbox');
2598
+
2599
+ _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) {
2600
+ $(this).attr({
2601
+ 'role': 'option',
2602
+ 'aria-describedby': 'slick-slide' + _.instanceUid + i + ''
2603
+ });
2604
+ });
2605
+
2606
+ if (_.$dots !== null) {
2607
+ _.$dots.attr('role', 'tablist').find('li').each(function(i) {
2608
+ $(this).attr({
2609
+ 'role': 'presentation',
2610
+ 'aria-selected': 'false',
2611
+ 'aria-controls': 'navigation' + _.instanceUid + i + '',
2612
+ 'id': 'slick-slide' + _.instanceUid + i + ''
2613
+ });
2614
+ })
2615
+ .first().attr('aria-selected', 'true').end()
2616
+ .find('button').attr('role', 'button').end()
2617
+ .closest('div').attr('role', 'toolbar');
2618
+ }
2619
+ _.activateADA();
2620
+
2621
+ };
2622
+
2623
+ Slick.prototype.activateADA = function() {
2624
+ var _ = this;
2625
+
2626
+ _.$slideTrack.find('.slick-active').attr({
2627
+ 'aria-hidden': 'false'
2628
+ }).find('a, input, button, select').attr({
2629
+ 'tabindex': '0'
2630
+ });
2631
+
2632
+ };
2633
+
2634
+ Slick.prototype.focusHandler = function() {
2635
+ var _ = this;
2636
+ _.$slider.on('focus.slick blur.slick', '*', function(event) {
2637
+ event.stopImmediatePropagation();
2638
+ var sf = $(this);
2639
+ setTimeout(function() {
2640
+ if (_.isPlay) {
2641
+ if (sf.is(':focus')) {
2642
+ _.autoPlayClear();
2643
+ _.paused = true;
2644
+ } else {
2645
+ _.paused = false;
2646
+ _.autoPlay();
2647
+ }
2648
+ }
2649
+ }, 0);
2650
+ });
2651
+ };
2652
+
2653
+ $.fn.slick = function() {
2654
+ var _ = this,
2655
+ opt = arguments[0],
2656
+ args = Array.prototype.slice.call(arguments, 1),
2657
+ l = _.length,
2658
+ i,
2659
+ ret;
2660
+ for (i = 0; i < l; i++) {
2661
+ if (typeof opt == 'object' || typeof opt == 'undefined')
2662
+ _[i].slick = new Slick(_[i], opt);
2663
+ else
2664
+ ret = _[i].slick[opt].apply(_[i].slick, args);
2665
+ if (typeof ret != 'undefined') return ret;
2666
+ }
2667
+ return _;
2668
+ };
2669
+
2670
+ }));
assets/js/slick.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ (function(factory){"use strict";if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof exports!=="undefined"){module.exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){"use strict";var Slick=window.Slick||{};Slick=function(){var instanceUid=0;function Slick(element,settings){var _=this,dataSettings;_.defaults={accessibility:true,adaptiveHeight:false,appendArrows:$(element),appendDots:$(element),arrows:true,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:false,autoplaySpeed:3e3,centerMode:false,centerPadding:"50px",cssEase:"ease",customPaging:function(slider,i){return'<button type="button" data-role="none" role="button" aria-required="false" tabindex="0">'+(i+1)+"</button>"},dots:false,dotsClass:"slick-dots",draggable:true,easing:"linear",edgeFriction:.35,fade:false,focusOnSelect:false,infinite:true,initialSlide:0,lazyLoad:"ondemand",mobileFirst:false,pauseOnHover:true,pauseOnDotsHover:false,respondTo:"window",responsive:null,rows:1,rtl:false,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:true,swipeToSlide:false,touchMove:true,touchThreshold:5,useCSS:true,useTransform:false,variableWidth:false,vertical:false,verticalSwiping:false,waitForAnimate:true,zIndex:1e3};_.initials={animating:false,dragging:false,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:false,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:false,unslicked:false};$.extend(_,_.initials);_.activeBreakpoint=null;_.animType=null;_.animProp=null;_.breakpoints=[];_.breakpointSettings=[];_.cssTransitions=false;_.hidden="hidden";_.paused=false;_.positionProp=null;_.respondTo=null;_.rowCount=1;_.shouldClick=true;_.$slider=$(element);_.$slidesCache=null;_.transformType=null;_.transitionType=null;_.visibilityChange="visibilitychange";_.windowWidth=0;_.windowTimer=null;dataSettings=$(element).data("slick")||{};_.options=$.extend({},_.defaults,dataSettings,settings);_.currentSlide=_.options.initialSlide;_.originalSettings=_.options;if(typeof document.mozHidden!=="undefined"){_.hidden="mozHidden";_.visibilityChange="mozvisibilitychange"}else if(typeof document.webkitHidden!=="undefined"){_.hidden="webkitHidden";_.visibilityChange="webkitvisibilitychange"}_.autoPlay=$.proxy(_.autoPlay,_);_.autoPlayClear=$.proxy(_.autoPlayClear,_);_.changeSlide=$.proxy(_.changeSlide,_);_.clickHandler=$.proxy(_.clickHandler,_);_.selectHandler=$.proxy(_.selectHandler,_);_.setPosition=$.proxy(_.setPosition,_);_.swipeHandler=$.proxy(_.swipeHandler,_);_.dragHandler=$.proxy(_.dragHandler,_);_.keyHandler=$.proxy(_.keyHandler,_);_.autoPlayIterator=$.proxy(_.autoPlayIterator,_);_.instanceUid=instanceUid++;_.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/;_.registerBreakpoints();_.init(true);_.checkResponsive(true)}return Slick}();Slick.prototype.addSlide=Slick.prototype.slickAdd=function(markup,index,addBefore){var _=this;if(typeof index==="boolean"){addBefore=index;index=null}else if(index<0||index>=_.slideCount){return false}_.unload();if(typeof index==="number"){if(index===0&&_.$slides.length===0){$(markup).appendTo(_.$slideTrack)}else if(addBefore){$(markup).insertBefore(_.$slides.eq(index))}else{$(markup).insertAfter(_.$slides.eq(index))}}else{if(addBefore===true){$(markup).prependTo(_.$slideTrack)}else{$(markup).appendTo(_.$slideTrack)}}_.$slides=_.$slideTrack.children(this.options.slide);_.$slideTrack.children(this.options.slide).detach();_.$slideTrack.append(_.$slides);_.$slides.each(function(index,element){$(element).attr("data-slick-index",index)});_.$slidesCache=_.$slides;_.reinit()};Slick.prototype.animateHeight=function(){var _=this;if(_.options.slidesToShow===1&&_.options.adaptiveHeight===true&&_.options.vertical===false){var targetHeight=_.$slides.eq(_.currentSlide).outerHeight(true);_.$list.animate({height:targetHeight},_.options.speed)}};Slick.prototype.animateSlide=function(targetLeft,callback){var animProps={},_=this;_.animateHeight();if(_.options.rtl===true&&_.options.vertical===false){targetLeft=-targetLeft}if(_.transformsEnabled===false){if(_.options.vertical===false){_.$slideTrack.animate({left:targetLeft},_.options.speed,_.options.easing,callback)}else{_.$slideTrack.animate({top:targetLeft},_.options.speed,_.options.easing,callback)}}else{if(_.cssTransitions===false){if(_.options.rtl===true){_.currentLeft=-_.currentLeft}$({animStart:_.currentLeft}).animate({animStart:targetLeft},{duration:_.options.speed,easing:_.options.easing,step:function(now){now=Math.ceil(now);if(_.options.vertical===false){animProps[_.animType]="translate("+now+"px, 0px)";_.$slideTrack.css(animProps)}else{animProps[_.animType]="translate(0px,"+now+"px)";_.$slideTrack.css(animProps)}},complete:function(){if(callback){callback.call()}}})}else{_.applyTransition();targetLeft=Math.ceil(targetLeft);if(_.options.vertical===false){animProps[_.animType]="translate3d("+targetLeft+"px, 0px, 0px)"}else{animProps[_.animType]="translate3d(0px,"+targetLeft+"px, 0px)"}_.$slideTrack.css(animProps);if(callback){setTimeout(function(){_.disableTransition();callback.call()},_.options.speed)}}}};Slick.prototype.asNavFor=function(index){var _=this,asNavFor=_.options.asNavFor;if(asNavFor&&asNavFor!==null){asNavFor=$(asNavFor).not(_.$slider)}if(asNavFor!==null&&typeof asNavFor==="object"){asNavFor.each(function(){var target=$(this).slick("getSlick");if(!target.unslicked){target.slideHandler(index,true)}})}};Slick.prototype.applyTransition=function(slide){var _=this,transition={};if(_.options.fade===false){transition[_.transitionType]=_.transformType+" "+_.options.speed+"ms "+_.options.cssEase}else{transition[_.transitionType]="opacity "+_.options.speed+"ms "+_.options.cssEase}if(_.options.fade===false){_.$slideTrack.css(transition)}else{_.$slides.eq(slide).css(transition)}};Slick.prototype.autoPlay=function(){var _=this;if(_.autoPlayTimer){clearInterval(_.autoPlayTimer)}if(_.slideCount>_.options.slidesToShow&&_.paused!==true){_.autoPlayTimer=setInterval(_.autoPlayIterator,_.options.autoplaySpeed)}};Slick.prototype.autoPlayClear=function(){var _=this;if(_.autoPlayTimer){clearInterval(_.autoPlayTimer)}};Slick.prototype.autoPlayIterator=function(){var _=this;if(_.options.infinite===false){if(_.direction===1){if(_.currentSlide+1===_.slideCount-1){_.direction=0}_.slideHandler(_.currentSlide+_.options.slidesToScroll)}else{if(_.currentSlide-1===0){_.direction=1}_.slideHandler(_.currentSlide-_.options.slidesToScroll)}}else{_.slideHandler(_.currentSlide+_.options.slidesToScroll)}};Slick.prototype.buildArrows=function(){var _=this;if(_.options.arrows===true){_.$prevArrow=$(_.options.prevArrow).addClass("slick-arrow");_.$nextArrow=$(_.options.nextArrow).addClass("slick-arrow");if(_.slideCount>_.options.slidesToShow){_.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex");_.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex");if(_.htmlExpr.test(_.options.prevArrow)){_.$prevArrow.prependTo(_.options.appendArrows)}if(_.htmlExpr.test(_.options.nextArrow)){_.$nextArrow.appendTo(_.options.appendArrows)}if(_.options.infinite!==true){_.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")}}else{_.$prevArrow.add(_.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"})}}};Slick.prototype.buildDots=function(){var _=this,i,dotString;if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){dotString='<ul class="'+_.options.dotsClass+'">';for(i=0;i<=_.getDotCount();i+=1){dotString+="<li>"+_.options.customPaging.call(this,_,i)+"</li>"}dotString+="</ul>";_.$dots=$(dotString).appendTo(_.options.appendDots);_.$dots.find("li").first().addClass("slick-active").attr("aria-hidden","false")}};Slick.prototype.buildOut=function(){var _=this;_.$slides=_.$slider.children(_.options.slide+":not(.slick-cloned)").addClass("slick-slide");_.slideCount=_.$slides.length;_.$slides.each(function(index,element){$(element).attr("data-slick-index",index).data("originalStyling",$(element).attr("style")||"")});_.$slider.addClass("slick-slider");_.$slideTrack=_.slideCount===0?$('<div class="slick-track"/>').appendTo(_.$slider):_.$slides.wrapAll('<div class="slick-track"/>').parent();_.$list=_.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent();_.$slideTrack.css("opacity",0);if(_.options.centerMode===true||_.options.swipeToSlide===true){_.options.slidesToScroll=1}$("img[data-lazy]",_.$slider).not("[src]").addClass("slick-loading");_.setupInfinite();_.buildArrows();_.buildDots();_.updateDots();_.setSlideClasses(typeof _.currentSlide==="number"?_.currentSlide:0);if(_.options.draggable===true){_.$list.addClass("draggable")}};Slick.prototype.buildRows=function(){var _=this,a,b,c,newSlides,numOfSlides,originalSlides,slidesPerSection;newSlides=document.createDocumentFragment();originalSlides=_.$slider.children();if(_.options.rows>1){slidesPerSection=_.options.slidesPerRow*_.options.rows;numOfSlides=Math.ceil(originalSlides.length/slidesPerSection);for(a=0;a<numOfSlides;a++){var slide=document.createElement("div");for(b=0;b<_.options.rows;b++){var row=document.createElement("div");for(c=0;c<_.options.slidesPerRow;c++){var target=a*slidesPerSection+(b*_.options.slidesPerRow+c);if(originalSlides.get(target)){row.appendChild(originalSlides.get(target))}}slide.appendChild(row)}newSlides.appendChild(slide)}_.$slider.html(newSlides);_.$slider.children().children().children().css({width:100/_.options.slidesPerRow+"%",display:"inline-block"})}};Slick.prototype.checkResponsive=function(initial,forceUpdate){var _=this,breakpoint,targetBreakpoint,respondToWidth,triggerBreakpoint=false;var sliderWidth=_.$slider.width();var windowWidth=window.innerWidth||$(window).width();if(_.respondTo==="window"){respondToWidth=windowWidth}else if(_.respondTo==="slider"){respondToWidth=sliderWidth}else if(_.respondTo==="min"){respondToWidth=Math.min(windowWidth,sliderWidth)}if(_.options.responsive&&_.options.responsive.length&&_.options.responsive!==null){targetBreakpoint=null;for(breakpoint in _.breakpoints){if(_.breakpoints.hasOwnProperty(breakpoint)){if(_.originalSettings.mobileFirst===false){if(respondToWidth<_.breakpoints[breakpoint]){targetBreakpoint=_.breakpoints[breakpoint]}}else{if(respondToWidth>_.breakpoints[breakpoint]){targetBreakpoint=_.breakpoints[breakpoint]}}}}if(targetBreakpoint!==null){if(_.activeBreakpoint!==null){if(targetBreakpoint!==_.activeBreakpoint||forceUpdate){_.activeBreakpoint=targetBreakpoint;if(_.breakpointSettings[targetBreakpoint]==="unslick"){_.unslick(targetBreakpoint)}else{_.options=$.extend({},_.originalSettings,_.breakpointSettings[targetBreakpoint]);if(initial===true){_.currentSlide=_.options.initialSlide}_.refresh(initial)}triggerBreakpoint=targetBreakpoint}}else{_.activeBreakpoint=targetBreakpoint;if(_.breakpointSettings[targetBreakpoint]==="unslick"){_.unslick(targetBreakpoint)}else{_.options=$.extend({},_.originalSettings,_.breakpointSettings[targetBreakpoint]);if(initial===true){_.currentSlide=_.options.initialSlide}_.refresh(initial)}triggerBreakpoint=targetBreakpoint}}else{if(_.activeBreakpoint!==null){_.activeBreakpoint=null;_.options=_.originalSettings;if(initial===true){_.currentSlide=_.options.initialSlide}_.refresh(initial);triggerBreakpoint=targetBreakpoint}}if(!initial&&triggerBreakpoint!==false){_.$slider.trigger("breakpoint",[_,triggerBreakpoint])}}};Slick.prototype.changeSlide=function(event,dontAnimate){var _=this,$target=$(event.target),indexOffset,slideOffset,unevenOffset;if($target.is("a")){event.preventDefault()}if(!$target.is("li")){$target=$target.closest("li")}unevenOffset=_.slideCount%_.options.slidesToScroll!==0;indexOffset=unevenOffset?0:(_.slideCount-_.currentSlide)%_.options.slidesToScroll;switch(event.data.message){case"previous":slideOffset=indexOffset===0?_.options.slidesToScroll:_.options.slidesToShow-indexOffset;if(_.slideCount>_.options.slidesToShow){_.slideHandler(_.currentSlide-slideOffset,false,dontAnimate)}break;case"next":slideOffset=indexOffset===0?_.options.slidesToScroll:indexOffset;if(_.slideCount>_.options.slidesToShow){_.slideHandler(_.currentSlide+slideOffset,false,dontAnimate)}break;case"index":var index=event.data.index===0?0:event.data.index||$target.index()*_.options.slidesToScroll;_.slideHandler(_.checkNavigable(index),false,dontAnimate);$target.children().trigger("focus");break;default:return}};Slick.prototype.checkNavigable=function(index){var _=this,navigables,prevNavigable;navigables=_.getNavigableIndexes();prevNavigable=0;if(index>navigables[navigables.length-1]){index=navigables[navigables.length-1]}else{for(var n in navigables){if(index<navigables[n]){index=prevNavigable;break}prevNavigable=navigables[n]}}return index};Slick.prototype.cleanUpEvents=function(){var _=this;if(_.options.dots&&_.$dots!==null){$("li",_.$dots).off("click.slick",_.changeSlide);if(_.options.pauseOnDotsHover===true&&_.options.autoplay===true){$("li",_.$dots).off("mouseenter.slick",$.proxy(_.setPaused,_,true)).off("mouseleave.slick",$.proxy(_.setPaused,_,false))}}if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow&&_.$prevArrow.off("click.slick",_.changeSlide);_.$nextArrow&&_.$nextArrow.off("click.slick",_.changeSlide)}_.$list.off("touchstart.slick mousedown.slick",_.swipeHandler);_.$list.off("touchmove.slick mousemove.slick",_.swipeHandler);_.$list.off("touchend.slick mouseup.slick",_.swipeHandler);_.$list.off("touchcancel.slick mouseleave.slick",_.swipeHandler);_.$list.off("click.slick",_.clickHandler);$(document).off(_.visibilityChange,_.visibility);_.$list.off("mouseenter.slick",$.proxy(_.setPaused,_,true));_.$list.off("mouseleave.slick",$.proxy(_.setPaused,_,false));if(_.options.accessibility===true){_.$list.off("keydown.slick",_.keyHandler)}if(_.options.focusOnSelect===true){$(_.$slideTrack).children().off("click.slick",_.selectHandler)}$(window).off("orientationchange.slick.slick-"+_.instanceUid,_.orientationChange);$(window).off("resize.slick.slick-"+_.instanceUid,_.resize);$("[draggable!=true]",_.$slideTrack).off("dragstart",_.preventDefault);$(window).off("load.slick.slick-"+_.instanceUid,_.setPosition);$(document).off("ready.slick.slick-"+_.instanceUid,_.setPosition)};Slick.prototype.cleanUpRows=function(){var _=this,originalSlides;if(_.options.rows>1){originalSlides=_.$slides.children().children();originalSlides.removeAttr("style");_.$slider.html(originalSlides)}};Slick.prototype.clickHandler=function(event){var _=this;if(_.shouldClick===false){event.stopImmediatePropagation();event.stopPropagation();event.preventDefault()}};Slick.prototype.destroy=function(refresh){var _=this;_.autoPlayClear();_.touchObject={};_.cleanUpEvents();$(".slick-cloned",_.$slider).detach();if(_.$dots){_.$dots.remove()}if(_.$prevArrow&&_.$prevArrow.length){_.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display","");if(_.htmlExpr.test(_.options.prevArrow)){_.$prevArrow.remove()}}if(_.$nextArrow&&_.$nextArrow.length){_.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display","");if(_.htmlExpr.test(_.options.nextArrow)){_.$nextArrow.remove()}}if(_.$slides){_.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){$(this).attr("style",$(this).data("originalStyling"))});_.$slideTrack.children(this.options.slide).detach();_.$slideTrack.detach();_.$list.detach();_.$slider.append(_.$slides)}_.cleanUpRows();_.$slider.removeClass("slick-slider");_.$slider.removeClass("slick-initialized");_.unslicked=true;if(!refresh){_.$slider.trigger("destroy",[_])}};Slick.prototype.disableTransition=function(slide){var _=this,transition={};transition[_.transitionType]="";if(_.options.fade===false){_.$slideTrack.css(transition)}else{_.$slides.eq(slide).css(transition)}};Slick.prototype.fadeSlide=function(slideIndex,callback){var _=this;if(_.cssTransitions===false){_.$slides.eq(slideIndex).css({zIndex:_.options.zIndex});_.$slides.eq(slideIndex).animate({opacity:1},_.options.speed,_.options.easing,callback)}else{_.applyTransition(slideIndex);_.$slides.eq(slideIndex).css({opacity:1,zIndex:_.options.zIndex});if(callback){setTimeout(function(){_.disableTransition(slideIndex);callback.call()},_.options.speed)}}};Slick.prototype.fadeSlideOut=function(slideIndex){var _=this;if(_.cssTransitions===false){_.$slides.eq(slideIndex).animate({opacity:0,zIndex:_.options.zIndex-2},_.options.speed,_.options.easing)}else{_.applyTransition(slideIndex);_.$slides.eq(slideIndex).css({opacity:0,zIndex:_.options.zIndex-2})}};Slick.prototype.filterSlides=Slick.prototype.slickFilter=function(filter){var _=this;if(filter!==null){_.$slidesCache=_.$slides;_.unload();_.$slideTrack.children(this.options.slide).detach();_.$slidesCache.filter(filter).appendTo(_.$slideTrack);_.reinit()}};Slick.prototype.getCurrent=Slick.prototype.slickCurrentSlide=function(){var _=this;return _.currentSlide};Slick.prototype.getDotCount=function(){var _=this;var breakPoint=0;var counter=0;var pagerQty=0;if(_.options.infinite===true){while(breakPoint<_.slideCount){++pagerQty;breakPoint=counter+_.options.slidesToScroll;counter+=_.options.slidesToScroll<=_.options.slidesToShow?_.options.slidesToScroll:_.options.slidesToShow}}else if(_.options.centerMode===true){pagerQty=_.slideCount}else{while(breakPoint<_.slideCount){++pagerQty;breakPoint=counter+_.options.slidesToScroll;counter+=_.options.slidesToScroll<=_.options.slidesToShow?_.options.slidesToScroll:_.options.slidesToShow}}return pagerQty-1};Slick.prototype.getLeft=function(slideIndex){var _=this,targetLeft,verticalHeight,verticalOffset=0,targetSlide;_.slideOffset=0;verticalHeight=_.$slides.first().outerHeight(true);if(_.options.infinite===true){if(_.slideCount>_.options.slidesToShow){_.slideOffset=_.slideWidth*_.options.slidesToShow*-1;verticalOffset=verticalHeight*_.options.slidesToShow*-1}if(_.slideCount%_.options.slidesToScroll!==0){if(slideIndex+_.options.slidesToScroll>_.slideCount&&_.slideCount>_.options.slidesToShow){if(slideIndex>_.slideCount){_.slideOffset=(_.options.slidesToShow-(slideIndex-_.slideCount))*_.slideWidth*-1;verticalOffset=(_.options.slidesToShow-(slideIndex-_.slideCount))*verticalHeight*-1}else{_.slideOffset=_.slideCount%_.options.slidesToScroll*_.slideWidth*-1;verticalOffset=_.slideCount%_.options.slidesToScroll*verticalHeight*-1}}}}else{if(slideIndex+_.options.slidesToShow>_.slideCount){_.slideOffset=(slideIndex+_.options.slidesToShow-_.slideCount)*_.slideWidth;verticalOffset=(slideIndex+_.options.slidesToShow-_.slideCount)*verticalHeight}}if(_.slideCount<=_.options.slidesToShow){_.slideOffset=0;verticalOffset=0}if(_.options.centerMode===true&&_.options.infinite===true){_.slideOffset+=_.slideWidth*Math.floor(_.options.slidesToShow/2)-_.slideWidth}else if(_.options.centerMode===true){_.slideOffset=0;_.slideOffset+=_.slideWidth*Math.floor(_.options.slidesToShow/2)}if(_.options.vertical===false){targetLeft=slideIndex*_.slideWidth*-1+_.slideOffset}else{targetLeft=slideIndex*verticalHeight*-1+verticalOffset}if(_.options.variableWidth===true){if(_.slideCount<=_.options.slidesToShow||_.options.infinite===false){targetSlide=_.$slideTrack.children(".slick-slide").eq(slideIndex)}else{targetSlide=_.$slideTrack.children(".slick-slide").eq(slideIndex+_.options.slidesToShow)}if(_.options.rtl===true){if(targetSlide[0]){targetLeft=(_.$slideTrack.width()-targetSlide[0].offsetLeft-targetSlide.width())*-1}else{targetLeft=0}}else{targetLeft=targetSlide[0]?targetSlide[0].offsetLeft*-1:0}if(_.options.centerMode===true){if(_.slideCount<=_.options.slidesToShow||_.options.infinite===false){targetSlide=_.$slideTrack.children(".slick-slide").eq(slideIndex)}else{targetSlide=_.$slideTrack.children(".slick-slide").eq(slideIndex+_.options.slidesToShow+1)}if(_.options.rtl===true){if(targetSlide[0]){targetLeft=(_.$slideTrack.width()-targetSlide[0].offsetLeft-targetSlide.width())*-1}else{targetLeft=0}}else{targetLeft=targetSlide[0]?targetSlide[0].offsetLeft*-1:0}targetLeft+=(_.$list.width()-targetSlide.outerWidth())/2}}return targetLeft};Slick.prototype.getOption=Slick.prototype.slickGetOption=function(option){var _=this;return _.options[option]};Slick.prototype.getNavigableIndexes=function(){var _=this,breakPoint=0,counter=0,indexes=[],max;if(_.options.infinite===false){max=_.slideCount}else{breakPoint=_.options.slidesToScroll*-1;counter=_.options.slidesToScroll*-1;max=_.slideCount*2}while(breakPoint<max){indexes.push(breakPoint);breakPoint=counter+_.options.slidesToScroll;counter+=_.options.slidesToScroll<=_.options.slidesToShow?_.options.slidesToScroll:_.options.slidesToShow}return indexes};Slick.prototype.getSlick=function(){return this};Slick.prototype.getSlideCount=function(){var _=this,slidesTraversed,swipedSlide,centerOffset;centerOffset=_.options.centerMode===true?_.slideWidth*Math.floor(_.options.slidesToShow/2):0;if(_.options.swipeToSlide===true){_.$slideTrack.find(".slick-slide").each(function(index,slide){if(slide.offsetLeft-centerOffset+$(slide).outerWidth()/2>_.swipeLeft*-1){swipedSlide=slide;return false}});slidesTraversed=Math.abs($(swipedSlide).attr("data-slick-index")-_.currentSlide)||1;return slidesTraversed}else{return _.options.slidesToScroll}};Slick.prototype.goTo=Slick.prototype.slickGoTo=function(slide,dontAnimate){var _=this;_.changeSlide({data:{message:"index",index:parseInt(slide)}},dontAnimate)};Slick.prototype.init=function(creation){var _=this;if(!$(_.$slider).hasClass("slick-initialized")){$(_.$slider).addClass("slick-initialized");_.buildRows();_.buildOut();_.setProps();_.startLoad();_.loadSlider();_.initializeEvents();_.updateArrows();_.updateDots()}if(creation){_.$slider.trigger("init",[_])}if(_.options.accessibility===true){_.initADA()}};Slick.prototype.initArrowEvents=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.on("click.slick",{message:"previous"},_.changeSlide);_.$nextArrow.on("click.slick",{message:"next"},_.changeSlide)}};Slick.prototype.initDotEvents=function(){var _=this;if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){$("li",_.$dots).on("click.slick",{message:"index"},_.changeSlide)}if(_.options.dots===true&&_.options.pauseOnDotsHover===true&&_.options.autoplay===true){$("li",_.$dots).on("mouseenter.slick",$.proxy(_.setPaused,_,true)).on("mouseleave.slick",$.proxy(_.setPaused,_,false))}};Slick.prototype.initializeEvents=function(){var _=this;_.initArrowEvents();_.initDotEvents();_.$list.on("touchstart.slick mousedown.slick",{action:"start"},_.swipeHandler);_.$list.on("touchmove.slick mousemove.slick",{action:"move"},_.swipeHandler);_.$list.on("touchend.slick mouseup.slick",{action:"end"},_.swipeHandler);_.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},_.swipeHandler);_.$list.on("click.slick",_.clickHandler);$(document).on(_.visibilityChange,$.proxy(_.visibility,_));_.$list.on("mouseenter.slick",$.proxy(_.setPaused,_,true));_.$list.on("mouseleave.slick",$.proxy(_.setPaused,_,false));if(_.options.accessibility===true){_.$list.on("keydown.slick",_.keyHandler)}if(_.options.focusOnSelect===true){$(_.$slideTrack).children().on("click.slick",_.selectHandler)}$(window).on("orientationchange.slick.slick-"+_.instanceUid,$.proxy(_.orientationChange,_));$(window).on("resize.slick.slick-"+_.instanceUid,$.proxy(_.resize,_));$("[draggable!=true]",_.$slideTrack).on("dragstart",_.preventDefault);$(window).on("load.slick.slick-"+_.instanceUid,_.setPosition);$(document).on("ready.slick.slick-"+_.instanceUid,_.setPosition)};Slick.prototype.initUI=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.show();_.$nextArrow.show()}if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){_.$dots.show()}if(_.options.autoplay===true){_.autoPlay()}};Slick.prototype.keyHandler=function(event){var _=this;if(!event.target.tagName.match("TEXTAREA|INPUT|SELECT")){if(event.keyCode===37&&_.options.accessibility===true){_.changeSlide({data:{message:"previous"}})}else if(event.keyCode===39&&_.options.accessibility===true){_.changeSlide({data:{message:"next"}})}}};Slick.prototype.lazyLoad=function(){var _=this,loadRange,cloneRange,rangeStart,rangeEnd;function loadImages(imagesScope){$("img[data-lazy]",imagesScope).each(function(){var image=$(this),imageSource=$(this).attr("data-lazy"),imageToLoad=document.createElement("img");imageToLoad.onload=function(){image.animate({opacity:0},100,function(){image.attr("src",imageSource).animate({opacity:1},200,function(){image.removeAttr("data-lazy").removeClass("slick-loading")})})};imageToLoad.src=imageSource})}if(_.options.centerMode===true){if(_.options.infinite===true){rangeStart=_.currentSlide+(_.options.slidesToShow/2+1);rangeEnd=rangeStart+_.options.slidesToShow+2}else{rangeStart=Math.max(0,_.currentSlide-(_.options.slidesToShow/2+1));rangeEnd=2+(_.options.slidesToShow/2+1)+_.currentSlide}}else{rangeStart=_.options.infinite?_.options.slidesToShow+_.currentSlide:_.currentSlide;rangeEnd=rangeStart+_.options.slidesToShow;if(_.options.fade===true){if(rangeStart>0)rangeStart--;if(rangeEnd<=_.slideCount)rangeEnd++}}loadRange=_.$slider.find(".slick-slide").slice(rangeStart,rangeEnd);loadImages(loadRange);if(_.slideCount<=_.options.slidesToShow){cloneRange=_.$slider.find(".slick-slide");loadImages(cloneRange)}else if(_.currentSlide>=_.slideCount-_.options.slidesToShow){cloneRange=_.$slider.find(".slick-cloned").slice(0,_.options.slidesToShow);loadImages(cloneRange)}else if(_.currentSlide===0){cloneRange=_.$slider.find(".slick-cloned").slice(_.options.slidesToShow*-1);loadImages(cloneRange)}};Slick.prototype.loadSlider=function(){var _=this;_.setPosition();_.$slideTrack.css({opacity:1});_.$slider.removeClass("slick-loading");_.initUI();if(_.options.lazyLoad==="progressive"){_.progressiveLazyLoad()}};Slick.prototype.next=Slick.prototype.slickNext=function(){var _=this;_.changeSlide({data:{message:"next"}})};Slick.prototype.orientationChange=function(){var _=this;_.checkResponsive();_.setPosition()};Slick.prototype.pause=Slick.prototype.slickPause=function(){var _=this;_.autoPlayClear();_.paused=true};Slick.prototype.play=Slick.prototype.slickPlay=function(){var _=this;_.paused=false;_.autoPlay()};Slick.prototype.postSlide=function(index){var _=this;_.$slider.trigger("afterChange",[_,index]);_.animating=false;_.setPosition();_.swipeLeft=null;if(_.options.autoplay===true&&_.paused===false){_.autoPlay()}if(_.options.accessibility===true){_.initADA()}};Slick.prototype.prev=Slick.prototype.slickPrev=function(){var _=this;_.changeSlide({data:{message:"previous"}})};Slick.prototype.preventDefault=function(event){event.preventDefault()};Slick.prototype.progressiveLazyLoad=function(){var _=this,imgCount,targetImage;imgCount=$("img[data-lazy]",_.$slider).length;if(imgCount>0){targetImage=$("img[data-lazy]",_.$slider).first();targetImage.attr("src",null);targetImage.attr("src",targetImage.attr("data-lazy")).removeClass("slick-loading").load(function(){targetImage.removeAttr("data-lazy");_.progressiveLazyLoad();if(_.options.adaptiveHeight===true){_.setPosition()}}).error(function(){targetImage.removeAttr("data-lazy");_.progressiveLazyLoad()})}};Slick.prototype.refresh=function(initializing){var _=this,currentSlide,firstVisible;firstVisible=_.slideCount-_.options.slidesToShow;if(!_.options.infinite){if(_.slideCount<=_.options.slidesToShow){_.currentSlide=0}else if(_.currentSlide>firstVisible){_.currentSlide=firstVisible}}currentSlide=_.currentSlide;_.destroy(true);$.extend(_,_.initials,{currentSlide:currentSlide});_.init();if(!initializing){_.changeSlide({data:{message:"index",index:currentSlide}},false)}};Slick.prototype.registerBreakpoints=function(){var _=this,breakpoint,currentBreakpoint,l,responsiveSettings=_.options.responsive||null;if($.type(responsiveSettings)==="array"&&responsiveSettings.length){_.respondTo=_.options.respondTo||"window";for(breakpoint in responsiveSettings){l=_.breakpoints.length-1;currentBreakpoint=responsiveSettings[breakpoint].breakpoint;if(responsiveSettings.hasOwnProperty(breakpoint)){while(l>=0){if(_.breakpoints[l]&&_.breakpoints[l]===currentBreakpoint){_.breakpoints.splice(l,1)}l--}_.breakpoints.push(currentBreakpoint);_.breakpointSettings[currentBreakpoint]=responsiveSettings[breakpoint].settings}}_.breakpoints.sort(function(a,b){return _.options.mobileFirst?a-b:b-a})}};Slick.prototype.reinit=function(){var _=this;_.$slides=_.$slideTrack.children(_.options.slide).addClass("slick-slide");_.slideCount=_.$slides.length;if(_.currentSlide>=_.slideCount&&_.currentSlide!==0){_.currentSlide=_.currentSlide-_.options.slidesToScroll}if(_.slideCount<=_.options.slidesToShow){_.currentSlide=0}_.registerBreakpoints();_.setProps();_.setupInfinite();_.buildArrows();_.updateArrows();_.initArrowEvents();_.buildDots();_.updateDots();_.initDotEvents();_.checkResponsive(false,true);if(_.options.focusOnSelect===true){$(_.$slideTrack).children().on("click.slick",_.selectHandler)}_.setSlideClasses(0);_.setPosition();_.$slider.trigger("reInit",[_]);if(_.options.autoplay===true){_.focusHandler()}};Slick.prototype.resize=function(){var _=this;if($(window).width()!==_.windowWidth){clearTimeout(_.windowDelay);_.windowDelay=window.setTimeout(function(){_.windowWidth=$(window).width();_.checkResponsive();if(!_.unslicked){_.setPosition()}},50)}};Slick.prototype.removeSlide=Slick.prototype.slickRemove=function(index,removeBefore,removeAll){var _=this;if(typeof index==="boolean"){removeBefore=index;index=removeBefore===true?0:_.slideCount-1}else{index=removeBefore===true?--index:index}if(_.slideCount<1||index<0||index>_.slideCount-1){return false}_.unload();if(removeAll===true){_.$slideTrack.children().remove()}else{_.$slideTrack.children(this.options.slide).eq(index).remove()}_.$slides=_.$slideTrack.children(this.options.slide);_.$slideTrack.children(this.options.slide).detach();_.$slideTrack.append(_.$slides);_.$slidesCache=_.$slides;_.reinit()};Slick.prototype.setCSS=function(position){var _=this,positionProps={},x,y;if(_.options.rtl===true){position=-position}x=_.positionProp=="left"?Math.ceil(position)+"px":"0px";y=_.positionProp=="top"?Math.ceil(position)+"px":"0px";positionProps[_.positionProp]=position;if(_.transformsEnabled===false){_.$slideTrack.css(positionProps)}else{positionProps={};if(_.cssTransitions===false){positionProps[_.animType]="translate("+x+", "+y+")";_.$slideTrack.css(positionProps)}else{positionProps[_.animType]="translate3d("+x+", "+y+", 0px)";_.$slideTrack.css(positionProps)}}};Slick.prototype.setDimensions=function(){var _=this;if(_.options.vertical===false){if(_.options.centerMode===true){_.$list.css({padding:"0px "+_.options.centerPadding})}}else{_.$list.height(_.$slides.first().outerHeight(true)*_.options.slidesToShow);if(_.options.centerMode===true){_.$list.css({padding:_.options.centerPadding+" 0px"})}}_.listWidth=_.$list.width();_.listHeight=_.$list.height();if(_.options.vertical===false&&_.options.variableWidth===false){_.slideWidth=Math.ceil(_.listWidth/_.options.slidesToShow);_.$slideTrack.width(Math.ceil(_.slideWidth*_.$slideTrack.children(".slick-slide").length))}else if(_.options.variableWidth===true){_.$slideTrack.width(5e3*_.slideCount)}else{_.slideWidth=Math.ceil(_.listWidth);_.$slideTrack.height(Math.ceil(_.$slides.first().outerHeight(true)*_.$slideTrack.children(".slick-slide").length))}var offset=_.$slides.first().outerWidth(true)-_.$slides.first().width()
2
+ ;if(_.options.variableWidth===false)_.$slideTrack.children(".slick-slide").width(_.slideWidth-offset)};Slick.prototype.setFade=function(){var _=this,targetLeft;_.$slides.each(function(index,element){targetLeft=_.slideWidth*index*-1;if(_.options.rtl===true){$(element).css({position:"relative",right:targetLeft,top:0,zIndex:_.options.zIndex-2,opacity:0})}else{$(element).css({position:"relative",left:targetLeft,top:0,zIndex:_.options.zIndex-2,opacity:0})}});_.$slides.eq(_.currentSlide).css({zIndex:_.options.zIndex-1,opacity:1})};Slick.prototype.setHeight=function(){var _=this;if(_.options.slidesToShow===1&&_.options.adaptiveHeight===true&&_.options.vertical===false){var targetHeight=_.$slides.eq(_.currentSlide).outerHeight(true);_.$list.css("height",targetHeight)}};Slick.prototype.setOption=Slick.prototype.slickSetOption=function(option,value,refresh){var _=this,l,item;if(option==="responsive"&&$.type(value)==="array"){for(item in value){if($.type(_.options.responsive)!=="array"){_.options.responsive=[value[item]]}else{l=_.options.responsive.length-1;while(l>=0){if(_.options.responsive[l].breakpoint===value[item].breakpoint){_.options.responsive.splice(l,1)}l--}_.options.responsive.push(value[item])}}}else{_.options[option]=value}if(refresh===true){_.unload();_.reinit()}};Slick.prototype.setPosition=function(){var _=this;_.setDimensions();_.setHeight();if(_.options.fade===false){_.setCSS(_.getLeft(_.currentSlide))}else{_.setFade()}_.$slider.trigger("setPosition",[_])};Slick.prototype.setProps=function(){var _=this,bodyStyle=document.body.style;_.positionProp=_.options.vertical===true?"top":"left";if(_.positionProp==="top"){_.$slider.addClass("slick-vertical")}else{_.$slider.removeClass("slick-vertical")}if(bodyStyle.WebkitTransition!==undefined||bodyStyle.MozTransition!==undefined||bodyStyle.msTransition!==undefined){if(_.options.useCSS===true){_.cssTransitions=true}}if(_.options.fade){if(typeof _.options.zIndex==="number"){if(_.options.zIndex<3){_.options.zIndex=3}}else{_.options.zIndex=_.defaults.zIndex}}if(bodyStyle.OTransform!==undefined){_.animType="OTransform";_.transformType="-o-transform";_.transitionType="OTransition";if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.webkitPerspective===undefined)_.animType=false}if(bodyStyle.MozTransform!==undefined){_.animType="MozTransform";_.transformType="-moz-transform";_.transitionType="MozTransition";if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.MozPerspective===undefined)_.animType=false}if(bodyStyle.webkitTransform!==undefined){_.animType="webkitTransform";_.transformType="-webkit-transform";_.transitionType="webkitTransition";if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.webkitPerspective===undefined)_.animType=false}if(bodyStyle.msTransform!==undefined){_.animType="msTransform";_.transformType="-ms-transform";_.transitionType="msTransition";if(bodyStyle.msTransform===undefined)_.animType=false}if(bodyStyle.transform!==undefined&&_.animType!==false){_.animType="transform";_.transformType="transform";_.transitionType="transition"}_.transformsEnabled=_.options.useTransform&&(_.animType!==null&&_.animType!==false)};Slick.prototype.setSlideClasses=function(index){var _=this,centerOffset,allSlides,indexOffset,remainder;allSlides=_.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true");_.$slides.eq(index).addClass("slick-current");if(_.options.centerMode===true){centerOffset=Math.floor(_.options.slidesToShow/2);if(_.options.infinite===true){if(index>=centerOffset&&index<=_.slideCount-1-centerOffset){_.$slides.slice(index-centerOffset,index+centerOffset+1).addClass("slick-active").attr("aria-hidden","false")}else{indexOffset=_.options.slidesToShow+index;allSlides.slice(indexOffset-centerOffset+1,indexOffset+centerOffset+2).addClass("slick-active").attr("aria-hidden","false")}if(index===0){allSlides.eq(allSlides.length-1-_.options.slidesToShow).addClass("slick-center")}else if(index===_.slideCount-1){allSlides.eq(_.options.slidesToShow).addClass("slick-center")}}_.$slides.eq(index).addClass("slick-center")}else{if(index>=0&&index<=_.slideCount-_.options.slidesToShow){_.$slides.slice(index,index+_.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")}else if(allSlides.length<=_.options.slidesToShow){allSlides.addClass("slick-active").attr("aria-hidden","false")}else{remainder=_.slideCount%_.options.slidesToShow;indexOffset=_.options.infinite===true?_.options.slidesToShow+index:index;if(_.options.slidesToShow==_.options.slidesToScroll&&_.slideCount-index<_.options.slidesToShow){allSlides.slice(indexOffset-(_.options.slidesToShow-remainder),indexOffset+remainder).addClass("slick-active").attr("aria-hidden","false")}else{allSlides.slice(indexOffset,indexOffset+_.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")}}}if(_.options.lazyLoad==="ondemand"){_.lazyLoad()}};Slick.prototype.setupInfinite=function(){var _=this,i,slideIndex,infiniteCount;if(_.options.fade===true){_.options.centerMode=false}if(_.options.infinite===true&&_.options.fade===false){slideIndex=null;if(_.slideCount>_.options.slidesToShow){if(_.options.centerMode===true){infiniteCount=_.options.slidesToShow+1}else{infiniteCount=_.options.slidesToShow}for(i=_.slideCount;i>_.slideCount-infiniteCount;i-=1){slideIndex=i-1;$(_.$slides[slideIndex]).clone(true).attr("id","").attr("data-slick-index",slideIndex-_.slideCount).prependTo(_.$slideTrack).addClass("slick-cloned")}for(i=0;i<infiniteCount;i+=1){slideIndex=i;$(_.$slides[slideIndex]).clone(true).attr("id","").attr("data-slick-index",slideIndex+_.slideCount).appendTo(_.$slideTrack).addClass("slick-cloned")}_.$slideTrack.find(".slick-cloned").find("[id]").each(function(){$(this).attr("id","")})}}};Slick.prototype.setPaused=function(paused){var _=this;if(_.options.autoplay===true&&_.options.pauseOnHover===true){_.paused=paused;if(!paused){_.autoPlay()}else{_.autoPlayClear()}}};Slick.prototype.selectHandler=function(event){var _=this;var targetElement=$(event.target).is(".slick-slide")?$(event.target):$(event.target).parents(".slick-slide");var index=parseInt(targetElement.attr("data-slick-index"));if(!index)index=0;if(_.slideCount<=_.options.slidesToShow){_.setSlideClasses(index);_.asNavFor(index);return}_.slideHandler(index)};Slick.prototype.slideHandler=function(index,sync,dontAnimate){var targetSlide,animSlide,oldSlide,slideLeft,targetLeft=null,_=this;sync=sync||false;if(_.animating===true&&_.options.waitForAnimate===true){return}if(_.options.fade===true&&_.currentSlide===index){return}if(_.slideCount<=_.options.slidesToShow){return}if(sync===false){_.asNavFor(index)}targetSlide=index;targetLeft=_.getLeft(targetSlide);slideLeft=_.getLeft(_.currentSlide);_.currentLeft=_.swipeLeft===null?slideLeft:_.swipeLeft;if(_.options.infinite===false&&_.options.centerMode===false&&(index<0||index>_.getDotCount()*_.options.slidesToScroll)){if(_.options.fade===false){targetSlide=_.currentSlide;if(dontAnimate!==true){_.animateSlide(slideLeft,function(){_.postSlide(targetSlide)})}else{_.postSlide(targetSlide)}}return}else if(_.options.infinite===false&&_.options.centerMode===true&&(index<0||index>_.slideCount-_.options.slidesToScroll)){if(_.options.fade===false){targetSlide=_.currentSlide;if(dontAnimate!==true){_.animateSlide(slideLeft,function(){_.postSlide(targetSlide)})}else{_.postSlide(targetSlide)}}return}if(_.options.autoplay===true){clearInterval(_.autoPlayTimer)}if(targetSlide<0){if(_.slideCount%_.options.slidesToScroll!==0){animSlide=_.slideCount-_.slideCount%_.options.slidesToScroll}else{animSlide=_.slideCount+targetSlide}}else if(targetSlide>=_.slideCount){if(_.slideCount%_.options.slidesToScroll!==0){animSlide=0}else{animSlide=targetSlide-_.slideCount}}else{animSlide=targetSlide}_.animating=true;_.$slider.trigger("beforeChange",[_,_.currentSlide,animSlide]);oldSlide=_.currentSlide;_.currentSlide=animSlide;_.setSlideClasses(_.currentSlide);_.updateDots();_.updateArrows();if(_.options.fade===true){if(dontAnimate!==true){_.fadeSlideOut(oldSlide);_.fadeSlide(animSlide,function(){_.postSlide(animSlide)})}else{_.postSlide(animSlide)}_.animateHeight();return}if(dontAnimate!==true){_.animateSlide(targetLeft,function(){_.postSlide(animSlide)})}else{_.postSlide(animSlide)}};Slick.prototype.startLoad=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.hide();_.$nextArrow.hide()}if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){_.$dots.hide()}_.$slider.addClass("slick-loading")};Slick.prototype.swipeDirection=function(){var xDist,yDist,r,swipeAngle,_=this;xDist=_.touchObject.startX-_.touchObject.curX;yDist=_.touchObject.startY-_.touchObject.curY;r=Math.atan2(yDist,xDist);swipeAngle=Math.round(r*180/Math.PI);if(swipeAngle<0){swipeAngle=360-Math.abs(swipeAngle)}if(swipeAngle<=45&&swipeAngle>=0){return _.options.rtl===false?"left":"right"}if(swipeAngle<=360&&swipeAngle>=315){return _.options.rtl===false?"left":"right"}if(swipeAngle>=135&&swipeAngle<=225){return _.options.rtl===false?"right":"left"}if(_.options.verticalSwiping===true){if(swipeAngle>=35&&swipeAngle<=135){return"left"}else{return"right"}}return"vertical"};Slick.prototype.swipeEnd=function(event){var _=this,slideCount;_.dragging=false;_.shouldClick=_.touchObject.swipeLength>10?false:true;if(_.touchObject.curX===undefined){return false}if(_.touchObject.edgeHit===true){_.$slider.trigger("edge",[_,_.swipeDirection()])}if(_.touchObject.swipeLength>=_.touchObject.minSwipe){switch(_.swipeDirection()){case"left":slideCount=_.options.swipeToSlide?_.checkNavigable(_.currentSlide+_.getSlideCount()):_.currentSlide+_.getSlideCount();_.slideHandler(slideCount);_.currentDirection=0;_.touchObject={};_.$slider.trigger("swipe",[_,"left"]);break;case"right":slideCount=_.options.swipeToSlide?_.checkNavigable(_.currentSlide-_.getSlideCount()):_.currentSlide-_.getSlideCount();_.slideHandler(slideCount);_.currentDirection=1;_.touchObject={};_.$slider.trigger("swipe",[_,"right"]);break}}else{if(_.touchObject.startX!==_.touchObject.curX){_.slideHandler(_.currentSlide);_.touchObject={}}}};Slick.prototype.swipeHandler=function(event){var _=this;if(_.options.swipe===false||"ontouchend"in document&&_.options.swipe===false){return}else if(_.options.draggable===false&&event.type.indexOf("mouse")!==-1){return}_.touchObject.fingerCount=event.originalEvent&&event.originalEvent.touches!==undefined?event.originalEvent.touches.length:1;_.touchObject.minSwipe=_.listWidth/_.options.touchThreshold;if(_.options.verticalSwiping===true){_.touchObject.minSwipe=_.listHeight/_.options.touchThreshold}switch(event.data.action){case"start":_.swipeStart(event);break;case"move":_.swipeMove(event);break;case"end":_.swipeEnd(event);break}};Slick.prototype.swipeMove=function(event){var _=this,edgeWasHit=false,curLeft,swipeDirection,swipeLength,positionOffset,touches;touches=event.originalEvent!==undefined?event.originalEvent.touches:null;if(!_.dragging||touches&&touches.length!==1){return false}curLeft=_.getLeft(_.currentSlide);_.touchObject.curX=touches!==undefined?touches[0].pageX:event.clientX;_.touchObject.curY=touches!==undefined?touches[0].pageY:event.clientY;_.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(_.touchObject.curX-_.touchObject.startX,2)));if(_.options.verticalSwiping===true){_.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(_.touchObject.curY-_.touchObject.startY,2)))}swipeDirection=_.swipeDirection();if(swipeDirection==="vertical"){return}if(event.originalEvent!==undefined&&_.touchObject.swipeLength>4){event.preventDefault()}positionOffset=(_.options.rtl===false?1:-1)*(_.touchObject.curX>_.touchObject.startX?1:-1);if(_.options.verticalSwiping===true){positionOffset=_.touchObject.curY>_.touchObject.startY?1:-1}swipeLength=_.touchObject.swipeLength;_.touchObject.edgeHit=false;if(_.options.infinite===false){if(_.currentSlide===0&&swipeDirection==="right"||_.currentSlide>=_.getDotCount()&&swipeDirection==="left"){swipeLength=_.touchObject.swipeLength*_.options.edgeFriction;_.touchObject.edgeHit=true}}if(_.options.vertical===false){_.swipeLeft=curLeft+swipeLength*positionOffset}else{_.swipeLeft=curLeft+swipeLength*(_.$list.height()/_.listWidth)*positionOffset}if(_.options.verticalSwiping===true){_.swipeLeft=curLeft+swipeLength*positionOffset}if(_.options.fade===true||_.options.touchMove===false){return false}if(_.animating===true){_.swipeLeft=null;return false}_.setCSS(_.swipeLeft)};Slick.prototype.swipeStart=function(event){var _=this,touches;if(_.touchObject.fingerCount!==1||_.slideCount<=_.options.slidesToShow){_.touchObject={};return false}if(event.originalEvent!==undefined&&event.originalEvent.touches!==undefined){touches=event.originalEvent.touches[0]}_.touchObject.startX=_.touchObject.curX=touches!==undefined?touches.pageX:event.clientX;_.touchObject.startY=_.touchObject.curY=touches!==undefined?touches.pageY:event.clientY;_.dragging=true};Slick.prototype.unfilterSlides=Slick.prototype.slickUnfilter=function(){var _=this;if(_.$slidesCache!==null){_.unload();_.$slideTrack.children(this.options.slide).detach();_.$slidesCache.appendTo(_.$slideTrack);_.reinit()}};Slick.prototype.unload=function(){var _=this;$(".slick-cloned",_.$slider).remove();if(_.$dots){_.$dots.remove()}if(_.$prevArrow&&_.htmlExpr.test(_.options.prevArrow)){_.$prevArrow.remove()}if(_.$nextArrow&&_.htmlExpr.test(_.options.nextArrow)){_.$nextArrow.remove()}_.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")};Slick.prototype.unslick=function(fromBreakpoint){var _=this;_.$slider.trigger("unslick",[_,fromBreakpoint]);_.destroy()};Slick.prototype.updateArrows=function(){var _=this,centerOffset;centerOffset=Math.floor(_.options.slidesToShow/2);if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow&&!_.options.infinite){_.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false");_.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false");if(_.currentSlide===0){_.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true");_.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")}else if(_.currentSlide>=_.slideCount-_.options.slidesToShow&&_.options.centerMode===false){_.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true");_.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")}else if(_.currentSlide>=_.slideCount-1&&_.options.centerMode===true){_.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true");_.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")}}};Slick.prototype.updateDots=function(){var _=this;if(_.$dots!==null){_.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true");_.$dots.find("li").eq(Math.floor(_.currentSlide/_.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false")}};Slick.prototype.visibility=function(){var _=this;if(document[_.hidden]){_.paused=true;_.autoPlayClear()}else{if(_.options.autoplay===true){_.paused=false;_.autoPlay()}}};Slick.prototype.initADA=function(){var _=this;_.$slides.add(_.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"});_.$slideTrack.attr("role","listbox");_.$slides.not(_.$slideTrack.find(".slick-cloned")).each(function(i){$(this).attr({role:"option","aria-describedby":"slick-slide"+_.instanceUid+i+""})});if(_.$dots!==null){_.$dots.attr("role","tablist").find("li").each(function(i){$(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+_.instanceUid+i+"",id:"slick-slide"+_.instanceUid+i+""})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar")}_.activateADA()};Slick.prototype.activateADA=function(){var _=this;_.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})};Slick.prototype.focusHandler=function(){var _=this;_.$slider.on("focus.slick blur.slick","*",function(event){event.stopImmediatePropagation();var sf=$(this);setTimeout(function(){if(_.isPlay){if(sf.is(":focus")){_.autoPlayClear();_.paused=true}else{_.paused=false;_.autoPlay()}}},0)})};$.fn.slick=function(){var _=this,opt=arguments[0],args=Array.prototype.slice.call(arguments,1),l=_.length,i,ret;for(i=0;i<l;i++){if(typeof opt=="object"||typeof opt=="undefined")_[i].slick=new Slick(_[i],opt);else ret=_[i].slick[opt].apply(_[i].slick,args);if(typeof ret!="undefined")return ret}return _}});
freemius/.codeclimate.yml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ engines:
2
+ phpcodesniffer:
3
+ enabled: true
4
+ config:
5
+ standard: "WordPress"
6
+ checks:
7
+ Squiz Commenting InlineComment InvalidEndChar:
8
+ enabled: false
9
+ Squiz Commenting InlineComment SpacingBefore:
10
+ enabled: false
11
+ Squiz Commenting InlineComment WrongStyle:
12
+ enabled: false
13
+ Generic Commenting DocComment MissingShort:
14
+ enabled: false
15
+ Generic WhiteSpace ScopeIndent IncorrectExact:
16
+ enabled: false
17
+ ratings:
18
+ paths:
19
+ - "**.php"
freemius/.travis.yml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ sudo: false
2
+
3
+ language: php
4
+
5
+ php:
6
+ - 5.3
7
+ - 5.4
8
+ - 5.5
9
+ - 5.6
10
+ - 7.0
11
+ - hhvm
freemius/LICENSE.txt ADDED
@@ -0,0 +1,674 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+ Preamble
9
+
10
+ The GNU General Public License is a free, copyleft license for
11
+ software and other kinds of works.
12
+
13
+ The licenses for most software and other practical works are designed
14
+ to take away your freedom to share and change the works. By contrast,
15
+ the GNU General Public License is intended to guarantee your freedom to
16
+ share and change all versions of a program--to make sure it remains free
17
+ software for all its users. We, the Free Software Foundation, use the
18
+ GNU General Public License for most of our software; it applies also to
19
+ any other work released this way by its authors. You can apply it to
20
+ your programs, too.
21
+
22
+ When we speak of free software, we are referring to freedom, not
23
+ price. Our General Public Licenses are designed to make sure that you
24
+ have the freedom to distribute copies of free software (and charge for
25
+ them if you wish), that you receive source code or can get it if you
26
+ want it, that you can change the software or use pieces of it in new
27
+ free programs, and that you know you can do these things.
28
+
29
+ To protect your rights, we need to prevent others from denying you
30
+ these rights or asking you to surrender the rights. Therefore, you have
31
+ certain responsibilities if you distribute copies of the software, or if
32
+ you modify it: responsibilities to respect the freedom of others.
33
+
34
+ For example, if you distribute copies of such a program, whether
35
+ gratis or for a fee, you must pass on to the recipients the same
36
+ freedoms that you received. You must make sure that they, too, receive
37
+ or can get the source code. And you must show them these terms so they
38
+ know their rights.
39
+
40
+ Developers that use the GNU GPL protect your rights with two steps:
41
+ (1) assert copyright on the software, and (2) offer you this License
42
+ giving you legal permission to copy, distribute and/or modify it.
43
+
44
+ For the developers' and authors' protection, the GPL clearly explains
45
+ that there is no warranty for this free software. For both users' and
46
+ authors' sake, the GPL requires that modified versions be marked as
47
+ changed, so that their problems will not be attributed erroneously to
48
+ authors of previous versions.
49
+
50
+ Some devices are designed to deny users access to install or run
51
+ modified versions of the software inside them, although the manufacturer
52
+ can do so. This is fundamentally incompatible with the aim of
53
+ protecting users' freedom to change the software. The systematic
54
+ pattern of such abuse occurs in the area of products for individuals to
55
+ use, which is precisely where it is most unacceptable. Therefore, we
56
+ have designed this version of the GPL to prohibit the practice for those
57
+ products. If such problems arise substantially in other domains, we
58
+ stand ready to extend this provision to those domains in future versions
59
+ of the GPL, as needed to protect the freedom of users.
60
+
61
+ Finally, every program is threatened constantly by software patents.
62
+ States should not allow patents to restrict development and use of
63
+ software on general-purpose computers, but in those that do, we wish to
64
+ avoid the special danger that patents applied to a free program could
65
+ make it effectively proprietary. To prevent this, the GPL assures that
66
+ patents cannot be used to render the program non-free.
67
+
68
+ The precise terms and conditions for copying, distribution and
69
+ modification follow.
70
+
71
+ TERMS AND CONDITIONS
72
+
73
+ 0. Definitions.
74
+
75
+ "This License" refers to version 3 of the GNU General Public License.
76
+
77
+ "Copyright" also means copyright-like laws that apply to other kinds of
78
+ works, such as semiconductor masks.
79
+
80
+ "The Program" refers to any copyrightable work licensed under this
81
+ License. Each licensee is addressed as "you". "Licensees" and
82
+ "recipients" may be individuals or organizations.
83
+
84
+ To "modify" a work means to copy from or adapt all or part of the work
85
+ in a fashion requiring copyright permission, other than the making of an
86
+ exact copy. The resulting work is called a "modified version" of the
87
+ earlier work or a work "based on" the earlier work.
88
+
89
+ A "covered work" means either the unmodified Program or a work based
90
+ on the Program.
91
+
92
+ To "propagate" a work means to do anything with it that, without
93
+ permission, would make you directly or secondarily liable for
94
+ infringement under applicable copyright law, except executing it on a
95
+ computer or modifying a private copy. Propagation includes copying,
96
+ distribution (with or without modification), making available to the
97
+ public, and in some countries other activities as well.
98
+
99
+ To "convey" a work means any kind of propagation that enables other
100
+ parties to make or receive copies. Mere interaction with a user through
101
+ a computer network, with no transfer of a copy, is not conveying.
102
+
103
+ An interactive user interface displays "Appropriate Legal Notices"
104
+ to the extent that it includes a convenient and prominently visible
105
+ feature that (1) displays an appropriate copyright notice, and (2)
106
+ tells the user that there is no warranty for the work (except to the
107
+ extent that warranties are provided), that licensees may convey the
108
+ work under this License, and how to view a copy of this License. If
109
+ the interface presents a list of user commands or options, such as a
110
+ menu, a prominent item in the list meets this criterion.
111
+
112
+ 1. Source Code.
113
+
114
+ The "source code" for a work means the preferred form of the work
115
+ for making modifications to it. "Object code" means any non-source
116
+ form of a work.
117
+
118
+ A "Standard Interface" means an interface that either is an official
119
+ standard defined by a recognized standards body, or, in the case of
120
+ interfaces specified for a particular programming language, one that
121
+ is widely used among developers working in that language.
122
+
123
+ The "System Libraries" of an executable work include anything, other
124
+ than the work as a whole, that (a) is included in the normal form of
125
+ packaging a Major Component, but which is not part of that Major
126
+ Component, and (b) serves only to enable use of the work with that
127
+ Major Component, or to implement a Standard Interface for which an
128
+ implementation is available to the public in source code form. A
129
+ "Major Component", in this context, means a major essential component
130
+ (kernel, window system, and so on) of the specific operating system
131
+ (if any) on which the executable work runs, or a compiler used to
132
+ produce the work, or an object code interpreter used to run it.
133
+
134
+ The "Corresponding Source" for a work in object code form means all
135
+ the source code needed to generate, install, and (for an executable
136
+ work) run the object code and to modify the work, including scripts to
137
+ control those activities. However, it does not include the work's
138
+ System Libraries, or general-purpose tools or generally available free
139
+ programs which are used unmodified in performing those activities but
140
+ which are not part of the work. For example, Corresponding Source
141
+ includes interface definition files associated with source files for
142
+ the work, and the source code for shared libraries and dynamically
143
+ linked subprograms that the work is specifically designed to require,
144
+ such as by intimate data communication or control flow between those
145
+ subprograms and other parts of the work.
146
+
147
+ The Corresponding Source need not include anything that users
148
+ can regenerate automatically from other parts of the Corresponding
149
+ Source.
150
+
151
+ The Corresponding Source for a work in source code form is that
152
+ same work.
153
+
154
+ 2. Basic Permissions.
155
+
156
+ All rights granted under this License are granted for the term of
157
+ copyright on the Program, and are irrevocable provided the stated
158
+ conditions are met. This License explicitly affirms your unlimited
159
+ permission to run the unmodified Program. The output from running a
160
+ covered work is covered by this License only if the output, given its
161
+ content, constitutes a covered work. This License acknowledges your
162
+ rights of fair use or other equivalent, as provided by copyright law.
163
+
164
+ You may make, run and propagate covered works that you do not
165
+ convey, without conditions so long as your license otherwise remains
166
+ in force. You may convey covered works to others for the sole purpose
167
+ of having them make modifications exclusively for you, or provide you
168
+ with facilities for running those works, provided that you comply with
169
+ the terms of this License in conveying all material for which you do
170
+ not control copyright. Those thus making or running the covered works
171
+ for you must do so exclusively on your behalf, under your direction
172
+ and control, on terms that prohibit them from making any copies of
173
+ your copyrighted material outside their relationship with you.
174
+
175
+ Conveying under any other circumstances is permitted solely under
176
+ the conditions stated below. Sublicensing is not allowed; section 10
177
+ makes it unnecessary.
178
+
179
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180
+
181
+ No covered work shall be deemed part of an effective technological
182
+ measure under any applicable law fulfilling obligations under article
183
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184
+ similar laws prohibiting or restricting circumvention of such
185
+ measures.
186
+
187
+ When you convey a covered work, you waive any legal power to forbid
188
+ circumvention of technological measures to the extent such circumvention
189
+ is effected by exercising rights under this License with respect to
190
+ the covered work, and you disclaim any intention to limit operation or
191
+ modification of the work as a means of enforcing, against the work's
192
+ users, your or third parties' legal rights to forbid circumvention of
193
+ technological measures.
194
+
195
+ 4. Conveying Verbatim Copies.
196
+
197
+ You may convey verbatim copies of the Program's source code as you
198
+ receive it, in any medium, provided that you conspicuously and
199
+ appropriately publish on each copy an appropriate copyright notice;
200
+ keep intact all notices stating that this License and any
201
+ non-permissive terms added in accord with section 7 apply to the code;
202
+ keep intact all notices of the absence of any warranty; and give all
203
+ recipients a copy of this License along with the Program.
204
+
205
+ You may charge any price or no price for each copy that you convey,
206
+ and you may offer support or warranty protection for a fee.
207
+
208
+ 5. Conveying Modified Source Versions.
209
+
210
+ You may convey a work based on the Program, or the modifications to
211
+ produce it from the Program, in the form of source code under the
212
+ terms of section 4, provided that you also meet all of these conditions:
213
+
214
+ a) The work must carry prominent notices stating that you modified
215
+ it, and giving a relevant date.
216
+
217
+ b) The work must carry prominent notices stating that it is
218
+ released under this License and any conditions added under section
219
+ 7. This requirement modifies the requirement in section 4 to
220
+ "keep intact all notices".
221
+
222
+ c) You must license the entire work, as a whole, under this
223
+ License to anyone who comes into possession of a copy. This
224
+ License will therefore apply, along with any applicable section 7
225
+ additional terms, to the whole of the work, and all its parts,
226
+ regardless of how they are packaged. This License gives no
227
+ permission to license the work in any other way, but it does not
228
+ invalidate such permission if you have separately received it.
229
+
230
+ d) If the work has interactive user interfaces, each must display
231
+ Appropriate Legal Notices; however, if the Program has interactive
232
+ interfaces that do not display Appropriate Legal Notices, your
233
+ work need not make them do so.
234
+
235
+ A compilation of a covered work with other separate and independent
236
+ works, which are not by their nature extensions of the covered work,
237
+ and which are not combined with it such as to form a larger program,
238
+ in or on a volume of a storage or distribution medium, is called an
239
+ "aggregate" if the compilation and its resulting copyright are not
240
+ used to limit the access or legal rights of the compilation's users
241
+ beyond what the individual works permit. Inclusion of a covered work
242
+ in an aggregate does not cause this License to apply to the other
243
+ parts of the aggregate.
244
+
245
+ 6. Conveying Non-Source Forms.
246
+
247
+ You may convey a covered work in object code form under the terms
248
+ of sections 4 and 5, provided that you also convey the
249
+ machine-readable Corresponding Source under the terms of this License,
250
+ in one of these ways:
251
+
252
+ a) Convey the object code in, or embodied in, a physical product
253
+ (including a physical distribution medium), accompanied by the
254
+ Corresponding Source fixed on a durable physical medium
255
+ customarily used for software interchange.
256
+
257
+ b) Convey the object code in, or embodied in, a physical product
258
+ (including a physical distribution medium), accompanied by a
259
+ written offer, valid for at least three years and valid for as
260
+ long as you offer spare parts or customer support for that product
261
+ model, to give anyone who possesses the object code either (1) a
262
+ copy of the Corresponding Source for all the software in the
263
+ product that is covered by this License, on a durable physical
264
+ medium customarily used for software interchange, for a price no
265
+ more than your reasonable cost of physically performing this
266
+ conveying of source, or (2) access to copy the
267
+ Corresponding Source from a network server at no charge.
268
+
269
+ c) Convey individual copies of the object code with a copy of the
270
+ written offer to provide the Corresponding Source. This
271
+ alternative is allowed only occasionally and noncommercially, and
272
+ only if you received the object code with such an offer, in accord
273
+ with subsection 6b.
274
+
275
+ d) Convey the object code by offering access from a designated
276
+ place (gratis or for a charge), and offer equivalent access to the
277
+ Corresponding Source in the same way through the same place at no
278
+ further charge. You need not require recipients to copy the
279
+ Corresponding Source along with the object code. If the place to
280
+ copy the object code is a network server, the Corresponding Source
281
+ may be on a different server (operated by you or a third party)
282
+ that supports equivalent copying facilities, provided you maintain
283
+ clear directions next to the object code saying where to find the
284
+ Corresponding Source. Regardless of what server hosts the
285
+ Corresponding Source, you remain obligated to ensure that it is
286
+ available for as long as needed to satisfy these requirements.
287
+
288
+ e) Convey the object code using peer-to-peer transmission, provided
289
+ you inform other peers where the object code and Corresponding
290
+ Source of the work are being offered to the general public at no
291
+ charge under subsection 6d.
292
+
293
+ A separable portion of the object code, whose source code is excluded
294
+ from the Corresponding Source as a System Library, need not be
295
+ included in conveying the object code work.
296
+
297
+ A "User Product" is either (1) a "consumer product", which means any
298
+ tangible personal property which is normally used for personal, family,
299
+ or household purposes, or (2) anything designed or sold for incorporation
300
+ into a dwelling. In determining whether a product is a consumer product,
301
+ doubtful cases shall be resolved in favor of coverage. For a particular
302
+ product received by a particular user, "normally used" refers to a
303
+ typical or common use of that class of product, regardless of the status
304
+ of the particular user or of the way in which the particular user
305
+ actually uses, or expects or is expected to use, the product. A product
306
+ is a consumer product regardless of whether the product has substantial
307
+ commercial, industrial or non-consumer uses, unless such uses represent
308
+ the only significant mode of use of the product.
309
+
310
+ "Installation Information" for a User Product means any methods,
311
+ procedures, authorization keys, or other information required to install
312
+ and execute modified versions of a covered work in that User Product from
313
+ a modified version of its Corresponding Source. The information must
314
+ suffice to ensure that the continued functioning of the modified object
315
+ code is in no case prevented or interfered with solely because
316
+ modification has been made.
317
+
318
+ If you convey an object code work under this section in, or with, or
319
+ specifically for use in, a User Product, and the conveying occurs as
320
+ part of a transaction in which the right of possession and use of the
321
+ User Product is transferred to the recipient in perpetuity or for a
322
+ fixed term (regardless of how the transaction is characterized), the
323
+ Corresponding Source conveyed under this section must be accompanied
324
+ by the Installation Information. But this requirement does not apply
325
+ if neither you nor any third party retains the ability to install
326
+ modified object code on the User Product (for example, the work has
327
+ been installed in ROM).
328
+
329
+ The requirement to provide Installation Information does not include a
330
+ requirement to continue to provide support service, warranty, or updates
331
+ for a work that has been modified or installed by the recipient, or for
332
+ the User Product in which it has been modified or installed. Access to a
333
+ network may be denied when the modification itself materially and
334
+ adversely affects the operation of the network or violates the rules and
335
+ protocols for communication across the network.
336
+
337
+ Corresponding Source conveyed, and Installation Information provided,
338
+ in accord with this section must be in a format that is publicly
339
+ documented (and with an implementation available to the public in
340
+ source code form), and must require no special password or key for
341
+ unpacking, reading or copying.
342
+
343
+ 7. Additional Terms.
344
+
345
+ "Additional permissions" are terms that supplement the terms of this
346
+ License by making exceptions from one or more of its conditions.
347
+ Additional permissions that are applicable to the entire Program shall
348
+ be treated as though they were included in this License, to the extent
349
+ that they are valid under applicable law. If additional permissions
350
+ apply only to part of the Program, that part may be used separately
351
+ under those permissions, but the entire Program remains governed by
352
+ this License without regard to the additional permissions.
353
+
354
+ When you convey a copy of a covered work, you may at your option
355
+ remove any additional permissions from that copy, or from any part of
356
+ it. (Additional permissions may be written to require their own
357
+ removal in certain cases when you modify the work.) You may place
358
+ additional permissions on material, added by you to a covered work,
359
+ for which you have or can give appropriate copyright permission.
360
+
361
+ Notwithstanding any other provision of this License, for material you
362
+ add to a covered work, you may (if authorized by the copyright holders of
363
+ that material) supplement the terms of this License with terms:
364
+
365
+ a) Disclaiming warranty or limiting liability differently from the
366
+ terms of sections 15 and 16 of this License; or
367
+
368
+ b) Requiring preservation of specified reasonable legal notices or
369
+ author attributions in that material or in the Appropriate Legal
370
+ Notices displayed by works containing it; or
371
+
372
+ c) Prohibiting misrepresentation of the origin of that material, or
373
+ requiring that modified versions of such material be marked in
374
+ reasonable ways as different from the original version; or
375
+
376
+ d) Limiting the use for publicity purposes of names of licensors or
377
+ authors of the material; or
378
+
379
+ e) Declining to grant rights under trademark law for use of some
380
+ trade names, trademarks, or service marks; or
381
+
382
+ f) Requiring indemnification of licensors and authors of that
383
+ material by anyone who conveys the material (or modified versions of
384
+ it) with contractual assumptions of liability to the recipient, for
385
+ any liability that these contractual assumptions directly impose on
386
+ those licensors and authors.
387
+
388
+ All other non-permissive additional terms are considered "further
389
+ restrictions" within the meaning of section 10. If the Program as you
390
+ received it, or any part of it, contains a notice stating that it is
391
+ governed by this License along with a term that is a further
392
+ restriction, you may remove that term. If a license document contains
393
+ a further restriction but permits relicensing or conveying under this
394
+ License, you may add to a covered work material governed by the terms
395
+ of that license document, provided that the further restriction does
396
+ not survive such relicensing or conveying.
397
+
398
+ If you add terms to a covered work in accord with this section, you
399
+ must place, in the relevant source files, a statement of the
400
+ additional terms that apply to those files, or a notice indicating
401
+ where to find the applicable terms.
402
+
403
+ Additional terms, permissive or non-permissive, may be stated in the
404
+ form of a separately written license, or stated as exceptions;
405
+ the above requirements apply either way.
406
+
407
+ 8. Termination.
408
+
409
+ You may not propagate or modify a covered work except as expressly
410
+ provided under this License. Any attempt otherwise to propagate or
411
+ modify it is void, and will automatically terminate your rights under
412
+ this License (including any patent licenses granted under the third
413
+ paragraph of section 11).
414
+
415
+ However, if you cease all violation of this License, then your
416
+ license from a particular copyright holder is reinstated (a)
417
+ provisionally, unless and until the copyright holder explicitly and
418
+ finally terminates your license, and (b) permanently, if the copyright
419
+ holder fails to notify you of the violation by some reasonable means
420
+ prior to 60 days after the cessation.
421
+
422
+ Moreover, your license from a particular copyright holder is
423
+ reinstated permanently if the copyright holder notifies you of the
424
+ violation by some reasonable means, this is the first time you have
425
+ received notice of violation of this License (for any work) from that
426
+ copyright holder, and you cure the violation prior to 30 days after
427
+ your receipt of the notice.
428
+
429
+ Termination of your rights under this section does not terminate the
430
+ licenses of parties who have received copies or rights from you under
431
+ this License. If your rights have been terminated and not permanently
432
+ reinstated, you do not qualify to receive new licenses for the same
433
+ material under section 10.
434
+
435
+ 9. Acceptance Not Required for Having Copies.
436
+
437
+ You are not required to accept this License in order to receive or
438
+ run a copy of the Program. Ancillary propagation of a covered work
439
+ occurring solely as a consequence of using peer-to-peer transmission
440
+ to receive a copy likewise does not require acceptance. However,
441
+ nothing other than this License grants you permission to propagate or
442
+ modify any covered work. These actions infringe copyright if you do
443
+ not accept this License. Therefore, by modifying or propagating a
444
+ covered work, you indicate your acceptance of this License to do so.
445
+
446
+ 10. Automatic Licensing of Downstream Recipients.
447
+
448
+ Each time you convey a covered work, the recipient automatically
449
+ receives a license from the original licensors, to run, modify and
450
+ propagate that work, subject to this License. You are not responsible
451
+ for enforcing compliance by third parties with this License.
452
+
453
+ An "entity transaction" is a transaction transferring control of an
454
+ organization, or substantially all assets of one, or subdividing an
455
+ organization, or merging organizations. If propagation of a covered
456
+ work results from an entity transaction, each party to that
457
+ transaction who receives a copy of the work also receives whatever
458
+ licenses to the work the party's predecessor in interest had or could
459
+ give under the previous paragraph, plus a right to possession of the
460
+ Corresponding Source of the work from the predecessor in interest, if
461
+ the predecessor has it or can get it with reasonable efforts.
462
+
463
+ You may not impose any further restrictions on the exercise of the
464
+ rights granted or affirmed under this License. For example, you may
465
+ not impose a license fee, royalty, or other charge for exercise of
466
+ rights granted under this License, and you may not initiate litigation
467
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
468
+ any patent claim is infringed by making, using, selling, offering for
469
+ sale, or importing the Program or any portion of it.
470
+
471
+ 11. Patents.
472
+
473
+ A "contributor" is a copyright holder who authorizes use under this
474
+ License of the Program or a work on which the Program is based. The
475
+ work thus licensed is called the contributor's "contributor version".
476
+
477
+ A contributor's "essential patent claims" are all patent claims
478
+ owned or controlled by the contributor, whether already acquired or
479
+ hereafter acquired, that would be infringed by some manner, permitted
480
+ by this License, of making, using, or selling its contributor version,
481
+ but do not include claims that would be infringed only as a
482
+ consequence of further modification of the contributor version. For
483
+ purposes of this definition, "control" includes the right to grant
484
+ patent sublicenses in a manner consistent with the requirements of
485
+ this License.
486
+
487
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
488
+ patent license under the contributor's essential patent claims, to
489
+ make, use, sell, offer for sale, import and otherwise run, modify and
490
+ propagate the contents of its contributor version.
491
+
492
+ In the following three paragraphs, a "patent license" is any express
493
+ agreement or commitment, however denominated, not to enforce a patent
494
+ (such as an express permission to practice a patent or covenant not to
495
+ sue for patent infringement). To "grant" such a patent license to a
496
+ party means to make such an agreement or commitment not to enforce a
497
+ patent against the party.
498
+
499
+ If you convey a covered work, knowingly relying on a patent license,
500
+ and the Corresponding Source of the work is not available for anyone
501
+ to copy, free of charge and under the terms of this License, through a
502
+ publicly available network server or other readily accessible means,
503
+ then you must either (1) cause the Corresponding Source to be so
504
+ available, or (2) arrange to deprive yourself of the benefit of the
505
+ patent license for this particular work, or (3) arrange, in a manner
506
+ consistent with the requirements of this License, to extend the patent
507
+ license to downstream recipients. "Knowingly relying" means you have
508
+ actual knowledge that, but for the patent license, your conveying the
509
+ covered work in a country, or your recipient's use of the covered work
510
+ in a country, would infringe one or more identifiable patents in that
511
+ country that you have reason to believe are valid.
512
+
513
+ If, pursuant to or in connection with a single transaction or
514
+ arrangement, you convey, or propagate by procuring conveyance of, a
515
+ covered work, and grant a patent license to some of the parties
516
+ receiving the covered work authorizing them to use, propagate, modify
517
+ or convey a specific copy of the covered work, then the patent license
518
+ you grant is automatically extended to all recipients of the covered
519
+ work and works based on it.
520
+
521
+ A patent license is "discriminatory" if it does not include within
522
+ the scope of its coverage, prohibits the exercise of, or is
523
+ conditioned on the non-exercise of one or more of the rights that are
524
+ specifically granted under this License. You may not convey a covered
525
+ work if you are a party to an arrangement with a third party that is
526
+ in the business of distributing software, under which you make payment
527
+ to the third party based on the extent of your activity of conveying
528
+ the work, and under which the third party grants, to any of the
529
+ parties who would receive the covered work from you, a discriminatory
530
+ patent license (a) in connection with copies of the covered work
531
+ conveyed by you (or copies made from those copies), or (b) primarily
532
+ for and in connection with specific products or compilations that
533
+ contain the covered work, unless you entered into that arrangement,
534
+ or that patent license was granted, prior to 28 March 2007.
535
+
536
+ Nothing in this License shall be construed as excluding or limiting
537
+ any implied license or other defenses to infringement that may
538
+ otherwise be available to you under applicable patent law.
539
+
540
+ 12. No Surrender of Others' Freedom.
541
+
542
+ If conditions are imposed on you (whether by court order, agreement or
543
+ otherwise) that contradict the conditions of this License, they do not
544
+ excuse you from the conditions of this License. If you cannot convey a
545
+ covered work so as to satisfy simultaneously your obligations under this
546
+ License and any other pertinent obligations, then as a consequence you may
547
+ not convey it at all. For example, if you agree to terms that obligate you
548
+ to collect a royalty for further conveying from those to whom you convey
549
+ the Program, the only way you could satisfy both those terms and this
550
+ License would be to refrain entirely from conveying the Program.
551
+
552
+ 13. Use with the GNU Affero General Public License.
553
+
554
+ Notwithstanding any other provision of this License, you have
555
+ permission to link or combine any covered work with a work licensed
556
+ under version 3 of the GNU Affero General Public License into a single
557
+ combined work, and to convey the resulting work. The terms of this
558
+ License will continue to apply to the part which is the covered work,
559
+ but the special requirements of the GNU Affero General Public License,
560
+ section 13, concerning interaction through a network will apply to the
561
+ combination as such.
562
+
563
+ 14. Revised Versions of this License.
564
+
565
+ The Free Software Foundation may publish revised and/or new versions of
566
+ the GNU General Public License from time to time. Such new versions will
567
+ be similar in spirit to the present version, but may differ in detail to
568
+ address new problems or concerns.
569
+
570
+ Each version is given a distinguishing version number. If the
571
+ Program specifies that a certain numbered version of the GNU General
572
+ Public License "or any later version" applies to it, you have the
573
+ option of following the terms and conditions either of that numbered
574
+ version or of any later version published by the Free Software
575
+ Foundation. If the Program does not specify a version number of the
576
+ GNU General Public License, you may choose any version ever published
577
+ by the Free Software Foundation.
578
+
579
+ If the Program specifies that a proxy can decide which future
580
+ versions of the GNU General Public License can be used, that proxy's
581
+ public statement of acceptance of a version permanently authorizes you
582
+ to choose that version for the Program.
583
+
584
+ Later license versions may give you additional or different
585
+ permissions. However, no additional obligations are imposed on any
586
+ author or copyright holder as a result of your choosing to follow a
587
+ later version.
588
+
589
+ 15. Disclaimer of Warranty.
590
+
591
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599
+
600
+ 16. Limitation of Liability.
601
+
602
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610
+ SUCH DAMAGES.
611
+
612
+ 17. Interpretation of Sections 15 and 16.
613
+
614
+ If the disclaimer of warranty and limitation of liability provided
615
+ above cannot be given local legal effect according to their terms,
616
+ reviewing courts shall apply local law that most closely approximates
617
+ an absolute waiver of all civil liability in connection with the
618
+ Program, unless a warranty or assumption of liability accompanies a
619
+ copy of the Program in return for a fee.
620
+
621
+ END OF TERMS AND CONDITIONS
622
+
623
+ How to Apply These Terms to Your New Programs
624
+
625
+ If you develop a new program, and you want it to be of the greatest
626
+ possible use to the public, the best way to achieve this is to make it
627
+ free software which everyone can redistribute and change under these terms.
628
+
629
+ To do so, attach the following notices to the program. It is safest
630
+ to attach them to the start of each source file to most effectively
631
+ state the exclusion of warranty; and each file should have at least
632
+ the "copyright" line and a pointer to where the full notice is found.
633
+
634
+ {one line to give the program's name and a brief idea of what it does.}
635
+ Copyright (C) {year} {name of author}
636
+
637
+ This program is free software: you can redistribute it and/or modify
638
+ it under the terms of the GNU General Public License as published by
639
+ the Free Software Foundation, either version 3 of the License, or
640
+ (at your option) any later version.
641
+
642
+ This program is distributed in the hope that it will be useful,
643
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
644
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645
+ GNU General Public License for more details.
646
+
647
+ You should have received a copy of the GNU General Public License
648
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
649
+
650
+ Also add information on how to contact you by electronic and paper mail.
651
+
652
+ If the program does terminal interaction, make it output a short
653
+ notice like this when it starts in an interactive mode:
654
+
655
+ {project} Copyright (C) {year} {fullname}
656
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657
+ This is free software, and you are welcome to redistribute it
658
+ under certain conditions; type `show c' for details.
659
+
660
+ The hypothetical commands `show w' and `show c' should show the appropriate
661
+ parts of the General Public License. Of course, your program's commands
662
+ might be different; for a GUI interface, you would use an "about box".
663
+
664
+ You should also get your employer (if you work as a programmer) or school,
665
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
666
+ For more information on this, and how to apply and follow the GNU GPL, see
667
+ <http://www.gnu.org/licenses/>.
668
+
669
+ The GNU General Public License does not permit incorporating your program
670
+ into proprietary programs. If your program is a subroutine library, you
671
+ may consider it more useful to permit linking proprietary applications with
672
+ the library. If this is what you want to do, use the GNU Lesser General
673
+ Public License instead of this License. But first, please read
674
+ <http://www.gnu.org/philosophy/why-not-lgpl.html>.
freemius/README.md ADDED
@@ -0,0 +1,253 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Freemius WordPress SDK
2
+ ======================
3
+
4
+ [Monetization](https://freemius.com/wordpress/), [analytics](https://freemius.com/wordpress/insights/), and marketing automation platform for plugin & theme developers. Freemius empower developers to create prosperous subscription based businesses.
5
+
6
+ You can see some of the WordPress.org plugins & themes that are utilizing the power of Freemius here:
7
+
8
+ https://includewp.com/freemius/#focus
9
+
10
+ If you are a WordPress plugin or theme developer and you are interested to monetize with Freemius you can [sign-up here for free](https://dashboard.freemius.com/register/):
11
+
12
+ https://dashboard.freemius.com/register/
13
+
14
+ **Below you'll find the integration instructions for our WordPress SDK.**
15
+
16
+ ## Code Documentation
17
+
18
+ You can find the SDK's PHP-Doc documentation here:
19
+ https://codedoc.pub/freemius/wordpress-sdk/master/
20
+
21
+ ## Initializing the SDK
22
+
23
+ Copy the code below and paste it into the top of your main plugin's PHP file, right after the plugin's header comment:
24
+
25
+ ```php
26
+ <?php
27
+ // Create a helper function for easy SDK access.
28
+ function my_prefix_fs() {
29
+ global $my_prefix_fs;
30
+ if ( ! isset( $my_prefix_fs ) ) {
31
+ // Include Freemius SDK.
32
+ require_once dirname(__FILE__) . '/freemius/start.php';
33
+
34
+ $my_prefix_fs = fs_dynamic_init( array(
35
+ 'id' => '1234',
36
+ 'slug' => 'my-plugin-slug',
37
+ 'menu_slug' => 'my_menu_slug', // You can also use __FILE__
38
+ 'public_key' => 'pk_MY_PUBLIC_KEY',
39
+ 'is_live' => true,
40
+ 'is_premium' => true,
41
+ 'has_addons' => false,
42
+ 'has_paid_plans' => false,
43
+ // Set the SDK to work in a sandbox mode (for development & testing).
44
+ // IMPORTANT: MAKE SURE TO REMOVE SECRET KEY BEFORE DEPLOYMENT.
45
+ 'secret_key' => 'sk_MY_SECRET_KEY',
46
+ ) );
47
+ }
48
+
49
+ return $my_prefix_fs;
50
+ }
51
+
52
+ // Init Freemius.
53
+ my_prefix_fs();
54
+ ?>
55
+ ```
56
+
57
+ - **1234** - Replace with your plugin's ID.
58
+ - **pk_MY_PUBLIC_KEY** - Replace with your plugin's public key.
59
+ - **sk_MY_SECRET_KEY** - Replace with your plugin's secret key.
60
+ - **my-plugin-slug** - Replace with your plugin's WordPress.org slug.
61
+ - **my_menu_slug** - Replace with your admin dashboard settings menu slug.
62
+
63
+
64
+ ## Usage example
65
+
66
+ You can call the SDK by using the shortcode function:
67
+
68
+ ```php
69
+ <?php my_prefix_fs()->get_upgrade_url(); ?>
70
+ ```
71
+
72
+ Or when calling Freemius multiple times in a scope, it's recommended to use it with the global variable:
73
+
74
+ ```php
75
+ <?php
76
+ global $my_prefix_fs;
77
+ $my_prefix_fs->get_account_url();
78
+ ?>
79
+ ```
80
+
81
+ ## Adding license based logic examples
82
+
83
+ Add marketing content to encourage your users to upgrade for your paid version:
84
+
85
+ ```php
86
+ <?php
87
+ if ( my_prefix_fs()->is_not_paying() ) {
88
+ echo '<section><h1>' . esc_html__('Awesome Premium Features', 'my-plugin-slug') . '</h1>';
89
+ echo '<a href="' . my_prefix_fs()->get_upgrade_url() . '">' .
90
+ esc_html__('Upgrade Now!', 'my-plugin-slug') .
91
+ '</a>';
92
+ echo '</section>';
93
+ }
94
+ ?>
95
+ ```
96
+
97
+ Add logic which will only be available in your premium plugin version:
98
+
99
+ ```php
100
+ <?php
101
+ // This "if" block will be auto removed from the Free version.
102
+ if ( my_prefix_fs()->is__premium_only() ) {
103
+
104
+ // ... premium only logic ...
105
+
106
+ }
107
+ ?>
108
+ ```
109
+
110
+ To add a function which will only be available in your premium plugin version, simply add __premium_only as the suffix of the function name. Just make sure that all lines that call that method directly or by hooks, are also wrapped in premium only logic:
111
+
112
+ ```php
113
+ <?php
114
+ class My_Plugin {
115
+ function init() {
116
+ ...
117
+
118
+ // This "if" block will be auto removed from the free version.
119
+ if ( my_prefix_fs()->is__premium_only() ) {
120
+ // Init premium version.
121
+ $this->admin_init__premium_only();
122
+
123
+ add_action( 'admin_init', array( &$this, 'admin_init_hook__premium_only' );
124
+ }
125
+
126
+ ...
127
+ }
128
+
129
+ // This method will be only included in the premium version.
130
+ function admin_init__premium_only() {
131
+ ...
132
+ }
133
+
134
+ // This method will be only included in the premium version.
135
+ function admin_init_hook__premium_only() {
136
+ ...
137
+ }
138
+ }
139
+ ?>
140
+ ```
141
+
142
+ Add logic which will only be executed for customers in your 'professional' plan:
143
+
144
+ ```php
145
+ <?php
146
+ if ( my_prefix_fs()->is_plan('professional', true) ) {
147
+ // .. logic related to Professional plan only ...
148
+ }
149
+ ?>
150
+ ```
151
+
152
+ Add logic which will only be executed for customers in your 'professional' plan or higher plans:
153
+
154
+ ```php
155
+ <?php
156
+ if ( my_prefix_fs()->is_plan('professional') ) {
157
+ // ... logic related to Professional plan and higher plans ...
158
+ }
159
+ ?>
160
+ ```
161
+
162
+ Add logic which will only be available in your premium plugin version AND will only be executed for customers in your 'professional' plan (and higher plans):
163
+
164
+ ```php
165
+ <?php
166
+ // This "if" block will be auto removed from the Free version.
167
+ if ( my_prefix_fs()->is_plan__premium_only('professional') ) {
168
+ // ... logic related to Professional plan and higher plans ...
169
+ }
170
+ ?>
171
+ ```
172
+
173
+ Add logic only for users in trial:
174
+
175
+ ```php
176
+ <?php
177
+ if ( my_prefix_fs()->is_trial() ) {
178
+ // ... logic for users in trial ...
179
+ }
180
+ ?>
181
+ ```
182
+
183
+ Add logic for specified paid plan:
184
+
185
+ ```php
186
+ <?php
187
+ // This "if" block will be auto removed from the Free version.
188
+ if ( my_prefix_fs()->is__premium_only() ) {
189
+ if ( my_prefix_fs()->is_plan( 'professional', true ) ) {
190
+
191
+ // ... logic related to Professional plan only ...
192
+
193
+ } else if ( my_prefix_fs()->is_plan( 'business' ) ) {
194
+
195
+ // ... logic related to Business plan and higher plans ...
196
+
197
+ }
198
+ }
199
+ ?>
200
+ ```
201
+
202
+ ## Excluding files and folders from the free plugin version
203
+ There are two ways to exclude files from your free version.
204
+
205
+ 1. Add `__premium_only` just before the file extension. For example, functions__premium_only.php will be only included in the premium plugin version. This works for all type of files, not only PHP.
206
+ 2. Add `@fs_premium_only` a sepcial meta tag to the plugin's main PHP file header. Example:
207
+ ```php
208
+ <?php
209
+ /**
210
+ * Plugin Name: My Very Awesome Plugin
211
+ * Plugin URI: http://my-awesome-plugin.com
212
+ * Description: Create and manage Awesomeness right in WordPress.
213
+ * Version: 1.0.0
214
+ * Author: Awesomattic
215
+ * Author URI: http://my-awesome-plugin.com/me/
216
+ * License: GPLv2
217
+ * Text Domain: myplugin
218
+ * Domain Path: /langs
219
+ *
220
+ * @fs_premium_only /lib/functions.php, /premium-files/
221
+ */
222
+
223
+ if ( ! defined( 'ABSPATH' ) ) {
224
+ exit;
225
+ }
226
+
227
+ // ... my code ...
228
+ ?>
229
+ ```
230
+ The file `/lib/functions.php` and the directory `/premium-files/` will be removed from the free plugin version.
231
+
232
+ # WordPress.org Compliance
233
+ Based on [WordPress.org Guidelines](https://wordpress.org/plugins/about/guidelines/) you are not allowed to submit a plugin that has premium code in it:
234
+ > All code hosted by WordPress.org servers must be free and fully-functional. If you want to sell advanced features for a plugin (such as a "pro" version), then you must sell and serve that code from your own site, we will not host it on our servers.
235
+
236
+ Therefore, if you want to deploy your free plugin's version to WordPress.org, make sure you wrap all your premium code with `if ( my_prefix_fs()->{{ method }}__premium_only() )` or the other methods provided to exclude premium features & files from the free version.
237
+
238
+ ## Deployment
239
+ Zip your plugin's root folder and upload it in the Deployment section in the *Freemius Developer's Dashboard*.
240
+ The plugin will be scanned and processed by a custom developed *PHP Processor* which will auto-generate two versions of your plugin:
241
+
242
+ 1. **Premium version**: Identical to your uploaded version, including all code (except your `secret_key`). Will be enabled for download ONLY for your paying or in trial customers.
243
+ 2. **Free version**: The code stripped from all your paid features (based on the logic added wrapped in `{ method }__premium_only()`).
244
+
245
+ The free version is the one that you should give your users to download. Therefore, download the free generated version and upload to your site. Or, if your plugin was WordPress.org complaint and you made sure to exclude all your premium code with the different provided techniques, you can deploy the downloaded free version to the .org repo.
246
+
247
+ ## Reporting Bugs
248
+ Email dev [at] freemius [dot] com
249
+
250
+ ## FAQ
251
+
252
+ ## Copyright
253
+ Freemius, Inc.
freemius/assets/css/admin/account.css ADDED
@@ -0,0 +1 @@
 
1
+ #fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
freemius/assets/css/admin/add-ons.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ #fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{float:left;height:152px;width:310px;padding:0;margin:0 0 30px 30px;font-size:14px;list-style:none;border:1px solid #ddd;cursor:pointer;position:relative}#fs_addons .fs-cards-list .fs-card .fs-overlay{position:absolute;left:0;right:0;bottom:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;overflow:hidden;height:100%;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner ul{-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s;left:0;right:0;top:0;position:absolute}#fs_addons .fs-cards-list .fs-card .fs-inner li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{padding:0;margin:0;line-height:0;display:block;height:100px;background-repeat:repeat-x;background-size:100% 100%;-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{margin:10px 0 0 0;height:18px;overflow:hidden;color:#000;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:0.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;padding:10px 15px 100px 15px;border-top:1px solid #eee;margin:0 0 10px 0;color:#777}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{position:absolute;top:10px;right:0px;background:greenyellow;display:block;padding:2px 10px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.3);box-shadow:1px 1px 1px rgba(0,0,0,0.3);text-transform:uppercase;font-size:0.9em;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button{position:absolute;top:112px;right:10px}@media screen and (min-width: 960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer{color:#29abe1}}
2
+ #TB_window,#TB_window iframe{width:772px !important}#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description p,#plugin-information #section-description b,#plugin-information #section-description i,#plugin-information #section-description blockquote,#plugin-information #section-description li,#plugin-information #section-description ul,#plugin-information #section-description ol{clear:none}#plugin-information #section-description .fs-selling-points{padding-bottom:10px;border-bottom:1px solid #ddd}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{padding:0;list-style:none outside none}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;font-size:3em;vertical-align:middle;line-height:30px;float:left;margin:0 0 0 -15px}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px !important}#plugin-information #section-description .fs-screenshots:after{content:"";display:table;clear:both}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{width:225px;height:225px;float:left;margin-bottom:20px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#plugin-information #section-description .fs-screenshots ul li a{display:block;width:100%;height:100%;border:1px solid;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);background-size:cover}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{margin:-16px;border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan h3{margin-top:0;padding:20px;font-size:16px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;position:relative;padding:0 10px;font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{text-transform:uppercase;color:green;background:greenyellow;position:absolute;left:-1px;right:-1px;bottom:100%;border:1px solid darkgreen;padding:2px;text-align:center;font-size:0.9em;line-height:1em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{cursor:default;background:#fffeec;border-bottom-color:#fffeec}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;margin:0;padding-bottom:0;color:#0073aa}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{width:100%;text-align:center;font-weight:bold;text-transform:uppercase;font-size:1.1em}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-align:center;display:block;font-weight:bold;margin-bottom:10px;text-transform:uppercase;background:#F3F3F3;padding:2px;border:1px solid #ccc}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-transform:none;color:green;background:greenyellow}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{width:100%;border-spacing:0;border-collapse:separate}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;font-weight:normal;display:block;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;padding:10px 0;text-align:center;width:100px;color:#71ae00}#plugin-information #section-features table tbody td:first-child{text-align:left;width:auto;color:inherit;padding-left:26px}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{width:30px;height:30px;font-size:30px}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}}
freemius/assets/css/admin/affiliation.css ADDED
@@ -0,0 +1 @@
 
1
+ @charset "UTF-8";#fs_affiliation_content_wrapper #messages{margin-top:25px}#fs_affiliation_content_wrapper h3{font-size:24px;padding:0;margin-left:0}#fs_affiliation_content_wrapper ul li{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;list-style-type:none}#fs_affiliation_content_wrapper ul li:before{content:'✓';margin-right:10px;font-weight:bold}#fs_affiliation_content_wrapper p:not(.description),#fs_affiliation_content_wrapper li,#fs_affiliation_content_wrapper label{font-size:16px !important;line-height:26px !important}#fs_affiliation_content_wrapper .button{margin-top:20px;margin-bottom:7px;line-height:35px;height:40px;font-size:16px}#fs_affiliation_content_wrapper .button#cancel_button{margin-right:5px}#fs_affiliation_content_wrapper form .input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form .input-container .input-label{font-weight:bold;display:block;width:100%}#fs_affiliation_content_wrapper form .input-container.input-container-text label,#fs_affiliation_content_wrapper form .input-container.input-container-text input,#fs_affiliation_content_wrapper form .input-container.input-container-text textarea{display:block}#fs_affiliation_content_wrapper form .input-container #add_domain,#fs_affiliation_content_wrapper form .input-container .remove-domain{text-decoration:none;display:inline-block;margin-top:3px}#fs_affiliation_content_wrapper form .input-container #add_domain:focus,#fs_affiliation_content_wrapper form .input-container .remove-domain:focus{box-shadow:none}#fs_affiliation_content_wrapper form .input-container #add_domain.disabled,#fs_affiliation_content_wrapper form .input-container .remove-domain.disabled{color:#aaa;cursor:default}#fs_affiliation_content_wrapper form #extra_domains_container .description{margin-top:0;position:relative;top:-4px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain{display:inline-block;margin-right:5px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain:last-of-type{margin-bottom:0}
freemius/assets/css/admin/checkout.css ADDED
@@ -0,0 +1 @@
 
1
+ @media screen and (max-width: 782px){#wpbody-content{padding-bottom:0 !important}}
freemius/assets/css/admin/common.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ .theme-browser .theme .fs-premium-theme-badge{position:absolute;top:10px;right:0;background:#71ae00;color:#fff;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);font-size:1.1em}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
+ .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
freemius/assets/css/admin/connect.css ADDED
@@ -0,0 +1 @@
 
1
+ #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key #sites_list_container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li div{margin-left:55px}#fs_connect .fs-permissions ul li div span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li div p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}#multisite_options_container{margin-top:10px;border:1px solid #ccc;padding:5px}#multisite_options_container a{text-decoration:none}#multisite_options_container a:focus{box-shadow:none}#multisite_options_container a.selected{font-weight:bold}#multisite_options_container.apply-on-all-sites{border:0 none;padding:0}#multisite_options_container.apply-on-all-sites #all_sites_options{border-spacing:0}#multisite_options_container.apply-on-all-sites #all_sites_options td:not(:first-child){display:none}#multisite_options_container #sites_list_container{display:none;overflow:auto}#multisite_options_container #sites_list_container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li div{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
freemius/assets/css/admin/deactivation-feedback.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}.fs-modal .fs-modal-dialog li.reason{margin-bottom:10px}.fs-modal .fs-modal-dialog li.reason .reason-input,.fs-modal .fs-modal-dialog li.reason .internal-message{margin-left:29px}.fs-modal .fs-modal-dialog li.reason label{display:table}.fs-modal .fs-modal-dialog li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}.fs-modal .reason-input,.fs-modal .internal-message{margin:3px 0 3px 22px}.fs-modal .reason-input input,.fs-modal .reason-input textarea,.fs-modal .internal-message input,.fs-modal .internal-message textarea{width:100%}.fs-modal li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}body.has-fs-modal{overflow:hidden}#the-list .deactivate>.fs-slug{display:none}
2
+ /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlYWN0aXZhdGlvbi1mZWVkYmFjay5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVSxlQUFlLGNBQWMsWUFBWSxXQUFXLE1BQU0sZUFBZSxhQUFhLDBCQUEwQixDQUFDLDJCQUEyQix1QkFBdUIsa0JBQWtCLFNBQVMsbUJBQW1CLG9CQUFvQixVQUFVLGVBQWUsV0FBVyxDQUFDLDBCQUEwQiwyQkFBMkIsaUJBQWlCLDhCQUFBLHNCQUFzQixrQkFBa0IsbUJBQW1CLFVBQVUsQ0FBQyxxREFBcUQsZUFBZSxDQUFDLHFDQUFxQyxrQkFBa0IsQ0FBQywwR0FBMEcsZ0JBQWdCLENBQUMsMkNBQTJDLGFBQWEsQ0FBQyxnREFBZ0QsbUJBQW1CLGVBQWUsQ0FBQyxDQUFDLGlCQUFpQixhQUFhLENBQUMsd0JBQXdCLGFBQWEsQ0FBQyxrQ0FBa0MsT0FBTyxDQUFDLG9EQUFvRCxTQUFTLG1CQUFtQixZQUFZLENBQUMseUJBQXlCLGVBQWUsQ0FBQyw0QkFBNEIsY0FBYyxDQUFDLDZCQUE2QixlQUFlLENBQUMsZ0NBQWdDLGlCQUFpQixlQUFlLFlBQVksQ0FBQywyQkFBMkIsNkJBQTZCLGdCQUFnQixDQUFDLG1DQUFtQyxZQUFZLENBQUMsK0NBQStDLFFBQVEsQ0FBQyx1Q0FBdUMsWUFBWSxDQUFDLG9EQUFvRCxxQkFBcUIsQ0FBQyxzSUFBc0ksVUFBVSxDQUFDLDJEQUEyRCxzQkFBc0IsWUFBWSxZQUFZLENBQUMsa0JBQWtCLGVBQWUsQ0FBQywrQkFBK0IsWUFBWSxDQUFDIiwiZmlsZSI6ImRlYWN0aXZhdGlvbi1mZWVkYmFjay5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZnMtbW9kYWx7cG9zaXRpb246Zml4ZWQ7b3ZlcmZsb3c6YXV0bztoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RvcDowO3otaW5kZXg6MTAwMDAwO2Rpc3BsYXk6bm9uZTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KX0uZnMtbW9kYWwgLmZzLW1vZGFsLWRpYWxvZ3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0yOThweDtwYWRkaW5nLWJvdHRvbTozMHB4O3RvcDotMTAwJTt6LWluZGV4OjEwMDAwMTt3aWR0aDo1OTZweH1AbWVkaWEgKG1heC13aWR0aDogNjUwcHgpey5mcy1tb2RhbCAuZnMtbW9kYWwtZGlhbG9ne21hcmdpbi1sZWZ0Oi01MCU7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDt3aWR0aDoxMDAlfS5mcy1tb2RhbCAuZnMtbW9kYWwtZGlhbG9nIC5mcy1tb2RhbC1wYW5lbD5oMz5zdHJvbmd7Zm9udC1zaXplOjEuM2VtfS5mcy1tb2RhbCAuZnMtbW9kYWwtZGlhbG9nIGxpLnJlYXNvbnttYXJnaW4tYm90dG9tOjEwcHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1kaWFsb2cgbGkucmVhc29uIC5yZWFzb24taW5wdXQsLmZzLW1vZGFsIC5mcy1tb2RhbC1kaWFsb2cgbGkucmVhc29uIC5pbnRlcm5hbC1tZXNzYWdle21hcmdpbi1sZWZ0OjI5cHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1kaWFsb2cgbGkucmVhc29uIGxhYmVse2Rpc3BsYXk6dGFibGV9LmZzLW1vZGFsIC5mcy1tb2RhbC1kaWFsb2cgbGkucmVhc29uIGxhYmVsPnNwYW57ZGlzcGxheTp0YWJsZS1jZWxsO2ZvbnQtc2l6ZToxLjNlbX19LmZzLW1vZGFsLmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS5mcy1tb2RhbC5hY3RpdmU6YmVmb3Jle2Rpc3BsYXk6YmxvY2t9LmZzLW1vZGFsLmFjdGl2ZSAuZnMtbW9kYWwtZGlhbG9ne3RvcDoxMCV9LmZzLW1vZGFsIC5mcy1tb2RhbC1ib2R5LC5mcy1tb2RhbCAuZnMtbW9kYWwtZm9vdGVye2JvcmRlcjowO2JhY2tncm91bmQ6I2ZlZmVmZTtwYWRkaW5nOjIwcHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1ib2R5e2JvcmRlci1ib3R0b206MH0uZnMtbW9kYWwgLmZzLW1vZGFsLWJvZHkgaDJ7Zm9udC1zaXplOjIwcHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1ib2R5PmRpdnttYXJnaW4tdG9wOjEwcHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1ib2R5PmRpdiBoMntmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6MH0uZnMtbW9kYWwgLmZzLW1vZGFsLWZvb3Rlcntib3JkZXItdG9wOiNlZWVlZWUgc29saWQgMXB4O3RleHQtYWxpZ246cmlnaHR9LmZzLW1vZGFsIC5mcy1tb2RhbC1mb290ZXI+LmJ1dHRvbnttYXJnaW46MCA3cHh9LmZzLW1vZGFsIC5mcy1tb2RhbC1mb290ZXI+LmJ1dHRvbjpmaXJzdC1jaGlsZHttYXJnaW46MH0uZnMtbW9kYWwgLmZzLW1vZGFsLXBhbmVsOm5vdCguYWN0aXZlKXtkaXNwbGF5Om5vbmV9LmZzLW1vZGFsIC5yZWFzb24taW5wdXQsLmZzLW1vZGFsIC5pbnRlcm5hbC1tZXNzYWdle21hcmdpbjozcHggMCAzcHggMjJweH0uZnMtbW9kYWwgLnJlYXNvbi1pbnB1dCBpbnB1dCwuZnMtbW9kYWwgLnJlYXNvbi1pbnB1dCB0ZXh0YXJlYSwuZnMtbW9kYWwgLmludGVybmFsLW1lc3NhZ2UgaW5wdXQsLmZzLW1vZGFsIC5pbnRlcm5hbC1tZXNzYWdlIHRleHRhcmVhe3dpZHRoOjEwMCV9LmZzLW1vZGFsIGxpLnJlYXNvbi5oYXMtaW50ZXJuYWwtbWVzc2FnZSAuaW50ZXJuYWwtbWVzc2FnZXtib3JkZXI6MXB4IHNvbGlkICNjY2M7cGFkZGluZzo3cHg7ZGlzcGxheTpub25lfWJvZHkuaGFzLWZzLW1vZGFse292ZXJmbG93OmhpZGRlbn0jdGhlLWxpc3QgLmRlYWN0aXZhdGU+LmZzLXNsdWd7ZGlzcGxheTpub25lfVxuIl19 */
freemius/assets/css/admin/debug.css ADDED
@@ -0,0 +1 @@
 
1
+ .switch{position:relative;display:inline-block;font-size:1.6em;font-weight:bold;color:#ccc;text-shadow:0px 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:4px;background:#ececec;box-shadow:0px 0px 4px rgba(0,0,0,0.1),inset 0px 1px 3px 0px rgba(0,0,0,0.1);cursor:pointer}.switch span{display:inline-block;width:35px;text-transform:uppercase}.switch span.on{color:#6bc406}.switch .toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background:-moz-linear-gradient(top, #ececec 0%, #fff 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #fff));background:-webkit-linear-gradient(top, #ececec 0%, #fff 100%);background:-o-linear-gradient(top, #ececec 0%, #fff 100%);background:-ms-linear-gradient(top, #ececec 0%, #fff 100%);background:linear-gradient(top, #ececec 0%, #fff 100%);box-shadow:inset 0px 1px 0px 0px rgba(255,255,255,0.5);z-index:999;-moz-transition:all 0.15s ease-in-out;-o-transition:all 0.15s ease-in-out;-ms-transition:all 0.15s ease-in-out;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out}.switch.on .toggle{left:2%}.switch.off .toggle{left:54%}.switch.round{padding:0px 20px;border-radius:40px}.switch.round .toggle{border-radius:40px;width:14px;height:14px}.switch.round.on .toggle{left:3%;background:#6bc406}.switch.round.off .toggle{left:58%}.switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
freemius/assets/css/admin/dialog-boxes.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.license_key{width:100%}#license_options_container table,#license_options_container table select,#license_options_container table #available_license_key{width:100%}#license_options_container table td:first-child{width:1%}#license_options_container table #other_license_key_container label{position:relative;top:6px;float:left;margin-right:5px}#license_options_container table #other_license_key_container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}#license_options_container table #other_license_key_container div input{margin:0}#sites_list_container td{cursor:pointer}#multisite_options_container{margin-top:10px;border:1px solid #ccc;padding:5px}#multisite_options_container a{text-decoration:none}#multisite_options_container a:focus{box-shadow:none}#multisite_options_container a.selected{font-weight:bold}#multisite_options_container.apply-on-all-sites{border:0 none;padding:0}#multisite_options_container.apply-on-all-sites #all_sites_options{border-spacing:0}#multisite_options_container.apply-on-all-sites #all_sites_options td:not(:first-child){display:none}#multisite_options_container #sites_list_container{display:none;overflow:auto}#multisite_options_container #sites_list_container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
+ .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div