Ultimate Addons for SiteOrigin - Version 1.0

Version Description

  • Initial Upload of the plugin

=

Download this release

Release Info

Developer munirkamal
Plugin Icon 128x128 Ultimate Addons for SiteOrigin
Version 1.0
Comparing to
See all releases

Version 1.0

Files changed (49) hide show
  1. addon-so-widgets-bundle.php +182 -0
  2. css/bootstrap.min.css +5 -0
  3. css/owl.carousel.css +71 -0
  4. css/widgets.css +3 -0
  5. extra-widgets/blog-style-one/assets/banner.svg +383 -0
  6. extra-widgets/blog-style-one/blog-style-one.php +60 -0
  7. extra-widgets/blog-style-one/styles/blog-style-one-style.less +5 -0
  8. extra-widgets/blog-style-one/tpl/blog-style-one-template.php +43 -0
  9. extra-widgets/blog-style-two/assets/banner.svg +400 -0
  10. extra-widgets/blog-style-two/blog-style-two.php +75 -0
  11. extra-widgets/blog-style-two/styles/blog-style-two-style.less +7 -0
  12. extra-widgets/blog-style-two/tpl/blog-style-two-template.php +49 -0
  13. extra-widgets/divider/assets/banner.svg +374 -0
  14. extra-widgets/divider/divider.php +88 -0
  15. extra-widgets/divider/styles/divider-style.less +7 -0
  16. extra-widgets/divider/tpl/divider-template.php +20 -0
  17. extra-widgets/faqs/assets/banner.svg +322 -0
  18. extra-widgets/faqs/faqs.php +93 -0
  19. extra-widgets/faqs/styles/faqs-style.less +56 -0
  20. extra-widgets/faqs/tpl/faqs-template.php +27 -0
  21. extra-widgets/service-box/assets/banner.svg +225 -0
  22. extra-widgets/service-box/service-box.php +128 -0
  23. extra-widgets/service-box/styles/service-box-style.less +15 -0
  24. extra-widgets/service-box/tpl/service-box-template.php +70 -0
  25. extra-widgets/spacer/assets/banner.svg +323 -0
  26. extra-widgets/spacer/spacer.php +61 -0
  27. extra-widgets/spacer/styles/spacer-style.less +1 -0
  28. extra-widgets/spacer/tpl/spacer-template.php +18 -0
  29. extra-widgets/tabs/assets/banner.svg +271 -0
  30. extra-widgets/tabs/styles/tabs-style.less +137 -0
  31. extra-widgets/tabs/tabs.php +93 -0
  32. extra-widgets/tabs/tpl/tabs-template.php +58 -0
  33. extra-widgets/testimonials/assets/banner.svg +317 -0
  34. extra-widgets/testimonials/styles/testimonials-style.less +11 -0
  35. extra-widgets/testimonials/testimonials.php +154 -0
  36. extra-widgets/testimonials/tpl/testimonials-template.php +88 -0
  37. extra-widgets/toggles/assets/banner.svg +314 -0
  38. extra-widgets/toggles/styles/toggles-style.less +56 -0
  39. extra-widgets/toggles/toggles.php +86 -0
  40. extra-widgets/toggles/tpl/toggles-template.php +22 -0
  41. fonts/glyphicons-halflings-regular.eot +0 -0
  42. fonts/glyphicons-halflings-regular.svg +288 -0
  43. fonts/glyphicons-halflings-regular.ttf +0 -0
  44. fonts/glyphicons-halflings-regular.woff +0 -0
  45. fonts/glyphicons-halflings-regular.woff2 +0 -0
  46. js/bootstrap.min.js +7 -0
  47. js/jquery-1.9.1.min.js +5 -0
  48. js/jquery-2.1.1.js +9190 -0
  49. js/jquery.js +3860 -0
addon-so-widgets-bundle.php ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Plugin Name: Ultimate Addons for SiteOrigin
5
+ Description: An ultimate collection of addons for SiteOrigin Widgets Bundle.
6
+ Version: 0.1
7
+ Author: Ingenious Solution
8
+ Author URI: http://ingenious-web.com/
9
+ License: GPL3
10
+ License URI: https://www.gnu.org/licenses/gpl-3.0.txt
11
+ */
12
+
13
+ function addon_so_widgets_bundle($folders){
14
+ $folders[] = plugin_dir_path(__FILE__).'extra-widgets/';
15
+ return $folders;
16
+ }
17
+ add_filter('siteorigin_widgets_widget_folders', 'addon_so_widgets_bundle');
18
+
19
+
20
+
21
+
22
+ add_action('wp_enqueue_scripts','scripts');
23
+ function scripts()
24
+ {
25
+ wp_enqueue_script( 'js-tas', plugin_dir_url(__FILE__) .'js/jquery-2.1.1.js');
26
+ wp_enqueue_style( 'bootstrap-css', plugin_dir_url(__FILE__) . 'css/bootstrap.min.css');
27
+ wp_enqueue_style( 'owl-css', plugin_dir_url(__FILE__) . 'css/owl.carousel.css');
28
+ wp_enqueue_style( 'widgets-css', plugin_dir_url(__FILE__) . 'css/widgets.css');
29
+ wp_enqueue_script( 'bootstrap-js', plugin_dir_url(__FILE__) .'js/bootstrap.min.js');
30
+ wp_enqueue_script( 'owl-js', plugin_dir_url(__FILE__) .'js/owl.carousel.min.js');
31
+ wp_enqueue_script( 'custom-js', plugin_dir_url(__FILE__) .'js/custom.js');
32
+
33
+ }
34
+
35
+
36
+
37
+
38
+
39
+ //footer
40
+
41
+ add_action('wp_footer','f_scripts');
42
+
43
+ function f_scripts()
44
+ { ?>
45
+
46
+ <script>
47
+
48
+
49
+ equalheight = function(container){
50
+
51
+ var currentTallest = 0,
52
+ currentRowStart = 0,
53
+ rowDivs = new Array(),
54
+ $el,
55
+ topPosition = 0;
56
+ $(container).each(function() {
57
+
58
+ $el = $(this);
59
+ $($el).height('auto')
60
+ topPostion = $el.position().top;
61
+
62
+ if (currentRowStart != topPostion) {
63
+ for (currentDiv = 0 ; currentDiv < rowDivs.length ; currentDiv++) {
64
+ rowDivs[currentDiv].height(currentTallest);
65
+ }
66
+ rowDivs.length = 0; // empty the array
67
+ currentRowStart = topPostion;
68
+ currentTallest = $el.height();
69
+ rowDivs.push($el);
70
+ } else {
71
+ rowDivs.push($el);
72
+ currentTallest = (currentTallest < $el.height()) ? ($el.height()) : (currentTallest);
73
+ }
74
+ for (currentDiv = 0 ; currentDiv < rowDivs.length ; currentDiv++) {
75
+ rowDivs[currentDiv].height(currentTallest);
76
+ }
77
+ });
78
+ }
79
+
80
+ $(window).load(function() {
81
+ equalheight('.all_main .auto_height');
82
+ });
83
+
84
+
85
+ $(window).resize(function(){
86
+ equalheight('.all_main .auto_height');
87
+ });
88
+ </script>
89
+
90
+ <?php
91
+
92
+
93
+
94
+ echo "<script>
95
+
96
+
97
+
98
+ // tabs
99
+ $(document).ready(function() {
100
+
101
+ (function ($) {
102
+ $('.tab ul.tabs').addClass('active').find('> li:eq(0)').addClass('current');
103
+
104
+ $('.tab ul.tabs li a').click(function (g) {
105
+ var tab = $(this).closest('.tab'),
106
+ index = $(this).closest('li').index();
107
+
108
+ tab.find('ul.tabs > li').removeClass('current');
109
+ $(this).closest('li').addClass('current');
110
+
111
+ tab.find('.tab_content').find('div.tabs_item').not('div.tabs_item:eq(' + index + ')').slideUp();
112
+ tab.find('.tab_content').find('div.tabs_item:eq(' + index + ')').slideDown();
113
+
114
+ g.preventDefault();
115
+ } );
116
+ })(jQuery);
117
+
118
+ });
119
+
120
+
121
+
122
+ //accordion
123
+
124
+ (function($) {
125
+ $('.accordion > li:eq(0) a').addClass('active').next().slideDown();
126
+
127
+ $('.accordion a').click(function(j) {
128
+ var dropDown = $(this).closest('li').find('p');
129
+
130
+ $(this).closest('.accordion').find('p').not(dropDown).slideUp();
131
+
132
+ if ($(this).hasClass('active')) {
133
+ $(this).removeClass('active');
134
+ } else {
135
+ $(this).closest('.accordion').find('a.active').removeClass('active');
136
+ $(this).addClass('active');
137
+ }
138
+
139
+ dropDown.stop(false, true).slideToggle();
140
+
141
+ j.preventDefault();
142
+ });
143
+ })(jQuery);
144
+
145
+ </script>";
146
+
147
+ }
148
+
149
+
150
+
151
+ //pannel Group
152
+
153
+ function addonso($tabs) {
154
+ $tabs[] = array(
155
+ 'title' => __('Ultimate Addon Bundle', 'addonso'),
156
+ 'filter' => array(
157
+ 'groups' => array('addonso')
158
+ )
159
+ );
160
+
161
+ return $tabs;
162
+ }
163
+ add_filter('siteorigin_panels_widget_dialog_tabs', 'addonso', 20);
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+ /**
174
+ * Load Titan Framework plugin checker
175
+ */
176
+ require_once( 'titan-framework-checker.php' );
177
+
178
+
179
+ /**
180
+ * Load Titan Framework options
181
+ */
182
+ require_once( 'titan-options.php' );
css/bootstrap.min.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
3
+ * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
css/owl.carousel.css ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Core Owl Carousel CSS File
3
+ * v1.3.3
4
+ */
5
+
6
+ /* clearfix */
7
+ .owl-carousel .owl-wrapper:after {
8
+ content: ".";
9
+ display: block;
10
+ clear: both;
11
+ visibility: hidden;
12
+ line-height: 0;
13
+ height: 0;
14
+ }
15
+ /* display none until init */
16
+ .owl-carousel{
17
+ display: none;
18
+ position: relative;
19
+ width: 100%;
20
+ -ms-touch-action: pan-y;
21
+ }
22
+ .owl-carousel .owl-wrapper{
23
+ display: none;
24
+ position: relative;
25
+ -webkit-transform: translate3d(0px, 0px, 0px);
26
+ }
27
+ .owl-carousel .owl-wrapper-outer{
28
+ overflow: hidden;
29
+ position: relative;
30
+ width: 100%;
31
+ }
32
+ .owl-carousel .owl-wrapper-outer.autoHeight{
33
+ -webkit-transition: height 500ms ease-in-out;
34
+ -moz-transition: height 500ms ease-in-out;
35
+ -ms-transition: height 500ms ease-in-out;
36
+ -o-transition: height 500ms ease-in-out;
37
+ transition: height 500ms ease-in-out;
38
+ }
39
+
40
+ .owl-carousel .owl-item{
41
+ float: left;
42
+ }
43
+ .owl-controls .owl-page,
44
+ .owl-controls .owl-buttons div{
45
+ cursor: pointer;
46
+ }
47
+ .owl-controls {
48
+ -webkit-user-select: none;
49
+ -khtml-user-select: none;
50
+ -moz-user-select: none;
51
+ -ms-user-select: none;
52
+ user-select: none;
53
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
54
+ }
55
+
56
+ /* mouse grab icon */
57
+ .grabbing {
58
+ cursor:url(grabbing.png) 8 8, move;
59
+ }
60
+
61
+ /* fix */
62
+ .owl-carousel .owl-wrapper,
63
+ .owl-carousel .owl-item{
64
+ -webkit-backface-visibility: hidden;
65
+ -moz-backface-visibility: hidden;
66
+ -ms-backface-visibility: hidden;
67
+ -webkit-transform: translate3d(0,0,0);
68
+ -moz-transform: translate3d(0,0,0);
69
+ -ms-transform: translate3d(0,0,0);
70
+ }
71
+
css/widgets.css ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ .alpha {padding-left: 0;}
2
+ .omega{padding-right: 0;}
3
+ .glyphicon{top: 0;}
extra-widgets/blog-style-one/assets/banner.svg ADDED
@@ -0,0 +1,383 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6NTY5ODJDQTdFRTcwMTFFNDlFQjk5MzI4ODQ5OTZDMjEiIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6NTY5ODJDQTZFRTcwMTFFNDlFQjk5MzI4ODQ5OTZDMjEiIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowRDhDNEQ4QTZERUVFNDExQTZDN0YzQjE2NkNB
23
+ MzkwNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADgAAEAAgICAwEBAAAAAAAAAAAABwgJCgUGAgMECwEBAQACAwADAQAA
29
+ AAAAAAAAAAAGCAUHCQEDBAIQAAAFAwIBAwsNCwsCBgMAAAABAgMEBQYHEQgSIRMJMdIUlBVVlbVX
30
+ dzhBUbPUNXXVFpYXGFgZYXGx0SIycsIzk9OBkUKSI1bWN1kKGqG28FJionMkU3Q5EQACAQEDBQkM
31
+ CAQFAwMFAAAAAQIDEQQFITESBgdBUWHRsnNUFwhxgZEiktITU5MVNTahMlKisxR0GLFCVRbB4WKC
32
+ I3Kj0/AkRPHCM0M3/9oADAMBAAIRAxEAPwCm46yHDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
37
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
38
+ AAAAAAAAAAAAAAAA6FXb9p9NUuNAQVRloM0rUk9GkGXqGsvzj+9/ONB69be8Pw2UqN1Xp6qyNp2Q
39
+ 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
380
+ "/>
381
+ </g>
382
+ </svg>
383
+
extra-widgets/blog-style-one/blog-style-one.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: Blog Style One
5
+ Description: Blog style One.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Blog_Style_One extends SiteOrigin_Widget {
11
+ function __construct() {
12
+
13
+ parent::__construct(
14
+ 'blog-style-one',
15
+ __('Blog Style One', 'blog-style-one-text-domain'),
16
+ array(
17
+ 'description' => __('Blog style One.', 'addon-so-widgets-bundle'),
18
+ 'panels_groups' => array('addonso')
19
+ ),
20
+ array(
21
+
22
+ ),
23
+
24
+ array(
25
+ 'widget_title' => array(
26
+ 'type' => 'text',
27
+ 'label' => __('Widget Title', 'addon-so-widgets-bundle'),
28
+ 'default' => ''
29
+ ),
30
+
31
+
32
+ 'posts' => array(
33
+ 'type' => 'posts',
34
+ 'label' => __('Select Posts', 'addon-so-widgets-bundle'),
35
+ ),
36
+
37
+ 'custom_class' => array(
38
+ 'type' => 'text',
39
+ 'label' => __('Custom Class', 'addon-so-widgets-bundle'),
40
+ 'default' => ''
41
+ ),
42
+
43
+ ),
44
+
45
+
46
+ plugin_dir_path(__FILE__)
47
+ );
48
+ }
49
+
50
+ function get_template_name($instance) {
51
+ return 'blog-style-one-template';
52
+ }
53
+
54
+ function get_style_name($instance) {
55
+ return 'blog-style-one-style';
56
+ }
57
+
58
+ }
59
+
60
+ siteorigin_widget_register('blog-style-one', __FILE__, 'Blog_Style_One');
extra-widgets/blog-style-one/styles/blog-style-one-style.less ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ .blog_one_style{margin-bottom: 20px;}
2
+ .blog_one_style .image img{display: block; width: 100%; height: 100%;}
3
+ .blog_one_style .content h4{margin-top:0; margin-bottom: 10px;}
4
+ .blog_one_style .meta{ border-top: 1px solid #e0dede; border-bottom: 1px solid #e0dede; margin: 10px 0; padding: 10px; font-size: 12px;}
5
+ .blog_one_style .meta .glyphicon{top: 0;}
extra-widgets/blog-style-one/tpl/blog-style-one-template.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $query = siteorigin_widget_post_selector_process_query($instance['posts']);
3
+ $the_query = new WP_Query($query);
4
+ $widget_title = wp_kses_post($instance['widget_title']);
5
+ $custom_class = wp_kses_post($instance['custom_class']);
6
+ ?>
7
+
8
+ <?php if ($widget_title) { ?>
9
+ <h3 class="widget-title">
10
+ <span><?php echo $widget_title ?></span>
11
+ </h3>
12
+ <?php } ?>
13
+
14
+ <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
15
+
16
+
17
+ <div class="blog_one_style clearfix <?php echo $custom_class ?>">
18
+
19
+ <div class="col-md-4 image alpha">
20
+ <?php if(has_post_thumbnail()){
21
+ the_post_thumbnail();
22
+ } ?>
23
+ </div>
24
+
25
+ <div class="col-md-8 content">
26
+ <h4><?php the_title(); ?></h4>
27
+ <?php the_excerpt(); ?>
28
+ </div>
29
+
30
+ <div class="clearfix"></div>
31
+
32
+ <div class="col-md-12 meta clearfix">
33
+ <div class="pull-left">
34
+ by <?php the_author(); ?> | <?php echo get_the_date(); ?> | <?php the_category(', '); ?>
35
+ </div>
36
+ <div class="pull-right">
37
+ <a href="<?php the_permalink(); ?>">Read More <span class="glyphicon glyphicon-menu-right"></span></a>
38
+ </div>
39
+ </div>
40
+ </div>
41
+
42
+
43
+ <?php endwhile; ?>
extra-widgets/blog-style-two/assets/banner.svg ADDED
@@ -0,0 +1,400 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6N0RFMjZEOERFRTcwMTFFNDk5MjFGNTU0OERDODk1OEQiIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6N0RFMjZEOENFRTcwMTFFNDk5MjFGNTU0OERDODk1OEQiIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowRDhDNEQ4QTZERUVFNDExQTZDN0YzQjE2NkNB
23
+ MzkwNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADjAAEAAgICAwEBAAAAAAAAAAAABwgJCgUGAgMECwEBAQACAwADAQAA
29
+ AAAAAAAAAAAGCAUHCQEDBAIQAAAFAwIBAwoPDAkCAwkAAAABAgMEBQYHEQgSIRMJMdIUlBVVF1d3
30
+ OEFRIrPUNXWVtdUWlhhYGWFxkbHRMnLCM5PTGoFCkiNW1jdZCqEk8GJzUqJTdCXGh0g5EQACAQED
31
+ BQkMCAQFAwMFAAAAAQIDEQQFITESBgdBUWHRsnNUFwhxgZEiktITU5MVNTahMlKisxR0GLFCVRbB
32
+ 4WKCI3Kj0/AkRPHCM0M3/9oADAMBAAIRAxEAPwCm46yHDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
37
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
38
+ AAAAAAAAAAAAAAAAAAAA6FXb9p9NUuNAQVRloM0rUk9GkGXoGsvzj+9+EaD16294fhspUbqvT1Vk
39
+ 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
397
+ "/>
398
+ </g>
399
+ </svg>
400
+
extra-widgets/blog-style-two/blog-style-two.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: Blog Style Two
5
+ Description: Blog style Two.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Blog_Style_Two extends SiteOrigin_Widget {
11
+ function __construct() {
12
+
13
+ parent::__construct(
14
+ 'blog-style-two',
15
+ __('Blog Style two', 'addon-so-widgets-bundle'),
16
+ array(
17
+ 'description' => __('Blog style two.', 'addon-so-widgets-bundle'),
18
+ 'panels_groups' => array('addonso')
19
+ ),
20
+ array(
21
+
22
+ ),
23
+
24
+ array(
25
+ 'widget_title' => array(
26
+ 'type' => 'text',
27
+ 'label' => __('Widget Title', 'addon-so-widgets-bundle'),
28
+ 'default' => ''
29
+ ),
30
+
31
+
32
+ 'posts' => array(
33
+ 'type' => 'posts',
34
+ 'label' => __('Select Posts', 'addon-so-widgets-bundle'),
35
+ ),
36
+
37
+
38
+ 'layout' => array(
39
+ 'type' => 'radio',
40
+ 'label' => __( 'Choose a Layout', 'addon-so-widgets-bundle' ),
41
+ 'default' => 'col-md-6',
42
+ 'options' => array(
43
+ 'col-md-6' => __( '2 Column Layout', 'widget-form-fields-text-domain' ),
44
+ 'col-md-4' => __( '3 Column Layout', 'widget-form-fields-text-domain' ),
45
+ 'col-md-3' => __( '4 Column Layout', 'widget-form-fields-text-domain' ),
46
+ )
47
+ ),
48
+
49
+
50
+ 'custom_class' => array(
51
+ 'type' => 'text',
52
+ 'label' => __('Custom Class', 'addon-so-widgets-bundle'),
53
+ 'default' => ''
54
+ ),
55
+
56
+ ),
57
+
58
+
59
+ plugin_dir_path(__FILE__)
60
+ );
61
+ }
62
+
63
+ function get_template_name($instance) {
64
+ return 'blog-style-two-template';
65
+ }
66
+
67
+ function get_style_name($instance) {
68
+ return 'blog-style-two-style';
69
+ }
70
+
71
+ }
72
+
73
+
74
+
75
+ siteorigin_widget_register('blog-style-two', __FILE__, 'Blog_Style_Two');
extra-widgets/blog-style-two/styles/blog-style-two-style.less ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ .blog_two_style{margin-bottom: 20px; border: 1px solid #ebeaea; border-bottom-width:3px; /* min-height: 645px;*/}
2
+ .blog_two_style .main{}
3
+ .blog_two_style .image img{display: block; width: 100%; height: 100%;}
4
+ .blog_two_style .content{padding: 20px; }
5
+ .blog_two_style .content .border{ border-style: double; padding: 1px; border-top: 1px solid #ebeaea; border-bottom: 1px solid #ebeaea; border-left: 0; border-right: 0; margin: 15px 0;}
6
+ .blog_two_style .meta .glyphicon{top: 0;}
7
+
extra-widgets/blog-style-two/tpl/blog-style-two-template.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $query = siteorigin_widget_post_selector_process_query($instance['posts']);
3
+ $the_query = new WP_Query($query);
4
+ $widget_title = wp_kses_post($instance['widget_title']);
5
+ $layout = wp_kses_post($instance['layout']);
6
+ $custom_class = wp_kses_post($instance['custom_class']);
7
+ ?>
8
+
9
+ <?php if ($widget_title) { ?>
10
+ <h3 class="widget-title">
11
+ <span><?php echo $widget_title ?></span>
12
+ </h3>
13
+ <?php } ?>
14
+
15
+ <div class="all_main">
16
+ <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
17
+
18
+
19
+
20
+ <div class="auto_height <?php echo $layout ?> <?php echo $custom_class ?>">
21
+ <div class="blog_two_style clearfix">
22
+ <div class="main">
23
+ <div class="image">
24
+ <?php if (has_post_thumbnail()) {
25
+ the_post_thumbnail();
26
+ } ?>
27
+ </div>
28
+
29
+ <div class="content clearfix">
30
+ <h4><?php the_title(); ?></h4>
31
+ by <?php the_author(); ?> | <?php echo get_the_date(); ?> | <?php the_category(', '); ?>
32
+ <div class="border"></div>
33
+ <?php the_excerpt(); ?>
34
+ <div class="clearfix"></div>
35
+ <div class="pull-left">
36
+ <small><a href="<?php the_permalink(); ?>">Read More <span class="glyphicon glyphicon-menu-right"></span></a></small>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
42
+
43
+
44
+
45
+ <?php endwhile; ?>
46
+
47
+ </div>
48
+
49
+ <div class="clearfix"></div>
extra-widgets/divider/assets/banner.svg ADDED
@@ -0,0 +1,374 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6RUUwNDhCOTRFRTZFMTFFNDgwODhFOEU3Nzg5NEFFMjMiIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6RUUwNDhCOTNFRTZFMTFFNDgwODhFOEU3Nzg5NEFFMjMiIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGREMzMDNDRjY4RUVFNDExQTk1REVFREJFODNG
23
+ NEY4RCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADXAAEAAgIDAQEBAAAAAAAAAAAABwgGCgQFCQMBAgEBAAICAwEBAAAA
29
+ AAAAAAAAAAcIBgkDBAUCARAAAQIEAwAKDAsGBAYDAAAAAAECAwQFBxEGCCESE9PVVhcYCRkxkxRU
30
+ 1JWWtlc4qFlBw4SUFUWFpRZ3l2HRIlVYClGBkTJxoVIjMySjNCYRAAECAgQIBwsLAwIFBQEAAAAB
31
+ AhEDkgQFBiES0lPTVBcYMUFRoqMHCGFxkdEiE4OTs8M2gaGCRHTEFUV1FjexMhRCcsHxYiND4VKy
32
+ M2Mk/9oADAMBAAIRAxEAPwCm5tkNHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
37
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
38
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1FWrtLorGvqEy2E6J/4oLUVz3ftRqbO
39
+ H7V2DEb2X6suxGI6tzUaruBqYXL3kTDDurBO6Z3cjq1tm8UxzajJVyN/ucqo1re+5cEe4kV44GKr
40
+ cmhIqokrVVRF7KQ4Wz/rFIpd2lLBRYeanr9FmkJsZ2RLyqiL56rJ9OZ/wlH5ylULvSrdrg76fm8r
41
+ YWan0WaQ+t0K8ufq1OZohylULvSrdrg76N5Wws1Pos0g3Qry5+rU5miHKVQu9Kt2uDvo3lbCzU+i
42
+ zSDdCvLn6tTmaIcpVC70q3a4O+jeVsLNT6LNIN0K8ufq1OZohylULvSrdrg76N5Wws1Pos0g3Qry
43
+ 5+rU5miHKVQu9Kt2uDvo3lbCzU+izSDdCvLn6tTmaIcpVC70q3a4O+jeVsLNT6LNIN0K8ufq1OZo
44
+ hylULvSrdrg76N5Wws1Pos0g3Qry5+rU5miHKVQu9Kt2uDvo3lbCzU+izSDdCvLn6tTmaIcpVC70
45
+ q3a4O+jeVsLNT6LNIN0K8ufq1OZohylULvSrdrg76N5Wws1Pos0g3Qry5+rU5miHKVQu9Kt2uDvo
46
+ 3lbCzU+izSDdCvLn6tTmaIcpVC70q3a4O+jeVsLNT6LNIN0K8ufq1OZohylULvSrdrg76N5Wws1P
47
+ os0g3Qry5+rU5miHKVQu9Kt2uDvo3lbCzU+izSDdCvLn6tTmaIcpVC70q3a4O+jeVsLNT6LNIN0K
48
+ 8ufq1OZohylULvSrdrg76N5Wws1Pos0g3Qry5+rU5miHKVQu9Kt2uDvo3lbCzU+izSDdCvLn6tTm
49
+ aIcpVC70q3a4O+jeVsLNT6LNIN0K8ufq1OZohylULvSrdrg76N5Wws1Pos0g3Qry5+rU5miHKVQu
50
+ 9Kt2uDvo3lbCzU+izSDdCvLn6tTmaIcpVC70q3a4O+jeVsLNT6LNIN0K8ufq1OZohylULvSrdrg7
51
+ 6N5Wws1Pos0g3Qry5+rU5miHKVQu9Kt2uDvo3lbCzU+izSDdCvLn6tTmaIcpVC70q3a4O+jeVsLN
52
+ T6LNIN0K8ufq1OZohylULvSrdrg76N5Wws1Pos0g3Qry5+rU5miHKVQu9Kt2uDvo3lbCzU+izSDd
53
+ CvLn6tTmaI5EvcTL8Z6MiJPyqKuG6TENqt/+Nz1/5Hes/tE3enPxXJNlpyuakOY5y/MebanZRvTV
54
+ 5eMxZM1eRj1jz2MT5zNoMaDMwoceBFZGgxW7eHFhqitci/CioTdUq7JrMps2U5HMckUVFiip3FK6
55
+ WhZ0+qT3SZzFZMYsHNckFReRUU+h2TpgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERU
56
+ fL8a5V4MtZI7t7gdm3PdOyPAnnt3RJdJyehyCRdzxTFGK/b4Ypia8esCsTbYvZNlOcqRnJJSOHFR
57
+ HYmBOSMVhyqptT6sqvJu/cWVPYxFxautYciYMZVZ5zCvLCDY8iJyHtHC6KuwCQoaR86XhiRkYiRY
58
+ kKeorGudhsq1i0pytRV7CK5f+JLreoayIYZs6PfZkFbH9q+8MVhIq8P9szSofTqrNPfHG8vjCicE
59
+ n7sGsfOTqTMg+d6+8WZq1GZpR1VmnvjjeXxhROCRsGsfOTqTMgb194szVqMzSjqrNPfHG8vjCicE
60
+ jYNY+cnUmZA3r7xZmrUZmlHVWae+ON5fGFE4JGwax85OpMyBvX3izNWozNKOqs098cby+MKJwSNg
61
+ 1j5ydSZkDevvFmatRmaUdVZp7443l8YUTgkbBrHzk6kzIG9feLM1ajM0o6qzT3xxvL4wonBI2DWP
62
+ nJ1JmQN6+8WZq1GZpR1VmnvjjeXxhROCRsGsfOTqTMgb194szVqMzSjqrNPfHG8vjCicEjYNY+cn
63
+ UmZA3r7xZmrUZmlHVWae+ON5fGFE4JGwax85OpMyBvX3izNWozNKOqs098cby+MKJwSNg1j5ydSZ
64
+ kDevvFmatRmaUdVZp7443l8YUTgkbBrHzk6kzIG9feLM1ajM0o6qzT3xxvL4wonBI2DWPnJ1JmQN
65
+ 6+8WZq1GZpR1VmnvjjeXxhROCRsGsfOTqTMgb194szVqMzSjqrNPfHG8vjCicEjYNY+cnUmZA3r7
66
+ xZmrUZmlHVWae+ON5fGFE4JGwax85OpMyBvX3izNWozNKOqs098cby+MKJwSNg1j5ydSZkDevvFm
67
+ atRmaUdVZp7443l8YUTgkbBrHzk6kzIG9feLM1ajM0o6qzT3xxvL4wonBI2DWPnJ1JmQN6+8WZq1
68
+ GZpR1VmnvjjeXxhROCRsGsfOTqTMgb194szVqMzSjqrNPfHG8vjCicEjYNY+cnUmZA3r7xZmrUZm
69
+ lHVWae+ON5fGFE4JGwax85OpMyBvX3izNWozNKOqs098cby+MKJwSNg1j5ydSZkDevvFmatRmaUd
70
+ VZp7443l8YUTgkbBrHzk6kzIG9feLM1ajM0o6qzT3xxvL4wonBI2DWPnJ1JmQN6+8WZq1GZpR1Vm
71
+ nvjjeXxhROCRsGsfOTqTMgb194szVqMzSjqrNPfHG8vjCicEjYNY+cnUmZA3r7xZmrUZmlK3aruj
72
+ +tnZSy+Y7o5Fzdnqansqzcgs9Tc2RqfMwpiBPVCBTtrCdJykq6G9j5hr8VVyKiKmGK4mGX+6o6lZ
73
+ lmPrUiY9VYrYo5Wqiorkbgg1sFwx4yS+qXtC2pbdty6jWpMpGzEdBWI5FRWtV+HGe6KKjVTi4Tz6
74
+ tpORIsjUZJ6ucyUjw4sLHsIkZHYtT9mLMf8AMknszWxMm1Gs1ZyqrZTmuTuY6OiifK2PfUjrtg2D
75
+ Kk2jVK21ER05j2u7qy1bBV5Vg9E7yInESYWaKdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
76
+ AAAAGFWR9aG0X590DzhgGuyufGr/ALavtjatJ/jhP037ubVxc81lgAAAAAAAAAAAAAAAAAAAAAAA
77
+ AAAAAAAAAAAAAAAAApr0gfqiXb+wfOenEb9bnw9WPoe0YTR2efjCp+k9jMNfi1/158m+NMZ7L317
78
+ 0XvSV+2Z+W+n9ySwWyKPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGFWR9aG0X590Dz
79
+ hgGuyufGr/tq+2Nq0n+OE/Tfu5tXFzzWWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmv
80
+ SB+qJdv7B856cRv1ufD1Y+h7RhNHZ5+MKn6T2Mw1+LX/AF58m+NMZ7L3170XvSV+2Z+W+n9ySwWy
81
+ KPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGFWR9aG0X590DzhgGuyufGr/ALavtjat
82
+ J/jhP037ubVxc81llRatrv0n0Spz9In7tyvdtNmnyU33DSa/NwUiQ3bV6Q5mUkYkGIiKn+5j1Rfg
83
+ Uj2sdatgSnqx1YSKLBYNeqeFGqi/IpMFU6hL2z5TZjKmuK5IpF8pqwXlRz0VO8qIp1/WB6RPS39w
84
+ 5n4OOHa5d7WOZMyDsbvN8NT6STpB1gekT0t/cOZ+Dhtcu9rHMmZA3eb4an0knSDrA9Inpb+4cz8H
85
+ Da5d7WOZMyBu83w1PpJOkHWB6RPS39w5n4OG1y72scyZkDd5vhqfSSdIOsD0ielv7hzPwcNrl3tY
86
+ 5kzIG7zfDU+kk6QdYHpE9Lf3Dmfg4bXLvaxzJmQN3m+Gp9JJ0g6wPSJ6W/uHM/Bw2uXe1jmTMgbv
87
+ N8NT6STpB1gekT0t/cOZ+Dhtcu9rHMmZA3eb4an0knSDrA9Inpb+4cz8HDa5d7WOZMyBu83w1PpJ
88
+ OkHWB6RPS39w5n4OG1y72scyZkDd5vhqfSSdIOsD0ielv7hzPwcNrl3tY5kzIG7zfDU+kk6QdYHp
89
+ E9Lf3Dmfg4bXLvaxzJmQN3m+Gp9JJ0g6wPSJ6W/uHM/Bw2uXe1jmTMgbvN8NT6STpB1gekT0t/cO
90
+ Z+Dhtcu9rHMmZA3eb4an0knSDrA9Inpb+4cz8HDa5d7WOZMyBu83w1PpJOkHWB6RPS39w5n4OG1y
91
+ 72scyZkDd5vhqfSSdIOsD0ielv7hzPwcNrl3tY5kzIG7zfDU+kk6QdYHpE9Lf3Dmfg4bXLvaxzJm
92
+ QN3m+Gp9JJ0g6wPSJ6W/uHM/Bw2uXe1jmTMgbvN8NT6STpB1gekT0t/cOZ+Dhtcu9rHMmZA3eb4a
93
+ n0knSDrA9Inpb+4cz8HDa5d7WOZMyBu83w1PpJOkHWB6RPS39w5n4OG1y72scyZkDd5vhqfSSdIO
94
+ sD0ielv7hzPwcNrl3tY5kzIG7zfDU+kk6QdYHpE9Lf3Dmfg4bXLvaxzJmQN3m+Gp9JJ0g6wPSJ6W
95
+ /uHM/Bw2uXe1jmTMgbvN8NT6STpCdbU3utbe6mVGr2uzdK5qkqRNNkqpucCblY0vEiNV0NIstPQo
96
+ MZqPRq7VyswXBcFXBTKrAvPULUY59VmI9GrBcCoqd9FRF+YwK9lxrVsOa2XXpKy3OSKYWuRUThgr
97
+ VVMHGkYpgiQV0gfqiXb+wfOenGK9bnw9WPoe0YZ72efjCp+k9jMNfi1/158m+NMZ7L3170XvSV+2
98
+ Z+W+n9ySwWyKPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGFWR9aG0X590DzhgGuyuf
99
+ Gr/tq+2Nq0n+OE/Tfu5tXFzzWWQ7puu/0jOkGzWU9OtmYOijM1sbdzVXTKVcudKZ6WvTECrVucrk
100
+ R1R+ipuDKI9sace1qQmYI1ERVcuLlqjWOoW1EeuJNlK2OCKuRYd1EYqR+VS/lU7WFhLKas2RPR8M
101
+ KNaxUjxwVZiKqd9EJy5+nSz8XOjs+Z3K4QOHYNbGck0n5B2N6+7uZrNGXpRz9Oln4udHZ8zuVwgN
102
+ g1sZyTSfkDevu7mazRl6Uc/TpZ+LnR2fM7lcIDYNbGck0n5A3r7u5ms0ZelHP06Wfi50dnzO5XCA
103
+ 2DWxnJNJ+QN6+7uZrNGXpRz9Oln4udHZ8zuVwgNg1sZyTSfkDevu7mazRl6Uc/TpZ+LnR2fM7lcI
104
+ DYNbGck0n5A3r7u5ms0ZelHP06Wfi50dnzO5XCA2DWxnJNJ+QN6+7uZrNGXpRz9Oln4udHZ8zuVw
105
+ gNg1sZyTSfkDevu7mazRl6Uc/TpZ+LnR2fM7lcIDYNbGck0n5A3r7u5ms0ZelHP06Wfi50dnzO5X
106
+ CA2DWxnJNJ+QN6+7uZrNGXpRz9Oln4udHZ8zuVwgNg1sZyTSfkDevu7mazRl6Uc/TpZ+LnR2fM7l
107
+ cIDYNbGck0n5A3r7u5ms0ZelHP06Wfi50dnzO5XCA2DWxnJNJ+QN6+7uZrNGXpRz9Oln4udHZ8zu
108
+ VwgNg1sZyTSfkDevu7mazRl6Uc/TpZ+LnR2fM7lcIDYNbGck0n5A3r7u5ms0ZelHP06Wfi50dnzO
109
+ 5XCA2DWxnJNJ+QN6+7uZrNGXpRz9Oln4udHZ8zuVwgNg1sZyTSfkDevu7mazRl6Uc/TpZ+LnR2fM
110
+ 7lcIDYNbGck0n5A3r7u5ms0ZelHP06Wfi50dnzO5XCA2DWxnJNJ+QN6+7uZrNGXpRz9Oln4udHZ8
111
+ zuVwgNg1sZyTSfkDevu7mazRl6Uc/TpZ+LnR2fM7lcIDYNbGck0n5A3r7u5ms0ZelHP06Wfi50dn
112
+ zO5XCA2DWxnJNJ+QN6+7uZrNGXpRz9Oln4udHZ8zuVwgNg1sZyTSfkDevu7mazRl6Uc/TpZ+LnR2
113
+ fM7lcIDYNbGck0n5A3r7u5ms0ZelHP06Wfi50dnzO5XCA2DWxnJNJ+QN6+7uZrNGXpSBcj0S8uYL
114
+ y381FX9nLYpc6/U1llKxQ7QQqrDoMlAytREocm6W+mnxJvbxoLWuio57kRyKqLgu1bMHVhcKsWGy
115
+ d557XOmK3+2MERuNxqiLFcbk4iuvXn1s1O9E2rpVpb2Mko/C+CKqvxY4Gq5IJipx4YkP9IH6ol2/
116
+ sHznpx3Otz4erH0PaMPN7PPxhU/SexmGvxa/68+TfGmM9l7696L3pK/bM/LfT+5JYLZFHgAAAAAA
117
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCrI+tDaL8+6B5wwDXZXPjV/21fbG1aT/ABwn6b93
118
+ Nq4ueaywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU16QP1RLt/YPnPTiN+tz4erH0PaM
119
+ Jo7PPxhU/SexmGvxa/68+TfGmM9l7696L3pK/bM/LfT+5JYLZFHgAAAAAAAAAAAAAAAAAAAAAAAA
120
+ AAAAAAAAAAAAAAAAADCrI+tDaL8+6B5wwDXZXPjV/wBtX2xtWk/xwn6b93Nq4ueaywAAAAAAAAAA
121
+ AAAAAAACEL56hLa6ecv0/MFxKhPQ0rM2+RolHo0HumdnIkJiPjbjCVzGI2G1U273va1FVExxciLj
122
+ F6b31Kx5KTKwq+UsEREiq8sEwcHGqqicHKZzcTq7tO8dYdKqbU8hIuc5YNai4EiuFYrxIiKuBcEE
123
+ Ui3JOvHS9ndYMGFcmVyvPRcMZHO0vMUzaY9jbzcZqyn+kZTwrM61rCrWBJyMXkeit+dfJ+cyq3Oo
124
+ O9VRiq1ZZjU45ao/mouPzS1lFrtEzJToFXy7WKVXqTNIqy1UosxBmpeJguC7nHgOcx2H7FM9q1al
125
+ TmI+W5HNXjRUVPChE1dqE+rTFlzmOY9OFHIqKnfRYKdqc51QAAAAAAAAAAAAAAAAU16QP1RLt/YP
126
+ nPTiN+tz4erH0PaMJo7PPxhU/SexmGvxa/68+TfGmM9l7696L3pK/bM/LfT+5JYLZFHgAAAAAAAA
127
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCrI+tDaL8+6B5wwDXZXPjV/wBtX2xtWk/xwn6b93Nj
128
+ fU1knO9xrE3FyVbmd7gzjXqVAgUmJu/c26NhzsGPNSu74ojO6ZdkSDiqon8WyqJiWlvvZlarllTp
129
+ NXWExyJDDDjRVSPdRFT5ShHVfblRs23qtWa43GkscquwRhFqojoceK5Udy4MGErnyaaePcVe07XN
130
+ 9Ko7I7w6vz5eWX83hrn650c7Rjk008e4q9p2ub6Nkd4dX58vLG8Nc/XOjnaMcmmnj3FXtO1zfRsj
131
+ vDq/Pl5Y3hrn650c7Rjk008e4q9p2ub6Nkd4dX58vLG8Nc/XOjnaMcmmnj3FXtO1zfRsjvDq/Pl5
132
+ Y3hrn650c7Rjk008e4q9p2ub6Nkd4dX58vLG8Nc/XOjnaMcmmnj3FXtO1zfRsjvDq/Pl5Y3hrn65
133
+ 0c7Rjk008e4q9p2ub6Nkd4dX58vLG8Nc/XOjnaMcmmnj3FXtO1zfRsjvDq/Pl5Y3hrn650c7Rjk0
134
+ 08e4q9p2ub6Nkd4dX58vLG8Nc/XOjnaM6qJZqhVTO1oKhZDo5+ZVWMp3Wpmbc6XY5aajnvu7LcrC
135
+ jtqeW/oSbiOa3u90SEu7NRVTc9qv8L3KmT3N6srfqtqSJr5fm2NeiuXHavkouFINcqrFMHBDDhMH
136
+ 6yeu+6dfsOs1eXO89MfLc1rfNzE8pUg10XsRExVg6MY4MB6HT07KU2SnKjPzEKUkZCViTs7Nx1Rr
137
+ IUGExYkSI9y9hrWoqqpa6bNaxqucsERIqvcQoHIkPmvRjEi5yoiInGq4EQhvos7A1LXbqoruum6V
138
+ EmmWJsTV/wANafcp1pu2gT1el0bFbUVhOTaOSQ2yTURyJ/8AZfCajnJAchRW/d7ZlsV907CktMDE
139
+ 5G+NeFfBxIbUuqrq+lXcsllXSCzXeVMcnG5eLvNTyU8MIqp763d0AaK77d1RboaZ7SV6ozuPdeYK
140
+ fSoNIq0TbdnbVijdyTy/s/72wYYSUawdj8gULT7rk1zab8kQZylW6ydm+XqGTMuzczMTaSco2I7c
141
+ EbGmnvivd3PNQmOe9yucjW7ZVwQsR1AVxyTqzKj5Ko10O6iqir86R7yFO+1vZrFq9TrEPKRz2KvH
142
+ BURURe8qLDkivKZ9qXttVc7ZqsrXp+y/OUtZkuq12PcrT/8Ai6Pkj6fdP0tJWizX09Lua+D9GzX/
143
+ ALGDVxd/sw2rnKmcdb11bStSRJbVUxkarsZuMiRjCC4VRFhBePjwEW9ne/ti2FWqy6vriK9rUY/F
144
+ V0IK7Gb5KK5MaLeKHk4SM+TTTx7ir2na5vpA+yO8Or8+Xllrt4a5+udHO0Y5NNPHuKvadrm+jZHe
145
+ HV+fLyxvDXP1zo52jHJpp49xV7Ttc30bI7w6vz5eWN4a5+udHO0Y5NNPHuKvadrm+jZHeHV+fLyx
146
+ vDXP1zo52jHJpp49xV7Ttc30bI7w6vz5eWN4a5+udHO0Y5NNPHuKvadrm+jZHeHV+fLyxvDXP1zo
147
+ 52jHJpp49xV7Ttc30bI7w6vz5eWN4a5+udHO0Y5NNPHuKvadrm+jZHeHV+fLyxvDXP1zo52jHJpp
148
+ 49xV7Ttc30bI7w6vz5eWN4a5+udHO0Y5NNPHuKvadrm+jZHeHV+fLyxvDXP1zo52jOXkO0klAvta
149
+ 3OtpNEXMeydlKlZigXSh8q09cT8YNqMlCgUWV3Cce5ZP6OmGPjYtTCJt9lcWNxkLqy6vras+1Wzp
150
+ zPNy0R2N5TVxooqIkGqvAsFw8hD/AF4db92bXsF9Wq0zz05zmq3yHtxIORVdF7W8LUVuCK4eQy7p
151
+ A/VEu39g+c9OJO63Ph6sfQ9owg7s8/GFT9J7GYa/Fr/rz5N8aYz2Xvr3ovekr9sz8t9P7klgtkUe
152
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMKsj60Novz7oHnDANdlc+NX/bV9sbVpP8A
153
+ HCfpv3c2N9TWSc73GsTcXJVuZ3uDONepUCBSYm79zbo2HOwY81K7viiM7pl2RIOKqifxbKomJaW+
154
+ 9mVquWVOk1dYTHIkMMONFVI91EVPlKEdV9uVGzbeq1ZrjcaSxyq7BGEWqiOhx4rlR3LgwYSufJpp
155
+ 49xV7Ttc30qjsjvDq/Pl5ZfzeGufrnRztGOTTTx7ir2na5vo2R3h1fny8sbw1z9c6OdoxyaaePcV
156
+ e07XN9GyO8Or8+XljeGufrnRztGOTTTx7ir2na5vo2R3h1fny8sbw1z9c6OdoxyaaePcVe07XN9G
157
+ yO8Or8+XljeGufrnRztGOTTTx7ir2na5vo2R3h1fny8sbw1z9c6OdoxyaaePcVe07XN9GyO8Or8+
158
+ XljeGufrnRztGOTTTx7ir2na5vo2R3h1fny8sbw1z9c6OdoxyaaePcVe07XN9GyO8Or8+XljeGuf
159
+ rnRztGOTTTx7ir2na5vo2R3h1fny8sbw1z9c6OdozqolmqFVM7WgqFkOjn5lVYyndamZtzpdjlpq
160
+ Oe+7stysKO2p5b+hJuI5re73RIS7s1FVNz2q/wAL3KmT3N6srfqtqSJr5fm2NeiuXHavkouFINcq
161
+ rFMHBDDhMH6yeu+6dfsOs1eXO89MfLc1rfNzE8pUg10XsRExVg6MY4MB6CVyjU7MdErGXqvASapN
162
+ epcxRqnLKqpukvNQXQI8PFOxtmOVC1VaqzJ0p0t6Ra5FRe8qQUoRUK7Mq09k6WsHscjkXkVFii+F
163
+ CAdA2rvNPRj3ektKGoWuTNV0hXOrkeds/dGopgzK1Qm4+2jNm3p/DDk4sWIndsPYbCe5JhqNY+Lj
164
+ R2/VyZ9i1rEd5Up2FjuVORf+pOPw8Cm0fqr6zqreaoecbBs9kEmM/wDavKnK13EvfRcKHvNqW6TH
165
+ RbpSl5mDc+9WXZ/NkGDusG3WQHtr1eiOVu2YyJJSDnslNumyx85EgsX/AKjCCUDW7tLnue1Oa5dT
166
+ uszLOQc22+tBdagU2l5Ukc7QmQ5ubjwZOmSzphjoKugvRVp8WK/cnPa3dWt27lRVWxHUTYlaZWJt
167
+ Zc1WylZioqpDGVVRcHKiImFe6hTrtV3nqEypyKkyY109s3GciKi4qI1yQdDgVVckEXDgUznUvbaq
168
+ 52zVZWvT9l+cpazJdVrse5Wn/wDF0fJH0+6fpaStFmvp6Xc18H6Nmv8A2MGri7/ZhtXOVM463rq2
169
+ lakiS2qpjI1XYzcZEjGEFwqiLCC8fHgIu7O9/bFsKtVl1fXEV7Wox+KroQV2M3yUVyY0W8UPJwkZ
170
+ 8mmnj3FXtO1zfSB9kd4dX58vLLXbw1z9c6OdoxyaaePcVe07XN9GyO8Or8+XljeGufrnRztGOTTT
171
+ x7ir2na5vo2R3h1fny8sbw1z9c6OdoxyaaePcVe07XN9GyO8Or8+XljeGufrnRztGOTTTx7ir2na
172
+ 5vo2R3h1fny8sbw1z9c6OdoxyaaePcVe07XN9GyO8Or8+XljeGufrnRztGOTTTx7ir2na5vo2R3h
173
+ 1fny8sbw1z9c6OdoxyaaePcVe07XN9GyO8Or8+XljeGufrnRztGOTTTx7ir2na5vo2R3h1fny8sb
174
+ w1z9c6OdoxyaaePcVe07XN9GyO8Or8+XljeGufrnRztGcvIdpJKBfa1udbSaIuY9k7KVKzFAulD5
175
+ Vp64n4wbUZKFAosruE49yyf0dMMfGxamETb7K4sbjIXVl1fW1Z9qtnTmeblojsbymrjRRURINVeB
176
+ YLh5CH+vDrfuza9gvq1WmeenOc1W+Q9uJByKrova3haitwRXDyGXdIH6ol2/sHznpxJ3W58PVj6H
177
+ tGEHdnn4wqfpPYzDX4tf9efJvjTGey99e9F70lftmflvp/cksFsijwAAAAAAAAAAAAAAAAAAAAAA
178
+ AAAAAAAAAAAAAAAAAAABhVkfWhtF+fdA84YBrsrnxq/7avtjatJ/jhP037ubVxc81lgAAAAAAAAA
179
+ AAAAAAAAEbXWtHkK9WUprJVw6Iys0aPFbNQHMe6FMSswz/xzErMQ8Hw4jcVTFNhUVUcitVUXxbfu
180
+ 9VLTq6yaw3GauHkVF5UXiX/kuAya6d77QsSuJWao/EemBeNFTjRyLgVP6cKQXCQza3RPpztPMQ6l
181
+ RsiS+Ya5BiJFg13O7/pSPCVuyxYMKMiS0JzV2UfDgtd+3sYY3YXVlY1nrjMlYzuV/lL8iLgTvokT
182
+ NL1deF5LXbiTKwrJa/6ZfkIvfVPKVO4rlTuFrzPiJQAAAAAAAAAAAAAAAAACmvSB+qJdv7B856cR
183
+ v1ufD1Y+h7RhNHZ5+MKn6T2Mw1+LX/Xnyb40xnsvfXvRe9JX7Zn5b6f3JLBbIo8AAAAAAAAAAAAA
184
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAYVZH1obRfn3QPOGAa7K58av+2r7Y2rSf44T9N+7m1cXPNZZ
185
+ jk3nDKVPmYsnP5py5JTcB20jys3PS0OIxcMcHse9HIv/ABQ6cy0aux0HTGoqcSqh6Umxq5MajmSn
186
+ qi8Co1VTwwOP+PMjcc8qeMZPfD4/FqrnWUk8ZyfgFfzEyg7xHKks3ZTqMzDk6fmfL0/ORlwgyslO
187
+ y0WI/DZXasY9XL/kh9yrRq73QbMaq8iKinFPsetymq58p7Wpxq1UTwqh37nNY1z3uaxjGq573Lgi
188
+ Imyqqq9hEO4qwPPRFVYIYsue8joqoucsqIqLgqLUZPs9sOh+K1XOspJ4z1fwCvZmZRd4h+PMjcc8
189
+ qeMZPfB+LVXOspJ4x+AV/MTKDvEdpTMw0CtOiso1cpFWfAaj47KZMwY6sRdhFckJzsEX9pzyK5Jm
190
+ /wBjkd3lRf6HVrVnViQiLMlubHlRU/qcyen5GmS0ScqU7KU+ThYbrNz0RkKG3HYTbRIio1P81OSb
191
+ NYxsXKiJyrgOCRV5k1yNY1XOXiRIr4EMf/HmRuOeVPGMnvh1Pxaq51lJPGej+AV/MTKDvEPx5kbj
192
+ nlTxjJ74Pxaq51lJPGPwCv5iZQd4jvqfUqdVpZs5SqhJVOUc5WNmqfFhxoauauDkR8NVbinw7J25
193
+ M9kxsWqipyosTz6xVZkl2LMarV5FRUXwKfCp12iURsJ1ZrFKpDY7lbAdU5iDLo9UTFUYsVzcVT9h
194
+ 8T61Klf3uRseVUT+pyVWoT58fNsc6HDBFX+h1H48yNxzyp4xk98Ov+LVXOspJ4zufgFfzEyg7xD8
195
+ eZG455U8Yye+D8WqudZSTxj8Ar+YmUHeIylj2RWMiQ3tiQ4jUfDiMVFa5qpiioqbCoqHeRUVIoeU
196
+ 5qosF4To6hmrK9JmXSdVzJQabONYkR0rUJyXgxEa7/a5WRHo7BfgXA6s6vyJboOe1F5FVEO9V7Jr
197
+ U5uNLlPcnKjVVPCiHC/HmRuOeVPGMnvhx/i1VzrKSeM5/wAAr+YmUHeI5EpnHKM/MwZORzVlycm5
198
+ h+5y8rKT0rEiPd/0sYx6ucv7EQ+5dpVd7kRsxqqvEip4zjm2NXJbVc6U9EThVWqiJ8xkZ3DzTFom
199
+ eclQoj4UXOGVocWE9YcSHEqEojmuauDmuRYmKKi7CodFbUqqLBZjaSeM9VthV5UikmZD/a7xH7Cz
200
+ vkuPFhwYOb8rxo0V6Q4UKFUJRznOVcEa1qRMVVV7CIG2pVlWCTGx/wByeM/H2FXWoqrJeiJ/0u8R
201
+ lB3jyzHZzOGUqfMxZOfzRl2RnIDtrGlZydloURi9nBzHvRyL/wAUOnMtGrsdB0xqKnEqoejJseuT
202
+ Go5kp6tXjRqqnhgcb8eZHXYTOeVFVdhE+kZPfD4/FarnWUk8Zy/gFfzEyi7xGSvmZeHLum3x4LJV
203
+ sLd3TL3NSGjMNtt1eq4bXDZxxO6r0RIxwHmJLcrsVEWPBDjMa/HmRuOeU/GMnvh0vxaq51lJPGen
204
+ +AV/MTKDvEZBIz8jU5aHOU2dlKhJxcdympGIyLDdhsLtXw1Vq/6nblTmPbFqoqcqYTzp9XmSnYr2
205
+ q1ycSpBfApUDpA/VEu39g+c9OI763Ph6sfQ9owmPs8/GFT9J7GYa/Fr/AK8+TfGmM9l7696L3pK/
206
+ bM/LfT+5JYLZFHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCrI+tDaL8+6B5wwDXZX
207
+ PjV/21fbG1aT/HCfpv3c2l6/3elBra0vdVqaUiZ+jkgYbfd9xduO022xttvhhiXHreP5p2L/AHQW
208
+ HfhgNa1n+b/yGY/9uMkY8kcPzFYtJGd+g3ypp1thl7WBQ8pSupWlUiPLXdl8z5SuTM1FlU7vjuVs
209
+ 7GkKdEl3RkhKzbbm5U/zxNdtYlTGTFbMRUci4UXAse7HDE3G1OfJmymvlORzFRIK1UVFTigqYId4
210
+ sbyr/wBtJ/K7a+Rl1eDDhOyVV1p5t6FnO2nTOuWdDVGypH1Q1SoUaDa+BlXK9xZGpPmPpmVWabJz
211
+ VVkIMpDidzbpsxIibGOH8WB2KpImzJrWy0VXqqQROGPFA6doVqRJkPfOVGy0RVcruCHHGPFA7rWx
212
+ T65UtLNwpSmytQnJxIFHmKrL09HvirJwKzJxqkrmwcXOY2AyI6Ijcf4UX4C6fWjJnTLvz2sRVdBs
213
+ YcMEc1XfNGPcNZvUTWatKvdVXTVRGReiKvBFWORvDxxVId2HGWIk7q/21jJSVZN022T5tksxk0+H
214
+ ky6ytWIjUR6tVaXjgq44YlJDZ8cjlX/tpP5XbXyMurwYAVgulXOjozlqV0pTXRsUujMXL83m+avp
215
+ MZRoeb6Q2FTo1GhwaU6oRMzSstCiQnRliNYkJVXbLspirSS+qKTOdb0lWIsExsaHEmKqYe5GHykJ
216
+ does1dl1Ky2aqI52IjUXhV2O1cHdgirg4oxwH8X9g2Zk9RekfNOqSmpO6Wcv1jNUO7cxUZGsVKmw
217
+ YkzSoP0Sk5KUKFHm3PfGhruSthrgqLjg3bEndf1Wnul1Z7UVWNV8V4kVcWEfkRYfKQf2Sa7VmTq7
218
+ Lc5qTXJLVqLwqiY+NDuIqtjDuFouVf8AtpP5XbXyMurwYVmLujlX/tpP5XbXyMurwYAVvtRM6d6x
219
+ qj1KZk0Z09kppUqlAydK5Mj0mnVumUyJWJWnRW1lsCWzBBgTW7MjOdui7TDZT4FaWR6gJM5P8lyo
220
+ vm1xYLxKqY0Yd1EXD8keIpb2t6xVnf4TEVvnkx1VP9SNXFhHuKqYI92HGY1b6a0IZK1iama/0kNE
221
+ kXZFzLlrKiWPqGbaJm2ry0Z8GnMhVP6PfluVmWw0bEhuR6RFb/Fjhs4mAdcVVnst2a97VRjkbiqv
222
+ AqIxEwfKi/LElvs5V+qzLq1eXLc1ZjFfjoipFFWY5Uxk4cLVbBeSBbXlX/tpP5XbXyMurwYRaTuO
223
+ Vf8AtpP5XbXyMurwYAV40ZSszJ2LkoDZKo0+grnHMUzkeWqMGYl1Shx6zMR6W+BBnGsjtgPhPR0L
224
+ dGou1VPgwLq9UkqeywpSTEVFi6EcGBXKqfJyeI1ldoSfVZl6p7pLmuSDMZWrFMZGoixhgikIL3eH
225
+ DEj7QpXeiFtxYWBlTpDsu0Gn6nZLO1ai5qls75XuBPVJJSJNYyLo81RpGPLP2zUcqK2Iq4bK7KlN
226
+ rQqk+ROcyc1WvRcKO4Y/L/U2R2TaFVrVXZMqz2vlKiYqtVFSHch/TiLkcq/9tJ/K7a+Rl1eDDpnp
227
+ EA6ps9dBJmbTzdqg6VqLk6PqJqmUY0taGDl7KVypeedWduxZdJSNPU5kuyLgi7VYjkbj2VOWTLe9
228
+ 6IxFVy8CJw/IcFZnSpctXTFRGImFVgiIndVcEDmXpl87TukzOspIy1em89TlnllpqTlGOiVGJNRK
229
+ exk7D3OHi50VyLERyNTFVxw2cC8t5WVp135qNRyzVk8Cf3RxcPy8JqzuTMqLL3SHOViSErEUVcDU
230
+ RHLirFeLghHBymf24uZ/bpyFvMhyNwaTbtufZLJlLlM7tmMnXRfESrwpGEypJEfBpiw3O7oR+KtV
231
+ UVexsFFlRUWCm1FrkVIpwHBu1cr+3fqVrbj0+11Lt3ylT2RqrKZASWyfdCFFWtRJGK2mJCiR6YkJ
232
+ j1mFYjXPVGovZXDEIiqsEDnIiRXgOqsRKZskdNltJGsy9VlM4Sdq5KUiSlTbtJyFMw5BGQIcVkXB
233
+ WxG4NTB+yi/7tnEvndSXWGWLIa9FSYkpEgvDHFwRjx9/5TVBf2dVJl5q06WrVkrPcsU/tVFdhVIc
234
+ XDwfIR9o+zn0IOUdOtucu6y6NlKBqYpcrOwLsS+Z8qXIm6jDqH0jHVrJ2Yp1PiSz4qQVZjub1T/H
235
+ ZxKJVmVMlzHNmIqORcKLwx44x4zaxUqxJmyWvlKjmKiYqtgqKnFCGCHeLJxrrf21KwYqQaZbNIyw
236
+ nJCV+TLq4I5U/hVcKXjhicB2Tyui5aixNIenRM20GuR7WUXVHJZmzvIx5SpRWQsgurdTc6PNSMsx
237
+ 066SWBGhK1iQ1fgrVan+0nm1rPrrrk1dMR3kzIqkFwM8uCqnJFUh8i8BVC79sWY3rOrjvOMRHScV
238
+ FikFmIkrGRF4MaCOjDkVOGJ6q8q/9tJ/K7a+Rl1eDCBi15XKwc5ZypXt1ZVTTDKPldLFSzxl6bsv
239
+ 3BI1inUt/wD+ehQ60sjK12FAnGvSaYiRtuxMV2qpi1UUtF1BsnJVKxjIuIrm4seCMFxoc2PyFFO1
240
+ o+rOr9UxFas1GPR0P7kSKYuN3I40PlOp6QP1RLt/YPnPTjNutz4erH0PaMIx7PPxhU/SexmGvxa/
241
+ 68+TfGmM9l7696L3pK/bM/LfT+5JYLZFHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD
242
+ CrI+tDaL8+6B5wwDXZXPjV/21fbG1aT/ABwn6b93NquLFhwIUSNGiMhQYMNYsWLEVGta1qYuc5V2
243
+ ERE2VUuc5yIkV4DWY1quVERIqpV+R1VUOuyzKrk6zGpnPuWZtz1pGcMmZErM5S5+Gx6w1jyU1tW7
244
+ pDVzVRF2qdgiSd12WIx6tRXuhxo3AveiqL8xYSq9mO9EyW1ypKaqpGCvwp3FgipHvKpy+cnM/wBN
245
+ WsD9O6z+44tuFickyimUc+67eblk01yThz2q3LeX4CVPPNotR9t8sw5iFL1DOefskVinUmSWPFbB
246
+ hPnJxzXJCa57kTFU7KnPV+uqxJj0aqvbHjVuBO/BVX5jrVzsy3olSnPRst6okYNfhXvRREj8pONw
247
+ LgZVthk2tZ9zlUvo3LVCl4cedm4cOJGe5Y0VkCXhQYUJHOfEixYjGMRE2VVPg2SR7Xtir1GrOrE5
248
+ 0JbUwrw8OBPCqwQhe7t3a3atdl1SrMxpr1gicHAiqqqq8CIiKq94hlNSsdyI6Hpt1exGOTbMiMt3
249
+ WVa5F7DkXDsKRjtwsT/9KKZROKdl28/LJprkn7zk5n+mrWB+ndZ/cNuFickyimUN1283LJprknc5
250
+ V1E5bzDnCh5GrmRLxWwzDmqFNPynAuzlio0KHVHyUHuibgyMaZarIkSFC/jc3FNj9qoi+9d3rQsq
251
+ 06ykiUrkesYI5IRgkVRFRVwww4TFb5dRdv2HUlrc9rHSmqmMrHRxYrBFVFRMEVRMEeEya515spWq
252
+ j5ZplYk81ZhzPnSYmZbKOTMi0ubrFXqLpOG2LNrKyUo1zlSC17VcqqnZPavRfKo2Oxrqw5UxowRE
253
+ iqw4fBFOFeMxm4nVtat45r2VNiKjIYznKiIkYw7sVgvAi8CmAc5OZ/pq1gfp3Wf3GD7cLE5JlFMo
254
+ lDddvNyyaa5I5ycz/TVrA/Tus/uG3CxOSZRTKG67eblk01yTPraXlyzc+czJRZGj51yhmvKDpVcy
255
+ ZKuLSJui1eUhT0N0WSmIknNtRVhR2scrHNVexs4Ypjmt1b61C2GvWrqsWQiipBUjwLyQWC8C98jO
256
+ /nVnat3Hy21xrYTEXFc1YosIRTiVFSKcKJw4I4TGs26i8o5azlWLf0bKV1rnZxy1LS03mmh2ny3U
257
+ q7EpcOchJHlXTz5ZiQ4e6sc1zU2yrsoeVePrNsqy6wsia5yzEhFGpGEUikVwJwd0965nUfb9uVRK
258
+ 1V2MbKdHFc90MaCwWCJFcCoqRVE4DpucnM/01awP07rP7jH9uFickyimUZduu3m5ZNNckc5Oa/pp
259
+ 1gfp3Wf3DbhYnJMoplDddvNyyaa5JMdvbg5XuhlKm50yhOR5uiVN0aC3uyDFlpiDHlozpaalpmWj
260
+ tbEhRYMVjmPa5OymKYpgqyZYttVe0Ks2fIdFjuDi4MCoqcqKQjea7NcsiuvqlabizWQikUVMKRRU
261
+ VMCoqLH+sFwEHyOrHKOY4caft7bDUHdXLcKbiSEPOVtclVip0mNGgu2kaHAnEYxHqxdhcEw/wVSP
262
+ K3102HKmK1HPdDja3B8kVT+hMVQ7M96J8pHqyWxV/wBLn+UnfxUcid6MeU5vOTmf6atYH6d1n9x1
263
+ tuFickyimUdzddvNyyaa5JxJ/VTRqFJzFXzbZLU/krLchD3esZrzXkKtStNkIKLg6YnJjau3OG3F
264
+ MVwU5JXXbYjnIirMTuq3AngVV+Y4p/ZhvQxiuRJTlTiR+Fe9FETwqhP9fzdlzLGVKpnit1SBJZWo
265
+ 1FiZiqFXwfEYyThQt3dGa2GjnvxZsta1FVewiKpKFbtGTIq7p73QltbjKvchGJBVn2PWa1W2VWUx
266
+ VmvcjUbweUqwhhwJh5cCcZA0vqcZOwIE5TtO+rWp0+bgtmpCpU+31ZiQJiDEaj4UeBERP4ocRqo5
267
+ q/CikWL132Ii/wDkop4yeW9l686p/wCFPprkn8zWp+BTpaYn6vp81Y0alSUF01UavVbf1mFLSsCG
268
+ 1XxZiYi4LtIcNqK5zvgRD9b132Iq/wDkT6P/AKn4/svXnRFX/sr9Nf8Ai0sHl/MtCzTlykZuoFSl
269
+ 6jlyvUiDXaVVWbZkOLKTEJI0KMqRUa5iKxUVUciKnYVEVCVapXZU+S2bLdFjkRUXuKkY/wDMgO0L
270
+ MrFUrL6vNarZrHK1zeNHIsFTBw4eTAvEV4kdVdAr0u2qZLs5qVuDlmYiPbS845IyLWZ6lTzIb1hu
271
+ iyc0jGbozbNVMcEIun9ddhserUV7ocaNwL3oqi/MTtVOzJeibLa5WymKqRg5+FO4sEVI95VOXzlJ
272
+ hNl2mvV+1qbKudbus4In+K7Bw7cLE5JlFMo7G67eblk01yTv53UnaWStjl27Lq1UprK+bKxDyzly
273
+ VkKfOxqlN1aJFiwEpMKmw4ax1m0iwIrFYrey1dnDBVzGsX7syVZza86Z/wBlywRYLFVw4IcMcC+D
274
+ kI4qnVTbk+2X2W2V/wD0MSLkxkgjcHlY0YQXGbDjwokI4DoOcnNf006wP07rP7jDtuFickyimUSP
275
+ uu3m5ZNNckki2d2st3ThZhZSKdmvL1aylU4dHzTlPPNMmqRVqfHjS7JqA2akZpqPakSE9HMXZRUM
276
+ 7uve6pWvJdMq6qqNWCoqQVF4SKr89XtpXdrDZNcaiK9ItVqxRUjBcPc5FRCBekD9US7f2D5z04x3
277
+ rc+Hqx9D2jDMezz8YVP0nsZhr8Wv+vPk3xpjPZe+vei96Sv2zPy30/uSWC2RR4AAAAAAAAAAAAAA
278
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAwqyPrQ2i/PugecMA12Vz41f9tX2xtWk/xwn6b93Npqt091Wo
279
+ tXpTIjYL6nS5intivTbI1Y0J0NHK1MMUTHHAuRWpPnJTmcqKnhQ1q1GsJJnsmQjiuRfAsTqtLGuT
280
+ VtpIsDbbTjJ6DqfdaVtRSY2XZe4cjdah0qBVWOnY002ag06bpUSNLsXdcEZEdttjFcMcEppP6nrw
281
+ MeqJJRyJxo9kF7qRci+FENk9V7Rl0ZktrnVlWKqYWrLmRTuLiscngVU7pYDrcdX/ALsyD+s2W+Bz
282
+ i2RXh1fny8s594a5+udHO0ZWbV/rD1Ya27A5y001TRDTrKU64s3SoU7cqfuhRa5BpsORq0tUHxYt
283
+ KkqZBjTDVSBhtWPRfh2cMF56r1O2++YjXSkYirhVXsVE7sEcq+BDqV/tHXTlSXPZWFmORMDUlzEV
284
+ V5IuYiJHuqR3qbtdmG61h82W/wAqPk35imYdNnqTDn37jCmItLqMtUO51irikNYyQFY1y7CKqY7G
285
+ Klnr93fnWjZE2rSlTHVGwjx4rkWHcjCBRvqqvdV7GvFIrs9F821XY0MKoj2ubGHHCMV44cGEutK9
286
+ LTq/k5WWlOrShzHcsuyX7odebLeL9o1G7dcaPji7DEq1sivDq/Pl5Re9O0Pc/W+jm6M+/W46v/dm
287
+ Qf1my3wONkV4dX58vLG8Nc/XOjnaMqjfK92oPWverTfnG42maT04Zb09TmZq3FmY2eKZm51XiV6m
288
+ wpCHLQJanScosu+E6EjnPeqorV+BURFzjq66srXqdrS6xWJaMYyK/wBzVjFqoiIjVXl4yLeuTrvu
289
+ 9aN351Uqc1Zs2bipgY9qIiORyqqva3khBIrEx3PMK52Q9QGm3UzbDIdPuvUrC1HMMSftnM1uDl2N
290
+ UodcprJJjoFWmoExAhpCViq9rmKq4oifCqZ31u3Jr1rMkuqyI50vGi1VRFXGxcKKsEwYvGvGRV2e
291
+ Os6y7vzayyuqrGzsRUciK5EVmNgVGorsONgVEXgLodbjq/8AdmQf1my3wOQZsivDq/Pl5ZafeGuf
292
+ rnRztGOtx1f+7Mg/rNlvgcbIrw6vz5eWN4a5+udHO0ZT+j1m6t5NSl9NUd07WyNkpy6dCyxlalW0
293
+ g5glczRpdmXpB0nFm4tUkoEtBVsddq5rEZimzj2EVZs6obkV+yvPTK01Gq/FREiirgjhVUVU48GE
294
+ rF2iOs+ybf8A8aVUXq9JeMrnYrmp5WKiIiORF4ljghwQjxfxZy5d/NGOpS/16bbafKXqPoV/KFl6
295
+ nfRUHOUjlKYo8SiSbZV6x0qUlNMmN1VmLVhqmCLs7OJiPWT1ZWtXbVmVmrsR7H4v+pEVINRuHGVO
296
+ Ti5SQupXrwsCzbBlVKuTHSpkrGwq1zkcjnucipiI5f8AVBYonAXD63HV/wC7Mg/rNlvgcwHZFeHV
297
+ +fLyyW94a5+udHO0Y63HV/7syD+s2W+BxsivDq/Pl5Y3hrn650c7RlKtNtv8028tktKzpLyEhmWv
298
+ ZtredKlSqdMd2Q5J1YqUWeZJum0ZDbGfBZERr3tajVdjhimCrZ/q7u9PsyymSJ0MeKqsMMIrGEeO
299
+ HHxf1KM9cd8Krblvza1Vo+aVGtRVSCripCMOJFXgjhhwoi4Dv9FOp3VVoBsfK6caJo1pF/6XQs2V
300
+ XMMlculXKpOXYM2ypR0jNhtpVRpkaPCWGibO2fsquwVqrvU3b0qarWSke1OByOaiL8jlRfmLr2Z2
301
+ kbqT5DXzJ7pTl4WulvVU+VjXNX5F8BbbrcdX/uzIP6zZb4HOrsivDq/Pl5Z394a5+udHO0ZBmpfX
302
+ rq41SWFulp7mdAshbSXu1laLlCNn2duxQqnBpTY72uWbiyErSmRY7W7XBWMciricknqfvA5yIslG
303
+ ovGr2QTwOVfAinDWO0XdFjFclZVypxJLmRXuJjMRPCqIRFcy1dZzbpzzFaCkzlNbX562zMpSE5Nq
304
+ 9kq6agSrITHPVrXPZDe+H2dqqoi44L2C1Ft2DMrFjPqjFTHWXioq8EUT+mAoXdi9cip3kl2hMa7z
305
+ aTsdUT+6CuVe8qoi8uEtFb/pQtXtvch5JyCzo4YFdbkfKNNyg2ttvDl2Ak4lMkockk0kB9Jc6Huu
306
+ 57faKqqmOGKlVHdUN4UX/wCjny8ovw3tD3PVI/5cPRzcg4d0Ok11fXSttn+2jujogZZZcHJlTyW/
307
+ MTrwZemUkW1OSiSTpp0vDpLHRUhpE2ysRyK7DDFA3qhvCq//AEQ+nLyg/tEXQRFVK3Huebm/8WIh
308
+ ANqLc1LI1jsmWvq87JR6tQshQcr1GekEe+X7oSV3KK+Ft0Y57Ecq4KqIqps4JjgW0sCxn1Wy5VWe
309
+ qYzZaNVU4IwhgNfV7bySq/bs+vS2qjHzVeiLwwjFIwiiLDvw7pmGlLWzq10d2Ct/pvkdC9Ou/JWv
310
+ lJqjylxZC6lFo8Cpw40/Hm2x4NNnaXEjy7P+7gjXux+FcOwVQrHU7b7Hq1slHInGj2QXu4XIvhRC
311
+ /wBU+0bdKZKa51YViqmFqy5iqncVWtc3wKqFhYvS26wIsKJCTo0IcJYjFhpFbebLeLcUw2yYUf4O
312
+ ycOyK8Or8+XlHZ3hrn630c7Rnk/A083Xo1iLKSchTaFU7jWs1DymoeeyWtRSWhTW5VWdqDqJBrCw
313
+ nw2R0ZNtasdYe0xauCKmGMuWh1bV+ZdiTU24vnmPx1SODDjeTHgimNw8GDh4yvVkddVkyr81i0nI
314
+ /wDxpsrzSOhhSHm/KVvDBVYuDhgqLDhQ9Y+tx1f+7Mg/rNlvgciPZFeHV+fLyywu8Nc/XOjnaMpz
315
+ kR1zM9Xv1KajLnZAkLUVa/uZ6DVZK3EtW4GYY1MhUWiQ6Wu71aVgS8GKkVzdsxGsTa7KL8CrPPVH
316
+ c6u2TInf5KI10xWwRFRVREReFUinHylUO0N1j2ZeCtVdKk5XslNdFyorUVXKnAjkRcGLhiicKESd
317
+ IH6ol2/sHznpx63W58PVj6HtGGPdnn4wqfpPYzDX4tf9efJvjTGey99e9F70lftmflvp/cksFsij
318
+ wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhVkfWhtF+fdA84YBrsrnxq/7avtjatJ/j
319
+ hP037ubVxc81lgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApr0gfqiXb+wfOenEb9bnw9
320
+ WPoe0YTR2efjCp+k9jMNfi1/158m+NMZ7L3170XvSV+2Z+W+n9ySwWyKPAAAAAAAAAAAAAAAAAAA
321
+ AAAAAAAAAAAAAAAAAAAAAAAGFWR9aG0X590DzhgGuyufGr/tq+2Nq0n+OE/Tfu5tXFzzWWAAAAAA
322
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmvSB+qJdv7B856cRv1ufD1Y+h7RhNHZ5+MKn6T2Mw
323
+ 1+LX/Xnyb40xnsvfXvRe9JX7Zn5b6f3JLBbIo8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
324
+ AAAAYVZH1obRfn3QPOGAa7K58av+2r7Y2rSf44T9N+7m1cXPNZYAAAAAAAAAAAAAAAAAAAAAAAAA
325
+ AAAAAAAAAAAAAAAKa9IH6ol2/sHznpxG/W58PVj6HtGE0dnn4wqfpPYzDX4tf9efJvjTGey99e9F
326
+ 70lftmflvp/cksFsijwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGdvK5Tsl6gMg5pz
327
+ BGWUo2WbuUjM1XmWtc9YcnK1eDORoiMaiudhCaq4ImKmuq8bkqN8Zr52Bra1jr/tWZjxorE2tXZl
328
+ utPq+lSqv5Tn1Hzad16SvNwpJA2XIWpDTzGhw4rL7WdRsRiRGpFzLRmORFTFNsx8wjmr/iipihax
329
+ t87HVI/5cn1jPGa/XdWt40VU/wACseqmZJ9OcZp79O9mvKiieEn7+8rH1uT6xnjPnZveLUKz6mZk
330
+ jnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6m
331
+ ZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz
332
+ 6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLU
333
+ Kz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZve
334
+ LUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZ
335
+ veLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9Yzx
336
+ jZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9Y
337
+ zxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J
338
+ 9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj6
339
+ 3J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eV
340
+ j63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/
341
+ eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonh
342
+ I/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoonhI/eVj63J9YzxjZveLUKz6mZkjnGae/TvZryoo
343
+ nhI/eVj63J9YzxjZveLUKz6mZklPNd9/bLZg00Z5yjli6ORc2ZjzRN0iUpNJynVJKpxlWVrUpUI7
344
+ 4rZKJF3KG2DAeu2fgmOCdlSOutW9tmTrEmypU9j3vVqIjXI5cD2uWMFWCQReEmTqE6v7bq955FYn
345
+ 1WbKlS0ernPY5iYZbmpDGRIrFyYE4sJ4tWwhPSFWYyp/24kSBCav7WI9XJ/o5D77MFVekquzF/tc
346
+ stE77Ueq/wDyQ93tlVyW6fZ8pF8prZrl7zllonztXwEqFqilAAAAAAAAAAAAAAAAAAAAAAAAAAAA
347
+ AAAAAAAAAAAAAABhWZcmS9dipOwI/cc9tEZEerdsyIibCbZEwVFTsYkJdZnUxV7enf5EqZ5qfBEV
348
+ YRa5E4IpgVFTgjyYFTghYrqf7QdbuzIWqTpfnqtFVRIwcxV4cVcKK1Vw4qwwqqoqRWODrbWuYrhN
349
+ 0pUx2FV8ZP8AluRB7uzTbkcE6RD/AHP0ZY5na9u3BIyKzH/bL0qH5ya13vuk9sjb0fm7VbudkUn6
350
+ M+t727WYrNCXpRya13vuk9sjb0N2q3c7IpP0Y3vbtZis0JelHJrXe+6T2yNvQ3ardzsik/Rje9u1
351
+ mKzQl6Ucmtd77pPbI29Ddqt3OyKT9GN727WYrNCXpRya13vuk9sjb0N2q3c7IpP0Y3vbtZis0Jel
352
+ HJrXe+6T2yNvQ3ardzsik/Rje9u1mKzQl6Ucmtd77pPbI29Ddqt3OyKT9GN727WYrNCXpRya13vu
353
+ k9sjb0N2q3c7IpP0Y3vbtZis0JelHJrXe+6T2yNvQ3ardzsik/Rje9u1mKzQl6Ucmtd77pPbI29D
354
+ dqt3OyKT9GN727WYrNCXpRya13vuk9sjb0N2q3c7IpP0Y3vbtZis0JelHJrXe+6T2yNvQ3ardzsi
355
+ k/Rje9u1mKzQl6Ucmtd77pPbI29Ddqt3OyKT9GN727WYrNCXpRya13vuk9sjb0N2q3c7IpP0Y3vb
356
+ tZis0JelHJrXe+6T2yNvQ3ardzsik/Rje9u1mKzQl6Ucmtd77pPbI29Ddqt3OyKT9GN727WYrNCX
357
+ pRya13vuk9sjb0N2q3c7IpP0Y3vbtZis0JelHJrXe+6T2yNvQ3ardzsik/Rje9u1mKzQl6Ucmtd7
358
+ 7pPbI29Ddqt3OyKT9GN727WYrNCXpRya13vuk9sjb0N2q3c7IpP0Y3vbtZis0JelHJrXe+6T2yNv
359
+ Q3ardzsik/Rje9u1mKzQl6Ucmtd77pPbI29Ddqt3OyKT9GN727WYrNCXpRya13vuk9sjb0N2q3c7
360
+ IpP0Y3vbtZis0JelHJrXe+6T2yNvQ3ardzsik/Rje9u1mKzQl6Ucmtd77pPbI29Ddqt3OyKT9GN7
361
+ 27WYrNCXpRya13vuk9sjb0N2q3c7IpP0Y3vbtZis0JelHJrXe+6T2yNvQ3ardzsik/Rje9u1mKzQ
362
+ l6U+8vbOpueiTVQkIULHZdL7pEd+3Yc1if8AM71n9ma1HP8A+/WJTW8rcZy+BWsT5zzLU7YNjNlx
363
+ q1VnPfyPxGJ4WuevzEqUikylFkYcjJtdubFV74j8Ns969l7lT4VLVXQunVLFqLarV0XFTCqrwuVe
364
+ FV7v9ERE4ilN+78V68NovrlaVMZcCIn9rWpwNb3E4e6qqq4VOzMmMOAAAAAAAAAAAAAAAAAAAAAA
365
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
366
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
367
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
368
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
369
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
370
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/9k=
371
+ "/>
372
+ </g>
373
+ </svg>
374
+
extra-widgets/divider/divider.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: Divider
5
+ Description: Divider.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Divider extends SiteOrigin_Widget {
11
+ function __construct() {
12
+
13
+ parent::__construct(
14
+ 'divider',
15
+ __('Divider', 'addon-so-widgets-bundle'),
16
+ array(
17
+ 'description' => __('Divider .', 'addon-so-widgets-bundle'),
18
+ 'panels_groups' => array('addonso')
19
+ ),
20
+ array(
21
+
22
+ ),
23
+ array(
24
+ 'widget_title' => array(
25
+ 'type' => 'text',
26
+ 'label' => __('Widget Title.', 'addon-so-widgets-bundle'),
27
+ 'default' => ''
28
+ ),
29
+
30
+ 'divider_style' => array(
31
+ 'type' => 'select',
32
+ 'label' => __( 'Style', 'addon-so-widgets-bundle' ),
33
+ 'default' => 'solid',
34
+ 'options' => array(
35
+ 'solid' => __( 'Solid', 'addon-so-widgets-bundle' ),
36
+ 'double' => __( 'Double', 'addon-so-widgets-bundle' ),
37
+ 'dashed' => __( 'Dashed', 'addon-so-widgets-bundle' ),
38
+ 'dotted' => __( 'Dotted', 'addon-so-widgets-bundle' ),
39
+ )
40
+ ),
41
+
42
+ 'border_width' => array(
43
+ 'type' => 'number',
44
+ 'label' => __( 'Border Width', 'addon-so-widgets-bundle' ),
45
+ 'default' => '5'
46
+ ),
47
+
48
+ 'divider_color' => array(
49
+ 'type' => 'color',
50
+ 'label' => __( 'Divder color', 'addon-so-widgets-bundle' ),
51
+ 'default' => '#ccc'
52
+ ),
53
+
54
+ 'margin_top' => array(
55
+ 'type' => 'number',
56
+ 'label' => __( 'Top Margin', 'addon-so-widgets-bundle' ),
57
+ 'default' => ''
58
+ ),
59
+
60
+ 'margin_bottom' => array(
61
+ 'type' => 'number',
62
+ 'label' => __( 'Bottom Margin', 'addon-so-widgets-bundle' ),
63
+ 'default' => ''
64
+ ),
65
+
66
+ 'custom_class' => array(
67
+ 'type' => 'text',
68
+ 'label' => __('Custom Class', 'addon-so-widgets-bundle'),
69
+ 'default' => ''
70
+ ),
71
+
72
+
73
+ ),
74
+ plugin_dir_path(__FILE__)
75
+ );
76
+ }
77
+
78
+ function get_template_name($instance) {
79
+ return 'divider-template';
80
+ }
81
+
82
+ function get_style_name($instance) {
83
+ return 'divider-style';
84
+ }
85
+
86
+ }
87
+
88
+ siteorigin_widget_register('divider', __FILE__, 'Divider');
extra-widgets/divider/styles/divider-style.less ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ @import "../../../base/less/mixins";
2
+ @import "path/to/some/file";
3
+
4
+ @a_variable: #41a9d5;
5
+
6
+ .a-class {
7
+ }
extra-widgets/divider/tpl/divider-template.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $widget_title = wp_kses_post($instance['widget_title']);
3
+ $divider = wp_kses_post($instance['divider_style']);
4
+ $divider_width = wp_kses_post($instance['border_width']);
5
+ $divider_color = wp_kses_post($instance['divider_color']);
6
+ $margin_top = wp_kses_post($instance['margin_top']);
7
+ $margin_bottom = wp_kses_post($instance['margin_bottom']);
8
+ $custom_class = wp_kses_post($instance['custom_class']);
9
+ ?>
10
+
11
+
12
+
13
+ <?php if ($widget_title) { ?>
14
+ <h3 class="widget-title">
15
+ <span><?php echo $widget_title ?></span>
16
+ </h3>
17
+ <?php } ?>
18
+
19
+
20
+ <hr class="<?php echo $custom_class; ?>" style="border-style:<?php echo $divider ?>; border-width:0 0 <?php echo $divider_width ?>px 0; border-color:<?php echo $divider_color; ?>; margin-top: <?php echo $margin_top ?>px; margin-bottom: <?php echo $margin_bottom ?>px;">
extra-widgets/faqs/assets/banner.svg ADDED
@@ -0,0 +1,322 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6MjkxODUzNjJFREFFMTFFNEE2OTFEOEM0REUwNjJFQjciIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6MjkxODUzNjFFREFFMTFFNEE2OTFEOEM0REUwNjJFQjciIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0QjQ0
23
+ MkNBMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADcAAEAAQUBAQEBAAAAAAAAAAAACAQGBwkKBQMCAQEBAAICAwEBAAAA
29
+ AAAAAAAAAAgJBgcCAwQFARAAAQMDAgMBBBQJCAgHAAAAAAECAwQFBhEHIRIICTETlLRBUWFxIrJz
30
+ 0zR0FTVVdbU2Vjd3GTIjFNSV1RZXCoFScpa2WDkakULSJFR21pehYoJjRCU4EQACAQEDBQcPCgUD
31
+ BAMBAAAAAQIDEQQFITFBBgdRYXES0rMIgZEiMpKyc4OTVHQ1NhcYobHB0UJSE1NVFvBiwiPTcqIU
32
+ gjNDJOE0JiX/2gAMAwEAAhEDEQA/AIblshR4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
37
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsszWOyPW329kVVdeVHSrLqsVOipq3v
38
+ iNVFc93BUYipw4qqcNdLbUNsN3wH+xRSqXlq2z7ME8zlZlteiKy2ZW0rLZC7Gdgl61l/9mvJ0rmn
39
+ Zxl202s6hbksTyOTyW5Em7bMSVOQ3+rkWWa93RHrqmlNM+BqIq66IyBWN4eXpqRGxbatrDfKnHle
40
+ 6kd6EnBLqRs+W1k6sD2Jaq3CkoQuVKe/Uiqje/bO2zqWLeKf3XvPw5fPDar1w+V+/sd89r+Vnyj7
41
+ fuw1a/Trt5GnyR7r3n4cvnhtV64P39jvntfys+UPdhq1+nXbyNPkj3XvPw5fPDar1wfv7HfPa/lZ
42
+ 8oe7DVr9Ou3kafJHuvefhy+eG1Xrg/f2O+e1/Kz5Q92GrX6ddvI0+SPde8/Dl88NqvXB+/sd89r+
43
+ Vnyh7sNWv067eRp8ke695+HL54bVeuD9/Y757X8rPlD3Yatfp128jT5I917z8OXzw2q9cH7+x3z2
44
+ v5WfKHuw1a/Trt5GnyR7r3n4cvnhtV64P39jvntfys+UPdhq1+nXbyNPkj3XvPw5fPDar1wfv7Hf
45
+ Pa/lZ8oe7DVr9Ou3kafJHuvefhy+eG1Xrg/f2O+e1/Kz5Q92GrX6ddvI0+SPde8/Dl88NqvXB+/s
46
+ d89r+Vnyh7sNWv067eRp8ke695+HL54bVeuD9/Y757X8rPlD3Yatfp128jT5I917z8OXzw2q9cH7
47
+ +x3z2v5WfKHuw1a/Trt5GnyR7r3n4cvnhtV64P39jvntfys+UPdhq1+nXbyNPkj3XvPw5fPDar1w
48
+ fv7HfPa/lZ8oe7DVr9Ou3kafJHuvefhy+eG1Xrg/f2O+e1/Kz5Q92GrX6ddvI0+SfaG/36neksN8
49
+ uySNTRqzTyTN/ljnV7F/lQ+jhu1HWG61OPG91Zb05Oa60rUfKxfYxqtfaTpzuNGK3YQVN9eHFf0G
50
+ U8VzpLpNHbLuyKmr5F5aWqh1SKdf5itVVVknma6L5Gi8CVuy7bVRxmau16Sp3h5rO1nwW5pb2nQ9
51
+ BCTbN0eLxq/B3y5ydW6Ltre3p27tiVsf5ksmlaTI5vkjKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
52
+ AAAAAAAAAAAAAAAAAAAAAAAAAAeVfbmlntFwuWjHPpadXQMkXRrpXegiYq+QjnqiHwdaccjhmHVr
53
+ 1L/xwbs3XoXVdiMn1L1bnjGLXe5RyfizUW9xfafUja+oRlV0j3PlmkdNPNI6aeZ/4T3vXme9dPJV
54
+ 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
318
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/9k=
319
+ "/>
320
+ </g>
321
+ </svg>
322
+
extra-widgets/faqs/faqs.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: FAQs
5
+ Description: This widget Display Faq.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Faqs extends SiteOrigin_Widget
11
+ {
12
+ function __construct()
13
+ {
14
+
15
+ parent::__construct(
16
+ 'faqs',
17
+ __('Faqs', 'addon-so-widgets-bundle'),
18
+ array(
19
+ 'description' => __('FAQs Component', 'addon-so-widgets-bundle'),
20
+ 'panels_groups' => array('addonso')
21
+ ),
22
+ array(),
23
+ array(
24
+ 'widget_title' => array(
25
+ 'type' => 'text',
26
+ 'label' => __('Widget Title.', 'addon-so-widgets-bundle'),
27
+ 'default' => ''
28
+ ),
29
+
30
+ 'posts' => array(
31
+ 'type' => 'posts',
32
+ 'label' => __('Select FAQs', 'addon-so-widgets-bundle'),
33
+ ),
34
+
35
+ 'custom_class' => array(
36
+ 'type' => 'text',
37
+ 'label' => __('Custom Class', 'addon-so-widgets-bundle'),
38
+ 'default' => ''
39
+ ),
40
+
41
+
42
+
43
+ ),
44
+ plugin_dir_path(__FILE__)
45
+ );
46
+ }
47
+
48
+ function get_template_name($instance)
49
+ {
50
+ return 'faqs-template';
51
+ }
52
+
53
+ function get_style_name($instance)
54
+ {
55
+ return 'faqs-style';
56
+ }
57
+
58
+ }
59
+
60
+
61
+ function faq() {
62
+ $labels = array(
63
+ 'name' => _x( 'Faq', 'post type general name' ),
64
+ 'singular_name' => _x( 'Faq', 'post type singular name' ),
65
+ 'add_new' => _x( 'Add New', 'Faq' ),
66
+ 'add_new_item' => __( 'Add New Faq' ),
67
+ 'edit_item' => __( 'Edit Faq' ),
68
+ 'new_item' => __( 'New Faq' ),
69
+ 'all_items' => __( 'All Faqs' ),
70
+ 'view_item' => __( 'View Faq' ),
71
+ 'search_items' => __( 'Search Faq' ),
72
+ 'not_found' => __( 'No Faq found' ),
73
+ 'not_found_in_trash' => __( 'No Faq found in the Trash' ),
74
+ 'parent_item_colon' => '',
75
+ 'menu_name' => 'Faq'
76
+ );
77
+ $args = array(
78
+ 'labels' => $labels,
79
+ 'description' => 'Holds our products and product specific data',
80
+ 'public' => true,
81
+ 'menu_position' => 5,
82
+ 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
83
+ 'has_archive' => true,
84
+ );
85
+ register_post_type( 'faq', $args );
86
+ }
87
+ add_action( 'init', 'faq' );
88
+
89
+
90
+
91
+
92
+
93
+ siteorigin_widget_register('faqs', __FILE__, 'Faqs');
extra-widgets/faqs/styles/faqs-style.less ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ h1 {
4
+ text-align: center;
5
+ font-size: 35px;
6
+ font-size: 2.1875rem;
7
+ line-height: 1.8;
8
+ padding: 50px 0;
9
+ }
10
+
11
+ .accordion {
12
+ margin: 0; padding: 0; list-style: none;
13
+ }
14
+ .accordion li {
15
+ position: relative;
16
+ }
17
+ .accordion li p {
18
+ display: none;
19
+ }
20
+ .accordion a {
21
+ width: 100%;
22
+ display: block;
23
+ cursor: pointer;
24
+ line-height: 3;
25
+ text-indent: 15px;
26
+ user-select: none;
27
+ text-decoration: none;
28
+ padding: 0 20px;
29
+ }
30
+ .accordion a:after {
31
+ width: 8px;
32
+ height: 8px;
33
+ border-right: 1px solid #4a6e78;
34
+ border-bottom: 1px solid #4a6e78;
35
+ position: absolute;
36
+ left: 10px;
37
+ content: " ";
38
+ top: 17px;
39
+ transform: rotate(-45deg);
40
+ -webkit-transition: all 0.2s ease-in-out;
41
+ -moz-transition: all 0.2s ease-in-out;
42
+ transition: all 0.2s ease-in-out;
43
+ }
44
+ .accordion p {
45
+ padding: 10px;
46
+ }
47
+
48
+ a.active:after {
49
+ transform: rotate(45deg);
50
+ -webkit-transition: all 0.2s ease-in-out;
51
+ -moz-transition: all 0.2s ease-in-out;
52
+ transition: all 0.2s ease-in-out;
53
+ }
54
+
55
+
56
+
extra-widgets/faqs/tpl/faqs-template.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $widget_title = wp_kses_post($instance['widget_title']);
3
+ $custom_class = wp_kses_post($instance['custom_class']);
4
+ $query = siteorigin_widget_post_selector_process_query($instance['posts']);
5
+ $the_query = new WP_Query($query);
6
+
7
+ ?>
8
+
9
+
10
+
11
+ <?php if ($widget_title) { ?>
12
+ <h3 class="widget-title">
13
+ <span><?php echo $widget_title ?></span>
14
+ </h3>
15
+ <?php } ?>
16
+
17
+
18
+ <ul class="accordion <?php echo $custom_class ?>">
19
+ <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
20
+ <li>
21
+ <a> <?php the_title(); ?></a>
22
+ <?php the_content();?>
23
+ </li>
24
+ <?php endwhile; ?>
25
+ </ul> <!-- / accordion -->
26
+
27
+
extra-widgets/service-box/assets/banner.svg ADDED
@@ -0,0 +1,225 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6MzQ2N0I1QjlFRTYyMTFFNEE3RjRBREJFNjk4RDk0ODkiIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6MzQ2N0I1QjhFRTYyMTFFNEE3RjRBREJFNjk4RDk0ODkiIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDODk1MzUzM0FFRURFNDExQTNFMDkzNjE0QjQ0
23
+ MkNBMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADTAAEAAgIDAQAAAAAAAAAAAAAACAoGCQQFBwEBAQEBAQEAAwEBAAAA
29
+ AAAAAAAJBwgGAQMFBAIQAAECAwMDCRELDQEAAAAAAAABAgMEBQYHCBEJGSESg7SV1TYYWDFhItKj
30
+ 0xQVVRZWptZXl1kKQVGBE5OU1JbnOBpxMiO15bbGF3eHSGh4kREBAAECAgMJCwcJCAEFAAAAAAEC
31
+ AxEEBQYHITHSg5OzVDYXQVFhEpJTo9MWCBiBkeITZFVlcaHRIjLjlNQVwUJSsnMUdDWxYnIjM2P/
32
+ 2gAMAwEAAhEDEQA/AIblZEPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAAAAxG01rZWgNSBDYk1UYjdcyXRcjWIvMdEVOZzk5q84yHaZtcymgKfq
37
+ qY+szMxjFOO5THcmue54IjdnwRut32P7C89rRV9dXV9VlKZwmvDGapjfpoju+GqdyPDO48jnbYWi
38
+ nXuc6pRpdqr0MKS/RNTnIreiX4VU5G01th1iztczOZqojvW/1Ij5t2flmZd16v7BNVNHW4ppylFy
39
+ e7Vd/wDkmfDMVfqx8lMR4HX9v673aq3zmN0x5/2+0702/wArXwnqezHVr7uy3I2+Cdv673aq3zmN
40
+ 0w9vtO9Nv8rXwjsx1a+7styNvgnb+u92qt85jdMPb7TvTb/K18I7MdWvu7Lcjb4J2/rvdqrfOY3T
41
+ D2+0702/ytfCOzHVr7uy3I2+Cdv673aq3zmN0w9vtO9Nv8rXwjsx1a+7styNvgnb+u92qt85jdMP
42
+ b7TvTb/K18I7MdWvu7Lcjb4J2/rvdqrfOY3TD2+0702/ytfCOzHVr7uy3I2+Cdv673aq3zmN0w9v
43
+ tO9Nv8rXwjsx1a+7styNvgnb+u92qt85jdMPb7TvTb/K18I7MdWvu7Lcjb4J2/rvdqrfOY3TD2+0
44
+ 702/ytfCOzHVr7uy3I2+Cdv673aq3zmN0w9vtO9Nv8rXwjsx1a+7styNvgnb+u92qt85jdMPb7Tv
45
+ Tb/K18I7MdWvu7Lcjb4J2/rvdqrfOY3TD2+0702/ytfCOzHVr7uy3I2+C7CSthaKSe1zalGmGovR
46
+ Qp39K1ecqu6JPgVD0GhdsOsWSriYzNVcd65+vE/Pux8kxLy2sGwTVTSNuaaspRbnuVWv/jmPDEU/
47
+ qz8tMx4HrlmbWylfasCIxJWosbrny+XK16JzXQ1Xm89OanPOudme1zKafp+qqj6vMxGM047lUd2a
48
+ J7vhid2PDG64U2wbC89qvV9dRV9blKpwivDCaZneprjueCqNyfBO4y415hAAAAAAAAAAAAAAAAAA
49
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDqM6ynSE5PREytlZd0bW++qJqN+FdQ/F1j01Ro7IXs1Xu
50
+ xbomrDv4RuR8s7j0OqWr1zS2k7GTo3Ju100496Jndn5Ixn5EY5uajzszHm5l6xI8xEWLFevuqvve
51
+ 8ie4hMXS2lL+dzNd+9V41yuZmZ8M/wBkb0R3I3FjtCaFy2jsnby2Xp8W1bpimmPBH/mZ35nuzjMt
52
+ nuF/NzzV69kaTeNeraWq2Ts1aOSSoWbs9ZxkDtjMysVqOl56NNTLYsKBDiN6JjPinuc1UXK3mLsm
53
+ o2xurSGXpzGarmiiqMaaacPGmJ3pmZxiInuRhOMbu45r2pe8jTonOV5PIWqbt23OFdVePiRVG/TE
54
+ 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
159
+ Xs+2IhQvYb1WyvGc7Wlb7yPXTO8VzNtlhrLDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
160
+ AAAAAAAYnbngtVNg2xDMm25dVs1xfO0Nx927rpkuN5m4j2T0VSXKSkEIvOb7O33q94OLvt12Fxg/
161
+ 5/O/mV8drezu1XYTe1mv136T4vtl2052u5uqTt0n9b/ubn1v7fjVeN+XGcfzrG6D+o/2Vn6j/wCr
162
+ xKfF/wDb4seL+bBY6P4X6gAAAAAAAAAAAK4ntEnep3g4RFovYXGE/n63+WvxOt7O7VdhO7ZazW/p
163
+ Pi+2XavJ7mu5mqf3aM+t/wBzb+q/b8anxfy4xh+d+Xpz6j/ZXvr/AP6vEq8b/wBviz435sXDKJSj
164
+ kprE31oUhLDcFqXs+2IhQvYb1WyvGc7Wlb7yPXTO8VzNtlhrLDgAAAAAAAAAAAAAAAAAAAAAAAAA
165
+ AAAAAAAAAAAAAAAAAAAAAYnbngtVNg2xDMm25dVs1xfO0Nx927rpkuN5m4j2T0VSXKSkEIvNc9/N
166
+ hYWH29KJifuSxPwcKV7FagxGVVsaK5ZSuuc5rphXU+CkaJHbEc1j5iEsrHhvejXqxH5XLz3tR2f6
167
+ Nquzmv8AcUWK692Yq3qp78RH62Pfwicd/CJxx6/2FbXNN0WKch/s7matW9ymqjcqojuU1TVhRMf4
168
+ fGqpmI3MZiIiPL9LbnCm9CmcqubVG9Cird7lXU99f5dLl/8ATB/6Flem2fmv+pdWxrTnvu3M+Vlf
169
+ 5k0t2cL9ZTc16Pfs6H9DyvTLPzX/AFL59qc9925nysr/ADJpbs4X6ym5r0e/Z0P6HlemWfmv+pPa
170
+ nPfduZ8rK/zJpbs4X6ym5r0e/Z0P6HlemWfmv+pPanPfduZ8rK/zJpbs4X6ym5r0e/Z0P6HlemWf
171
+ mv8AqT2pz33bmfKyv8yaW7OF+spua9Hv2dD+h5Xpln5r/qT2pz33bmfKyv8AMmluzhfrKbmvR79n
172
+ Q/oeV6ZZ+a/6k9qc9925nysr/MmluzhfrKbmvR79nQ/oeV6ZZ+a/6k9qc9925nysr/MmluzhfrKb
173
+ mvR79nQ/oeV6ZZ+a/wCpPanPfduZ8rK/zJpbs4X6ym5r0e/Z0P6HlemWfmv+pPanPfduZ8rK/wAy
174
+ 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
222
+ "/>
223
+ </g>
224
+ </svg>
225
+
extra-widgets/service-box/service-box.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: Service Box
5
+ Description: This widget displays a 'Service Box!'.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Service_Box extends SiteOrigin_Widget {
11
+ function __construct() {
12
+
13
+ parent::__construct(
14
+ 'service-box',
15
+ __('Service Box', 'addon-so-widgets-bundle'),
16
+ array(
17
+ 'description' => __('Service Box.', 'addon-so-widgets-bundle'),
18
+ 'panels_groups' => array('addonso')
19
+ ),
20
+ array(
21
+
22
+ ),
23
+ array(
24
+ 'widget_title' => array(
25
+ 'type' => 'text',
26
+ 'label' => __('Service world! goes here.', 'addon-so-widgets-bundle'),
27
+ 'default' => ''
28
+ ),
29
+
30
+ 'icon_selection' => array(
31
+ 'type' => 'radio',
32
+ 'label' => __( 'Choose a Icon Style', 'addon-so-widgets-bundle' ),
33
+ 'default' => 'top',
34
+ 'options' => array(
35
+ 'top' => __( 'Icon Top', 'addon-so-widgets-bundle' ),
36
+ 'left' => __( 'Icon Left', 'addon-so-widgets-bundle' ),
37
+ )
38
+ ),
39
+
40
+
41
+ 'icon_size' => array(
42
+ 'type' => 'slider',
43
+ 'label' => __( 'Choose a icon size', 'addon-so-widgets-bundle' ),
44
+ 'default' => 3,
45
+ 'min' => 2,
46
+ 'max' => 100,
47
+ 'integer' => true
48
+ ),
49
+
50
+ 'icon' => array(
51
+ 'type' => 'icon',
52
+ 'label' => __('Select an icon', 'addon-so-widgets-bundle'),
53
+ ),
54
+
55
+
56
+ 'icon_img_width' => array(
57
+ 'type' => 'slider',
58
+ 'label' => __( 'Choose a Image size', 'addon-so-widgets-bundle' ),
59
+ 'default' => 3,
60
+ 'min' => 2,
61
+ 'max' => 100,
62
+ 'integer' => true
63
+ ),
64
+
65
+ 'icon_image' => array(
66
+ 'type' => 'media',
67
+ 'label' => __( 'Choose a Icon Image', 'addon-so-widgets-bundle' ),
68
+ 'choose' => __( 'Choose image', 'addon-so-widgets-bundle' ),
69
+ 'update' => __( 'Set image', 'addon-so-widgets-bundle' ),
70
+ 'library' => 'image'
71
+ ),
72
+
73
+
74
+ 'selection' => array(
75
+ 'type' => 'radio',
76
+ 'label' => __( 'Choose any One Icon Or Icon Image', 'addon-so-widgets-bundle' ),
77
+ 'default' => 'icon',
78
+ 'options' => array(
79
+ 'icon' => __( 'Display a Icon', 'addon-so-widgets-bundle' ),
80
+ 'icon_image' => __( 'Display a Icon Image', 'addon-so-widgets-bundle' ),
81
+ )
82
+ ),
83
+
84
+
85
+ 'title' => array(
86
+ 'type' => 'text',
87
+ 'label' => __('Service world! goes here.', 'addon-so-widgets-bundle'),
88
+ 'default' => ''
89
+ ),
90
+
91
+ 'content' => array(
92
+ 'type' => 'textarea',
93
+ 'label' => __( 'Type a message', 'addon-so-widgets-bundle' ),
94
+ 'default' => '',
95
+ 'allow_html_formatting' => true,
96
+ 'rows' => 10
97
+ ),
98
+
99
+ 'btn_text' => array(
100
+ 'type' => 'text',
101
+ 'label' => __('Button Text', 'addon-so-widgets-bundle'),
102
+ 'default' => ''
103
+ ),
104
+
105
+
106
+ 'btn_url' => array(
107
+ 'type' => 'text',
108
+ 'label' => __('Button Url', 'addon-so-widgets-bundle'),
109
+ 'default' => ''
110
+ ),
111
+
112
+
113
+ ),
114
+ plugin_dir_path(__FILE__)
115
+ );
116
+ }
117
+
118
+ function get_template_name($instance) {
119
+ return 'service-box-template';
120
+ }
121
+
122
+ function get_style_name($instance) {
123
+ return 'service-box-style';
124
+ }
125
+
126
+ }
127
+
128
+ siteorigin_widget_register('service-box', __FILE__, 'Service_Box');
extra-widgets/service-box/styles/service-box-style.less ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*service Box*/
2
+
3
+ .service_top{text-align: center;}
4
+ .service_top .content h3{margin: 10px;}
5
+ .service_top .content .btn_style{margin: 10px;}
6
+
7
+
8
+
9
+
10
+ .service_left{text-align: left;}
11
+ .service_left .icon{width: 15%; float: left; padding-right: 10px; line-height: 0; text-align: center;}
12
+ .service_left .icon_image{ width: 15%; float: left; padding-right: 10px;}
13
+ .service_left .content{width: 85%; float: left;}
14
+ .service_left .content h3{margin-top: 0;}
15
+ .service_left .content .btn_style{margin: 10px;}
extra-widgets/service-box/tpl/service-box-template.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $widget_title = wp_kses_post($instance['widget_title']);
3
+ $btn_text = wp_kses_post($instance['btn_text']);
4
+ $btn_url = wp_kses_post($instance['btn_url']);
5
+
6
+
7
+
8
+
9
+ $icon_size = wp_kses_post($instance['icon_size']);
10
+ $icon_img_width = wp_kses_post($instance['icon_img_width']);
11
+ $icon_img_height = wp_kses_post($instance['icon_img_height']);
12
+ $icon_selection = wp_kses_post($instance['icon_selection']);
13
+ $selection = wp_kses_post($instance['selection']);
14
+ $icon = siteorigin_widget_get_icon($instance['icon']);
15
+ $icon_image = wp_get_attachment_image_src($instance['icon_image']);
16
+ $title = wp_kses_post($instance['title']);
17
+ $content = wp_kses_post($instance['content']);
18
+ ?>
19
+
20
+
21
+ <?php if ($widget_title) { ?>
22
+ <h3 class="widget-title">
23
+ <span><?php echo $widget_title ?></span>
24
+ </h3>
25
+ <?php } ?>
26
+
27
+
28
+ <?php if ($icon_selection == 'top') { ?>
29
+ <div class="service_top <?php echo $icon_selection ?>">
30
+ <?php if($selection == 'icon'){ ?>
31
+ <div class="icon" style="font-size: <?php echo $icon_size; ?>px">
32
+ <?php echo $icon; ?>
33
+ </div>
34
+ <?php } elseif($selection == 'icon_image'){ ?>
35
+ <div class="icon_image">
36
+ <img src=" <?php echo $icon_image[0]; ?>" alt="" style="width: <?php echo $icon_img_width ?>px;"/>
37
+ </div>
38
+ <?php } ?>
39
+ <div class="content">
40
+ <h3><?php echo $title; ?></h3>
41
+ <?php echo $content; ?>
42
+ <div class="clearfix"></div>
43
+ <?php if($btn_text): ?>
44
+ <a class="btn_style clearfix" href="<?php echo $btn_url; ?>" role="button"><?php echo $btn_text; ?> ></a>
45
+ <?php endif; ?>
46
+ </div>
47
+ </div>
48
+
49
+ <?php } elseif ($icon_selection == 'left') { ?>
50
+ <div class="service_left <?php echo $icon_selection ?>">
51
+ <?php if($selection == 'icon'){ ?>
52
+ <div class="icon" style="font-size: <?php echo $icon_size; ?>px">
53
+ <?php echo $icon; ?>
54
+ </div>
55
+ <?php } elseif($selection == 'icon_image'){ ?>
56
+ <div class="icon_image">
57
+ <img src=" <?php echo $icon_image[0]; ?>" alt="" style="width: <?php echo $icon_img_width ?>px;"/>
58
+ </div>
59
+ <?php } ?>
60
+ <div class="content">
61
+ <h3><?php echo $title; ?></h3>
62
+ <?php echo $content; ?>
63
+ <div class="clearfix"></div>
64
+ <?php if($btn_text): ?>
65
+ <a class="btn_style clearfix" href="<?php echo $btn_url; ?>" role="button"><?php echo $btn_text; ?> ></a>
66
+ <?php endif; ?>
67
+ </div>
68
+ </div>
69
+
70
+ <?php } ?>
extra-widgets/spacer/assets/banner.svg ADDED
@@ -0,0 +1,323 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6MEMwMTcxOUJFRTU3MTFFNEEyNzVGNUVBQkI3RUFGRTciIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6MEMwMTcxOUFFRTU3MTFFNEEyNzVGNUVBQkI3RUFGRTciIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDODk1MzUzM0FFRURFNDExQTNFMDkzNjE0QjQ0
23
+ MkNBMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADJAAEAAQQDAQEBAAAAAAAAAAAACQYHCAoCAwUECwEBAQEAAgMBAQEA
29
+ AAAAAAAAAAAIBgcEBQkDAQIQAAEDAwIDAwULCQkAAwAAAAABAgMEBQYRByESCDFBE1FhIhQJcYEy
30
+ QlIjdbY4eDlTs8OENUWGtwrwkaFicjNDJBXhYxYRAAIBAgQDBAUFDQYFBAMAAAABAhEDIQQFBjFB
31
+ B1FhEghxIjJCE4GhUnIU8JHBYrIjc4Ozw3Q1NrHR0jNERfGCkqIk4cLT40NTVP/aAAwDAQACEQMR
32
+ AD8Aw3PWQ8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAdE1VS06tSoqYIFeujEme1uvucypqcHOarlcu0rtyMG+HiklX0VeJ2eQ
37
+ 0XOZtN2LM7ijx8MXKnponQ70VFRFRUVFTVFQ5sZJqq4HXSi4tpqjQP0/kAAAAAAAAAAAAAAAAAAA
38
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH8c5rGue9zWMY
39
+ 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
144
+ vJrKZiMVfksbU/aTo6u3L3qUbwxSxlFGam4HtN9zcpwCixvF7DR4fltVT+rZDlVG7xObVqNV1BE7
145
+ /Zc5dV1VV07jk6t1uz2YyitWoKFx4Sksf+lcjo9v+WDS8pqEr9+47tlOsYPD/qfNL/iYL0WJXzJq
146
+ ye+ZXX1zqiunWoqZK17pKudyrq50j5FVW68eK8fMZBsjoLn9SazOoylag3Xwv/Ml6a+ynjxq/wAW
147
+ lGdX1F8zOmaOnlNJhG9OKp4l/lRwfCnttYcKR/GrVF06Kgo7bTtpaGnjpoGqrkjj71XtVVXiq+dS
148
+ vtE0HJ6bl1Yy1tW7axou182+Lfe22QhuPc2f1fNPMZy7K7daSq+xcEksEu5JKrb5mZvsYPxXunz6
149
+ Wz36hZAeb2/v57nf0938uR63dMf6a07+Gs/s4m6h14/Yc6zfuo7ifVC4GJGcH5yu1/78/Vv0pWXl
150
+ e/136r96Q75zP9t/X/uSbL+m4+3Hur91G+fW/GCTS4jYK9t9+F91O/wX/MOwgGiztr+wqv6Wk/Mx
151
+ Fv8Alq/kV39PL8i2ecvm9/qWx/DQ/aXT78gwq33lX1NPy0FwcqvdNGmrZFVP+Rvl1704+6d71B6K
152
+ 6frLd61SzmHVuSWE217y9PvLHFt1Ma6WeYfVdvqNi/XMZVJJRb9aCT9yXZT3XhgknFFR7M9Qe73T
153
+ FkTH2OulqcdqKhFuWM3BzpLfWRovpOhReEcmi8HN0VO9CYHPXtm534d2L8DfphNLnF/L3NVxSLAv
154
+ ZHa3UTTvi2pL4qSxVFdtt8prsqn2xdPVbReHqE68t0N9YWYjhtJV4JilXB4Vfa7VK59bWuVNXtnq
155
+ WaKkSfJbp5VU5W4Oo+q6/cjlcnblFSw8McZS7cVy/wCLOs2b0V0LatqWe1C7GcoY+OdFCHJUT5t4
156
+ dtcEjF7H9v2Rq2svypNLq5UoGrqzj2LI9F4r36Jw8/cbZ6e+XyFpq/qlJSx/NJ1j3OUlxfF0WHCr
157
+ eKNPdVPNNcvKWW0asIYVvNUk+1Qi1guC8UseNEsGXOYxkbGxxtayNjUYxjERERETRERE7EQqCzZh
158
+ bgoQSUUqJLBJLgkuSRGmYzFy7clOcnKUm223VtvFtt4tt8Wcj6HyAAAAAAAAAAAAAAAAAAAAAAAA
159
+ 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
320
+ "/>
321
+ </g>
322
+ </svg>
323
+
extra-widgets/spacer/spacer.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: Spacer
5
+ Description: Spacer.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Spacer extends SiteOrigin_Widget
11
+ {
12
+ function __construct()
13
+ {
14
+
15
+ parent::__construct(
16
+ 'spacer',
17
+ __('Spacer', 'spacer-text-domain'),
18
+ array(
19
+ 'description' => __('Spacer.', 'addon-so-widgets-bundle'),
20
+ 'panels_groups' => array('addonso')
21
+ ),
22
+ array(),
23
+ array(
24
+ 'widget_title' => array(
25
+ 'type' => 'text',
26
+ 'label' => __('Widget Title.', 'addon-so-widgets-bundle'),
27
+ 'default' => ''
28
+ ),
29
+
30
+ 'spacer' => array(
31
+ 'type' => 'number',
32
+ 'label' => __( 'Height Without px', 'addon-so-widgets-bundle' ),
33
+ 'default' => '10'
34
+ ),
35
+
36
+ 'custom_class' => array(
37
+ 'type' => 'text',
38
+ 'label' => __('Custom Class', 'addon-so-widgets-bundle'),
39
+ 'default' => ''
40
+ ),
41
+
42
+
43
+
44
+ ),
45
+ plugin_dir_path(__FILE__)
46
+ );
47
+ }
48
+
49
+ function get_template_name($instance)
50
+ {
51
+ return 'spacer-template';
52
+ }
53
+
54
+ function get_style_name($instance)
55
+ {
56
+ return 'spacer-style';
57
+ }
58
+
59
+ }
60
+
61
+ siteorigin_widget_register('spacer', __FILE__, 'Spacer');
extra-widgets/spacer/styles/spacer-style.less ADDED
@@ -0,0 +1 @@
 
1
+ .custom_list{}
extra-widgets/spacer/tpl/spacer-template.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $widget_title = wp_kses_post($instance['widget_title']);
3
+ $spacer = wp_kses_post($instance['spacer']);
4
+ $custom_class = wp_kses_post($instance['custom_class']);
5
+
6
+ ?>
7
+
8
+
9
+
10
+ <?php if ($widget_title) { ?>
11
+ <h3 class="widget-title">
12
+ <span><?php echo $widget_title ?></span>
13
+ </h3>
14
+ <?php } ?>
15
+
16
+
17
+ <div class="spacer <?php echo $custom_class; ?>" style="height: <?php echo $spacer ?>px">
18
+ </div>
extra-widgets/tabs/assets/banner.svg ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6Rjg1QTU4NTBFREE3MTFFNEE2QkNDREI3RTYxREFENjEiIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6Rjg1QTU4NEZFREE3MTFFNEE2QkNDREI3RTYxREFENjEiIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0QjQ0
23
+ MkNBMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADfAAEAAQUBAQEBAAAAAAAAAAAABwMGCAkKBAUBAgEBAAICAwEBAAAA
29
+ AAAAAAAAAAgJBgcCBAUDARAAAQIDAwIKEwwGCAcAAAAAAAEDAgQFEQYHEgghE5PTFFTUFlcZMUHR
30
+ ktKzlBU1VXWVpdVWdpYXCVFhcSIysnM0tLU2OJEjU+WmZ4GhsUJSM3c5cnQlthgKGhEBAAECAQMN
31
+ CwoGAgEDBQAAAAECAwQRBQYhMVESktJTk1QHFwgYQWFxkdGyE3PTFTaBsTJScrM0dDVVoSKiwhQW
32
+ wUJi8PEjgjMkJSb/2gAMAwEAAhEDEQA/AMNy2RR4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADzTE7JyiIs3Ny0qi6KLMOQQfOVDzM4Z7wWEjLfvUW/
37
+ tVRT88w9jNWjucMdOTDWLl2f/CiqrzYl5OvtE7cUrqhnojyf96zJyyxxtG+e70baRcgxPE3N6dfa
38
+ J24pXVDPRD/esycsscbRvjo20i5BieJub06+0TtxSuqGeiH+9Zk5ZY42jfHRtpFyDE8Tc3p19onb
39
+ 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
267
+ AAAAAAAAAAAAAAD/2Q==
268
+ "/>
269
+ </g>
270
+ </svg>
271
+
extra-widgets/tabs/styles/tabs-style.less ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .tab {
2
+ position: relative;
3
+ overflow: hidden;
4
+ background: #eee;
5
+ margin: 0 auto;
6
+ line-height: 1.5;
7
+ font-weight: 300;
8
+ color: #888;
9
+ -webkit-font-smoothing: antialiased;
10
+ padding: 3px;
11
+ }
12
+
13
+ .tabs {
14
+ display: table;
15
+ position: relative;
16
+ overflow: hidden;
17
+ margin: 0;
18
+ width: 100%;
19
+ padding: 0;
20
+
21
+ li {
22
+ float: left;
23
+ line-height: 38px;
24
+ overflow: hidden;
25
+ padding: 0;
26
+ position: relative;
27
+ }
28
+
29
+ a {
30
+ color: #888;
31
+ font-weight: 500;
32
+ display: block;
33
+ letter-spacing: 0;
34
+ outline: none;
35
+ padding: 0 20px;
36
+ text-decoration: none;
37
+ -webkit-transition: all 0.2s ease-in-out;
38
+ -moz-transition: all 0.2s ease-in-out;
39
+ transition: all 0.2s ease-in-out;
40
+ }
41
+ }
42
+ .tab_content{background: #ffffff;}
43
+ .tabs_item {
44
+ display: none;
45
+ padding: 15px;
46
+
47
+ h4 {
48
+ font-weight: bold;
49
+ color: #87D3B7;
50
+ font-size: 20px;
51
+ }
52
+
53
+ img {
54
+ width: 200px;
55
+ float: left;
56
+ margin-right: 30px;
57
+ }
58
+
59
+ &:first-child {display: block;}
60
+ }
61
+
62
+ .current a {
63
+ background: #ffffff;
64
+ }
65
+
66
+
67
+
68
+ //verticle tabs
69
+
70
+ .vertical {
71
+ position: relative;
72
+ overflow: hidden;
73
+ background: #eee;
74
+ margin: 0 auto;
75
+ line-height: 1.5;
76
+ font-weight: 300;
77
+ color: #888;
78
+ -webkit-font-smoothing: antialiased;
79
+ padding: 3px;
80
+ }
81
+
82
+ .vertical .tabs {
83
+ display: table-cell;
84
+ vertical-align: top;
85
+ position: relative;
86
+ overflow: hidden;
87
+ margin: 0;
88
+ width: auto ;
89
+ padding: 0;
90
+ width: 25%;
91
+
92
+ li {
93
+ float: none;
94
+ line-height: 38px;
95
+ overflow: hidden;
96
+ padding: 0;
97
+ position: relative;
98
+ }
99
+
100
+ a {
101
+ color: #888;
102
+ font-weight: 500;
103
+ display: block;
104
+ letter-spacing: 0;
105
+ outline: none;
106
+ padding: 0 20px;
107
+ text-decoration: none;
108
+ -webkit-transition: all 0.2s ease-in-out;
109
+ -moz-transition: all 0.2s ease-in-out;
110
+ transition: all 0.2s ease-in-out;
111
+ }
112
+ }
113
+ .vertical .tab_content{display: table-cell; vertical-align: top; width: 75%; background: #ffffff;}
114
+ .vertical .tabs_item {
115
+ display: none;
116
+ padding: 15px;
117
+
118
+ h4 {
119
+ font-weight: bold;
120
+ color: #87D3B7;
121
+ font-size: 20px;
122
+ }
123
+
124
+ img {
125
+ width: 200px;
126
+ float: left;
127
+ margin-right: 30px;
128
+ }
129
+
130
+ &:first-child {display: block;}
131
+ }
132
+
133
+ .vertical .current a {
134
+ background: #ffffff;
135
+ }
136
+
137
+
extra-widgets/tabs/tabs.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: Tabs
5
+ Description: This widget Display Tabs.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Tabs extends SiteOrigin_Widget {
11
+ function __construct() {
12
+
13
+ parent::__construct(
14
+ 'tabs',
15
+ __('Tabs', 'addon-so-widgets-bundle'),
16
+ array(
17
+ 'description' => __('Tabs Component.', 'addon-so-widgets-bundle'),
18
+ 'panels_groups' => array('addonso')
19
+ ),
20
+ array(
21
+
22
+ ),
23
+ array(
24
+ 'widget_title' => array(
25
+ 'type' => 'text',
26
+ 'label' => __('Widget Title', 'addon-so-widgets-bundle'),
27
+ 'default' => ''
28
+ ),
29
+
30
+
31
+ 'repeater' => array(
32
+ 'type' => 'repeater',
33
+ 'label' => __( 'Tabs' , 'addon-so-widgets-bundle' ),
34
+ 'item_name' => __( 'Tab', 'addon-so-widgets-bundle' ),
35
+ 'item_label' => array(
36
+ 'selector' => "[id*='repeat_text']",
37
+ 'update_event' => 'change',
38
+ 'value_method' => 'val'
39
+ ),
40
+ 'fields' => array(
41
+
42
+ 'tab_title' => array(
43
+ 'type' => 'text',
44
+ 'label' => __('Tab Title', 'addon-so-widgets-bundle'),
45
+ 'default' => ''
46
+ ),
47
+
48
+
49
+ 'tab_content' => array(
50
+ 'type' => 'textarea',
51
+ 'label' => __( 'Tab Content', 'addon-so-widgets-bundle' ),
52
+ 'default' => '',
53
+ 'allow_html_formatting' => true,
54
+ 'rows' => 10
55
+ ),
56
+ )
57
+ ),
58
+
59
+ 'tabs_selection' => array(
60
+ 'type' => 'radio',
61
+ 'label' => __( 'Choose Tabs Style', 'addon-so-widgets-bundle' ),
62
+ 'default' => 'horizontal',
63
+ 'options' => array(
64
+ 'horizontal' => __( 'Horizontal Tabs', 'addon-so-widgets-bundle' ),
65
+ 'vertical' => __( 'Vertical Tabs', 'addon-so-widgets-bundle' ),
66
+ )
67
+ ),
68
+
69
+ 'custom_class' => array(
70
+ 'type' => 'text',
71
+ 'label' => __('Custom Class', 'addon-so-widgets-bundle'),
72
+ 'default' => ''
73
+ ),
74
+
75
+
76
+
77
+ ),
78
+ plugin_dir_path(__FILE__)
79
+ );
80
+ }
81
+
82
+ function get_template_name($instance) {
83
+ return 'tabs-template';
84
+ }
85
+
86
+ function get_style_name($instance) {
87
+ return 'tabs-style';
88
+ }
89
+
90
+ }
91
+
92
+
93
+ siteorigin_widget_register('tabs', __FILE__, 'Tabs');
extra-widgets/tabs/tpl/tabs-template.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $widget_title = wp_kses_post($instance['widget_title']);
3
+ $tabs_selection = wp_kses_post($instance['tabs_selection']);
4
+ $custom_class = wp_kses_post($instance['custom_class']);
5
+ ?>
6
+
7
+
8
+ <?php if ($widget_title) { ?>
9
+ <h3 class="widget-title">
10
+ <span><?php echo $widget_title ?></span>
11
+ </h3>
12
+ <?php } ?>
13
+
14
+
15
+ <?php if($tabs_selection == 'horizontal'): ?>
16
+
17
+ <div class="tab <?php echo $custom_class ?>">
18
+
19
+ <ul class="tabs">
20
+ <?php foreach( $instance['repeater'] as $i => $repeater ) : ?>
21
+ <li><a href="#"> <?php echo $repeater['tab_title']; ?></a></li>
22
+ <?php endforeach; ?>
23
+ </ul> <!-- / tabs -->
24
+
25
+ <div class="tab_content">
26
+ <?php foreach( $instance['repeater'] as $i => $repeater ) : ?>
27
+ <div class="tabs_item">
28
+ <p><?php echo $repeater['tab_content'] ?></p>
29
+ </div> <!-- / tabs_item -->
30
+ <?php endforeach; ?>
31
+
32
+ </div> <!-- / tab_content -->
33
+ </div> <!-- / tab -->
34
+
35
+ <?php elseif($tabs_selection == 'vertical'): ?>
36
+
37
+
38
+ <div class="tab vertical <?php echo $custom_class ?>">
39
+
40
+ <ul class="tabs ">
41
+ <?php foreach( $instance['repeater'] as $i => $repeater ) : ?>
42
+ <li><a href="#"> <?php echo $repeater['tab_title']; ?></a></li>
43
+ <?php endforeach; ?>
44
+ </ul> <!-- / tabs -->
45
+
46
+ <div class="tab_content">
47
+ <?php foreach( $instance['repeater'] as $i => $repeater ) : ?>
48
+ <div class="tabs_item">
49
+ <p><?php echo $repeater['tab_content'] ?></p>
50
+ </div> <!-- / tabs_item -->
51
+ <?php endforeach; ?>
52
+
53
+ </div> <!-- / tab_content -->
54
+ </div> <!-- / tab -->
55
+
56
+
57
+
58
+ <?php endif; ?>
extra-widgets/testimonials/assets/banner.svg ADDED
@@ -0,0 +1,317 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6MDA2OUUwQUFFRTY0MTFFNEIyODZCNzE0MEIwNTY4REUiIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6MDA2OUUwQTlFRTY0MTFFNEIyODZCNzE0MEIwNTY4REUiIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDMEQ1NjYxQTYyRUVFNDExQTk1REVFREJFODNG
23
+ NEY4RCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADiAAEAAgICAwEBAAAAAAAAAAAABwkICgYLAgQFAQMBAQEAAgMBAQEA
29
+ AAAAAAAAAAAIBwkDBAUGAgEQAAEDAwICAgYQEgcGBwAAAAABAgMEBQYHCBESIQkxE9OVVhdBYSKS
30
+ sxSUNXXVFtY4GVkaUXHR0lQVVYW1hrZXd7cYWDkKgbEyQmIjlpFyM0OTJKFSsnM0ZSYRAAIBAQMF
31
+ Bw4LBQgDAQAAAAABAgMRBAUhMRIGB0FRYZJTswhxgZHRIrLSc9NUdDU2GKGxMlKCE5MUFRYXQmJy
32
+ I4PwwaLCQ5TUJjMkJUT/2gAMAwEAAhEDEQA/AMNzbIaPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
37
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMLzlt0udzhx3EKaprq+rqm0FP8A
38
+ a+J09RUTSO5GQ0sTEc5znOXgnBFVV7BJm0vbneJXh3LCnmei6iVrk81lNZeNnb+TZndxbIejfdIX
39
+ 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
313
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//2Q==
314
+ "/>
315
+ </g>
316
+ </svg>
317
+
extra-widgets/testimonials/styles/testimonials-style.less ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /*testimonial Rotator*/
2
+ .testimonials_grid{ margin: 10px;}
3
+ .testimonials_grid .testimonial_content{ position: relative; background: #f6f6f6; padding: 15px 20px 20px 20px; margin-bottom: 25px; border-radius: 3px;}
4
+ .testimonials_grid .testimonial_content p{ font-size: 13px; font-style: italic; line-height: 22px; color: #888;}
5
+ .testimonials_grid h5{font-size: 13px; margin-left: 13px;}
6
+ .testimonials_grid h5 a {color: #888;}
7
+ .testimonials_grid h5 a img {width: 40px; display: inline; border-radius: 100px; margin-left: 5px; margin-right: 10px;}
8
+ .testimonials_grid .testimonial_content:before { border-color: rgba(194, 225, 245, 0); border-top-color: #ddd; border-width: 12px; margin-left: -31px;}
9
+ .testimonials_grid .testimonial_content:after, .testimonials_grid .testimonial_content:before {top: 100%; border: solid transparent; content: " "; height: 0; width: 0; position: absolute; pointer-events: none;}
10
+ .testimonials_grid .testimonial_content:after {border-color: rgba(136, 183, 213, 0); border-top-color: #f6f6f6; border-width: 12px;}
11
+ .testimonials_grid .testimonial_content:after, .testimonials_grid-one .testimonial_content:before {top: 100%; content: " "; height: 0; width: 0; position: absolute; pointer-events: none;}
extra-widgets/testimonials/testimonials.php ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: Testimonials
5
+ Description: Testimonials.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Testimonials extends SiteOrigin_Widget {
11
+ function __construct() {
12
+
13
+ parent::__construct(
14
+ 'testimonials',
15
+ __('Testimonials', 'addon-so-widgets-bundle'),
16
+ array(
17
+ 'description' => __('Testimonials.', 'addon-so-widgets-bundle'),
18
+ 'panels_groups' => array('addonso')
19
+ ),
20
+ array(
21
+
22
+ ),
23
+ array(
24
+ 'widget_title' => array(
25
+ 'type' => 'text',
26
+ 'label' => __('Widget Title', 'addon-so-widgets-bundle'),
27
+ 'default' => ''
28
+ ),
29
+
30
+
31
+ 'posts' => array(
32
+ 'type' => 'posts',
33
+ 'label' => __('Select Testimonials', 'addon-so-widgets-bundle'),
34
+ ),
35
+
36
+
37
+ 'layout_selection' => array(
38
+ 'type' => 'radio',
39
+ 'label' => __( 'Choose a style', 'addon-so-widgets-bundle' ),
40
+ 'default' => 'rotator',
41
+ 'options' => array(
42
+ 'rotator' => __( 'Testimonial Rotator', 'addon-so-widgets-bundle' ),
43
+ 'grid' => __( 'Testimonial Gird ', 'addon-so-widgets-bundle' ),
44
+ )
45
+ ),
46
+
47
+ 'rotaor_selection' => array(
48
+ 'type' => 'radio',
49
+ 'label' => __( 'Choose a Rotator Layout', 'addon-so-widgets-bundle' ),
50
+ 'default' => '',
51
+ 'options' => array(
52
+ '2' => __( 'Two Columns', 'addon-so-widgets-bundle' ),
53
+ '3' => __( 'Three Columns', 'addon-so-widgets-bundle' ),
54
+ '4' => __( 'Four Columns', 'addon-so-widgets-bundle' ),
55
+ '1' => __( 'Full Width', 'addon-so-widgets-bundle' ),
56
+ )
57
+ ),
58
+
59
+ 'grid_selection' => array(
60
+ 'type' => 'radio',
61
+ 'label' => __( 'Choose a Gird Layout', 'addon-so-widgets-bundle' ),
62
+ 'default' => '',
63
+ 'options' => array(
64
+ 'col-md-6' => __( 'Two Columns', 'addon-so-widgets-bundle' ),
65
+ 'col-md-4' => __( 'Three Columns', 'addon-so-widgets-bundle' ),
66
+ 'col-md-3' => __( 'Four Columns', 'addon-so-widgets-bundle' ),
67
+ 'col-md-12' => __( 'Full Width', 'addon-so-widgets-bundle' ),
68
+ )
69
+ ),
70
+
71
+
72
+ 'custom_class' => array(
73
+ 'type' => 'text',
74
+ 'label' => __('Custom Class', 'addon-so-widgets-bundle'),
75
+ 'default' => ''
76
+ ),
77
+
78
+ ),
79
+ plugin_dir_path(__FILE__)
80
+ );
81
+ }
82
+
83
+ function get_template_name($instance) {
84
+ return 'testimonials-template';
85
+ }
86
+
87
+ function get_style_name($instance) {
88
+ return 'testimonials-style';
89
+ }
90
+
91
+ }
92
+
93
+
94
+ add_action('wp_head','carousel_scripts');
95
+
96
+ function carousel_scripts()
97
+ {
98
+
99
+ echo "<script>
100
+
101
+
102
+
103
+ $(document).ready(function() {
104
+
105
+ $('.testimonial_carousel').owlCarousel({
106
+ autoPlay: 3000, //Set AutoPlay to 3 seconds
107
+ navigation:false,
108
+ items : 1
109
+ });
110
+
111
+
112
+
113
+ });
114
+
115
+ </script>";
116
+
117
+ }
118
+
119
+
120
+
121
+ function my_custom_post_product() {
122
+ $labels = array(
123
+ 'name' => _x( 'Testimonial', 'post type general name' ),
124
+ 'singular_name' => _x( 'Testimonial', 'post type singular name' ),
125
+ 'add_new' => _x( 'Add New', 'testimonial' ),
126
+ 'add_new_item' => __( 'Add New Testimonial' ),
127
+ 'edit_item' => __( 'Edit Testimonial' ),
128
+ 'new_item' => __( 'New Testimonial' ),
129
+ 'all_items' => __( 'All Testimonial' ),
130
+ 'view_item' => __( 'View Testimonial' ),
131
+ 'search_items' => __( 'Search Testimonial' ),
132
+ 'not_found' => __( 'No testimonial found' ),
133
+ 'not_found_in_trash' => __( 'No testimonial found in the Trash' ),
134
+ 'parent_item_colon' => '',
135
+ 'menu_name' => 'Testimonial'
136
+ );
137
+ $args = array(
138
+ 'labels' => $labels,
139
+ 'description' => 'Holds our products and product specific data',
140
+ 'public' => true,
141
+ 'menu_position' => 5,
142
+ 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
143
+ 'has_archive' => true,
144
+ );
145
+ register_post_type( 'testimonial', $args );
146
+ }
147
+ add_action( 'init', 'my_custom_post_product' );
148
+
149
+
150
+
151
+
152
+
153
+
154
+ siteorigin_widget_register('testimonials', __FILE__, 'Testimonials');
extra-widgets/testimonials/tpl/testimonials-template.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $widget_title = wp_kses_post($instance['widget_title']);
3
+ $layout_selection = wp_kses_post($instance['layout_selection']);
4
+ $grid_selection = wp_kses_post($instance['grid_selection']);
5
+ $query = siteorigin_widget_post_selector_process_query($instance['posts']);
6
+ $the_query = new WP_Query($query);
7
+ $custom_class = wp_kses_post($instance['custom_class']);
8
+ $titan = TitanFramework::getInstance( 'demo_ather' );
9
+
10
+
11
+ ?>
12
+
13
+
14
+ <?php if ($widget_title) { ?>
15
+ <h3 class="widget-title">
16
+ <span><?php echo $widget_title ?></span>
17
+ </h3>
18
+ <?php } ?>
19
+
20
+
21
+
22
+ <div class="clearfix"></div>
23
+
24
+ <?php if($layout_selection == 'rotator'): ?>
25
+ <div class="testimonial_carousel">
26
+
27
+ <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
28
+
29
+
30
+
31
+ <div class="testimonials_grid <?php echo $custom_class ?>">
32
+ <div class="testimonial_content big-col">
33
+ <p><?php echo the_content(); ?></p>
34
+ </div>
35
+ <h5>
36
+ <a href=" <?php
37
+ $testimonial_url = $titan->getOption( 'testimonial_url', get_the_ID() );
38
+ echo $testimonial_url;
39
+ ?>">
40
+ <?php
41
+ if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
42
+ the_post_thumbnail('thumbnail', array( 'class' => 'img-responsive img-circle'));
43
+ }
44
+ ?>
45
+ <?php
46
+ $testimonial_user = $titan->getOption( 'testimonial_user', get_the_ID() );
47
+ echo $testimonial_user;
48
+ ?>
49
+ </a>
50
+ </h5>
51
+ </div>
52
+
53
+ <?php endwhile; ?>
54
+ </div>
55
+
56
+ <?php elseif($layout_selection == 'grid'): ?>
57
+ <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
58
+
59
+ <div class="<?php echo $grid_selection; ?>">
60
+ <div class="testimonials_grid <?php echo $custom_class ?>">
61
+ <div class="testimonial_content big-col">
62
+ <p><?php echo the_content(); ?></p>
63
+ </div>
64
+ <h5>
65
+ <a href=" <?php
66
+ $testimonial_url = $titan->getOption( 'testimonial_url', get_the_ID() );
67
+ echo $testimonial_url;
68
+ ?>">
69
+ <?php
70
+ if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
71
+ the_post_thumbnail('thumbnail', array( 'class' => 'img-responsive img-circle'));
72
+ }
73
+ ?>
74
+ <?php
75
+ $testimonial_user = $titan->getOption( 'testimonial_user', get_the_ID() );
76
+ echo $testimonial_user;
77
+ ?>
78
+ </a>
79
+ </h5>
80
+ </div>
81
+ </div>
82
+
83
+
84
+ <?php endwhile; ?>
85
+ <?php endif; ?>
86
+
87
+
88
+ <div class="clearfix"></div>
extra-widgets/toggles/assets/banner.svg ADDED
@@ -0,0 +1,314 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg
2
+ version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="480px" height="240px"
6
+ viewBox="0 0 480 240" preserveAspectRatio="none">
7
+ <g>
8
+ <image width="480" height="240" xlink:href="data:image/jpg;base64,
9
+ /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABcAAD/4QNvaHR0cDov
10
+ L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl
11
+ aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4
12
+ OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6
13
+ NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
14
+ OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht
15
+ bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
16
+ aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w
17
+ PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9
18
+ InhtcC5kaWQ6NjA2RkRFMDA5OEVERTQxMUEzRTA5MzYxNEI0NDJDQTMiIHhtcE1NOkRvY3VtZW50
19
+ SUQ9InhtcC5kaWQ6MEUwNjY3MjFFREFBMTFFNEI2NkJGQkNERjNDODNGNTQiIHhtcE1NOkluc3Rh
20
+ bmNlSUQ9InhtcC5paWQ6MEUwNjY3MjBFREFBMTFFNEI2NkJGQkNERjNDODNGNTQiIHhtcDpDcmVh
21
+ dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZy
22
+ b20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0QjQ0
23
+ MkNBMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MDZGREUwMDk4RURFNDExQTNFMDkzNjE0
24
+ QjQ0MkNBMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94
25
+ cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQIBAQEB
26
+ AgICAgICAgIDAgICAgICAwMDAwMDAwMEBAQEBAQGBgYGBgcHBwcHBwcHBwcBAQEBAgICBAMDBAYF
27
+ BAUGBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEI
28
+ APAB4AMBEQACEQEDEQH/xADgAAEAAQQDAQEAAAAAAAAAAAAACAYHCQoBAgUDBAEBAAICAwEBAAAA
29
+ AAAAAAAAAAgJBgcBAgMFBBAAAQIDAgIRDwgJAgMJAAAAAAECAwQFBgcRCNESMtITk9NUlFUWlhdX
30
+ GAkZITFxkVKSo9S11VZ3lzgaUWFyg7PjNtZBIhQVNXWVWAqBMyMkJ+FCYrJDUzR0RhEAAQIBBQgM
31
+ CgkEAQQDAAAAAAECAxEEVAUGIVGS0lOTFxgxQXGR0RIyE9M2BwhSorJzo7PjdDUWYYGhseGCgxRV
32
+ wSJyFfDxQiMzYmMk/9oADAMBAAIRAxEAPwCG5bIUeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
34
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
36
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8OetNQqbFWDOVKBDjNXKvhMR0RzV+RyQ0dg/wBTBa87
37
+ TKhq2KsOcTlrXpsokrlTdRqOk+uQ2VZvsetLW0FI01mb3Q1SVHLxWIqX0V6tl+qU/Du3svtomkzG
38
+ cPh6brL0pMCJiGR6uds6EuchdIN29l9tE0mYzg03WXpSYETEGrnbOhLnIXSDdvZfbRNJmM4NN1l6
39
+ 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
310
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAP/9k=
311
+ "/>
312
+ </g>
313
+ </svg>
314
+
extra-widgets/toggles/styles/toggles-style.less ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ h1 {
4
+ text-align: center;
5
+ font-size: 35px;
6
+ font-size: 2.1875rem;
7
+ line-height: 1.8;
8
+ padding: 50px 0;
9
+ }
10
+
11
+ .accordion {
12
+ margin: 0; padding: 0; list-style: none;
13
+ }
14
+ .accordion li {
15
+ position: relative;
16
+ }
17
+ .accordion li p {
18
+ display: none;
19
+ }
20
+ .accordion a {
21
+ width: 100%;
22
+ display: block;
23
+ cursor: pointer;
24
+ line-height: 3;
25
+ text-indent: 15px;
26
+ user-select: none;
27
+ text-decoration: none;
28
+ padding: 0 20px;
29
+ }
30
+ .accordion a:after {
31
+ width: 8px;
32
+ height: 8px;
33
+ border-right: 1px solid #4a6e78;
34
+ border-bottom: 1px solid #4a6e78;
35
+ position: absolute;
36
+ left: 10px;
37
+ content: " ";
38
+ top: 17px;
39
+ transform: rotate(-45deg);
40
+ -webkit-transition: all 0.2s ease-in-out;
41
+ -moz-transition: all 0.2s ease-in-out;
42
+ transition: all 0.2s ease-in-out;
43
+ }
44
+ .accordion p {
45
+ padding: 10px;
46
+ }
47
+
48
+ a.active:after {
49
+ transform: rotate(45deg);
50
+ -webkit-transition: all 0.2s ease-in-out;
51
+ -moz-transition: all 0.2s ease-in-out;
52
+ transition: all 0.2s ease-in-out;
53
+ }
54
+
55
+
56
+
extra-widgets/toggles/toggles.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Widget Name: Toggles
5
+ Description: This widget Display Toggle.
6
+ Author: Ingenious Solutions
7
+ Author URI: http://ingenious-web.com/
8
+ */
9
+
10
+ class Toggles extends SiteOrigin_Widget {
11
+ function __construct() {
12
+
13
+ parent::__construct(
14
+ 'toggles',
15
+ __('Toggle', 'addon-so-widgets-bundle'),
16
+ array(
17
+ 'description' => __('Toggle Component.', 'addon-so-widgets-bundle'),
18
+ 'panels_groups' => array('addonso')
19
+ ),
20
+ array(
21
+
22
+ ),
23
+ array(
24
+ 'widget_title' => array(
25
+ 'type' => 'text',
26
+ 'label' => __('Widget Title', 'addon-so-widgets-bundle'),
27
+ 'default' => ''
28
+ ),
29
+
30
+
31
+ 'toggle_repeater' => array(
32
+ 'type' => 'repeater',
33
+ 'label' => __( 'Toggles' , 'addon-so-widgets-bundle' ),
34
+ 'item_name' => __( 'Toggle', 'addon-so-widgets-bundle' ),
35
+ 'item_label' => array(
36
+ 'selector' => "[id*='repeat_text']",
37
+ 'update_event' => 'change',
38
+ 'value_method' => 'val'
39
+ ),
40
+ 'fields' => array(
41
+
42
+ 'toggle_title' => array(
43
+ 'type' => 'text',
44
+ 'label' => __('Toggle Title', 'addon-so-widgets-bundle'),
45
+ 'default' => ''
46
+ ),
47
+
48
+
49
+ 'toggle_content' => array(
50
+ 'type' => 'textarea',
51
+ 'label' => __( 'Toggle Content', 'addon-so-widgets-bundle' ),
52
+ 'default' => '',
53
+ 'allow_html_formatting' => true,
54
+ 'rows' => 10
55
+ ),
56
+
57
+
58
+ )
59
+ ),
60
+
61
+ 'custom_class' => array(
62
+ 'type' => 'text',
63
+ 'label' => __('Custom Class', 'addon-so-widgets-bundle'),
64
+ 'default' => ''
65
+ ),
66
+
67
+
68
+
69
+
70
+ ),
71
+ plugin_dir_path(__FILE__)
72
+ );
73
+ }
74
+
75
+ function get_template_name($instance) {
76
+ return 'toggles-template';
77
+ }
78
+
79
+ function get_style_name($instance) {
80
+ return 'toggles-style';
81
+ }
82
+
83
+ }
84
+
85
+
86
+ siteorigin_widget_register('toggles', __FILE__, 'Toggles');
extra-widgets/toggles/tpl/toggles-template.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $widget_title = wp_kses_post($instance['widget_title']);
3
+ $custom_class = wp_kses_post($instance['custom_class']);
4
+ ?>
5
+
6
+
7
+ <?php if ($widget_title) { ?>
8
+ <h3 class="widget-title">
9
+ <span><?php echo $widget_title ?></span>
10
+ </h3>
11
+ <?php } ?>
12
+
13
+
14
+ <ul class="accordion <?php echo $custom_class; ?>">
15
+ <?php foreach( $instance['toggle_repeater'] as $i => $toggle_repeater ) : ?>
16
+ <li>
17
+ <a><?php echo $toggle_repeater['toggle_title'] ?></a>
18
+ <p> <?php echo $toggle_repeater['toggle_content'] ?></p>
19
+ </li>
20
+ <?php endforeach; ?>
21
+ </ul> <!-- / accordion -->
22
+
fonts/glyphicons-halflings-regular.eot ADDED
Binary file
fonts/glyphicons-halflings-regular.svg ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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></metadata>
5
+ <defs>
6
+ <font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
7
+ <font-face units-per-em="1200" ascent="960" descent="-240" />
8
+ <missing-glyph horiz-adv-x="500" />
9
+ <glyph horiz-adv-x="0" />
10
+ <glyph horiz-adv-x="400" />
11
+ <glyph unicode=" " />
12
+ <glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
13
+ <glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
14
+ <glyph unicode="&#xa0;" />
15
+ <glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
16
+ <glyph unicode="&#x2000;" horiz-adv-x="650" />
17
+ <glyph unicode="&#x2001;" horiz-adv-x="1300" />
18
+ <glyph unicode="&#x2002;" horiz-adv-x="650" />
19
+ <glyph unicode="&#x2003;" horiz-adv-x="1300" />
20
+ <glyph unicode="&#x2004;" horiz-adv-x="433" />
21
+ <glyph unicode="&#x2005;" horiz-adv-x="325" />
22
+ <glyph unicode="&#x2006;" horiz-adv-x="216" />
23
+ <glyph unicode="&#x2007;" horiz-adv-x="216" />
24
+ <glyph unicode="&#x2008;" horiz-adv-x="162" />
25
+ <glyph unicode="&#x2009;" horiz-adv-x="260" />
26
+ <glyph unicode="&#x200a;" horiz-adv-x="72" />
27
+ <glyph unicode="&#x202f;" horiz-adv-x="260" />
28
+ <glyph unicode="&#x205f;" horiz-adv-x="325" />
29
+ <glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
30
+ <glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
31
+ <glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
32
+ <glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
33
+ <glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
34
+ <glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
35
+ <glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
36
+ <glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
37
+ <glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
38
+ <glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
39
+ <glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
40
+ <glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
41
+ <glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
42
+ <glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
43
+ <glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
44
+ <glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
45
+ <glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
46
+ <glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
47
+ <glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
48
+ <glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
49
+ <glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
50
+ <glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
51
+ <glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
52
+ <glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
53
+ <glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
54
+ <glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
55
+ <glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
56
+ <glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
57
+ <glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
58
+ <glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
59
+ <glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
60
+ <glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
61
+ <glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
62
+ <glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
63
+ <glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
64
+ <glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
65
+ <glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
66
+ <glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
67
+ <glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
68
+ <glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
69
+ <glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
70
+ <glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
71
+ <glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
72
+ <glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
73
+ <glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
74
+ <glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
75
+ <glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
76
+ <glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
77
+ <glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
78
+ <glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
79
+ <glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
80
+ <glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
81
+ <glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
82
+ <glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
83
+ <glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
84
+ <glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
85
+ <glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
86
+ <glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
87
+ <glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
88
+ <glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
89
+ <glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
90
+ <glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
91
+ <glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
92
+ <glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
93
+ <glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
94
+ <glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
95
+ <glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
96
+ <glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
97
+ <glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
98
+ <glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
99
+ <glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
100
+ <glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
101
+ <glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
102
+ <glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
103
+ <glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
104
+ <glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
105
+ <glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
106
+ <glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
107
+ <glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
108
+ <glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
109
+ <glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
110
+ <glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
111
+ <glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
112
+ <glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
113
+ <glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
114
+ <glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
115
+ <glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
116
+ <glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
117
+ <glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
118
+ <glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
119
+ <glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
120
+ <glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
121
+ <glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
122
+ <glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
123
+ <glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
124
+ <glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
125
+ <glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
126
+ <glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
127
+ <glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
128
+ <glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
129
+ <glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
130
+ <glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
131
+ <glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
132
+ <glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
133
+ <glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
134
+ <glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
135
+ <glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
136
+ <glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
137
+ <glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
138
+ <glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
139
+ <glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
140
+ <glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
141
+ <glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
142
+ <glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
143
+ <glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
144
+ <glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
145
+ <glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
146
+ <glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
147
+ <glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
148
+ <glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
149
+ <glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
150
+ <glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
151
+ <glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
152
+ <glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
153
+ <glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
154
+ <glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
155
+ <glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
156
+ <glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
157
+ <glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
158
+ <glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
159
+ <glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
160
+ <glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
161
+ <glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
162
+ <glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
163
+ <glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
164
+ <glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
165
+ <glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
166
+ <glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
167
+ <glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
168
+ <glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
169
+ <glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
170
+ <glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
171
+ <glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
172
+ <glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
173
+ <glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
174
+ <glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
175
+ <glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
176
+ <glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
177
+ <glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
178
+ <glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
179
+ <glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
180
+ <glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
181
+ <glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
182
+ <glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
183
+ <glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
184
+ <glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
185
+ <glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
186
+ <glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
187
+ <glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
188
+ <glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
189
+ <glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
190
+ <glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
191
+ <glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
192
+ <glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
193
+ <glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
194
+ <glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
195
+ <glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
196
+ <glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
197
+ <glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
198
+ <glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
199
+ <glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
200
+ <glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
201
+ <glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
202
+ <glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
203
+ <glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
204
+ <glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
205
+ <glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
206
+ <glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
207
+ <glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
208
+ <glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
209
+ <glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
210
+ <glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
211
+ <glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
212
+ <glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
213
+ <glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
214
+ <glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
215
+ <glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
216
+ <glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
217
+ <glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
218
+ <glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
219
+ <glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
220
+ <glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
221
+ <glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
222
+ <glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
223
+ <glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
224
+ <glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
225
+ <glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
226
+ <glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
227
+ <glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
228
+ <glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
229
+ <glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
230
+ <glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
231
+ <glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
232
+ <glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
233
+ <glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
234
+ <glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
235
+ <glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
236
+ <glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
237
+ <glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
238
+ <glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
239
+ <glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
240
+ <glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
241
+ <glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
242
+ <glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
243
+ <glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
244
+ <glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
245
+ <glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
246
+ <glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
247
+ <glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
248
+ <glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
249
+ <glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
250
+ <glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
251
+ <glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
252
+ <glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
253
+ <glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
254
+ <glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
255
+ <glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
256
+ <glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
257
+ <glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
258
+ <glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
259
+ <glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
260
+ <glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
261
+ <glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
262
+ <glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
263
+ <glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
264
+ <glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
265
+ <glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
266
+ <glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
267
+ <glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
268
+ <glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
269
+ <glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
270
+ <glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
271
+ <glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
272
+ <glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
273
+ <glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
274
+ <glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
275
+ <glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
276
+ <glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
277
+ <glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
278
+ <glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
279
+ <glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
280
+ <glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
281
+ <glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
282
+ <glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
283
+ <glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
284
+ <glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
285
+ <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
286
+ <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
287
+ </font>
288
+ </defs></svg>
fonts/glyphicons-halflings-regular.ttf ADDED
Binary file
fonts/glyphicons-halflings-regular.woff ADDED
Binary file
fonts/glyphicons-halflings-regular.woff2 ADDED
Binary file
js/bootstrap.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
3
+ * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+ if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.2",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.2",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.2",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.2",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.options.backdrop&&d.adjustBackdrop(),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$element.find(".modal-dialog").one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.2",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=this.tip(),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.2",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.2",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.2",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()
7
+ }var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.2",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
js/jquery-1.9.1.min.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
2
+ //@ sourceMappingURL=jquery.min.map
3
+ */(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;
4
+ return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&&gt(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l)
5
+ }b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
js/jquery-2.1.1.js ADDED
@@ -0,0 +1,9190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery JavaScript Library v2.1.1
3
+ * http://jquery.com/
4
+ *
5
+ * Includes Sizzle.js
6
+ * http://sizzlejs.com/
7
+ *
8
+ * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
9
+ * Released under the MIT license
10
+ * http://jquery.org/license
11
+ *
12
+ * Date: 2014-05-01T17:11Z
13
+ */
14
+
15
+ (function( global, factory ) {
16
+
17
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
18
+ // For CommonJS and CommonJS-like environments where a proper window is present,
19
+ // execute the factory and get jQuery
20
+ // For environments that do not inherently posses a window with a document
21
+ // (such as Node.js), expose a jQuery-making factory as module.exports
22
+ // This accentuates the need for the creation of a real window
23
+ // e.g. var jQuery = require("jquery")(window);
24
+ // See ticket #14549 for more info
25
+ module.exports = global.document ?
26
+ factory( global, true ) :
27
+ function( w ) {
28
+ if ( !w.document ) {
29
+ throw new Error( "jQuery requires a window with a document" );
30
+ }
31
+ return factory( w );
32
+ };
33
+ } else {
34
+ factory( global );
35
+ }
36
+
37
+ // Pass this if window is not defined yet
38
+ }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
39
+
40
+ // Can't do this because several apps including ASP.NET trace
41
+ // the stack via arguments.caller.callee and Firefox dies if
42
+ // you try to trace through "use strict" call chains. (#13335)
43
+ // Support: Firefox 18+
44
+ //
45
+
46
+ var arr = [];
47
+
48
+ var slice = arr.slice;
49
+
50
+ var concat = arr.concat;
51
+
52
+ var push = arr.push;
53
+
54
+ var indexOf = arr.indexOf;
55
+
56
+ var class2type = {};
57
+
58
+ var toString = class2type.toString;
59
+
60
+ var hasOwn = class2type.hasOwnProperty;
61
+
62
+ var support = {};
63
+
64
+
65
+
66
+ var
67
+ // Use the correct document accordingly with window argument (sandbox)
68
+ document = window.document,
69
+
70
+ version = "2.1.1",
71
+
72
+ // Define a local copy of jQuery
73
+ jQuery = function( selector, context ) {
74
+ // The jQuery object is actually just the init constructor 'enhanced'
75
+ // Need init if jQuery is called (just allow error to be thrown if not included)
76
+ return new jQuery.fn.init( selector, context );
77
+ },
78
+
79
+ // Support: Android<4.1
80
+ // Make sure we trim BOM and NBSP
81
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
82
+
83
+ // Matches dashed string for camelizing
84
+ rmsPrefix = /^-ms-/,
85
+ rdashAlpha = /-([\da-z])/gi,
86
+
87
+ // Used by jQuery.camelCase as callback to replace()
88
+ fcamelCase = function( all, letter ) {
89
+ return letter.toUpperCase();
90
+ };
91
+
92
+ jQuery.fn = jQuery.prototype = {
93
+ // The current version of jQuery being used
94
+ jquery: version,
95
+
96
+ constructor: jQuery,
97
+
98
+ // Start with an empty selector
99
+ selector: "",
100
+
101
+ // The default length of a jQuery object is 0
102
+ length: 0,
103
+
104
+ toArray: function() {
105
+ return slice.call( this );
106
+ },
107
+
108
+ // Get the Nth element in the matched element set OR
109
+ // Get the whole matched element set as a clean array
110
+ get: function( num ) {
111
+ return num != null ?
112
+
113
+ // Return just the one element from the set
114
+ ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
115
+
116
+ // Return all the elements in a clean array
117
+ slice.call( this );
118
+ },
119
+
120
+ // Take an array of elements and push it onto the stack
121
+ // (returning the new matched element set)
122
+ pushStack: function( elems ) {
123
+
124
+ // Build a new jQuery matched element set
125
+ var ret = jQuery.merge( this.constructor(), elems );
126
+
127
+ // Add the old object onto the stack (as a reference)
128
+ ret.prevObject = this;
129
+ ret.context = this.context;
130
+
131
+ // Return the newly-formed element set
132
+ return ret;
133
+ },
134
+
135
+ // Execute a callback for every element in the matched set.
136
+ // (You can seed the arguments with an array of args, but this is
137
+ // only used internally.)
138
+ each: function( callback, args ) {
139
+ return jQuery.each( this, callback, args );
140
+ },
141
+
142
+ map: function( callback ) {
143
+ return this.pushStack( jQuery.map(this, function( elem, i ) {
144
+ return callback.call( elem, i, elem );
145
+ }));
146
+ },
147
+
148
+ slice: function() {
149
+ return this.pushStack( slice.apply( this, arguments ) );
150
+ },
151
+
152
+ first: function() {
153
+ return this.eq( 0 );
154
+ },
155
+
156
+ last: function() {
157
+ return this.eq( -1 );
158
+ },
159
+
160
+ eq: function( i ) {
161
+ var len = this.length,
162
+ j = +i + ( i < 0 ? len : 0 );
163
+ return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
164
+ },
165
+
166
+ end: function() {
167
+ return this.prevObject || this.constructor(null);
168
+ },
169
+
170
+ // For internal use only.
171
+ // Behaves like an Array's method, not like a jQuery method.
172
+ push: push,
173
+ sort: arr.sort,
174
+ splice: arr.splice
175
+ };
176
+
177
+ jQuery.extend = jQuery.fn.extend = function() {
178
+ var options, name, src, copy, copyIsArray, clone,
179
+ target = arguments[0] || {},
180
+ i = 1,
181
+ length = arguments.length,
182
+ deep = false;
183
+
184
+ // Handle a deep copy situation
185
+ if ( typeof target === "boolean" ) {
186
+ deep = target;
187
+
188
+ // skip the boolean and the target
189
+ target = arguments[ i ] || {};
190
+ i++;
191
+ }
192
+
193
+ // Handle case when target is a string or something (possible in deep copy)
194
+ if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
195
+ target = {};
196
+ }
197
+
198
+ // extend jQuery itself if only one argument is passed
199
+ if ( i === length ) {
200
+ target = this;
201
+ i--;
202
+ }
203
+
204
+ for ( ; i < length; i++ ) {
205
+ // Only deal with non-null/undefined values
206
+ if ( (options = arguments[ i ]) != null ) {
207
+ // Extend the base object
208
+ for ( name in options ) {
209
+ src = target[ name ];
210
+ copy = options[ name ];
211
+
212
+ // Prevent never-ending loop
213
+ if ( target === copy ) {
214
+ continue;
215
+ }
216
+
217
+ // Recurse if we're merging plain objects or arrays
218
+ if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
219
+ if ( copyIsArray ) {
220
+ copyIsArray = false;
221
+ clone = src && jQuery.isArray(src) ? src : [];
222
+
223
+ } else {
224
+ clone = src && jQuery.isPlainObject(src) ? src : {};
225
+ }
226
+
227
+ // Never move original objects, clone them
228
+ target[ name ] = jQuery.extend( deep, clone, copy );
229
+
230
+ // Don't bring in undefined values
231
+ } else if ( copy !== undefined ) {
232
+ target[ name ] = copy;
233
+ }
234
+ }
235
+ }
236
+ }
237
+
238
+ // Return the modified object
239
+ return target;
240
+ };
241
+
242
+ jQuery.extend({
243
+ // Unique for each copy of jQuery on the page
244
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
245
+
246
+ // Assume jQuery is ready without the ready module
247
+ isReady: true,
248
+
249
+ error: function( msg ) {
250
+ throw new Error( msg );
251
+ },
252
+
253
+ noop: function() {},
254
+
255
+ // See test/unit/core.js for details concerning isFunction.
256
+ // Since version 1.3, DOM methods and functions like alert
257
+ // aren't supported. They return false on IE (#2968).
258
+ isFunction: function( obj ) {
259
+ return jQuery.type(obj) === "function";
260
+ },
261
+
262
+ isArray: Array.isArray,
263
+
264
+ isWindow: function( obj ) {
265
+ return obj != null && obj === obj.window;
266
+ },
267
+
268
+ isNumeric: function( obj ) {
269
+ // parseFloat NaNs numeric-cast false positives (null|true|false|"")
270
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
271
+ // subtraction forces infinities to NaN
272
+ return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0;
273
+ },
274
+
275
+ isPlainObject: function( obj ) {
276
+ // Not plain objects:
277
+ // - Any object or value whose internal [[Class]] property is not "[object Object]"
278
+ // - DOM nodes
279
+ // - window
280
+ if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
281
+ return false;
282
+ }
283
+
284
+ if ( obj.constructor &&
285
+ !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
286
+ return false;
287
+ }
288
+
289
+ // If the function hasn't returned already, we're confident that
290
+ // |obj| is a plain object, created by {} or constructed with new Object
291
+ return true;
292
+ },
293
+
294
+ isEmptyObject: function( obj ) {
295
+ var name;
296
+ for ( name in obj ) {
297
+ return false;
298
+ }
299
+ return true;
300
+ },
301
+
302
+ type: function( obj ) {
303
+ if ( obj == null ) {
304
+ return obj + "";
305
+ }
306
+ // Support: Android < 4.0, iOS < 6 (functionish RegExp)
307
+ return typeof obj === "object" || typeof obj === "function" ?
308
+ class2type[ toString.call(obj) ] || "object" :
309
+ typeof obj;
310
+ },
311
+
312
+ // Evaluates a script in a global context
313
+ globalEval: function( code ) {
314
+ var script,
315
+ indirect = eval;
316
+
317
+ code = jQuery.trim( code );
318
+
319
+ if ( code ) {
320
+ // If the code includes a valid, prologue position
321
+ // strict mode pragma, execute code by injecting a
322
+ // script tag into the document.
323
+ if ( code.indexOf("use strict") === 1 ) {
324
+ script = document.createElement("script");
325
+ script.text = code;
326
+ document.head.appendChild( script ).parentNode.removeChild( script );
327
+ } else {
328
+ // Otherwise, avoid the DOM node creation, insertion
329
+ // and removal by using an indirect global eval
330
+ indirect( code );
331
+ }
332
+ }
333
+ },
334
+
335
+ // Convert dashed to camelCase; used by the css and data modules
336
+ // Microsoft forgot to hump their vendor prefix (#9572)
337
+ camelCase: function( string ) {
338
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
339
+ },
340
+
341
+ nodeName: function( elem, name ) {
342
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
343
+ },
344
+
345
+ // args is for internal usage only
346
+ each: function( obj, callback, args ) {
347
+ var value,
348
+ i = 0,
349
+ length = obj.length,
350
+ isArray = isArraylike( obj );
351
+
352
+ if ( args ) {
353
+ if ( isArray ) {
354
+ for ( ; i < length; i++ ) {
355
+ value = callback.apply( obj[ i ], args );
356
+
357
+ if ( value === false ) {
358
+ break;
359
+ }
360
+ }
361
+ } else {
362
+ for ( i in obj ) {
363
+ value = callback.apply( obj[ i ], args );
364
+
365
+ if ( value === false ) {
366
+ break;
367
+ }
368
+ }
369
+ }
370
+
371
+ // A special, fast, case for the most common use of each
372
+ } else {
373
+ if ( isArray ) {
374
+ for ( ; i < length; i++ ) {
375
+ value = callback.call( obj[ i ], i, obj[ i ] );
376
+
377
+ if ( value === false ) {
378
+ break;
379
+ }
380
+ }
381
+ } else {
382
+ for ( i in obj ) {
383
+ value = callback.call( obj[ i ], i, obj[ i ] );
384
+
385
+ if ( value === false ) {
386
+ break;
387
+ }
388
+ }
389
+ }
390
+ }
391
+
392
+ return obj;
393
+ },
394
+
395
+ // Support: Android<4.1
396
+ trim: function( text ) {
397
+ return text == null ?
398
+ "" :
399
+ ( text + "" ).replace( rtrim, "" );
400
+ },
401
+
402
+ // results is for internal usage only
403
+ makeArray: function( arr, results ) {
404
+ var ret = results || [];
405
+
406
+ if ( arr != null ) {
407
+ if ( isArraylike( Object(arr) ) ) {
408
+ jQuery.merge( ret,
409
+ typeof arr === "string" ?
410
+ [ arr ] : arr
411
+ );
412
+ } else {
413
+ push.call( ret, arr );
414
+ }
415
+ }
416
+
417
+ return ret;
418
+ },
419
+
420
+ inArray: function( elem, arr, i ) {
421
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
422
+ },
423
+
424
+ merge: function( first, second ) {
425
+ var len = +second.length,
426
+ j = 0,
427
+ i = first.length;
428
+
429
+ for ( ; j < len; j++ ) {
430
+ first[ i++ ] = second[ j ];
431
+ }
432
+
433
+ first.length = i;
434
+
435
+ return first;
436
+ },
437
+
438
+ grep: function( elems, callback, invert ) {
439
+ var callbackInverse,
440
+ matches = [],
441
+ i = 0,
442
+ length = elems.length,
443
+ callbackExpect = !invert;
444
+
445
+ // Go through the array, only saving the items
446
+ // that pass the validator function
447
+ for ( ; i < length; i++ ) {
448
+ callbackInverse = !callback( elems[ i ], i );
449
+ if ( callbackInverse !== callbackExpect ) {
450
+ matches.push( elems[ i ] );
451
+ }
452
+ }
453
+
454
+ return matches;
455
+ },
456
+
457
+ // arg is for internal usage only
458
+ map: function( elems, callback, arg ) {
459
+ var value,
460
+ i = 0,
461
+ length = elems.length,
462
+ isArray = isArraylike( elems ),
463
+ ret = [];
464
+
465
+ // Go through the array, translating each of the items to their new values
466
+ if ( isArray ) {
467
+ for ( ; i < length; i++ ) {
468
+ value = callback( elems[ i ], i, arg );
469
+
470
+ if ( value != null ) {
471
+ ret.push( value );
472
+ }
473
+ }
474
+
475
+ // Go through every key on the object,
476
+ } else {
477
+ for ( i in elems ) {
478
+ value = callback( elems[ i ], i, arg );
479
+
480
+ if ( value != null ) {
481
+ ret.push( value );
482
+ }
483
+ }
484
+ }
485
+
486
+ // Flatten any nested arrays
487
+ return concat.apply( [], ret );
488
+ },
489
+
490
+ // A global GUID counter for objects
491
+ guid: 1,
492
+
493
+ // Bind a function to a context, optionally partially applying any
494
+ // arguments.
495
+ proxy: function( fn, context ) {
496
+ var tmp, args, proxy;
497
+
498
+ if ( typeof context === "string" ) {
499
+ tmp = fn[ context ];
500
+ context = fn;
501
+ fn = tmp;
502
+ }
503
+
504
+ // Quick check to determine if target is callable, in the spec
505
+ // this throws a TypeError, but we will just return undefined.
506
+ if ( !jQuery.isFunction( fn ) ) {
507
+ return undefined;
508
+ }
509
+
510
+ // Simulated bind
511
+ args = slice.call( arguments, 2 );
512
+ proxy = function() {
513
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
514
+ };
515
+
516
+ // Set the guid of unique handler to the same of original handler, so it can be removed
517
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
518
+
519
+ return proxy;
520
+ },
521
+
522
+ now: Date.now,
523
+
524
+ // jQuery.support is not used in Core but other projects attach their
525
+ // properties to it so it needs to exist.
526
+ support: support
527
+ });
528
+
529
+ // Populate the class2type map
530
+ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
531
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
532
+ });
533
+
534
+ function isArraylike( obj ) {
535
+ var length = obj.length,
536
+ type = jQuery.type( obj );
537
+
538
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
539
+ return false;
540
+ }
541
+
542
+ if ( obj.nodeType === 1 && length ) {
543
+ return true;
544
+ }
545
+
546
+ return type === "array" || length === 0 ||
547
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
548
+ }
549
+ var Sizzle =
550
+ /*!
551
+ * Sizzle CSS Selector Engine v1.10.19
552
+ * http://sizzlejs.com/
553
+ *
554
+ * Copyright 2013 jQuery Foundation, Inc. and other contributors
555
+ * Released under the MIT license
556
+ * http://jquery.org/license
557
+ *
558
+ * Date: 2014-04-18
559
+ */
560
+ (function( window ) {
561
+
562
+ var i,
563
+ support,
564
+ Expr,
565
+ getText,
566
+ isXML,
567
+ tokenize,
568
+ compile,
569
+ select,
570
+ outermostContext,
571
+ sortInput,
572
+ hasDuplicate,
573
+
574
+ // Local document vars
575
+ setDocument,
576
+ document,
577
+ docElem,
578
+ documentIsHTML,
579
+ rbuggyQSA,
580
+ rbuggyMatches,
581
+ matches,
582
+ contains,
583
+
584
+ // Instance-specific data
585
+ expando = "sizzle" + -(new Date()),
586
+ preferredDoc = window.document,
587
+ dirruns = 0,
588
+ done = 0,
589
+ classCache = createCache(),
590
+ tokenCache = createCache(),
591
+ compilerCache = createCache(),
592
+ sortOrder = function( a, b ) {
593
+ if ( a === b ) {
594
+ hasDuplicate = true;
595
+ }
596
+ return 0;
597
+ },
598
+
599
+ // General-purpose constants
600
+ strundefined = typeof undefined,
601
+ MAX_NEGATIVE = 1 << 31,
602
+
603
+ // Instance methods
604
+ hasOwn = ({}).hasOwnProperty,
605
+ arr = [],
606
+ pop = arr.pop,
607
+ push_native = arr.push,
608
+ push = arr.push,
609
+ slice = arr.slice,
610
+ // Use a stripped-down indexOf if we can't use a native one
611
+ indexOf = arr.indexOf || function( elem ) {
612
+ var i = 0,
613
+ len = this.length;
614
+ for ( ; i < len; i++ ) {
615
+ if ( this[i] === elem ) {
616
+ return i;
617
+ }
618
+ }
619
+ return -1;
620
+ },
621
+
622
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
623
+
624
+ // Regular expressions
625
+
626
+ // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
627
+ whitespace = "[\\x20\\t\\r\\n\\f]",
628
+ // http://www.w3.org/TR/css3-syntax/#characters
629
+ characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
630
+
631
+ // Loosely modeled on CSS identifier characters
632
+ // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
633
+ // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
634
+ identifier = characterEncoding.replace( "w", "w#" ),
635
+
636
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
637
+ attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace +
638
+ // Operator (capture 2)
639
+ "*([*^$|!~]?=)" + whitespace +
640
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
641
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
642
+ "*\\]",
643
+
644
+ pseudos = ":(" + characterEncoding + ")(?:\\((" +
645
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
646
+ // 1. quoted (capture 3; capture 4 or capture 5)
647
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
648
+ // 2. simple (capture 6)
649
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
650
+ // 3. anything else (capture 2)
651
+ ".*" +
652
+ ")\\)|)",
653
+
654
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
655
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
656
+
657
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
658
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
659
+
660
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
661
+
662
+ rpseudo = new RegExp( pseudos ),
663
+ ridentifier = new RegExp( "^" + identifier + "$" ),
664
+
665
+ matchExpr = {
666
+ "ID": new RegExp( "^#(" + characterEncoding + ")" ),
667
+ "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
668
+ "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
669
+ "ATTR": new RegExp( "^" + attributes ),
670
+ "PSEUDO": new RegExp( "^" + pseudos ),
671
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
672
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
673
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
674
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
675
+ // For use in libraries implementing .is()
676
+ // We use this for POS matching in `select`
677
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
678
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
679
+ },
680
+
681
+ rinputs = /^(?:input|select|textarea|button)$/i,
682
+ rheader = /^h\d$/i,
683
+
684
+ rnative = /^[^{]+\{\s*\[native \w/,
685
+
686
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
687
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
688
+
689
+ rsibling = /[+~]/,
690
+ rescape = /'|\\/g,
691
+
692
+ // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
693
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
694
+ funescape = function( _, escaped, escapedWhitespace ) {
695
+ var high = "0x" + escaped - 0x10000;
696
+ // NaN means non-codepoint
697
+ // Support: Firefox<24
698
+ // Workaround erroneous numeric interpretation of +"0x"
699
+ return high !== high || escapedWhitespace ?
700
+ escaped :
701
+ high < 0 ?
702
+ // BMP codepoint
703
+ String.fromCharCode( high + 0x10000 ) :
704
+ // Supplemental Plane codepoint (surrogate pair)
705
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
706
+ };
707
+
708
+ // Optimize for push.apply( _, NodeList )
709
+ try {
710
+ push.apply(
711
+ (arr = slice.call( preferredDoc.childNodes )),
712
+ preferredDoc.childNodes
713
+ );
714
+ // Support: Android<4.0
715
+ // Detect silently failing push.apply
716
+ arr[ preferredDoc.childNodes.length ].nodeType;
717
+ } catch ( e ) {
718
+ push = { apply: arr.length ?
719
+
720
+ // Leverage slice if possible
721
+ function( target, els ) {
722
+ push_native.apply( target, slice.call(els) );
723
+ } :
724
+
725
+ // Support: IE<9
726
+ // Otherwise append directly
727
+ function( target, els ) {
728
+ var j = target.length,
729
+ i = 0;
730
+ // Can't trust NodeList.length
731
+ while ( (target[j++] = els[i++]) ) {}
732
+ target.length = j - 1;
733
+ }
734
+ };
735
+ }
736
+
737
+ function Sizzle( selector, context, results, seed ) {
738
+ var match, elem, m, nodeType,
739
+ // QSA vars
740
+ i, groups, old, nid, newContext, newSelector;
741
+
742
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
743
+ setDocument( context );
744
+ }
745
+
746
+ context = context || document;
747
+ results = results || [];
748
+
749
+ if ( !selector || typeof selector !== "string" ) {
750
+ return results;
751
+ }
752
+
753
+ if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
754
+ return [];
755
+ }
756
+
757
+ if ( documentIsHTML && !seed ) {
758
+
759
+ // Shortcuts
760
+ if ( (match = rquickExpr.exec( selector )) ) {
761
+ // Speed-up: Sizzle("#ID")
762
+ if ( (m = match[1]) ) {
763
+ if ( nodeType === 9 ) {
764
+ elem = context.getElementById( m );
765
+ // Check parentNode to catch when Blackberry 4.6 returns
766
+ // nodes that are no longer in the document (jQuery #6963)
767
+ if ( elem && elem.parentNode ) {
768
+ // Handle the case where IE, Opera, and Webkit return items
769
+ // by name instead of ID
770
+ if ( elem.id === m ) {
771
+ results.push( elem );
772
+ return results;
773
+ }
774
+ } else {
775
+ return results;
776
+ }
777
+ } else {
778
+ // Context is not a document
779
+ if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
780
+ contains( context, elem ) && elem.id === m ) {
781
+ results.push( elem );
782
+ return results;
783
+ }
784
+ }
785
+
786
+ // Speed-up: Sizzle("TAG")
787
+ } else if ( match[2] ) {
788
+ push.apply( results, context.getElementsByTagName( selector ) );
789
+ return results;
790
+
791
+ // Speed-up: Sizzle(".CLASS")
792
+ } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
793
+ push.apply( results, context.getElementsByClassName( m ) );
794
+ return results;
795
+ }
796
+ }
797
+
798
+ // QSA path
799
+ if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
800
+ nid = old = expando;
801
+ newContext = context;
802
+ newSelector = nodeType === 9 && selector;
803
+
804
+ // qSA works strangely on Element-rooted queries
805
+ // We can work around this by specifying an extra ID on the root
806
+ // and working up from there (Thanks to Andrew Dupont for the technique)
807
+ // IE 8 doesn't work on object elements
808
+ if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
809
+ groups = tokenize( selector );
810
+
811
+ if ( (old = context.getAttribute("id")) ) {
812
+ nid = old.replace( rescape, "\\$&" );
813
+ } else {
814
+ context.setAttribute( "id", nid );
815
+ }
816
+ nid = "[id='" + nid + "'] ";
817
+
818
+ i = groups.length;
819
+ while ( i-- ) {
820
+ groups[i] = nid + toSelector( groups[i] );
821
+ }
822
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
823
+ newSelector = groups.join(",");
824
+ }
825
+
826
+ if ( newSelector ) {
827
+ try {
828
+ push.apply( results,
829
+ newContext.querySelectorAll( newSelector )
830
+ );
831
+ return results;
832
+ } catch(qsaError) {
833
+ } finally {
834
+ if ( !old ) {
835
+ context.removeAttribute("id");
836
+ }
837
+ }
838
+ }
839
+ }
840
+ }
841
+
842
+ // All others
843
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
844
+ }
845
+
846
+ /**
847
+ * Create key-value caches of limited size
848
+ * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
849
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
850
+ * deleting the oldest entry
851
+ */
852
+ function createCache() {
853
+ var keys = [];
854
+
855
+ function cache( key, value ) {
856
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
857
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
858
+ // Only keep the most recent entries
859
+ delete cache[ keys.shift() ];
860
+ }
861
+ return (cache[ key + " " ] = value);
862
+ }
863
+ return cache;
864
+ }
865
+
866
+ /**
867
+ * Mark a function for special use by Sizzle
868
+ * @param {Function} fn The function to mark
869
+ */
870
+ function markFunction( fn ) {
871
+ fn[ expando ] = true;
872
+ return fn;
873
+ }
874
+
875
+ /**
876
+ * Support testing using an element
877
+ * @param {Function} fn Passed the created div and expects a boolean result
878
+ */
879
+ function assert( fn ) {
880
+ var div = document.createElement("div");
881
+
882
+ try {
883
+ return !!fn( div );
884
+ } catch (e) {
885
+ return false;
886
+ } finally {
887
+ // Remove from its parent by default
888
+ if ( div.parentNode ) {
889
+ div.parentNode.removeChild( div );
890
+ }
891
+ // release memory in IE
892
+ div = null;
893
+ }
894
+ }
895
+
896
+ /**
897
+ * Adds the same handler for all of the specified attrs
898
+ * @param {String} attrs Pipe-separated list of attributes
899
+ * @param {Function} handler The method that will be applied
900
+ */
901
+ function addHandle( attrs, handler ) {
902
+ var arr = attrs.split("|"),
903
+ i = attrs.length;
904
+
905
+ while ( i-- ) {
906
+ Expr.attrHandle[ arr[i] ] = handler;
907
+ }
908
+ }
909
+
910
+ /**
911
+ * Checks document order of two siblings
912
+ * @param {Element} a
913
+ * @param {Element} b
914
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
915
+ */
916
+ function siblingCheck( a, b ) {
917
+ var cur = b && a,
918
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
919
+ ( ~b.sourceIndex || MAX_NEGATIVE ) -
920
+ ( ~a.sourceIndex || MAX_NEGATIVE );
921
+
922
+ // Use IE sourceIndex if available on both nodes
923
+ if ( diff ) {
924
+ return diff;
925
+ }
926
+
927
+ // Check if b follows a
928
+ if ( cur ) {
929
+ while ( (cur = cur.nextSibling) ) {
930
+ if ( cur === b ) {
931
+ return -1;
932
+ }
933
+ }
934
+ }
935
+
936
+ return a ? 1 : -1;
937
+ }
938
+
939
+ /**
940
+ * Returns a function to use in pseudos for input types
941
+ * @param {String} type
942
+ */
943
+ function createInputPseudo( type ) {
944
+ return function( elem ) {
945
+ var name = elem.nodeName.toLowerCase();
946
+ return name === "input" && elem.type === type;
947
+ };
948
+ }
949
+
950
+ /**
951
+ * Returns a function to use in pseudos for buttons
952
+ * @param {String} type
953
+ */
954
+ function createButtonPseudo( type ) {
955
+ return function( elem ) {
956
+ var name = elem.nodeName.toLowerCase();
957
+ return (name === "input" || name === "button") && elem.type === type;
958
+ };
959
+ }
960
+
961
+ /**
962
+ * Returns a function to use in pseudos for positionals
963
+ * @param {Function} fn
964
+ */
965
+ function createPositionalPseudo( fn ) {
966
+ return markFunction(function( argument ) {
967
+ argument = +argument;
968
+ return markFunction(function( seed, matches ) {
969
+ var j,
970
+ matchIndexes = fn( [], seed.length, argument ),
971
+ i = matchIndexes.length;
972
+
973
+ // Match elements found at the specified indexes
974
+ while ( i-- ) {
975
+ if ( seed[ (j = matchIndexes[i]) ] ) {
976
+ seed[j] = !(matches[j] = seed[j]);
977
+ }
978
+ }
979
+ });
980
+ });
981
+ }
982
+
983
+ /**
984
+ * Checks a node for validity as a Sizzle context
985
+ * @param {Element|Object=} context
986
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
987
+ */
988
+ function testContext( context ) {
989
+ return context && typeof context.getElementsByTagName !== strundefined && context;
990
+ }
991
+
992
+ // Expose support vars for convenience
993
+ support = Sizzle.support = {};
994
+
995
+ /**
996
+ * Detects XML nodes
997
+ * @param {Element|Object} elem An element or a document
998
+ * @returns {Boolean} True iff elem is a non-HTML XML node
999
+ */
1000
+ isXML = Sizzle.isXML = function( elem ) {
1001
+ // documentElement is verified for cases where it doesn't yet exist
1002
+ // (such as loading iframes in IE - #4833)
1003
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
1004
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
1005
+ };
1006
+
1007
+ /**
1008
+ * Sets document-related variables once based on the current document
1009
+ * @param {Element|Object} [doc] An element or document object to use to set the document
1010
+ * @returns {Object} Returns the current document
1011
+ */
1012
+ setDocument = Sizzle.setDocument = function( node ) {
1013
+ var hasCompare,
1014
+ doc = node ? node.ownerDocument || node : preferredDoc,
1015
+ parent = doc.defaultView;
1016
+
1017
+ // If no document and documentElement is available, return
1018
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
1019
+ return document;
1020
+ }
1021
+
1022
+ // Set our document
1023
+ document = doc;
1024
+ docElem = doc.documentElement;
1025
+
1026
+ // Support tests
1027
+ documentIsHTML = !isXML( doc );
1028
+
1029
+ // Support: IE>8
1030
+ // If iframe document is assigned to "document" variable and if iframe has been reloaded,
1031
+ // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
1032
+ // IE6-8 do not support the defaultView property so parent will be undefined
1033
+ if ( parent && parent !== parent.top ) {
1034
+ // IE11 does not have attachEvent, so all must suffer
1035
+ if ( parent.addEventListener ) {
1036
+ parent.addEventListener( "unload", function() {
1037
+ setDocument();
1038
+ }, false );
1039
+ } else if ( parent.attachEvent ) {
1040
+ parent.attachEvent( "onunload", function() {
1041
+ setDocument();
1042
+ });
1043
+ }
1044
+ }
1045
+
1046
+ /* Attributes
1047
+ ---------------------------------------------------------------------- */
1048
+
1049
+ // Support: IE<8
1050
+ // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
1051
+ support.attributes = assert(function( div ) {
1052
+ div.className = "i";
1053
+ return !div.getAttribute("className");
1054
+ });
1055
+
1056
+ /* getElement(s)By*
1057
+ ---------------------------------------------------------------------- */
1058
+
1059
+ // Check if getElementsByTagName("*") returns only elements
1060
+ support.getElementsByTagName = assert(function( div ) {
1061
+ div.appendChild( doc.createComment("") );
1062
+ return !div.getElementsByTagName("*").length;
1063
+ });
1064
+
1065
+ // Check if getElementsByClassName can be trusted
1066
+ support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {
1067
+ div.innerHTML = "<div class='a'></div><div class='a i'></div>";
1068
+
1069
+ // Support: Safari<4
1070
+ // Catch class over-caching
1071
+ div.firstChild.className = "i";
1072
+ // Support: Opera<10
1073
+ // Catch gEBCN failure to find non-leading classes
1074
+ return div.getElementsByClassName("i").length === 2;
1075
+ });
1076
+
1077
+ // Support: IE<10
1078
+ // Check if getElementById returns elements by name
1079
+ // The broken getElementById methods don't pick up programatically-set names,
1080
+ // so use a roundabout getElementsByName test
1081
+ support.getById = assert(function( div ) {
1082
+ docElem.appendChild( div ).id = expando;
1083
+ return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
1084
+ });
1085
+
1086
+ // ID find and filter
1087
+ if ( support.getById ) {
1088
+ Expr.find["ID"] = function( id, context ) {
1089
+ if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
1090
+ var m = context.getElementById( id );
1091
+ // Check parentNode to catch when Blackberry 4.6 returns
1092
+ // nodes that are no longer in the document #6963
1093
+ return m && m.parentNode ? [ m ] : [];
1094
+ }
1095
+ };
1096
+ Expr.filter["ID"] = function( id ) {
1097
+ var attrId = id.replace( runescape, funescape );
1098
+ return function( elem ) {
1099
+ return elem.getAttribute("id") === attrId;
1100
+ };
1101
+ };
1102
+ } else {
1103
+ // Support: IE6/7
1104
+ // getElementById is not reliable as a find shortcut
1105
+ delete Expr.find["ID"];
1106
+
1107
+ Expr.filter["ID"] = function( id ) {
1108
+ var attrId = id.replace( runescape, funescape );
1109
+ return function( elem ) {
1110
+ var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
1111
+ return node && node.value === attrId;
1112
+ };
1113
+ };
1114
+ }
1115
+
1116
+ // Tag
1117
+ Expr.find["TAG"] = support.getElementsByTagName ?
1118
+ function( tag, context ) {
1119
+ if ( typeof context.getElementsByTagName !== strundefined ) {
1120
+ return context.getElementsByTagName( tag );
1121
+ }
1122
+ } :
1123
+ function( tag, context ) {
1124
+ var elem,
1125
+ tmp = [],
1126
+ i = 0,
1127
+ results = context.getElementsByTagName( tag );
1128
+
1129
+ // Filter out possible comments
1130
+ if ( tag === "*" ) {
1131
+ while ( (elem = results[i++]) ) {
1132
+ if ( elem.nodeType === 1 ) {
1133
+ tmp.push( elem );
1134
+ }
1135
+ }
1136
+
1137
+ return tmp;
1138
+ }
1139
+ return results;
1140
+ };
1141
+
1142
+ // Class
1143
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
1144
+ if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
1145
+ return context.getElementsByClassName( className );
1146
+ }
1147
+ };
1148
+
1149
+ /* QSA/matchesSelector
1150
+ ---------------------------------------------------------------------- */
1151
+
1152
+ // QSA and matchesSelector support
1153
+
1154
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
1155
+ rbuggyMatches = [];
1156
+
1157
+ // qSa(:focus) reports false when true (Chrome 21)
1158
+ // We allow this because of a bug in IE8/9 that throws an error
1159
+ // whenever `document.activeElement` is accessed on an iframe
1160
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
1161
+ // See http://bugs.jquery.com/ticket/13378
1162
+ rbuggyQSA = [];
1163
+
1164
+ if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
1165
+ // Build QSA regex
1166
+ // Regex strategy adopted from Diego Perini
1167
+ assert(function( div ) {
1168
+ // Select is set to empty string on purpose
1169
+ // This is to test IE's treatment of not explicitly
1170
+ // setting a boolean content attribute,
1171
+ // since its presence should be enough
1172
+ // http://bugs.jquery.com/ticket/12359
1173
+ div.innerHTML = "<select msallowclip=''><option selected=''></option></select>";
1174
+
1175
+ // Support: IE8, Opera 11-12.16
1176
+ // Nothing should be selected when empty strings follow ^= or $= or *=
1177
+ // The test attribute must be unknown in Opera but "safe" for WinRT
1178
+ // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
1179
+ if ( div.querySelectorAll("[msallowclip^='']").length ) {
1180
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
1181
+ }
1182
+
1183
+ // Support: IE8
1184
+ // Boolean attributes and "value" are not treated correctly
1185
+ if ( !div.querySelectorAll("[selected]").length ) {
1186
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
1187
+ }
1188
+
1189
+ // Webkit/Opera - :checked should return selected option elements
1190
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1191
+ // IE8 throws error here and will not see later tests
1192
+ if ( !div.querySelectorAll(":checked").length ) {
1193
+ rbuggyQSA.push(":checked");
1194
+ }
1195
+ });
1196
+
1197
+ assert(function( div ) {
1198
+ // Support: Windows 8 Native Apps
1199
+ // The type and name attributes are restricted during .innerHTML assignment
1200
+ var input = doc.createElement("input");
1201
+ input.setAttribute( "type", "hidden" );
1202
+ div.appendChild( input ).setAttribute( "name", "D" );
1203
+
1204
+ // Support: IE8
1205
+ // Enforce case-sensitivity of name attribute
1206
+ if ( div.querySelectorAll("[name=d]").length ) {
1207
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
1208
+ }
1209
+
1210
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
1211
+ // IE8 throws error here and will not see later tests
1212
+ if ( !div.querySelectorAll(":enabled").length ) {
1213
+ rbuggyQSA.push( ":enabled", ":disabled" );
1214
+ }
1215
+
1216
+ // Opera 10-11 does not throw on post-comma invalid pseudos
1217
+ div.querySelectorAll("*,:x");
1218
+ rbuggyQSA.push(",.*:");
1219
+ });
1220
+ }
1221
+
1222
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
1223
+ docElem.webkitMatchesSelector ||
1224
+ docElem.mozMatchesSelector ||
1225
+ docElem.oMatchesSelector ||
1226
+ docElem.msMatchesSelector) )) ) {
1227
+
1228
+ assert(function( div ) {
1229
+ // Check to see if it's possible to do matchesSelector
1230
+ // on a disconnected node (IE 9)
1231
+ support.disconnectedMatch = matches.call( div, "div" );
1232
+
1233
+ // This should fail with an exception
1234
+ // Gecko does not error, returns false instead
1235
+ matches.call( div, "[s!='']:x" );
1236
+ rbuggyMatches.push( "!=", pseudos );
1237
+ });
1238
+ }
1239
+
1240
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
1241
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
1242
+
1243
+ /* Contains
1244
+ ---------------------------------------------------------------------- */
1245
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
1246
+
1247
+ // Element contains another
1248
+ // Purposefully does not implement inclusive descendent
1249
+ // As in, an element does not contain itself
1250
+ contains = hasCompare || rnative.test( docElem.contains ) ?
1251
+ function( a, b ) {
1252
+ var adown = a.nodeType === 9 ? a.documentElement : a,
1253
+ bup = b && b.parentNode;
1254
+ return a === bup || !!( bup && bup.nodeType === 1 && (
1255
+ adown.contains ?
1256
+ adown.contains( bup ) :
1257
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
1258
+ ));
1259
+ } :
1260
+ function( a, b ) {
1261
+ if ( b ) {
1262
+ while ( (b = b.parentNode) ) {
1263
+ if ( b === a ) {
1264
+ return true;
1265
+ }
1266
+ }
1267
+ }
1268
+ return false;
1269
+ };
1270
+
1271
+ /* Sorting
1272
+ ---------------------------------------------------------------------- */
1273
+
1274
+ // Document order sorting
1275
+ sortOrder = hasCompare ?
1276
+ function( a, b ) {
1277
+
1278
+ // Flag for duplicate removal
1279
+ if ( a === b ) {
1280
+ hasDuplicate = true;
1281
+ return 0;
1282
+ }
1283
+
1284
+ // Sort on method existence if only one input has compareDocumentPosition
1285
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
1286
+ if ( compare ) {
1287
+ return compare;
1288
+ }
1289
+
1290
+ // Calculate position if both inputs belong to the same document
1291
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
1292
+ a.compareDocumentPosition( b ) :
1293
+
1294
+ // Otherwise we know they are disconnected
1295
+ 1;
1296
+
1297
+ // Disconnected nodes
1298
+ if ( compare & 1 ||
1299
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
1300
+
1301
+ // Choose the first element that is related to our preferred document
1302
+ if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
1303
+ return -1;
1304
+ }
1305
+ if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
1306
+ return 1;
1307
+ }
1308
+
1309
+ // Maintain original order
1310
+ return sortInput ?
1311
+ ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
1312
+ 0;
1313
+ }
1314
+
1315
+ return compare & 4 ? -1 : 1;
1316
+ } :
1317
+ function( a, b ) {
1318
+ // Exit early if the nodes are identical
1319
+ if ( a === b ) {
1320
+ hasDuplicate = true;
1321
+ return 0;
1322
+ }
1323
+
1324
+ var cur,
1325
+ i = 0,
1326
+ aup = a.parentNode,
1327
+ bup = b.parentNode,
1328
+ ap = [ a ],
1329
+ bp = [ b ];
1330
+
1331
+ // Parentless nodes are either documents or disconnected
1332
+ if ( !aup || !bup ) {
1333
+ return a === doc ? -1 :
1334
+ b === doc ? 1 :
1335
+ aup ? -1 :
1336
+ bup ? 1 :
1337
+ sortInput ?
1338
+ ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
1339
+ 0;
1340
+
1341
+ // If the nodes are siblings, we can do a quick check
1342
+ } else if ( aup === bup ) {
1343
+ return siblingCheck( a, b );
1344
+ }
1345
+
1346
+ // Otherwise we need full lists of their ancestors for comparison
1347
+ cur = a;
1348
+ while ( (cur = cur.parentNode) ) {
1349
+ ap.unshift( cur );
1350
+ }
1351
+ cur = b;
1352
+ while ( (cur = cur.parentNode) ) {
1353
+ bp.unshift( cur );
1354
+ }
1355
+
1356
+ // Walk down the tree looking for a discrepancy
1357
+ while ( ap[i] === bp[i] ) {
1358
+ i++;
1359
+ }
1360
+
1361
+ return i ?
1362
+ // Do a sibling check if the nodes have a common ancestor
1363
+ siblingCheck( ap[i], bp[i] ) :
1364
+
1365
+ // Otherwise nodes in our document sort first
1366
+ ap[i] === preferredDoc ? -1 :
1367
+ bp[i] === preferredDoc ? 1 :
1368
+ 0;
1369
+ };
1370
+
1371
+ return doc;
1372
+ };
1373
+
1374
+ Sizzle.matches = function( expr, elements ) {
1375
+ return Sizzle( expr, null, null, elements );
1376
+ };
1377
+
1378
+ Sizzle.matchesSelector = function( elem, expr ) {
1379
+ // Set document vars if needed
1380
+ if ( ( elem.ownerDocument || elem ) !== document ) {
1381
+ setDocument( elem );
1382
+ }
1383
+
1384
+ // Make sure that attribute selectors are quoted
1385
+ expr = expr.replace( rattributeQuotes, "='$1']" );
1386
+
1387
+ if ( support.matchesSelector && documentIsHTML &&
1388
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
1389
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
1390
+
1391
+ try {
1392
+ var ret = matches.call( elem, expr );
1393
+
1394
+ // IE 9's matchesSelector returns false on disconnected nodes
1395
+ if ( ret || support.disconnectedMatch ||
1396
+ // As well, disconnected nodes are said to be in a document
1397
+ // fragment in IE 9
1398
+ elem.document && elem.document.nodeType !== 11 ) {
1399
+ return ret;
1400
+ }
1401
+ } catch(e) {}
1402
+ }
1403
+
1404
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
1405
+ };
1406
+
1407
+ Sizzle.contains = function( context, elem ) {
1408
+ // Set document vars if needed
1409
+ if ( ( context.ownerDocument || context ) !== document ) {
1410
+ setDocument( context );
1411
+ }
1412
+ return contains( context, elem );
1413
+ };
1414
+
1415
+ Sizzle.attr = function( elem, name ) {
1416
+ // Set document vars if needed
1417
+ if ( ( elem.ownerDocument || elem ) !== document ) {
1418
+ setDocument( elem );
1419
+ }
1420
+
1421
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
1422
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
1423
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
1424
+ fn( elem, name, !documentIsHTML ) :
1425
+ undefined;
1426
+
1427
+ return val !== undefined ?
1428
+ val :
1429
+ support.attributes || !documentIsHTML ?
1430
+ elem.getAttribute( name ) :
1431
+ (val = elem.getAttributeNode(name)) && val.specified ?
1432
+ val.value :
1433
+ null;
1434
+ };
1435
+
1436
+ Sizzle.error = function( msg ) {
1437
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
1438
+ };
1439
+
1440
+ /**
1441
+ * Document sorting and removing duplicates
1442
+ * @param {ArrayLike} results
1443
+ */
1444
+ Sizzle.uniqueSort = function( results ) {
1445
+ var elem,
1446
+ duplicates = [],
1447
+ j = 0,
1448
+ i = 0;
1449
+
1450
+ // Unless we *know* we can detect duplicates, assume their presence
1451
+ hasDuplicate = !support.detectDuplicates;
1452
+ sortInput = !support.sortStable && results.slice( 0 );
1453
+ results.sort( sortOrder );
1454
+
1455
+ if ( hasDuplicate ) {
1456
+ while ( (elem = results[i++]) ) {
1457
+ if ( elem === results[ i ] ) {
1458
+ j = duplicates.push( i );
1459
+ }
1460
+ }
1461
+ while ( j-- ) {
1462
+ results.splice( duplicates[ j ], 1 );
1463
+ }
1464
+ }
1465
+
1466
+ // Clear input after sorting to release objects
1467
+ // See https://github.com/jquery/sizzle/pull/225
1468
+ sortInput = null;
1469
+
1470
+ return results;
1471
+ };
1472
+
1473
+ /**
1474
+ * Utility function for retrieving the text value of an array of DOM nodes
1475
+ * @param {Array|Element} elem
1476
+ */
1477
+ getText = Sizzle.getText = function( elem ) {
1478
+ var node,
1479
+ ret = "",
1480
+ i = 0,
1481
+ nodeType = elem.nodeType;
1482
+
1483
+ if ( !nodeType ) {
1484
+ // If no nodeType, this is expected to be an array
1485
+ while ( (node = elem[i++]) ) {
1486
+ // Do not traverse comment nodes
1487
+ ret += getText( node );
1488
+ }
1489
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
1490
+ // Use textContent for elements
1491
+ // innerText usage removed for consistency of new lines (jQuery #11153)
1492
+ if ( typeof elem.textContent === "string" ) {
1493
+ return elem.textContent;
1494
+ } else {
1495
+ // Traverse its children
1496
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1497
+ ret += getText( elem );
1498
+ }
1499
+ }
1500
+ } else if ( nodeType === 3 || nodeType === 4 ) {
1501
+ return elem.nodeValue;
1502
+ }
1503
+ // Do not include comment or processing instruction nodes
1504
+
1505
+ return ret;
1506
+ };
1507
+
1508
+ Expr = Sizzle.selectors = {
1509
+
1510
+ // Can be adjusted by the user
1511
+ cacheLength: 50,
1512
+
1513
+ createPseudo: markFunction,
1514
+
1515
+ match: matchExpr,
1516
+
1517
+ attrHandle: {},
1518
+
1519
+ find: {},
1520
+
1521
+ relative: {
1522
+ ">": { dir: "parentNode", first: true },
1523
+ " ": { dir: "parentNode" },
1524
+ "+": { dir: "previousSibling", first: true },
1525
+ "~": { dir: "previousSibling" }
1526
+ },
1527
+
1528
+ preFilter: {
1529
+ "ATTR": function( match ) {
1530
+ match[1] = match[1].replace( runescape, funescape );
1531
+
1532
+ // Move the given value to match[3] whether quoted or unquoted
1533
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
1534
+
1535
+ if ( match[2] === "~=" ) {
1536
+ match[3] = " " + match[3] + " ";
1537
+ }
1538
+
1539
+ return match.slice( 0, 4 );
1540
+ },
1541
+
1542
+ "CHILD": function( match ) {
1543
+ /* matches from matchExpr["CHILD"]
1544
+ 1 type (only|nth|...)
1545
+ 2 what (child|of-type)
1546
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
1547
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
1548
+ 5 sign of xn-component
1549
+ 6 x of xn-component
1550
+ 7 sign of y-component
1551
+ 8 y of y-component
1552
+ */
1553
+ match[1] = match[1].toLowerCase();
1554
+
1555
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
1556
+ // nth-* requires argument
1557
+ if ( !match[3] ) {
1558
+ Sizzle.error( match[0] );
1559
+ }
1560
+
1561
+ // numeric x and y parameters for Expr.filter.CHILD
1562
+ // remember that false/true cast respectively to 0/1
1563
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
1564
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
1565
+
1566
+ // other types prohibit arguments
1567
+ } else if ( match[3] ) {
1568
+ Sizzle.error( match[0] );
1569
+ }
1570
+
1571
+ return match;
1572
+ },
1573
+
1574
+ "PSEUDO": function( match ) {
1575
+ var excess,
1576
+ unquoted = !match[6] && match[2];
1577
+
1578
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
1579
+ return null;
1580
+ }
1581
+
1582
+ // Accept quoted arguments as-is
1583
+ if ( match[3] ) {
1584
+ match[2] = match[4] || match[5] || "";
1585
+
1586
+ // Strip excess characters from unquoted arguments
1587
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
1588
+ // Get excess from tokenize (recursively)
1589
+ (excess = tokenize( unquoted, true )) &&
1590
+ // advance to the next closing parenthesis
1591
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
1592
+
1593
+ // excess is a negative index
1594
+ match[0] = match[0].slice( 0, excess );
1595
+ match[2] = unquoted.slice( 0, excess );
1596
+ }
1597
+
1598
+ // Return only captures needed by the pseudo filter method (type and argument)
1599
+ return match.slice( 0, 3 );
1600
+ }
1601
+ },
1602
+
1603
+ filter: {
1604
+
1605
+ "TAG": function( nodeNameSelector ) {
1606
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
1607
+ return nodeNameSelector === "*" ?
1608
+ function() { return true; } :
1609
+ function( elem ) {
1610
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
1611
+ };
1612
+ },
1613
+
1614
+ "CLASS": function( className ) {
1615
+ var pattern = classCache[ className + " " ];
1616
+
1617
+ return pattern ||
1618
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
1619
+ classCache( className, function( elem ) {
1620
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
1621
+ });
1622
+ },
1623
+
1624
+ "ATTR": function( name, operator, check ) {
1625
+ return function( elem ) {
1626
+ var result = Sizzle.attr( elem, name );
1627
+
1628
+ if ( result == null ) {
1629
+ return operator === "!=";
1630
+ }
1631
+ if ( !operator ) {
1632
+ return true;
1633
+ }
1634
+
1635
+ result += "";
1636
+
1637
+ return operator === "=" ? result === check :
1638
+ operator === "!=" ? result !== check :
1639
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
1640
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
1641
+ operator === "$=" ? check && result.slice( -check.length ) === check :
1642
+ operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
1643
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
1644
+ false;
1645
+ };
1646
+ },
1647
+
1648
+ "CHILD": function( type, what, argument, first, last ) {
1649
+ var simple = type.slice( 0, 3 ) !== "nth",
1650
+ forward = type.slice( -4 ) !== "last",
1651
+ ofType = what === "of-type";
1652
+
1653
+ return first === 1 && last === 0 ?
1654
+
1655
+ // Shortcut for :nth-*(n)
1656
+ function( elem ) {
1657
+ return !!elem.parentNode;
1658
+ } :
1659
+
1660
+ function( elem, context, xml ) {
1661
+ var cache, outerCache, node, diff, nodeIndex, start,
1662
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
1663
+ parent = elem.parentNode,
1664
+ name = ofType && elem.nodeName.toLowerCase(),
1665
+ useCache = !xml && !ofType;
1666
+
1667
+ if ( parent ) {
1668
+
1669
+ // :(first|last|only)-(child|of-type)
1670
+ if ( simple ) {
1671
+ while ( dir ) {
1672
+ node = elem;
1673
+ while ( (node = node[ dir ]) ) {
1674
+ if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
1675
+ return false;
1676
+ }
1677
+ }
1678
+ // Reverse direction for :only-* (if we haven't yet done so)
1679
+ start = dir = type === "only" && !start && "nextSibling";
1680
+ }
1681
+ return true;
1682
+ }
1683
+
1684
+ start = [ forward ? parent.firstChild : parent.lastChild ];
1685
+
1686
+ // non-xml :nth-child(...) stores cache data on `parent`
1687
+ if ( forward && useCache ) {
1688
+ // Seek `elem` from a previously-cached index
1689
+ outerCache = parent[ expando ] || (parent[ expando ] = {});
1690
+ cache = outerCache[ type ] || [];
1691
+ nodeIndex = cache[0] === dirruns && cache[1];
1692
+ diff = cache[0] === dirruns && cache[2];
1693
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
1694
+
1695
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1696
+
1697
+ // Fallback to seeking `elem` from the start
1698
+ (diff = nodeIndex = 0) || start.pop()) ) {
1699
+
1700
+ // When found, cache indexes on `parent` and break
1701
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
1702
+ outerCache[ type ] = [ dirruns, nodeIndex, diff ];
1703
+ break;
1704
+ }
1705
+ }
1706
+
1707
+ // Use previously-cached element index if available
1708
+ } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
1709
+ diff = cache[1];
1710
+
1711
+ // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
1712
+ } else {
1713
+ // Use the same loop as above to seek `elem` from the start
1714
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1715
+ (diff = nodeIndex = 0) || start.pop()) ) {
1716
+
1717
+ if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
1718
+ // Cache the index of each encountered element
1719
+ if ( useCache ) {
1720
+ (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
1721
+ }
1722
+
1723
+ if ( node === elem ) {
1724
+ break;
1725
+ }
1726
+ }
1727
+ }
1728
+ }
1729
+
1730
+ // Incorporate the offset, then check against cycle size
1731
+ diff -= last;
1732
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
1733
+ }
1734
+ };
1735
+ },
1736
+
1737
+ "PSEUDO": function( pseudo, argument ) {
1738
+ // pseudo-class names are case-insensitive
1739
+ // http://www.w3.org/TR/selectors/#pseudo-classes
1740
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
1741
+ // Remember that setFilters inherits from pseudos
1742
+ var args,
1743
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
1744
+ Sizzle.error( "unsupported pseudo: " + pseudo );
1745
+
1746
+ // The user may use createPseudo to indicate that
1747
+ // arguments are needed to create the filter function
1748
+ // just as Sizzle does
1749
+ if ( fn[ expando ] ) {
1750
+ return fn( argument );
1751
+ }
1752
+
1753
+ // But maintain support for old signatures
1754
+ if ( fn.length > 1 ) {
1755
+ args = [ pseudo, pseudo, "", argument ];
1756
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
1757
+ markFunction(function( seed, matches ) {
1758
+ var idx,
1759
+ matched = fn( seed, argument ),
1760
+ i = matched.length;
1761
+ while ( i-- ) {
1762
+ idx = indexOf.call( seed, matched[i] );
1763
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
1764
+ }
1765
+ }) :
1766
+ function( elem ) {
1767
+ return fn( elem, 0, args );
1768
+ };
1769
+ }
1770
+
1771
+ return fn;
1772
+ }
1773
+ },
1774
+
1775
+ pseudos: {
1776
+ // Potentially complex pseudos
1777
+ "not": markFunction(function( selector ) {
1778
+ // Trim the selector passed to compile
1779
+ // to avoid treating leading and trailing
1780
+ // spaces as combinators
1781
+ var input = [],
1782
+ results = [],
1783
+ matcher = compile( selector.replace( rtrim, "$1" ) );
1784
+
1785
+ return matcher[ expando ] ?
1786
+ markFunction(function( seed, matches, context, xml ) {
1787
+ var elem,
1788
+ unmatched = matcher( seed, null, xml, [] ),
1789
+ i = seed.length;
1790
+
1791
+ // Match elements unmatched by `matcher`
1792
+ while ( i-- ) {
1793
+ if ( (elem = unmatched[i]) ) {
1794
+ seed[i] = !(matches[i] = elem);
1795
+ }
1796
+ }
1797
+ }) :
1798
+ function( elem, context, xml ) {
1799
+ input[0] = elem;
1800
+ matcher( input, null, xml, results );
1801
+ return !results.pop();
1802
+ };
1803
+ }),
1804
+
1805
+ "has": markFunction(function( selector ) {
1806
+ return function( elem ) {
1807
+ return Sizzle( selector, elem ).length > 0;
1808
+ };
1809
+ }),
1810
+
1811
+ "contains": markFunction(function( text ) {
1812
+ return function( elem ) {
1813
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
1814
+ };
1815
+ }),
1816
+
1817
+ // "Whether an element is represented by a :lang() selector
1818
+ // is based solely on the element's language value
1819
+ // being equal to the identifier C,
1820
+ // or beginning with the identifier C immediately followed by "-".
1821
+ // The matching of C against the element's language value is performed case-insensitively.
1822
+ // The identifier C does not have to be a valid language name."
1823
+ // http://www.w3.org/TR/selectors/#lang-pseudo
1824
+ "lang": markFunction( function( lang ) {
1825
+ // lang value must be a valid identifier
1826
+ if ( !ridentifier.test(lang || "") ) {
1827
+ Sizzle.error( "unsupported lang: " + lang );
1828
+ }
1829
+ lang = lang.replace( runescape, funescape ).toLowerCase();
1830
+ return function( elem ) {
1831
+ var elemLang;
1832
+ do {
1833
+ if ( (elemLang = documentIsHTML ?
1834
+ elem.lang :
1835
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
1836
+
1837
+ elemLang = elemLang.toLowerCase();
1838
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
1839
+ }
1840
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
1841
+ return false;
1842
+ };
1843
+ }),
1844
+
1845
+ // Miscellaneous
1846
+ "target": function( elem ) {
1847
+ var hash = window.location && window.location.hash;
1848
+ return hash && hash.slice( 1 ) === elem.id;
1849
+ },
1850
+
1851
+ "root": function( elem ) {
1852
+ return elem === docElem;
1853
+ },
1854
+
1855
+ "focus": function( elem ) {
1856
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
1857
+ },
1858
+
1859
+ // Boolean properties
1860
+ "enabled": function( elem ) {
1861
+ return elem.disabled === false;
1862
+ },
1863
+
1864
+ "disabled": function( elem ) {
1865
+ return elem.disabled === true;
1866
+ },
1867
+
1868
+ "checked": function( elem ) {
1869
+ // In CSS3, :checked should return both checked and selected elements
1870
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1871
+ var nodeName = elem.nodeName.toLowerCase();
1872
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
1873
+ },
1874
+
1875
+ "selected": function( elem ) {
1876
+ // Accessing this property makes selected-by-default
1877
+ // options in Safari work properly
1878
+ if ( elem.parentNode ) {
1879
+ elem.parentNode.selectedIndex;
1880
+ }
1881
+
1882
+ return elem.selected === true;
1883
+ },
1884
+
1885
+ // Contents
1886
+ "empty": function( elem ) {
1887
+ // http://www.w3.org/TR/selectors/#empty-pseudo
1888
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
1889
+ // but not by others (comment: 8; processing instruction: 7; etc.)
1890
+ // nodeType < 6 works because attributes (2) do not appear as children
1891
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1892
+ if ( elem.nodeType < 6 ) {
1893
+ return false;
1894
+ }
1895
+ }
1896
+ return true;
1897
+ },
1898
+
1899
+ "parent": function( elem ) {
1900
+ return !Expr.pseudos["empty"]( elem );
1901
+ },
1902
+
1903
+ // Element/input types
1904
+ "header": function( elem ) {
1905
+ return rheader.test( elem.nodeName );
1906
+ },
1907
+
1908
+ "input": function( elem ) {
1909
+ return rinputs.test( elem.nodeName );
1910
+ },
1911
+
1912
+ "button": function( elem ) {
1913
+ var name = elem.nodeName.toLowerCase();
1914
+ return name === "input" && elem.type === "button" || name === "button";
1915
+ },
1916
+
1917
+ "text": function( elem ) {
1918
+ var attr;
1919
+ return elem.nodeName.toLowerCase() === "input" &&
1920
+ elem.type === "text" &&
1921
+
1922
+ // Support: IE<8
1923
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
1924
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
1925
+ },
1926
+
1927
+ // Position-in-collection
1928
+ "first": createPositionalPseudo(function() {
1929
+ return [ 0 ];
1930
+ }),
1931
+
1932
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
1933
+ return [ length - 1 ];
1934
+ }),
1935
+
1936
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
1937
+ return [ argument < 0 ? argument + length : argument ];
1938
+ }),
1939
+
1940
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
1941
+ var i = 0;
1942
+ for ( ; i < length; i += 2 ) {
1943
+ matchIndexes.push( i );
1944
+ }
1945
+ return matchIndexes;
1946
+ }),
1947
+
1948
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
1949
+ var i = 1;
1950
+ for ( ; i < length; i += 2 ) {
1951
+ matchIndexes.push( i );
1952
+ }
1953
+ return matchIndexes;
1954
+ }),
1955
+
1956
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1957
+ var i = argument < 0 ? argument + length : argument;
1958
+ for ( ; --i >= 0; ) {
1959
+ matchIndexes.push( i );
1960
+ }
1961
+ return matchIndexes;
1962
+ }),
1963
+
1964
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1965
+ var i = argument < 0 ? argument + length : argument;
1966
+ for ( ; ++i < length; ) {
1967
+ matchIndexes.push( i );
1968
+ }
1969
+ return matchIndexes;
1970
+ })
1971
+ }
1972
+ };
1973
+
1974
+ Expr.pseudos["nth"] = Expr.pseudos["eq"];
1975
+
1976
+ // Add button/input type pseudos
1977
+ for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
1978
+ Expr.pseudos[ i ] = createInputPseudo( i );
1979
+ }
1980
+ for ( i in { submit: true, reset: true } ) {
1981
+ Expr.pseudos[ i ] = createButtonPseudo( i );
1982
+ }
1983
+
1984
+ // Easy API for creating new setFilters
1985
+ function setFilters() {}
1986
+ setFilters.prototype = Expr.filters = Expr.pseudos;
1987
+ Expr.setFilters = new setFilters();
1988
+
1989
+ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
1990
+ var matched, match, tokens, type,
1991
+ soFar, groups, preFilters,
1992
+ cached = tokenCache[ selector + " " ];
1993
+
1994
+ if ( cached ) {
1995
+ return parseOnly ? 0 : cached.slice( 0 );
1996
+ }
1997
+
1998
+ soFar = selector;
1999
+ groups = [];
2000
+ preFilters = Expr.preFilter;
2001
+
2002
+ while ( soFar ) {
2003
+
2004
+ // Comma and first run
2005
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
2006
+ if ( match ) {
2007
+ // Don't consume trailing commas as valid
2008
+ soFar = soFar.slice( match[0].length ) || soFar;
2009
+ }
2010
+ groups.push( (tokens = []) );
2011
+ }
2012
+
2013
+ matched = false;
2014
+
2015
+ // Combinators
2016
+ if ( (match = rcombinators.exec( soFar )) ) {
2017
+ matched = match.shift();
2018
+ tokens.push({
2019
+ value: matched,
2020
+ // Cast descendant combinators to space
2021
+ type: match[0].replace( rtrim, " " )
2022
+ });
2023
+ soFar = soFar.slice( matched.length );
2024
+ }
2025
+
2026
+ // Filters
2027
+ for ( type in Expr.filter ) {
2028
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
2029
+ (match = preFilters[ type ]( match ))) ) {
2030
+ matched = match.shift();
2031
+ tokens.push({
2032
+ value: matched,
2033
+ type: type,
2034
+ matches: match
2035
+ });
2036
+ soFar = soFar.slice( matched.length );
2037
+ }
2038
+ }
2039
+
2040
+ if ( !matched ) {
2041
+ break;
2042
+ }
2043
+ }
2044
+
2045
+ // Return the length of the invalid excess
2046
+ // if we're just parsing
2047
+ // Otherwise, throw an error or return tokens
2048
+ return parseOnly ?
2049
+ soFar.length :
2050
+ soFar ?
2051
+ Sizzle.error( selector ) :
2052
+ // Cache the tokens
2053
+ tokenCache( selector, groups ).slice( 0 );
2054
+ };
2055
+
2056
+ function toSelector( tokens ) {
2057
+ var i = 0,
2058
+ len = tokens.length,
2059
+ selector = "";
2060
+ for ( ; i < len; i++ ) {
2061
+ selector += tokens[i].value;
2062
+ }
2063
+ return selector;
2064
+ }
2065
+
2066
+ function addCombinator( matcher, combinator, base ) {
2067
+ var dir = combinator.dir,
2068
+ checkNonElements = base && dir === "parentNode",
2069
+ doneName = done++;
2070
+
2071
+ return combinator.first ?
2072
+ // Check against closest ancestor/preceding element
2073
+ function( elem, context, xml ) {
2074
+ while ( (elem = elem[ dir ]) ) {
2075
+ if ( elem.nodeType === 1 || checkNonElements ) {
2076
+ return matcher( elem, context, xml );
2077
+ }
2078
+ }
2079
+ } :
2080
+
2081
+ // Check against all ancestor/preceding elements
2082
+ function( elem, context, xml ) {
2083
+ var oldCache, outerCache,
2084
+ newCache = [ dirruns, doneName ];
2085
+
2086
+ // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
2087
+ if ( xml ) {
2088
+ while ( (elem = elem[ dir ]) ) {
2089
+ if ( elem.nodeType === 1 || checkNonElements ) {
2090
+ if ( matcher( elem, context, xml ) ) {
2091
+ return true;
2092
+ }
2093
+ }
2094
+ }
2095
+ } else {
2096
+ while ( (elem = elem[ dir ]) ) {
2097
+ if ( elem.nodeType === 1 || checkNonElements ) {
2098
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
2099
+ if ( (oldCache = outerCache[ dir ]) &&
2100
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
2101
+
2102
+ // Assign to newCache so results back-propagate to previous elements
2103
+ return (newCache[ 2 ] = oldCache[ 2 ]);
2104
+ } else {
2105
+ // Reuse newcache so results back-propagate to previous elements
2106
+ outerCache[ dir ] = newCache;
2107
+
2108
+ // A match means we're done; a fail means we have to keep checking
2109
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
2110
+ return true;
2111
+ }
2112
+ }
2113
+ }
2114
+ }
2115
+ }
2116
+ };
2117
+ }
2118
+
2119
+ function elementMatcher( matchers ) {
2120
+ return matchers.length > 1 ?
2121
+ function( elem, context, xml ) {
2122
+ var i = matchers.length;
2123
+ while ( i-- ) {
2124
+ if ( !matchers[i]( elem, context, xml ) ) {
2125
+ return false;
2126
+ }
2127
+ }
2128
+ return true;
2129
+ } :
2130
+ matchers[0];
2131
+ }
2132
+
2133
+ function multipleContexts( selector, contexts, results ) {
2134
+ var i = 0,
2135
+ len = contexts.length;
2136
+ for ( ; i < len; i++ ) {
2137
+ Sizzle( selector, contexts[i], results );
2138
+ }
2139
+ return results;
2140
+ }
2141
+
2142
+ function condense( unmatched, map, filter, context, xml ) {
2143
+ var elem,
2144
+ newUnmatched = [],
2145
+ i = 0,
2146
+ len = unmatched.length,
2147
+ mapped = map != null;
2148
+
2149
+ for ( ; i < len; i++ ) {
2150
+ if ( (elem = unmatched[i]) ) {
2151
+ if ( !filter || filter( elem, context, xml ) ) {
2152
+ newUnmatched.push( elem );
2153
+ if ( mapped ) {
2154
+ map.push( i );
2155
+ }
2156
+ }
2157
+ }
2158
+ }
2159
+
2160
+ return newUnmatched;
2161
+ }
2162
+
2163
+ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
2164
+ if ( postFilter && !postFilter[ expando ] ) {
2165
+ postFilter = setMatcher( postFilter );
2166
+ }
2167
+ if ( postFinder && !postFinder[ expando ] ) {
2168
+ postFinder = setMatcher( postFinder, postSelector );
2169
+ }
2170
+ return markFunction(function( seed, results, context, xml ) {
2171
+ var temp, i, elem,
2172
+ preMap = [],
2173
+ postMap = [],
2174
+ preexisting = results.length,
2175
+
2176
+ // Get initial elements from seed or context
2177
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
2178
+
2179
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
2180
+ matcherIn = preFilter && ( seed || !selector ) ?
2181
+ condense( elems, preMap, preFilter, context, xml ) :
2182
+ elems,
2183
+
2184
+ matcherOut = matcher ?
2185
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
2186
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
2187
+
2188
+ // ...intermediate processing is necessary
2189
+ [] :
2190
+
2191
+ // ...otherwise use results directly
2192
+ results :
2193
+ matcherIn;
2194
+
2195
+ // Find primary matches
2196
+ if ( matcher ) {
2197
+ matcher( matcherIn, matcherOut, context, xml );
2198
+ }
2199
+
2200
+ // Apply postFilter
2201
+ if ( postFilter ) {
2202
+ temp = condense( matcherOut, postMap );
2203
+ postFilter( temp, [], context, xml );
2204
+
2205
+ // Un-match failing elements by moving them back to matcherIn
2206
+ i = temp.length;
2207
+ while ( i-- ) {
2208
+ if ( (elem = temp[i]) ) {
2209
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
2210
+ }
2211
+ }
2212
+ }
2213
+
2214
+ if ( seed ) {
2215
+ if ( postFinder || preFilter ) {
2216
+ if ( postFinder ) {
2217
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
2218
+ temp = [];
2219
+ i = matcherOut.length;
2220
+ while ( i-- ) {
2221
+ if ( (elem = matcherOut[i]) ) {
2222
+ // Restore matcherIn since elem is not yet a final match
2223
+ temp.push( (matcherIn[i] = elem) );
2224
+ }
2225
+ }
2226
+ postFinder( null, (matcherOut = []), temp, xml );
2227
+ }
2228
+
2229
+ // Move matched elements from seed to results to keep them synchronized
2230
+ i = matcherOut.length;
2231
+ while ( i-- ) {
2232
+ if ( (elem = matcherOut[i]) &&
2233
+ (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
2234
+
2235
+ seed[temp] = !(results[temp] = elem);
2236
+ }
2237
+ }
2238
+ }
2239
+
2240
+ // Add elements to results, through postFinder if defined
2241
+ } else {
2242
+ matcherOut = condense(
2243
+ matcherOut === results ?
2244
+ matcherOut.splice( preexisting, matcherOut.length ) :
2245
+ matcherOut
2246
+ );
2247
+ if ( postFinder ) {
2248
+ postFinder( null, results, matcherOut, xml );
2249
+ } else {
2250
+ push.apply( results, matcherOut );
2251
+ }
2252
+ }
2253
+ });
2254
+ }
2255
+
2256
+ function matcherFromTokens( tokens ) {
2257
+ var checkContext, matcher, j,
2258
+ len = tokens.length,
2259
+ leadingRelative = Expr.relative[ tokens[0].type ],
2260
+ implicitRelative = leadingRelative || Expr.relative[" "],
2261
+ i = leadingRelative ? 1 : 0,
2262
+
2263
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
2264
+ matchContext = addCombinator( function( elem ) {
2265
+ return elem === checkContext;
2266
+ }, implicitRelative, true ),
2267
+ matchAnyContext = addCombinator( function( elem ) {
2268
+ return indexOf.call( checkContext, elem ) > -1;
2269
+ }, implicitRelative, true ),
2270
+ matchers = [ function( elem, context, xml ) {
2271
+ return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
2272
+ (checkContext = context).nodeType ?
2273
+ matchContext( elem, context, xml ) :
2274
+ matchAnyContext( elem, context, xml ) );
2275
+ } ];
2276
+
2277
+ for ( ; i < len; i++ ) {
2278
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
2279
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
2280
+ } else {
2281
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
2282
+
2283
+ // Return special upon seeing a positional matcher
2284
+ if ( matcher[ expando ] ) {
2285
+ // Find the next relative operator (if any) for proper handling
2286
+ j = ++i;
2287
+ for ( ; j < len; j++ ) {
2288
+ if ( Expr.relative[ tokens[j].type ] ) {
2289
+ break;
2290
+ }
2291
+ }
2292
+ return setMatcher(
2293
+ i > 1 && elementMatcher( matchers ),
2294
+ i > 1 && toSelector(
2295
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
2296
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
2297
+ ).replace( rtrim, "$1" ),
2298
+ matcher,
2299
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
2300
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
2301
+ j < len && toSelector( tokens )
2302
+ );
2303
+ }
2304
+ matchers.push( matcher );
2305
+ }
2306
+ }
2307
+
2308
+ return elementMatcher( matchers );
2309
+ }
2310
+
2311
+ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
2312
+ var bySet = setMatchers.length > 0,
2313
+ byElement = elementMatchers.length > 0,
2314
+ superMatcher = function( seed, context, xml, results, outermost ) {
2315
+ var elem, j, matcher,
2316
+ matchedCount = 0,
2317
+ i = "0",
2318
+ unmatched = seed && [],
2319
+ setMatched = [],
2320
+ contextBackup = outermostContext,
2321
+ // We must always have either seed elements or outermost context
2322
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
2323
+ // Use integer dirruns iff this is the outermost matcher
2324
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
2325
+ len = elems.length;
2326
+
2327
+ if ( outermost ) {
2328
+ outermostContext = context !== document && context;
2329
+ }
2330
+
2331
+ // Add elements passing elementMatchers directly to results
2332
+ // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
2333
+ // Support: IE<9, Safari
2334
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
2335
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
2336
+ if ( byElement && elem ) {
2337
+ j = 0;
2338
+ while ( (matcher = elementMatchers[j++]) ) {
2339
+ if ( matcher( elem, context, xml ) ) {
2340
+ results.push( elem );
2341
+ break;
2342
+ }
2343
+ }
2344
+ if ( outermost ) {
2345
+ dirruns = dirrunsUnique;
2346
+ }
2347
+ }
2348
+
2349
+ // Track unmatched elements for set filters
2350
+ if ( bySet ) {
2351
+ // They will have gone through all possible matchers
2352
+ if ( (elem = !matcher && elem) ) {
2353
+ matchedCount--;
2354
+ }
2355
+
2356
+ // Lengthen the array for every element, matched or not
2357
+ if ( seed ) {
2358
+ unmatched.push( elem );
2359
+ }
2360
+ }
2361
+ }
2362
+
2363
+ // Apply set filters to unmatched elements
2364
+ matchedCount += i;
2365
+ if ( bySet && i !== matchedCount ) {
2366
+ j = 0;
2367
+ while ( (matcher = setMatchers[j++]) ) {
2368
+ matcher( unmatched, setMatched, context, xml );
2369
+ }
2370
+
2371
+ if ( seed ) {
2372
+ // Reintegrate element matches to eliminate the need for sorting
2373
+ if ( matchedCount > 0 ) {
2374
+ while ( i-- ) {
2375
+ if ( !(unmatched[i] || setMatched[i]) ) {
2376
+ setMatched[i] = pop.call( results );
2377
+ }
2378
+ }
2379
+ }
2380
+
2381
+ // Discard index placeholder values to get only actual matches
2382
+ setMatched = condense( setMatched );
2383
+ }
2384
+
2385
+ // Add matches to results
2386
+ push.apply( results, setMatched );
2387
+
2388
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
2389
+ if ( outermost && !seed && setMatched.length > 0 &&
2390
+ ( matchedCount + setMatchers.length ) > 1 ) {
2391
+
2392
+ Sizzle.uniqueSort( results );
2393
+ }
2394
+ }
2395
+
2396
+ // Override manipulation of globals by nested matchers
2397
+ if ( outermost ) {
2398
+ dirruns = dirrunsUnique;
2399
+ outermostContext = contextBackup;
2400
+ }
2401
+
2402
+ return unmatched;
2403
+ };
2404
+
2405
+ return bySet ?
2406
+ markFunction( superMatcher ) :
2407
+ superMatcher;
2408
+ }
2409
+
2410
+ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
2411
+ var i,
2412
+ setMatchers = [],
2413
+ elementMatchers = [],
2414
+ cached = compilerCache[ selector + " " ];
2415
+
2416
+ if ( !cached ) {
2417
+ // Generate a function of recursive functions that can be used to check each element
2418
+ if ( !match ) {
2419
+ match = tokenize( selector );
2420
+ }
2421
+ i = match.length;
2422
+ while ( i-- ) {
2423
+ cached = matcherFromTokens( match[i] );
2424
+ if ( cached[ expando ] ) {
2425
+ setMatchers.push( cached );
2426
+ } else {
2427
+ elementMatchers.push( cached );
2428
+ }
2429
+ }
2430
+
2431
+ // Cache the compiled function
2432
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
2433
+
2434
+ // Save selector and tokenization
2435
+ cached.selector = selector;
2436
+ }
2437
+ return cached;
2438
+ };
2439
+
2440
+ /**
2441
+ * A low-level selection function that works with Sizzle's compiled
2442
+ * selector functions
2443
+ * @param {String|Function} selector A selector or a pre-compiled
2444
+ * selector function built with Sizzle.compile
2445
+ * @param {Element} context
2446
+ * @param {Array} [results]
2447
+ * @param {Array} [seed] A set of elements to match against
2448
+ */
2449
+ select = Sizzle.select = function( selector, context, results, seed ) {
2450
+ var i, tokens, token, type, find,
2451
+ compiled = typeof selector === "function" && selector,
2452
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
2453
+
2454
+ results = results || [];
2455
+
2456
+ // Try to minimize operations if there is no seed and only one group
2457
+ if ( match.length === 1 ) {
2458
+
2459
+ // Take a shortcut and set the context if the root selector is an ID
2460
+ tokens = match[0] = match[0].slice( 0 );
2461
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2462
+ support.getById && context.nodeType === 9 && documentIsHTML &&
2463
+ Expr.relative[ tokens[1].type ] ) {
2464
+
2465
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2466
+ if ( !context ) {
2467
+ return results;
2468
+
2469
+ // Precompiled matchers will still verify ancestry, so step up a level
2470
+ } else if ( compiled ) {
2471
+ context = context.parentNode;
2472
+ }
2473
+
2474
+ selector = selector.slice( tokens.shift().value.length );
2475
+ }
2476
+
2477
+ // Fetch a seed set for right-to-left matching
2478
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2479
+ while ( i-- ) {
2480
+ token = tokens[i];
2481
+
2482
+ // Abort if we hit a combinator
2483
+ if ( Expr.relative[ (type = token.type) ] ) {
2484
+ break;
2485
+ }
2486
+ if ( (find = Expr.find[ type ]) ) {
2487
+ // Search, expanding context for leading sibling combinators
2488
+ if ( (seed = find(
2489
+ token.matches[0].replace( runescape, funescape ),
2490
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2491
+ )) ) {
2492
+
2493
+ // If seed is empty or no tokens remain, we can return early
2494
+ tokens.splice( i, 1 );
2495
+ selector = seed.length && toSelector( tokens );
2496
+ if ( !selector ) {
2497
+ push.apply( results, seed );
2498
+ return results;
2499
+ }
2500
+
2501
+ break;
2502
+ }
2503
+ }
2504
+ }
2505
+ }
2506
+
2507
+ // Compile and execute a filtering function if one is not provided
2508
+ // Provide `match` to avoid retokenization if we modified the selector above
2509
+ ( compiled || compile( selector, match ) )(
2510
+ seed,
2511
+ context,
2512
+ !documentIsHTML,
2513
+ results,
2514
+ rsibling.test( selector ) && testContext( context.parentNode ) || context
2515
+ );
2516
+ return results;
2517
+ };
2518
+
2519
+ // One-time assignments
2520
+
2521
+ // Sort stability
2522
+ support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
2523
+
2524
+ // Support: Chrome<14
2525
+ // Always assume duplicates if they aren't passed to the comparison function
2526
+ support.detectDuplicates = !!hasDuplicate;
2527
+
2528
+ // Initialize against the default document
2529
+ setDocument();
2530
+
2531
+ // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
2532
+ // Detached nodes confoundingly follow *each other*
2533
+ support.sortDetached = assert(function( div1 ) {
2534
+ // Should return 1, but returns 4 (following)
2535
+ return div1.compareDocumentPosition( document.createElement("div") ) & 1;
2536
+ });
2537
+
2538
+ // Support: IE<8
2539
+ // Prevent attribute/property "interpolation"
2540
+ // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
2541
+ if ( !assert(function( div ) {
2542
+ div.innerHTML = "<a href='#'></a>";
2543
+ return div.firstChild.getAttribute("href") === "#" ;
2544
+ }) ) {
2545
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
2546
+ if ( !isXML ) {
2547
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
2548
+ }
2549
+ });
2550
+ }
2551
+
2552
+ // Support: IE<9
2553
+ // Use defaultValue in place of getAttribute("value")
2554
+ if ( !support.attributes || !assert(function( div ) {
2555
+ div.innerHTML = "<input/>";
2556
+ div.firstChild.setAttribute( "value", "" );
2557
+ return div.firstChild.getAttribute( "value" ) === "";
2558
+ }) ) {
2559
+ addHandle( "value", function( elem, name, isXML ) {
2560
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
2561
+ return elem.defaultValue;
2562
+ }
2563
+ });
2564
+ }
2565
+
2566
+ // Support: IE<9
2567
+ // Use getAttributeNode to fetch booleans when getAttribute lies
2568
+ if ( !assert(function( div ) {
2569
+ return div.getAttribute("disabled") == null;
2570
+ }) ) {
2571
+ addHandle( booleans, function( elem, name, isXML ) {
2572
+ var val;
2573
+ if ( !isXML ) {
2574
+ return elem[ name ] === true ? name.toLowerCase() :
2575
+ (val = elem.getAttributeNode( name )) && val.specified ?
2576
+ val.value :
2577
+ null;
2578
+ }
2579
+ });
2580
+ }
2581
+
2582
+ return Sizzle;
2583
+
2584
+ })( window );
2585
+
2586
+
2587
+
2588
+ jQuery.find = Sizzle;
2589
+ jQuery.expr = Sizzle.selectors;
2590
+ jQuery.expr[":"] = jQuery.expr.pseudos;
2591
+ jQuery.unique = Sizzle.uniqueSort;
2592
+ jQuery.text = Sizzle.getText;
2593
+ jQuery.isXMLDoc = Sizzle.isXML;
2594
+ jQuery.contains = Sizzle.contains;
2595
+
2596
+
2597
+
2598
+ var rneedsContext = jQuery.expr.match.needsContext;
2599
+
2600
+ var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
2601
+
2602
+
2603
+
2604
+ var risSimple = /^.[^:#\[\.,]*$/;
2605
+
2606
+ // Implement the identical functionality for filter and not
2607
+ function winnow( elements, qualifier, not ) {
2608
+ if ( jQuery.isFunction( qualifier ) ) {
2609
+ return jQuery.grep( elements, function( elem, i ) {
2610
+ /* jshint -W018 */
2611
+ return !!qualifier.call( elem, i, elem ) !== not;
2612
+ });
2613
+
2614
+ }
2615
+
2616
+ if ( qualifier.nodeType ) {
2617
+ return jQuery.grep( elements, function( elem ) {
2618
+ return ( elem === qualifier ) !== not;
2619
+ });
2620
+
2621
+ }
2622
+
2623
+ if ( typeof qualifier === "string" ) {
2624
+ if ( risSimple.test( qualifier ) ) {
2625
+ return jQuery.filter( qualifier, elements, not );
2626
+ }
2627
+
2628
+ qualifier = jQuery.filter( qualifier, elements );
2629
+ }
2630
+
2631
+ return jQuery.grep( elements, function( elem ) {
2632
+ return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
2633
+ });
2634
+ }
2635
+
2636
+ jQuery.filter = function( expr, elems, not ) {
2637
+ var elem = elems[ 0 ];
2638
+
2639
+ if ( not ) {
2640
+ expr = ":not(" + expr + ")";
2641
+ }
2642
+
2643
+ return elems.length === 1 && elem.nodeType === 1 ?
2644
+ jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
2645
+ jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
2646
+ return elem.nodeType === 1;
2647
+ }));
2648
+ };
2649
+
2650
+ jQuery.fn.extend({
2651
+ find: function( selector ) {
2652
+ var i,
2653
+ len = this.length,
2654
+ ret = [],
2655
+ self = this;
2656
+
2657
+ if ( typeof selector !== "string" ) {
2658
+ return this.pushStack( jQuery( selector ).filter(function() {
2659
+ for ( i = 0; i < len; i++ ) {
2660
+ if ( jQuery.contains( self[ i ], this ) ) {
2661
+ return true;
2662
+ }
2663
+ }
2664
+ }) );
2665
+ }
2666
+
2667
+ for ( i = 0; i < len; i++ ) {
2668
+ jQuery.find( selector, self[ i ], ret );
2669
+ }
2670
+
2671
+ // Needed because $( selector, context ) becomes $( context ).find( selector )
2672
+ ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
2673
+ ret.selector = this.selector ? this.selector + " " + selector : selector;
2674
+ return ret;
2675
+ },
2676
+ filter: function( selector ) {
2677
+ return this.pushStack( winnow(this, selector || [], false) );
2678
+ },
2679
+ not: function( selector ) {
2680
+ return this.pushStack( winnow(this, selector || [], true) );
2681
+ },
2682
+ is: function( selector ) {
2683
+ return !!winnow(
2684
+ this,
2685
+
2686
+ // If this is a positional/relative selector, check membership in the returned set
2687
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
2688
+ typeof selector === "string" && rneedsContext.test( selector ) ?
2689
+ jQuery( selector ) :
2690
+ selector || [],
2691
+ false
2692
+ ).length;
2693
+ }
2694
+ });
2695
+
2696
+
2697
+ // Initialize a jQuery object
2698
+
2699
+
2700
+ // A central reference to the root jQuery(document)
2701
+ var rootjQuery,
2702
+
2703
+ // A simple way to check for HTML strings
2704
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
2705
+ // Strict HTML recognition (#11290: must start with <)
2706
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
2707
+
2708
+ init = jQuery.fn.init = function( selector, context ) {
2709
+ var match, elem;
2710
+
2711
+ // HANDLE: $(""), $(null), $(undefined), $(false)
2712
+ if ( !selector ) {
2713
+ return this;
2714
+ }
2715
+
2716
+ // Handle HTML strings
2717
+ if ( typeof selector === "string" ) {
2718
+ if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) {
2719
+ // Assume that strings that start and end with <> are HTML and skip the regex check
2720
+ match = [ null, selector, null ];
2721
+
2722
+ } else {
2723
+ match = rquickExpr.exec( selector );
2724
+ }
2725
+
2726
+ // Match html or make sure no context is specified for #id
2727
+ if ( match && (match[1] || !context) ) {
2728
+
2729
+ // HANDLE: $(html) -> $(array)
2730
+ if ( match[1] ) {
2731
+ context = context instanceof jQuery ? context[0] : context;
2732
+
2733
+ // scripts is true for back-compat
2734
+ // Intentionally let the error be thrown if parseHTML is not present
2735
+ jQuery.merge( this, jQuery.parseHTML(
2736
+ match[1],
2737
+ context && context.nodeType ? context.ownerDocument || context : document,
2738
+ true
2739
+ ) );
2740
+
2741
+ // HANDLE: $(html, props)
2742
+ if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
2743
+ for ( match in context ) {
2744
+ // Properties of context are called as methods if possible
2745
+ if ( jQuery.isFunction( this[ match ] ) ) {
2746
+ this[ match ]( context[ match ] );
2747
+
2748
+ // ...and otherwise set as attributes
2749
+ } else {
2750
+ this.attr( match, context[ match ] );
2751
+ }
2752
+ }
2753
+ }
2754
+
2755
+ return this;
2756
+
2757
+ // HANDLE: $(#id)
2758
+ } else {
2759
+ elem = document.getElementById( match[2] );
2760
+
2761
+ // Check parentNode to catch when Blackberry 4.6 returns
2762
+ // nodes that are no longer in the document #6963
2763
+ if ( elem && elem.parentNode ) {
2764
+ // Inject the element directly into the jQuery object
2765
+ this.length = 1;
2766
+ this[0] = elem;
2767
+ }
2768
+
2769
+ this.context = document;
2770
+ this.selector = selector;
2771
+ return this;
2772
+ }
2773
+
2774
+ // HANDLE: $(expr, $(...))
2775
+ } else if ( !context || context.jquery ) {
2776
+ return ( context || rootjQuery ).find( selector );
2777
+
2778
+ // HANDLE: $(expr, context)
2779
+ // (which is just equivalent to: $(context).find(expr)
2780
+ } else {
2781
+ return this.constructor( context ).find( selector );
2782
+ }
2783
+
2784
+ // HANDLE: $(DOMElement)
2785
+ } else if ( selector.nodeType ) {
2786
+ this.context = this[0] = selector;
2787
+ this.length = 1;
2788
+ return this;
2789
+
2790
+ // HANDLE: $(function)
2791
+ // Shortcut for document ready
2792
+ } else if ( jQuery.isFunction( selector ) ) {
2793
+ return typeof rootjQuery.ready !== "undefined" ?
2794
+ rootjQuery.ready( selector ) :
2795
+ // Execute immediately if ready is not present
2796
+ selector( jQuery );
2797
+ }
2798
+
2799
+ if ( selector.selector !== undefined ) {
2800
+ this.selector = selector.selector;
2801
+ this.context = selector.context;
2802
+ }
2803
+
2804
+ return jQuery.makeArray( selector, this );
2805
+ };
2806
+
2807
+ // Give the init function the jQuery prototype for later instantiation
2808
+ init.prototype = jQuery.fn;
2809
+
2810
+ // Initialize central reference
2811
+ rootjQuery = jQuery( document );
2812
+
2813
+
2814
+ var rparentsprev = /^(?:parents|prev(?:Until|All))/,
2815
+ // methods guaranteed to produce a unique set when starting from a unique set
2816
+ guaranteedUnique = {
2817
+ children: true,
2818
+ contents: true,
2819
+ next: true,
2820
+ prev: true
2821
+ };
2822
+
2823
+ jQuery.extend({
2824
+ dir: function( elem, dir, until ) {
2825
+ var matched = [],
2826
+ truncate = until !== undefined;
2827
+
2828
+ while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {
2829
+ if ( elem.nodeType === 1 ) {
2830
+ if ( truncate && jQuery( elem ).is( until ) ) {
2831
+ break;
2832
+ }
2833
+ matched.push( elem );
2834
+ }
2835
+ }
2836
+ return matched;
2837
+ },
2838
+
2839
+ sibling: function( n, elem ) {
2840
+ var matched = [];
2841
+
2842
+ for ( ; n; n = n.nextSibling ) {
2843
+ if ( n.nodeType === 1 && n !== elem ) {
2844
+ matched.push( n );
2845
+ }
2846
+ }
2847
+
2848
+ return matched;
2849
+ }
2850
+ });
2851
+
2852
+ jQuery.fn.extend({
2853
+ has: function( target ) {
2854
+ var targets = jQuery( target, this ),
2855
+ l = targets.length;
2856
+
2857
+ return this.filter(function() {
2858
+ var i = 0;
2859
+ for ( ; i < l; i++ ) {
2860
+ if ( jQuery.contains( this, targets[i] ) ) {
2861
+ return true;
2862
+ }
2863
+ }
2864
+ });
2865
+ },
2866
+
2867
+ closest: function( selectors, context ) {
2868
+ var cur,
2869
+ i = 0,
2870
+ l = this.length,
2871
+ matched = [],
2872
+ pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
2873
+ jQuery( selectors, context || this.context ) :
2874
+ 0;
2875
+
2876
+ for ( ; i < l; i++ ) {
2877
+ for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
2878
+ // Always skip document fragments
2879
+ if ( cur.nodeType < 11 && (pos ?
2880
+ pos.index(cur) > -1 :
2881
+
2882
+ // Don't pass non-elements to Sizzle
2883
+ cur.nodeType === 1 &&
2884
+ jQuery.find.matchesSelector(cur, selectors)) ) {
2885
+
2886
+ matched.push( cur );
2887
+ break;
2888
+ }
2889
+ }
2890
+ }
2891
+
2892
+ return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
2893
+ },
2894
+
2895
+ // Determine the position of an element within
2896
+ // the matched set of elements
2897
+ index: function( elem ) {
2898
+
2899
+ // No argument, return index in parent
2900
+ if ( !elem ) {
2901
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
2902
+ }
2903
+
2904
+ // index in selector
2905
+ if ( typeof elem === "string" ) {
2906
+ return indexOf.call( jQuery( elem ), this[ 0 ] );
2907
+ }
2908
+
2909
+ // Locate the position of the desired element
2910
+ return indexOf.call( this,
2911
+
2912
+ // If it receives a jQuery object, the first element is used
2913
+ elem.jquery ? elem[ 0 ] : elem
2914
+ );
2915
+ },
2916
+
2917
+ add: function( selector, context ) {
2918
+ return this.pushStack(
2919
+ jQuery.unique(
2920
+ jQuery.merge( this.get(), jQuery( selector, context ) )
2921
+ )
2922
+ );
2923
+ },
2924
+
2925
+ addBack: function( selector ) {
2926
+ return this.add( selector == null ?
2927
+ this.prevObject : this.prevObject.filter(selector)
2928
+ );
2929
+ }
2930
+ });
2931
+
2932
+ function sibling( cur, dir ) {
2933
+ while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}
2934
+ return cur;
2935
+ }
2936
+
2937
+ jQuery.each({
2938
+ parent: function( elem ) {
2939
+ var parent = elem.parentNode;
2940
+ return parent && parent.nodeType !== 11 ? parent : null;
2941
+ },
2942
+ parents: function( elem ) {
2943
+ return jQuery.dir( elem, "parentNode" );
2944
+ },
2945
+ parentsUntil: function( elem, i, until ) {
2946
+ return jQuery.dir( elem, "parentNode", until );
2947
+ },
2948
+ next: function( elem ) {
2949
+ return sibling( elem, "nextSibling" );
2950
+ },
2951
+ prev: function( elem ) {
2952
+ return sibling( elem, "previousSibling" );
2953
+ },
2954
+ nextAll: function( elem ) {
2955
+ return jQuery.dir( elem, "nextSibling" );
2956
+ },
2957
+ prevAll: function( elem ) {
2958
+ return jQuery.dir( elem, "previousSibling" );
2959
+ },
2960
+ nextUntil: function( elem, i, until ) {
2961
+ return jQuery.dir( elem, "nextSibling", until );
2962
+ },
2963
+ prevUntil: function( elem, i, until ) {
2964
+ return jQuery.dir( elem, "previousSibling", until );
2965
+ },
2966
+ siblings: function( elem ) {
2967
+ return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
2968
+ },
2969
+ children: function( elem ) {
2970
+ return jQuery.sibling( elem.firstChild );
2971
+ },
2972
+ contents: function( elem ) {
2973
+ return elem.contentDocument || jQuery.merge( [], elem.childNodes );
2974
+ }
2975
+ }, function( name, fn ) {
2976
+ jQuery.fn[ name ] = function( until, selector ) {
2977
+ var matched = jQuery.map( this, fn, until );
2978
+
2979
+ if ( name.slice( -5 ) !== "Until" ) {
2980
+ selector = until;
2981
+ }
2982
+
2983
+ if ( selector && typeof selector === "string" ) {
2984
+ matched = jQuery.filter( selector, matched );
2985
+ }
2986
+
2987
+ if ( this.length > 1 ) {
2988
+ // Remove duplicates
2989
+ if ( !guaranteedUnique[ name ] ) {
2990
+ jQuery.unique( matched );
2991
+ }
2992
+
2993
+ // Reverse order for parents* and prev-derivatives
2994
+ if ( rparentsprev.test( name ) ) {
2995
+ matched.reverse();
2996
+ }
2997
+ }
2998
+
2999
+ return this.pushStack( matched );
3000
+ };
3001
+ });
3002
+ var rnotwhite = (/\S+/g);
3003
+
3004
+
3005
+
3006
+ // String to Object options format cache
3007
+ var optionsCache = {};
3008
+
3009
+ // Convert String-formatted options into Object-formatted ones and store in cache
3010
+ function createOptions( options ) {
3011
+ var object = optionsCache[ options ] = {};
3012
+ jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
3013
+ object[ flag ] = true;
3014
+ });
3015
+ return object;
3016
+ }
3017
+
3018
+ /*
3019
+ * Create a callback list using the following parameters:
3020
+ *
3021
+ * options: an optional list of space-separated options that will change how
3022
+ * the callback list behaves or a more traditional option object
3023
+ *
3024
+ * By default a callback list will act like an event callback list and can be
3025
+ * "fired" multiple times.
3026
+ *
3027
+ * Possible options:
3028
+ *
3029
+ * once: will ensure the callback list can only be fired once (like a Deferred)
3030
+ *
3031
+ * memory: will keep track of previous values and will call any callback added
3032
+ * after the list has been fired right away with the latest "memorized"
3033
+ * values (like a Deferred)
3034
+ *
3035
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
3036
+ *
3037
+ * stopOnFalse: interrupt callings when a callback returns false
3038
+ *
3039
+ */
3040
+ jQuery.Callbacks = function( options ) {
3041
+
3042
+ // Convert options from String-formatted to Object-formatted if needed
3043
+ // (we check in cache first)
3044
+ options = typeof options === "string" ?
3045
+ ( optionsCache[ options ] || createOptions( options ) ) :
3046
+ jQuery.extend( {}, options );
3047
+
3048
+ var // Last fire value (for non-forgettable lists)
3049
+ memory,
3050
+ // Flag to know if list was already fired
3051
+ fired,
3052
+ // Flag to know if list is currently firing
3053
+ firing,
3054
+ // First callback to fire (used internally by add and fireWith)
3055
+ firingStart,
3056
+ // End of the loop when firing
3057
+ firingLength,
3058
+ // Index of currently firing callback (modified by remove if needed)
3059
+ firingIndex,
3060
+ // Actual callback list
3061
+ list = [],
3062
+ // Stack of fire calls for repeatable lists
3063
+ stack = !options.once && [],
3064
+ // Fire callbacks
3065
+ fire = function( data ) {
3066
+ memory = options.memory && data;
3067
+ fired = true;
3068
+ firingIndex = firingStart || 0;
3069
+ firingStart = 0;
3070
+ firingLength = list.length;
3071
+ firing = true;
3072
+ for ( ; list && firingIndex < firingLength; firingIndex++ ) {
3073
+ if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
3074
+ memory = false; // To prevent further calls using add
3075
+ break;
3076
+ }
3077
+ }
3078
+ firing = false;
3079
+ if ( list ) {
3080
+ if ( stack ) {
3081
+ if ( stack.length ) {
3082
+ fire( stack.shift() );
3083
+ }
3084
+ } else if ( memory ) {
3085
+ list = [];
3086
+ } else {
3087
+ self.disable();
3088
+ }
3089
+ }
3090
+ },
3091
+ // Actual Callbacks object
3092
+ self = {
3093
+ // Add a callback or a collection of callbacks to the list
3094
+ add: function() {
3095
+ if ( list ) {
3096
+ // First, we save the current length
3097
+ var start = list.length;
3098
+ (function add( args ) {
3099
+ jQuery.each( args, function( _, arg ) {
3100
+ var type = jQuery.type( arg );
3101
+ if ( type === "function" ) {
3102
+ if ( !options.unique || !self.has( arg ) ) {
3103
+ list.push( arg );
3104
+ }
3105
+ } else if ( arg && arg.length && type !== "string" ) {
3106
+ // Inspect recursively
3107
+ add( arg );
3108
+ }
3109
+ });
3110
+ })( arguments );
3111
+ // Do we need to add the callbacks to the
3112
+ // current firing batch?
3113
+ if ( firing ) {
3114
+ firingLength = list.length;
3115
+ // With memory, if we're not firing then
3116
+ // we should call right away
3117
+ } else if ( memory ) {
3118
+ firingStart = start;
3119
+ fire( memory );
3120
+ }
3121
+ }
3122
+ return this;
3123
+ },
3124
+ // Remove a callback from the list
3125
+ remove: function() {
3126
+ if ( list ) {
3127
+ jQuery.each( arguments, function( _, arg ) {
3128
+ var index;
3129
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
3130
+ list.splice( index, 1 );
3131
+ // Handle firing indexes
3132
+ if ( firing ) {
3133
+ if ( index <= firingLength ) {
3134
+ firingLength--;
3135
+ }
3136
+ if ( index <= firingIndex ) {
3137
+ firingIndex--;
3138
+ }
3139
+ }
3140
+ }
3141
+ });
3142
+ }
3143
+ return this;
3144
+ },
3145
+ // Check if a given callback is in the list.
3146
+ // If no argument is given, return whether or not list has callbacks attached.
3147
+ has: function( fn ) {
3148
+ return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
3149
+ },
3150
+ // Remove all callbacks from the list
3151
+ empty: function() {
3152
+ list = [];
3153
+ firingLength = 0;
3154
+ return this;
3155
+ },
3156
+ // Have the list do nothing anymore
3157
+ disable: function() {
3158
+ list = stack = memory = undefined;
3159
+ return this;
3160
+ },
3161
+ // Is it disabled?
3162
+ disabled: function() {
3163
+ return !list;
3164
+ },
3165
+ // Lock the list in its current state
3166
+ lock: function() {
3167
+ stack = undefined;
3168
+ if ( !memory ) {
3169
+ self.disable();
3170
+ }
3171
+ return this;
3172
+ },
3173
+ // Is it locked?
3174
+ locked: function() {
3175
+ return !stack;
3176
+ },
3177
+ // Call all callbacks with the given context and arguments
3178
+ fireWith: function( context, args ) {
3179
+ if ( list && ( !fired || stack ) ) {
3180
+ args = args || [];
3181
+ args = [ context, args.slice ? args.slice() : args ];
3182
+ if ( firing ) {
3183
+ stack.push( args );
3184
+ } else {
3185
+ fire( args );
3186
+ }
3187
+ }
3188
+ return this;
3189
+ },
3190
+ // Call all the callbacks with the given arguments
3191
+ fire: function() {
3192
+ self.fireWith( this, arguments );
3193
+ return this;
3194
+ },
3195
+ // To know if the callbacks have already been called at least once
3196
+ fired: function() {
3197
+ return !!fired;
3198
+ }
3199
+ };
3200
+
3201
+ return self;
3202
+ };
3203
+
3204
+
3205
+ jQuery.extend({
3206
+
3207
+ Deferred: function( func ) {
3208
+ var tuples = [
3209
+ // action, add listener, listener list, final state
3210
+ [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
3211
+ [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
3212
+ [ "notify", "progress", jQuery.Callbacks("memory") ]
3213
+ ],
3214
+ state = "pending",
3215
+ promise = {
3216
+ state: function() {
3217
+ return state;
3218
+ },
3219
+ always: function() {
3220
+ deferred.done( arguments ).fail( arguments );
3221
+ return this;
3222
+ },
3223
+ then: function( /* fnDone, fnFail, fnProgress */ ) {
3224
+ var fns = arguments;
3225
+ return jQuery.Deferred(function( newDefer ) {
3226
+ jQuery.each( tuples, function( i, tuple ) {
3227
+ var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
3228
+ // deferred[ done | fail | progress ] for forwarding actions to newDefer
3229
+ deferred[ tuple[1] ](function() {
3230
+ var returned = fn && fn.apply( this, arguments );
3231
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
3232
+ returned.promise()
3233
+ .done( newDefer.resolve )
3234
+ .fail( newDefer.reject )
3235
+ .progress( newDefer.notify );
3236
+ } else {
3237
+ newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
3238
+ }
3239
+ });
3240
+ });
3241
+ fns = null;
3242
+ }).promise();
3243
+ },
3244
+ // Get a promise for this deferred
3245
+ // If obj is provided, the promise aspect is added to the object
3246
+ promise: function( obj ) {
3247
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
3248
+ }
3249
+ },
3250
+ deferred = {};
3251
+
3252
+ // Keep pipe for back-compat
3253
+ promise.pipe = promise.then;
3254
+
3255
+ // Add list-specific methods
3256
+ jQuery.each( tuples, function( i, tuple ) {
3257
+ var list = tuple[ 2 ],
3258
+ stateString = tuple[ 3 ];
3259
+
3260
+ // promise[ done | fail | progress ] = list.add
3261
+ promise[ tuple[1] ] = list.add;
3262
+
3263
+ // Handle state
3264
+ if ( stateString ) {
3265
+ list.add(function() {
3266
+ // state = [ resolved | rejected ]
3267
+ state = stateString;
3268
+
3269
+ // [ reject_list | resolve_list ].disable; progress_list.lock
3270
+ }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
3271
+ }
3272
+
3273
+ // deferred[ resolve | reject | notify ]
3274
+ deferred[ tuple[0] ] = function() {
3275
+ deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
3276
+ return this;
3277
+ };
3278
+ deferred[ tuple[0] + "With" ] = list.fireWith;
3279
+ });
3280
+
3281
+ // Make the deferred a promise
3282
+ promise.promise( deferred );
3283
+
3284
+ // Call given func if any
3285
+ if ( func ) {
3286
+ func.call( deferred, deferred );
3287
+ }
3288
+
3289
+ // All done!
3290
+ return deferred;
3291
+ },
3292
+
3293
+ // Deferred helper
3294
+ when: function( subordinate /* , ..., subordinateN */ ) {
3295
+ var i = 0,
3296
+ resolveValues = slice.call( arguments ),
3297
+ length = resolveValues.length,
3298
+
3299
+ // the count of uncompleted subordinates
3300
+ remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
3301
+
3302
+ // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
3303
+ deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
3304
+
3305
+ // Update function for both resolve and progress values
3306
+ updateFunc = function( i, contexts, values ) {
3307
+ return function( value ) {
3308
+ contexts[ i ] = this;
3309
+ values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
3310
+ if ( values === progressValues ) {
3311
+ deferred.notifyWith( contexts, values );
3312
+ } else if ( !( --remaining ) ) {
3313
+ deferred.resolveWith( contexts, values );
3314
+ }
3315
+ };
3316
+ },
3317
+
3318
+ progressValues, progressContexts, resolveContexts;
3319
+
3320
+ // add listeners to Deferred subordinates; treat others as resolved
3321
+ if ( length > 1 ) {
3322
+ progressValues = new Array( length );
3323
+ progressContexts = new Array( length );
3324
+ resolveContexts = new Array( length );
3325
+ for ( ; i < length; i++ ) {
3326
+ if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
3327
+ resolveValues[ i ].promise()
3328
+ .done( updateFunc( i, resolveContexts, resolveValues ) )
3329
+ .fail( deferred.reject )
3330
+ .progress( updateFunc( i, progressContexts, progressValues ) );
3331
+ } else {
3332
+ --remaining;
3333
+ }
3334
+ }
3335
+ }
3336
+
3337
+ // if we're not waiting on anything, resolve the master
3338
+ if ( !remaining ) {
3339
+ deferred.resolveWith( resolveContexts, resolveValues );
3340
+ }
3341
+
3342
+ return deferred.promise();
3343
+ }
3344
+ });
3345
+
3346
+
3347
+ // The deferred used on DOM ready
3348
+ var readyList;
3349
+
3350
+ jQuery.fn.ready = function( fn ) {
3351
+ // Add the callback
3352
+ jQuery.ready.promise().done( fn );
3353
+
3354
+ return this;
3355
+ };
3356
+
3357
+ jQuery.extend({
3358
+ // Is the DOM ready to be used? Set to true once it occurs.
3359
+ isReady: false,
3360
+
3361
+ // A counter to track how many items to wait for before
3362
+ // the ready event fires. See #6781
3363
+ readyWait: 1,
3364
+
3365
+ // Hold (or release) the ready event
3366
+ holdReady: function( hold ) {
3367
+ if ( hold ) {
3368
+ jQuery.readyWait++;
3369
+ } else {
3370
+ jQuery.ready( true );
3371
+ }
3372
+ },
3373
+
3374
+ // Handle when the DOM is ready
3375
+ ready: function( wait ) {
3376
+
3377
+ // Abort if there are pending holds or we're already ready
3378
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
3379
+ return;
3380
+ }
3381
+
3382
+ // Remember that the DOM is ready
3383
+ jQuery.isReady = true;
3384
+
3385
+ // If a normal DOM Ready event fired, decrement, and wait if need be
3386
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
3387
+ return;
3388
+ }
3389
+
3390
+ // If there are functions bound, to execute
3391
+ readyList.resolveWith( document, [ jQuery ] );
3392
+
3393
+ // Trigger any bound ready events
3394
+ if ( jQuery.fn.triggerHandler ) {
3395
+ jQuery( document ).triggerHandler( "ready" );
3396
+ jQuery( document ).off( "ready" );
3397
+ }
3398
+ }
3399
+ });
3400
+
3401
+ /**
3402
+ * The ready event handler and self cleanup method
3403
+ */
3404
+ function completed() {
3405
+ document.removeEventListener( "DOMContentLoaded", completed, false );
3406
+ window.removeEventListener( "load", completed, false );
3407
+ jQuery.ready();
3408
+ }
3409
+
3410
+ jQuery.ready.promise = function( obj ) {
3411
+ if ( !readyList ) {
3412
+
3413
+ readyList = jQuery.Deferred();
3414
+
3415
+ // Catch cases where $(document).ready() is called after the browser event has already occurred.
3416
+ // we once tried to use readyState "interactive" here, but it caused issues like the one
3417
+ // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
3418
+ if ( document.readyState === "complete" ) {
3419
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
3420
+ setTimeout( jQuery.ready );
3421
+
3422
+ } else {
3423
+
3424
+ // Use the handy event callback
3425
+ document.addEventListener( "DOMContentLoaded", completed, false );
3426
+
3427
+ // A fallback to window.onload, that will always work
3428
+ window.addEventListener( "load", completed, false );
3429
+ }
3430
+ }
3431
+ return readyList.promise( obj );
3432
+ };
3433
+
3434
+ // Kick off the DOM ready check even if the user does not
3435
+ jQuery.ready.promise();
3436
+
3437
+
3438
+
3439
+
3440
+ // Multifunctional method to get and set values of a collection
3441
+ // The value/s can optionally be executed if it's a function
3442
+ var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
3443
+ var i = 0,
3444
+ len = elems.length,
3445
+ bulk = key == null;
3446
+
3447
+ // Sets many values
3448
+ if ( jQuery.type( key ) === "object" ) {
3449
+ chainable = true;
3450
+ for ( i in key ) {
3451
+ jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
3452
+ }
3453
+
3454
+ // Sets one value
3455
+ } else if ( value !== undefined ) {
3456
+ chainable = true;
3457
+
3458
+ if ( !jQuery.isFunction( value ) ) {
3459
+ raw = true;
3460
+ }
3461
+
3462
+ if ( bulk ) {
3463
+ // Bulk operations run against the entire set
3464
+ if ( raw ) {
3465
+ fn.call( elems, value );
3466
+ fn = null;
3467
+
3468
+ // ...except when executing function values
3469
+ } else {
3470
+ bulk = fn;
3471
+ fn = function( elem, key, value ) {
3472
+ return bulk.call( jQuery( elem ), value );
3473
+ };
3474
+ }
3475
+ }
3476
+
3477
+ if ( fn ) {
3478
+ for ( ; i < len; i++ ) {
3479
+ fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
3480
+ }
3481
+ }
3482
+ }
3483
+
3484
+ return chainable ?
3485
+ elems :
3486
+
3487
+ // Gets
3488
+ bulk ?
3489
+ fn.call( elems ) :
3490
+ len ? fn( elems[0], key ) : emptyGet;
3491
+ };
3492
+
3493
+
3494
+ /**
3495
+ * Determines whether an object can have data
3496
+ */
3497
+ jQuery.acceptData = function( owner ) {
3498
+ // Accepts only:
3499
+ // - Node
3500
+ // - Node.ELEMENT_NODE
3501
+ // - Node.DOCUMENT_NODE
3502
+ // - Object
3503
+ // - Any
3504
+ /* jshint -W018 */
3505
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
3506
+ };
3507
+
3508
+
3509
+ function Data() {
3510
+ // Support: Android < 4,
3511
+ // Old WebKit does not have Object.preventExtensions/freeze method,
3512
+ // return new empty object instead with no [[set]] accessor
3513
+ Object.defineProperty( this.cache = {}, 0, {
3514
+ get: function() {
3515
+ return {};
3516
+ }
3517
+ });
3518
+
3519
+ this.expando = jQuery.expando + Math.random();
3520
+ }
3521
+
3522
+ Data.uid = 1;
3523
+ Data.accepts = jQuery.acceptData;
3524
+
3525
+ Data.prototype = {
3526
+ key: function( owner ) {
3527
+ // We can accept data for non-element nodes in modern browsers,
3528
+ // but we should not, see #8335.
3529
+ // Always return the key for a frozen object.
3530
+ if ( !Data.accepts( owner ) ) {
3531
+ return 0;
3532
+ }
3533
+
3534
+ var descriptor = {},
3535
+ // Check if the owner object already has a cache key
3536
+ unlock = owner[ this.expando ];
3537
+
3538
+ // If not, create one
3539
+ if ( !unlock ) {
3540
+ unlock = Data.uid++;
3541
+
3542
+ // Secure it in a non-enumerable, non-writable property
3543
+ try {
3544
+ descriptor[ this.expando ] = { value: unlock };
3545
+ Object.defineProperties( owner, descriptor );
3546
+
3547
+ // Support: Android < 4
3548
+ // Fallback to a less secure definition
3549
+ } catch ( e ) {
3550
+ descriptor[ this.expando ] = unlock;
3551
+ jQuery.extend( owner, descriptor );
3552
+ }
3553
+ }
3554
+
3555
+ // Ensure the cache object
3556
+ if ( !this.cache[ unlock ] ) {
3557
+ this.cache[ unlock ] = {};
3558
+ }
3559
+
3560
+ return unlock;
3561
+ },
3562
+ set: function( owner, data, value ) {
3563
+ var prop,
3564
+ // There may be an unlock assigned to this node,
3565
+ // if there is no entry for this "owner", create one inline
3566
+ // and set the unlock as though an owner entry had always existed
3567
+ unlock = this.key( owner ),
3568
+ cache = this.cache[ unlock ];
3569
+
3570
+ // Handle: [ owner, key, value ] args
3571
+ if ( typeof data === "string" ) {
3572
+ cache[ data ] = value;
3573
+
3574
+ // Handle: [ owner, { properties } ] args
3575
+ } else {
3576
+ // Fresh assignments by object are shallow copied
3577
+ if ( jQuery.isEmptyObject( cache ) ) {
3578
+ jQuery.extend( this.cache[ unlock ], data );
3579
+ // Otherwise, copy the properties one-by-one to the cache object
3580
+ } else {
3581
+ for ( prop in data ) {
3582
+ cache[ prop ] = data[ prop ];
3583
+ }
3584
+ }
3585
+ }
3586
+ return cache;
3587
+ },
3588
+ get: function( owner, key ) {
3589
+ // Either a valid cache is found, or will be created.
3590
+ // New caches will be created and the unlock returned,
3591
+ // allowing direct access to the newly created
3592
+ // empty data object. A valid owner object must be provided.
3593
+ var cache = this.cache[ this.key( owner ) ];
3594
+
3595
+ return key === undefined ?
3596
+ cache : cache[ key ];
3597
+ },
3598
+ access: function( owner, key, value ) {
3599
+ var stored;
3600
+ // In cases where either:
3601
+ //
3602
+ // 1. No key was specified
3603
+ // 2. A string key was specified, but no value provided
3604
+ //
3605
+ // Take the "read" path and allow the get method to determine
3606
+ // which value to return, respectively either:
3607
+ //
3608
+ // 1. The entire cache object
3609
+ // 2. The data stored at the key
3610
+ //
3611
+ if ( key === undefined ||
3612
+ ((key && typeof key === "string") && value === undefined) ) {
3613
+
3614
+ stored = this.get( owner, key );
3615
+
3616
+ return stored !== undefined ?
3617
+ stored : this.get( owner, jQuery.camelCase(key) );
3618
+ }
3619
+
3620
+ // [*]When the key is not a string, or both a key and value
3621
+ // are specified, set or extend (existing objects) with either:
3622
+ //
3623
+ // 1. An object of properties
3624
+ // 2. A key and value
3625
+ //
3626
+ this.set( owner, key, value );
3627
+
3628
+ // Since the "set" path can have two possible entry points
3629
+ // return the expected data based on which path was taken[*]
3630
+ return value !== undefined ? value : key;
3631
+ },
3632
+ remove: function( owner, key ) {
3633
+ var i, name, camel,
3634
+ unlock = this.key( owner ),
3635
+ cache = this.cache[ unlock ];
3636
+
3637
+ if ( key === undefined ) {
3638
+ this.cache[ unlock ] = {};
3639
+
3640
+ } else {
3641
+ // Support array or space separated string of keys
3642
+ if ( jQuery.isArray( key ) ) {
3643
+ // If "name" is an array of keys...
3644
+ // When data is initially created, via ("key", "val") signature,
3645
+ // keys will be converted to camelCase.
3646
+ // Since there is no way to tell _how_ a key was added, remove
3647
+ // both plain key and camelCase key. #12786
3648
+ // This will only penalize the array argument path.
3649
+ name = key.concat( key.map( jQuery.camelCase ) );
3650
+ } else {
3651
+ camel = jQuery.camelCase( key );
3652
+ // Try the string as a key before any manipulation
3653
+ if ( key in cache ) {
3654
+ name = [ key, camel ];
3655
+ } else {
3656
+ // If a key with the spaces exists, use it.
3657
+ // Otherwise, create an array by matching non-whitespace
3658
+ name = camel;
3659
+ name = name in cache ?
3660
+ [ name ] : ( name.match( rnotwhite ) || [] );
3661
+ }
3662
+ }
3663
+
3664
+ i = name.length;
3665
+ while ( i-- ) {
3666
+ delete cache[ name[ i ] ];
3667
+ }
3668
+ }
3669
+ },
3670
+ hasData: function( owner ) {
3671
+ return !jQuery.isEmptyObject(
3672
+ this.cache[ owner[ this.expando ] ] || {}
3673
+ );
3674
+ },
3675
+ discard: function( owner ) {
3676
+ if ( owner[ this.expando ] ) {
3677
+ delete this.cache[ owner[ this.expando ] ];
3678
+ }
3679
+ }
3680
+ };
3681
+ var data_priv = new Data();
3682
+
3683
+ var data_user = new Data();
3684
+
3685
+
3686
+
3687
+ /*
3688
+ Implementation Summary
3689
+
3690
+ 1. Enforce API surface and semantic compatibility with 1.9.x branch
3691
+ 2. Improve the module's maintainability by reducing the storage
3692
+ paths to a single mechanism.
3693
+ 3. Use the same single mechanism to support "private" and "user" data.
3694
+ 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
3695
+ 5. Avoid exposing implementation details on user objects (eg. expando properties)
3696
+ 6. Provide a clear path for implementation upgrade to WeakMap in 2014
3697
+ */
3698
+ var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
3699
+ rmultiDash = /([A-Z])/g;
3700
+
3701
+ function dataAttr( elem, key, data ) {
3702
+ var name;
3703
+
3704
+ // If nothing was found internally, try to fetch any
3705
+ // data from the HTML5 data-* attribute
3706
+ if ( data === undefined && elem.nodeType === 1 ) {
3707
+ name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
3708
+ data = elem.getAttribute( name );
3709
+
3710
+ if ( typeof data === "string" ) {
3711
+ try {
3712
+ data = data === "true" ? true :
3713
+ data === "false" ? false :
3714
+ data === "null" ? null :
3715
+ // Only convert to a number if it doesn't change the string
3716
+ +data + "" === data ? +data :
3717
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
3718
+ data;
3719
+ } catch( e ) {}
3720
+
3721
+ // Make sure we set the data so it isn't changed later
3722
+ data_user.set( elem, key, data );
3723
+ } else {
3724
+ data = undefined;
3725
+ }
3726
+ }
3727
+ return data;
3728
+ }
3729
+
3730
+ jQuery.extend({
3731
+ hasData: function( elem ) {
3732
+ return data_user.hasData( elem ) || data_priv.hasData( elem );
3733
+ },
3734
+
3735
+ data: function( elem, name, data ) {
3736
+ return data_user.access( elem, name, data );
3737
+ },
3738
+
3739
+ removeData: function( elem, name ) {
3740
+ data_user.remove( elem, name );
3741
+ },
3742
+
3743
+ // TODO: Now that all calls to _data and _removeData have been replaced
3744
+ // with direct calls to data_priv methods, these can be deprecated.
3745
+ _data: function( elem, name, data ) {
3746
+ return data_priv.access( elem, name, data );
3747
+ },
3748
+
3749
+ _removeData: function( elem, name ) {
3750
+ data_priv.remove( elem, name );
3751
+ }
3752
+ });
3753
+
3754
+ jQuery.fn.extend({
3755
+ data: function( key, value ) {
3756
+ var i, name, data,
3757
+ elem = this[ 0 ],
3758
+ attrs = elem && elem.attributes;
3759
+
3760
+ // Gets all values
3761
+ if ( key === undefined ) {
3762
+ if ( this.length ) {
3763
+ data = data_user.get( elem );
3764
+
3765
+ if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
3766
+ i = attrs.length;
3767
+ while ( i-- ) {
3768
+
3769
+ // Support: IE11+
3770
+ // The attrs elements can be null (#14894)
3771
+ if ( attrs[ i ] ) {
3772
+ name = attrs[ i ].name;
3773
+ if ( name.indexOf( "data-" ) === 0 ) {
3774
+ name = jQuery.camelCase( name.slice(5) );
3775
+ dataAttr( elem, name, data[ name ] );
3776
+ }
3777
+ }
3778
+ }
3779
+ data_priv.set( elem, "hasDataAttrs", true );
3780
+ }
3781
+ }
3782
+
3783
+ return data;
3784
+ }
3785
+
3786
+ // Sets multiple values
3787
+ if ( typeof key === "object" ) {
3788
+ return this.each(function() {
3789
+ data_user.set( this, key );
3790
+ });
3791
+ }
3792
+
3793
+ return access( this, function( value ) {
3794
+ var data,
3795
+ camelKey = jQuery.camelCase( key );
3796
+
3797
+ // The calling jQuery object (element matches) is not empty
3798
+ // (and therefore has an element appears at this[ 0 ]) and the
3799
+ // `value` parameter was not undefined. An empty jQuery object
3800
+ // will result in `undefined` for elem = this[ 0 ] which will
3801
+ // throw an exception if an attempt to read a data cache is made.
3802
+ if ( elem && value === undefined ) {
3803
+ // Attempt to get data from the cache
3804
+ // with the key as-is
3805
+ data = data_user.get( elem, key );
3806
+ if ( data !== undefined ) {
3807
+ return data;
3808
+ }
3809
+
3810
+ // Attempt to get data from the cache
3811
+ // with the key camelized
3812
+ data = data_user.get( elem, camelKey );
3813
+ if ( data !== undefined ) {
3814
+ return data;
3815
+ }
3816
+
3817
+ // Attempt to "discover" the data in
3818
+ // HTML5 custom data-* attrs
3819
+ data = dataAttr( elem, camelKey, undefined );
3820
+ if ( data !== undefined ) {
3821
+ return data;
3822
+ }
3823
+
3824
+ // We tried really hard, but the data doesn't exist.
3825
+ return;
3826
+ }
3827
+
3828
+ // Set the data...
3829
+ this.each(function() {
3830
+ // First, attempt to store a copy or reference of any
3831
+ // data that might've been store with a camelCased key.
3832
+ var data = data_user.get( this, camelKey );
3833
+
3834
+ // For HTML5 data-* attribute interop, we have to
3835
+ // store property names with dashes in a camelCase form.
3836
+ // This might not apply to all properties...*
3837
+ data_user.set( this, camelKey, value );
3838
+
3839
+ // *... In the case of properties that might _actually_
3840
+ // have dashes, we need to also store a copy of that
3841
+ // unchanged property.
3842
+ if ( key.indexOf("-") !== -1 && data !== undefined ) {
3843
+ data_user.set( this, key, value );
3844
+ }
3845
+ });
3846
+ }, null, value, arguments.length > 1, null, true );
3847
+ },
3848
+
3849
+ removeData: function( key ) {
3850
+ return this.each(function() {
3851
+ data_user.remove( this, key );
3852
+ });
3853
+ }
3854
+ });
3855
+
3856
+
3857
+ jQuery.extend({
3858
+ queue: function( elem, type, data ) {
3859
+ var queue;
3860
+
3861
+ if ( elem ) {
3862
+ type = ( type || "fx" ) + "queue";
3863
+ queue = data_priv.get( elem, type );
3864
+
3865
+ // Speed up dequeue by getting out quickly if this is just a lookup
3866
+ if ( data ) {
3867
+ if ( !queue || jQuery.isArray( data ) ) {
3868
+ queue = data_priv.access( elem, type, jQuery.makeArray(data) );
3869
+ } else {
3870
+ queue.push( data );
3871
+ }
3872
+ }
3873
+ return queue || [];
3874
+ }
3875
+ },
3876
+
3877
+ dequeue: function( elem, type ) {
3878
+ type = type || "fx";
3879
+
3880
+ var queue = jQuery.queue( elem, type ),
3881
+ startLength = queue.length,
3882
+ fn = queue.shift(),
3883
+ hooks = jQuery._queueHooks( elem, type ),
3884
+ next = function() {
3885
+ jQuery.dequeue( elem, type );
3886
+ };
3887
+
3888
+ // If the fx queue is dequeued, always remove the progress sentinel
3889
+ if ( fn === "inprogress" ) {
3890
+ fn = queue.shift();
3891
+ startLength--;
3892
+ }
3893
+
3894
+ if ( fn ) {
3895
+
3896
+ // Add a progress sentinel to prevent the fx queue from being
3897
+ // automatically dequeued
3898
+ if ( type === "fx" ) {
3899
+ queue.unshift( "inprogress" );
3900
+ }
3901
+
3902
+ // clear up the last queue stop function
3903
+ delete hooks.stop;
3904
+ fn.call( elem, next, hooks );
3905
+ }
3906
+
3907
+ if ( !startLength && hooks ) {
3908
+ hooks.empty.fire();
3909
+ }
3910
+ },
3911
+
3912
+ // not intended for public consumption - generates a queueHooks object, or returns the current one
3913
+ _queueHooks: function( elem, type ) {
3914
+ var key = type + "queueHooks";
3915
+ return data_priv.get( elem, key ) || data_priv.access( elem, key, {
3916
+ empty: jQuery.Callbacks("once memory").add(function() {
3917
+ data_priv.remove( elem, [ type + "queue", key ] );
3918
+ })
3919
+ });
3920
+ }
3921
+ });
3922
+
3923
+ jQuery.fn.extend({
3924
+ queue: function( type, data ) {
3925
+ var setter = 2;
3926
+
3927
+ if ( typeof type !== "string" ) {
3928
+ data = type;
3929
+ type = "fx";
3930
+ setter--;
3931
+ }
3932
+
3933
+ if ( arguments.length < setter ) {
3934
+ return jQuery.queue( this[0], type );
3935
+ }
3936
+
3937
+ return data === undefined ?
3938
+ this :
3939
+ this.each(function() {
3940
+ var queue = jQuery.queue( this, type, data );
3941
+
3942
+ // ensure a hooks for this queue
3943
+ jQuery._queueHooks( this, type );
3944
+
3945
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
3946
+ jQuery.dequeue( this, type );
3947
+ }
3948
+ });
3949
+ },
3950
+ dequeue: function( type ) {
3951
+ return this.each(function() {
3952
+ jQuery.dequeue( this, type );
3953
+ });
3954
+ },
3955
+ clearQueue: function( type ) {
3956
+ return this.queue( type || "fx", [] );
3957
+ },
3958
+ // Get a promise resolved when queues of a certain type
3959
+ // are emptied (fx is the type by default)
3960
+ promise: function( type, obj ) {
3961
+ var tmp,
3962
+ count = 1,
3963
+ defer = jQuery.Deferred(),
3964
+ elements = this,
3965
+ i = this.length,
3966
+ resolve = function() {
3967
+ if ( !( --count ) ) {
3968
+ defer.resolveWith( elements, [ elements ] );
3969
+ }
3970
+ };
3971
+
3972
+ if ( typeof type !== "string" ) {
3973
+ obj = type;
3974
+ type = undefined;
3975
+ }
3976
+ type = type || "fx";
3977
+
3978
+ while ( i-- ) {
3979
+ tmp = data_priv.get( elements[ i ], type + "queueHooks" );
3980
+ if ( tmp && tmp.empty ) {
3981
+ count++;
3982
+ tmp.empty.add( resolve );
3983
+ }
3984
+ }
3985
+ resolve();
3986
+ return defer.promise( obj );
3987
+ }
3988
+ });
3989
+ var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
3990
+
3991
+ var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
3992
+
3993
+ var isHidden = function( elem, el ) {
3994
+ // isHidden might be called from jQuery#filter function;
3995
+ // in that case, element will be second argument
3996
+ elem = el || elem;
3997
+ return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
3998
+ };
3999
+
4000
+ var rcheckableType = (/^(?:checkbox|radio)$/i);
4001
+
4002
+
4003
+
4004
+ (function() {
4005
+ var fragment = document.createDocumentFragment(),
4006
+ div = fragment.appendChild( document.createElement( "div" ) ),
4007
+ input = document.createElement( "input" );
4008
+
4009
+ // #11217 - WebKit loses check when the name is after the checked attribute
4010
+ // Support: Windows Web Apps (WWA)
4011
+ // `name` and `type` need .setAttribute for WWA
4012
+ input.setAttribute( "type", "radio" );
4013
+ input.setAttribute( "checked", "checked" );
4014
+ input.setAttribute( "name", "t" );
4015
+
4016
+ div.appendChild( input );
4017
+
4018
+ // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
4019
+ // old WebKit doesn't clone checked state correctly in fragments
4020
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
4021
+
4022
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
4023
+ // Support: IE9-IE11+
4024
+ div.innerHTML = "<textarea>x</textarea>";
4025
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
4026
+ })();
4027
+ var strundefined = typeof undefined;
4028
+
4029
+
4030
+
4031
+ support.focusinBubbles = "onfocusin" in window;
4032
+
4033
+
4034
+ var
4035
+ rkeyEvent = /^key/,
4036
+ rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
4037
+ rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
4038
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
4039
+
4040
+ function returnTrue() {
4041
+ return true;
4042
+ }
4043
+
4044
+ function returnFalse() {
4045
+ return false;
4046
+ }
4047
+
4048
+ function safeActiveElement() {
4049
+ try {
4050
+ return document.activeElement;
4051
+ } catch ( err ) { }
4052
+ }
4053
+
4054
+ /*
4055
+ * Helper functions for managing events -- not part of the public interface.
4056
+ * Props to Dean Edwards' addEvent library for many of the ideas.
4057
+ */
4058
+ jQuery.event = {
4059
+
4060
+ global: {},
4061
+
4062
+ add: function( elem, types, handler, data, selector ) {
4063
+
4064
+ var handleObjIn, eventHandle, tmp,
4065
+ events, t, handleObj,
4066
+ special, handlers, type, namespaces, origType,
4067
+ elemData = data_priv.get( elem );
4068
+
4069
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
4070
+ if ( !elemData ) {
4071
+ return;
4072
+ }
4073
+
4074
+ // Caller can pass in an object of custom data in lieu of the handler
4075
+ if ( handler.handler ) {
4076
+ handleObjIn = handler;
4077
+ handler = handleObjIn.handler;
4078
+ selector = handleObjIn.selector;
4079
+ }
4080
+
4081
+ // Make sure that the handler has a unique ID, used to find/remove it later
4082
+ if ( !handler.guid ) {
4083
+ handler.guid = jQuery.guid++;
4084
+ }
4085
+
4086
+ // Init the element's event structure and main handler, if this is the first
4087
+ if ( !(events = elemData.events) ) {
4088
+ events = elemData.events = {};
4089
+ }
4090
+ if ( !(eventHandle = elemData.handle) ) {
4091
+ eventHandle = elemData.handle = function( e ) {
4092
+ // Discard the second event of a jQuery.event.trigger() and
4093
+ // when an event is called after a page has unloaded
4094
+ return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
4095
+ jQuery.event.dispatch.apply( elem, arguments ) : undefined;
4096
+ };
4097
+ }
4098
+
4099
+ // Handle multiple events separated by a space
4100
+ types = ( types || "" ).match( rnotwhite ) || [ "" ];
4101
+ t = types.length;
4102
+ while ( t-- ) {
4103
+ tmp = rtypenamespace.exec( types[t] ) || [];
4104
+ type = origType = tmp[1];
4105
+ namespaces = ( tmp[2] || "" ).split( "." ).sort();
4106
+
4107
+ // There *must* be a type, no attaching namespace-only handlers
4108
+ if ( !type ) {
4109
+ continue;
4110
+ }
4111
+
4112
+ // If event changes its type, use the special event handlers for the changed type
4113
+ special = jQuery.event.special[ type ] || {};
4114
+
4115
+ // If selector defined, determine special event api type, otherwise given type
4116
+ type = ( selector ? special.delegateType : special.bindType ) || type;
4117
+
4118
+ // Update special based on newly reset type
4119
+ special = jQuery.event.special[ type ] || {};
4120
+
4121
+ // handleObj is passed to all event handlers
4122
+ handleObj = jQuery.extend({
4123
+ type: type,
4124
+ origType: origType,
4125
+ data: data,
4126
+ handler: handler,
4127
+ guid: handler.guid,
4128
+ selector: selector,
4129
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
4130
+ namespace: namespaces.join(".")
4131
+ }, handleObjIn );
4132
+
4133
+ // Init the event handler queue if we're the first
4134
+ if ( !(handlers = events[ type ]) ) {
4135
+ handlers = events[ type ] = [];
4136
+ handlers.delegateCount = 0;
4137
+
4138
+ // Only use addEventListener if the special events handler returns false
4139
+ if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
4140
+ if ( elem.addEventListener ) {
4141
+ elem.addEventListener( type, eventHandle, false );
4142
+ }
4143
+ }
4144
+ }
4145
+
4146
+ if ( special.add ) {
4147
+ special.add.call( elem, handleObj );
4148
+
4149
+ if ( !handleObj.handler.guid ) {
4150
+ handleObj.handler.guid = handler.guid;
4151
+ }
4152
+ }
4153
+
4154
+ // Add to the element's handler list, delegates in front
4155
+ if ( selector ) {
4156
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
4157
+ } else {
4158
+ handlers.push( handleObj );
4159
+ }
4160
+
4161
+ // Keep track of which events have ever been used, for event optimization
4162
+ jQuery.event.global[ type ] = true;
4163
+ }
4164
+
4165
+ },
4166
+
4167
+ // Detach an event or set of events from an element
4168
+ remove: function( elem, types, handler, selector, mappedTypes ) {
4169
+
4170
+ var j, origCount, tmp,
4171
+ events, t, handleObj,
4172
+ special, handlers, type, namespaces, origType,
4173
+ elemData = data_priv.hasData( elem ) && data_priv.get( elem );
4174
+
4175
+ if ( !elemData || !(events = elemData.events) ) {
4176
+ return;
4177
+ }
4178
+
4179
+ // Once for each type.namespace in types; type may be omitted
4180
+ types = ( types || "" ).match( rnotwhite ) || [ "" ];
4181
+ t = types.length;
4182
+ while ( t-- ) {
4183
+ tmp = rtypenamespace.exec( types[t] ) || [];
4184
+ type = origType = tmp[1];
4185
+ namespaces = ( tmp[2] || "" ).split( "." ).sort();
4186
+
4187
+ // Unbind all events (on this namespace, if provided) for the element
4188
+ if ( !type ) {
4189
+ for ( type in events ) {
4190
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
4191
+ }
4192
+ continue;
4193
+ }
4194
+
4195
+ special = jQuery.event.special[ type ] || {};
4196
+ type = ( selector ? special.delegateType : special.bindType ) || type;
4197
+ handlers = events[ type ] || [];
4198
+ tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
4199
+
4200
+ // Remove matching events
4201
+ origCount = j = handlers.length;
4202
+ while ( j-- ) {
4203
+ handleObj = handlers[ j ];
4204
+
4205
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
4206
+ ( !handler || handler.guid === handleObj.guid ) &&
4207
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
4208
+ ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
4209
+ handlers.splice( j, 1 );
4210
+
4211
+ if ( handleObj.selector ) {
4212
+ handlers.delegateCount--;
4213
+ }
4214
+ if ( special.remove ) {
4215
+ special.remove.call( elem, handleObj );
4216
+ }
4217
+ }
4218
+ }
4219
+
4220
+ // Remove generic event handler if we removed something and no more handlers exist
4221
+ // (avoids potential for endless recursion during removal of special event handlers)
4222
+ if ( origCount && !handlers.length ) {
4223
+ if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
4224
+ jQuery.removeEvent( elem, type, elemData.handle );
4225
+ }
4226
+
4227
+ delete events[ type ];
4228
+ }
4229
+ }
4230
+
4231
+ // Remove the expando if it's no longer used
4232
+ if ( jQuery.isEmptyObject( events ) ) {
4233
+ delete elemData.handle;
4234
+ data_priv.remove( elem, "events" );
4235
+ }
4236
+ },
4237
+
4238
+ trigger: function( event, data, elem, onlyHandlers ) {
4239
+
4240
+ var i, cur, tmp, bubbleType, ontype, handle, special,
4241
+ eventPath = [ elem || document ],
4242
+ type = hasOwn.call( event, "type" ) ? event.type : event,
4243
+ namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
4244
+
4245
+ cur = tmp = elem = elem || document;
4246
+
4247
+ // Don't do events on text and comment nodes
4248
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
4249
+ return;
4250
+ }
4251
+
4252
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
4253
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
4254
+ return;
4255
+ }
4256
+
4257
+ if ( type.indexOf(".") >= 0 ) {
4258
+ // Namespaced trigger; create a regexp to match event type in handle()
4259
+ namespaces = type.split(".");
4260
+ type = namespaces.shift();
4261
+ namespaces.sort();
4262
+ }
4263
+ ontype = type.indexOf(":") < 0 && "on" + type;
4264
+
4265
+ // Caller can pass in a jQuery.Event object, Object, or just an event type string
4266
+ event = event[ jQuery.expando ] ?
4267
+ event :
4268
+ new jQuery.Event( type, typeof event === "object" && event );
4269
+
4270
+ // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
4271
+ event.isTrigger = onlyHandlers ? 2 : 3;
4272
+ event.namespace = namespaces.join(".");
4273
+ event.namespace_re = event.namespace ?
4274
+ new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
4275
+ null;
4276
+
4277
+ // Clean up the event in case it is being reused
4278
+ event.result = undefined;
4279
+ if ( !event.target ) {
4280
+ event.target = elem;
4281
+ }
4282
+
4283
+ // Clone any incoming data and prepend the event, creating the handler arg list
4284
+ data = data == null ?
4285
+ [ event ] :
4286
+ jQuery.makeArray( data, [ event ] );
4287
+
4288
+ // Allow special events to draw outside the lines
4289
+ special = jQuery.event.special[ type ] || {};
4290
+ if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
4291
+ return;
4292
+ }
4293
+
4294
+ // Determine event propagation path in advance, per W3C events spec (#9951)
4295
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
4296
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
4297
+
4298
+ bubbleType = special.delegateType || type;
4299
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
4300
+ cur = cur.parentNode;
4301
+ }
4302
+ for ( ; cur; cur = cur.parentNode ) {
4303
+ eventPath.push( cur );
4304
+ tmp = cur;
4305
+ }
4306
+
4307
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
4308
+ if ( tmp === (elem.ownerDocument || document) ) {
4309
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
4310
+ }
4311
+ }
4312
+
4313
+ // Fire handlers on the event path
4314
+ i = 0;
4315
+ while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
4316
+
4317
+ event.type = i > 1 ?
4318
+ bubbleType :
4319
+ special.bindType || type;
4320
+
4321
+ // jQuery handler
4322
+ handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" );
4323
+ if ( handle ) {
4324
+ handle.apply( cur, data );
4325
+ }
4326
+
4327
+ // Native handler
4328
+ handle = ontype && cur[ ontype ];
4329
+ if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
4330
+ event.result = handle.apply( cur, data );
4331
+ if ( event.result === false ) {
4332
+ event.preventDefault();
4333
+ }
4334
+ }
4335
+ }
4336
+ event.type = type;
4337
+
4338
+ // If nobody prevented the default action, do it now
4339
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
4340
+
4341
+ if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
4342
+ jQuery.acceptData( elem ) ) {
4343
+
4344
+ // Call a native DOM method on the target with the same name name as the event.
4345
+ // Don't do default actions on window, that's where global variables be (#6170)
4346
+ if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
4347
+
4348
+ // Don't re-trigger an onFOO event when we call its FOO() method
4349
+ tmp = elem[ ontype ];
4350
+
4351
+ if ( tmp ) {
4352
+ elem[ ontype ] = null;
4353
+ }
4354
+
4355
+ // Prevent re-triggering of the same event, since we already bubbled it above
4356
+ jQuery.event.triggered = type;
4357
+ elem[ type ]();
4358
+ jQuery.event.triggered = undefined;
4359
+
4360
+ if ( tmp ) {
4361
+ elem[ ontype ] = tmp;
4362
+ }
4363
+ }
4364
+ }
4365
+ }
4366
+
4367
+ return event.result;
4368
+ },
4369
+
4370
+ dispatch: function( event ) {
4371
+
4372
+ // Make a writable jQuery.Event from the native event object
4373
+ event = jQuery.event.fix( event );
4374
+
4375
+ var i, j, ret, matched, handleObj,
4376
+ handlerQueue = [],
4377
+ args = slice.call( arguments ),
4378
+ handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [],
4379
+ special = jQuery.event.special[ event.type ] || {};
4380
+
4381
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
4382
+ args[0] = event;
4383
+ event.delegateTarget = this;
4384
+
4385
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
4386
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
4387
+ return;
4388
+ }
4389
+
4390
+ // Determine handlers
4391
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
4392
+
4393
+ // Run delegates first; they may want to stop propagation beneath us
4394
+ i = 0;
4395
+ while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
4396
+ event.currentTarget = matched.elem;
4397
+
4398
+ j = 0;
4399
+ while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
4400
+
4401
+ // Triggered event must either 1) have no namespace, or
4402
+ // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
4403
+ if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
4404
+
4405
+ event.handleObj = handleObj;
4406
+ event.data = handleObj.data;
4407
+
4408
+ ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
4409
+ .apply( matched.elem, args );
4410
+
4411
+ if ( ret !== undefined ) {
4412
+ if ( (event.result = ret) === false ) {
4413
+ event.preventDefault();
4414
+ event.stopPropagation();
4415
+ }
4416
+ }
4417
+ }
4418
+ }
4419
+ }
4420
+
4421
+ // Call the postDispatch hook for the mapped type
4422
+ if ( special.postDispatch ) {
4423
+ special.postDispatch.call( this, event );
4424
+ }
4425
+
4426
+ return event.result;
4427
+ },
4428
+
4429
+ handlers: function( event, handlers ) {
4430
+ var i, matches, sel, handleObj,
4431
+ handlerQueue = [],
4432
+ delegateCount = handlers.delegateCount,
4433
+ cur = event.target;
4434
+
4435
+ // Find delegate handlers
4436
+ // Black-hole SVG <use> instance trees (#13180)
4437
+ // Avoid non-left-click bubbling in Firefox (#3861)
4438
+ if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
4439
+
4440
+ for ( ; cur !== this; cur = cur.parentNode || this ) {
4441
+
4442
+ // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
4443
+ if ( cur.disabled !== true || event.type !== "click" ) {
4444
+ matches = [];
4445
+ for ( i = 0; i < delegateCount; i++ ) {
4446
+ handleObj = handlers[ i ];
4447
+
4448
+ // Don't conflict with Object.prototype properties (#13203)
4449
+ sel = handleObj.selector + " ";
4450
+
4451
+ if ( matches[ sel ] === undefined ) {
4452
+ matches[ sel ] = handleObj.needsContext ?
4453
+ jQuery( sel, this ).index( cur ) >= 0 :
4454
+ jQuery.find( sel, this, null, [ cur ] ).length;
4455
+ }
4456
+ if ( matches[ sel ] ) {
4457
+ matches.push( handleObj );
4458
+ }
4459
+ }
4460
+ if ( matches.length ) {
4461
+ handlerQueue.push({ elem: cur, handlers: matches });
4462
+ }
4463
+ }
4464
+ }
4465
+ }
4466
+
4467
+ // Add the remaining (directly-bound) handlers
4468
+ if ( delegateCount < handlers.length ) {
4469
+ handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
4470
+ }
4471
+
4472
+ return handlerQueue;
4473
+ },
4474
+
4475
+ // Includes some event props shared by KeyEvent and MouseEvent
4476
+ props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
4477
+
4478
+ fixHooks: {},
4479
+
4480
+ keyHooks: {
4481
+ props: "char charCode key keyCode".split(" "),
4482
+ filter: function( event, original ) {
4483
+
4484
+ // Add which for key events
4485
+ if ( event.which == null ) {
4486
+ event.which = original.charCode != null ? original.charCode : original.keyCode;
4487
+ }
4488
+
4489
+ return event;
4490
+ }
4491
+ },
4492
+
4493
+ mouseHooks: {
4494
+ props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
4495
+ filter: function( event, original ) {
4496
+ var eventDoc, doc, body,
4497
+ button = original.button;
4498
+
4499
+ // Calculate pageX/Y if missing and clientX/Y available
4500
+ if ( event.pageX == null && original.clientX != null ) {
4501
+ eventDoc = event.target.ownerDocument || document;
4502
+ doc = eventDoc.documentElement;
4503
+ body = eventDoc.body;
4504
+
4505
+ event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
4506
+ event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
4507
+ }
4508
+
4509
+ // Add which for click: 1 === left; 2 === middle; 3 === right
4510
+ // Note: button is not normalized, so don't use it
4511
+ if ( !event.which && button !== undefined ) {
4512
+ event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
4513
+ }
4514
+
4515
+ return event;
4516
+ }
4517
+ },
4518
+
4519
+ fix: function( event ) {
4520
+ if ( event[ jQuery.expando ] ) {
4521
+ return event;
4522
+ }
4523
+
4524
+ // Create a writable copy of the event object and normalize some properties
4525
+ var i, prop, copy,
4526
+ type = event.type,
4527
+ originalEvent = event,
4528
+ fixHook = this.fixHooks[ type ];
4529
+
4530
+ if ( !fixHook ) {
4531
+ this.fixHooks[ type ] = fixHook =
4532
+ rmouseEvent.test( type ) ? this.mouseHooks :
4533
+ rkeyEvent.test( type ) ? this.keyHooks :
4534
+ {};
4535
+ }
4536
+ copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
4537
+
4538
+ event = new jQuery.Event( originalEvent );
4539
+
4540
+ i = copy.length;
4541
+ while ( i-- ) {
4542
+ prop = copy[ i ];
4543
+ event[ prop ] = originalEvent[ prop ];
4544
+ }
4545
+
4546
+ // Support: Cordova 2.5 (WebKit) (#13255)
4547
+ // All events should have a target; Cordova deviceready doesn't
4548
+ if ( !event.target ) {
4549
+ event.target = document;
4550
+ }
4551
+
4552
+ // Support: Safari 6.0+, Chrome < 28
4553
+ // Target should not be a text node (#504, #13143)
4554
+ if ( event.target.nodeType === 3 ) {
4555
+ event.target = event.target.parentNode;
4556
+ }
4557
+
4558
+ return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
4559
+ },
4560
+
4561
+ special: {
4562
+ load: {
4563
+ // Prevent triggered image.load events from bubbling to window.load
4564
+ noBubble: true
4565
+ },
4566
+ focus: {
4567
+ // Fire native event if possible so blur/focus sequence is correct
4568
+ trigger: function() {
4569
+ if ( this !== safeActiveElement() && this.focus ) {
4570
+ this.focus();
4571
+ return false;
4572
+ }
4573
+ },
4574
+ delegateType: "focusin"
4575
+ },
4576
+ blur: {
4577
+ trigger: function() {
4578
+ if ( this === safeActiveElement() && this.blur ) {
4579
+ this.blur();
4580
+ return false;
4581
+ }
4582
+ },
4583
+ delegateType: "focusout"
4584
+ },
4585
+ click: {
4586
+ // For checkbox, fire native event so checked state will be right
4587
+ trigger: function() {
4588
+ if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
4589
+ this.click();
4590
+ return false;
4591
+ }
4592
+ },
4593
+
4594
+ // For cross-browser consistency, don't fire native .click() on links
4595
+ _default: function( event ) {
4596
+ return jQuery.nodeName( event.target, "a" );
4597
+ }
4598
+ },
4599
+
4600
+ beforeunload: {
4601
+ postDispatch: function( event ) {
4602
+
4603
+ // Support: Firefox 20+
4604
+ // Firefox doesn't alert if the returnValue field is not set.
4605
+ if ( event.result !== undefined && event.originalEvent ) {
4606
+ event.originalEvent.returnValue = event.result;
4607
+ }
4608
+ }
4609
+ }
4610
+ },
4611
+
4612
+ simulate: function( type, elem, event, bubble ) {
4613
+ // Piggyback on a donor event to simulate a different one.
4614
+ // Fake originalEvent to avoid donor's stopPropagation, but if the
4615
+ // simulated event prevents default then we do the same on the donor.
4616
+ var e = jQuery.extend(
4617
+ new jQuery.Event(),
4618
+ event,
4619
+ {
4620
+ type: type,
4621
+ isSimulated: true,
4622
+ originalEvent: {}
4623
+ }
4624
+ );
4625
+ if ( bubble ) {
4626
+ jQuery.event.trigger( e, null, elem );
4627
+ } else {
4628
+ jQuery.event.dispatch.call( elem, e );
4629
+ }
4630
+ if ( e.isDefaultPrevented() ) {
4631
+ event.preventDefault();
4632
+ }
4633
+ }
4634
+ };
4635
+
4636
+ jQuery.removeEvent = function( elem, type, handle ) {
4637
+ if ( elem.removeEventListener ) {
4638
+ elem.removeEventListener( type, handle, false );
4639
+ }
4640
+ };
4641
+
4642
+ jQuery.Event = function( src, props ) {
4643
+ // Allow instantiation without the 'new' keyword
4644
+ if ( !(this instanceof jQuery.Event) ) {
4645
+ return new jQuery.Event( src, props );
4646
+ }
4647
+
4648
+ // Event object
4649
+ if ( src && src.type ) {
4650
+ this.originalEvent = src;
4651
+ this.type = src.type;
4652
+
4653
+ // Events bubbling up the document may have been marked as prevented
4654
+ // by a handler lower down the tree; reflect the correct value.
4655
+ this.isDefaultPrevented = src.defaultPrevented ||
4656
+ src.defaultPrevented === undefined &&
4657
+ // Support: Android < 4.0
4658
+ src.returnValue === false ?
4659
+ returnTrue :
4660
+ returnFalse;
4661
+
4662
+ // Event type
4663
+ } else {
4664
+ this.type = src;
4665
+ }
4666
+
4667
+ // Put explicitly provided properties onto the event object
4668
+ if ( props ) {
4669
+ jQuery.extend( this, props );
4670
+ }
4671
+
4672
+ // Create a timestamp if incoming event doesn't have one
4673
+ this.timeStamp = src && src.timeStamp || jQuery.now();
4674
+
4675
+ // Mark it as fixed
4676
+ this[ jQuery.expando ] = true;
4677
+ };
4678
+
4679
+ // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
4680
+ // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
4681
+ jQuery.Event.prototype = {
4682
+ isDefaultPrevented: returnFalse,
4683
+ isPropagationStopped: returnFalse,
4684
+ isImmediatePropagationStopped: returnFalse,
4685
+
4686
+ preventDefault: function() {
4687
+ var e = this.originalEvent;
4688
+
4689
+ this.isDefaultPrevented = returnTrue;
4690
+
4691
+ if ( e && e.preventDefault ) {
4692
+ e.preventDefault();
4693
+ }
4694
+ },
4695
+ stopPropagation: function() {
4696
+ var e = this.originalEvent;
4697
+
4698
+ this.isPropagationStopped = returnTrue;
4699
+
4700
+ if ( e && e.stopPropagation ) {
4701
+ e.stopPropagation();
4702
+ }
4703
+ },
4704
+ stopImmediatePropagation: function() {
4705
+ var e = this.originalEvent;
4706
+
4707
+ this.isImmediatePropagationStopped = returnTrue;
4708
+
4709
+ if ( e && e.stopImmediatePropagation ) {
4710
+ e.stopImmediatePropagation();
4711
+ }
4712
+
4713
+ this.stopPropagation();
4714
+ }
4715
+ };
4716
+
4717
+ // Create mouseenter/leave events using mouseover/out and event-time checks
4718
+ // Support: Chrome 15+
4719
+ jQuery.each({
4720
+ mouseenter: "mouseover",
4721
+ mouseleave: "mouseout",
4722
+ pointerenter: "pointerover",
4723
+ pointerleave: "pointerout"
4724
+ }, function( orig, fix ) {
4725
+ jQuery.event.special[ orig ] = {
4726
+ delegateType: fix,
4727
+ bindType: fix,
4728
+
4729
+ handle: function( event ) {
4730
+ var ret,
4731
+ target = this,
4732
+ related = event.relatedTarget,
4733
+ handleObj = event.handleObj;
4734
+
4735
+ // For mousenter/leave call the handler if related is outside the target.
4736
+ // NB: No relatedTarget if the mouse left/entered the browser window
4737
+ if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
4738
+ event.type = handleObj.origType;
4739
+ ret = handleObj.handler.apply( this, arguments );
4740
+ event.type = fix;
4741
+ }
4742
+ return ret;
4743
+ }
4744
+ };
4745
+ });
4746
+
4747
+ // Create "bubbling" focus and blur events
4748
+ // Support: Firefox, Chrome, Safari
4749
+ if ( !support.focusinBubbles ) {
4750
+ jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
4751
+
4752
+ // Attach a single capturing handler on the document while someone wants focusin/focusout
4753
+ var handler = function( event ) {
4754
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
4755
+ };
4756
+
4757
+ jQuery.event.special[ fix ] = {
4758
+ setup: function() {
4759
+ var doc = this.ownerDocument || this,
4760
+ attaches = data_priv.access( doc, fix );
4761
+
4762
+ if ( !attaches ) {
4763
+ doc.addEventListener( orig, handler, true );
4764
+ }
4765
+ data_priv.access( doc, fix, ( attaches || 0 ) + 1 );
4766
+ },
4767
+ teardown: function() {
4768
+ var doc = this.ownerDocument || this,
4769
+ attaches = data_priv.access( doc, fix ) - 1;
4770
+
4771
+ if ( !attaches ) {
4772
+ doc.removeEventListener( orig, handler, true );
4773
+ data_priv.remove( doc, fix );
4774
+
4775
+ } else {
4776
+ data_priv.access( doc, fix, attaches );
4777
+ }
4778
+ }
4779
+ };
4780
+ });
4781
+ }
4782
+
4783
+ jQuery.fn.extend({
4784
+
4785
+ on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
4786
+ var origFn, type;
4787
+
4788
+ // Types can be a map of types/handlers
4789
+ if ( typeof types === "object" ) {
4790
+ // ( types-Object, selector, data )
4791
+ if ( typeof selector !== "string" ) {
4792
+ // ( types-Object, data )
4793
+ data = data || selector;
4794
+ selector = undefined;
4795
+ }
4796
+ for ( type in types ) {
4797
+ this.on( type, selector, data, types[ type ], one );
4798
+ }
4799
+ return this;
4800
+ }
4801
+
4802
+ if ( data == null && fn == null ) {
4803
+ // ( types, fn )
4804
+ fn = selector;
4805
+ data = selector = undefined;
4806
+ } else if ( fn == null ) {
4807
+ if ( typeof selector === "string" ) {
4808
+ // ( types, selector, fn )
4809
+ fn = data;
4810
+ data = undefined;
4811
+ } else {
4812
+ // ( types, data, fn )
4813
+ fn = data;
4814
+ data = selector;
4815
+ selector = undefined;
4816
+ }
4817
+ }
4818
+ if ( fn === false ) {
4819
+ fn = returnFalse;
4820
+ } else if ( !fn ) {
4821
+ return this;
4822
+ }
4823
+
4824
+ if ( one === 1 ) {
4825
+ origFn = fn;
4826
+ fn = function( event ) {
4827
+ // Can use an empty set, since event contains the info
4828
+ jQuery().off( event );
4829
+ return origFn.apply( this, arguments );
4830
+ };
4831
+ // Use same guid so caller can remove using origFn
4832
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
4833
+ }
4834
+ return this.each( function() {
4835
+ jQuery.event.add( this, types, fn, data, selector );
4836
+ });
4837
+ },
4838
+ one: function( types, selector, data, fn ) {
4839
+ return this.on( types, selector, data, fn, 1 );
4840
+ },
4841
+ off: function( types, selector, fn ) {
4842
+ var handleObj, type;
4843
+ if ( types && types.preventDefault && types.handleObj ) {
4844
+ // ( event ) dispatched jQuery.Event
4845
+ handleObj = types.handleObj;
4846
+ jQuery( types.delegateTarget ).off(
4847
+ handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
4848
+ handleObj.selector,
4849
+ handleObj.handler
4850
+ );
4851
+ return this;
4852
+ }
4853
+ if ( typeof types === "object" ) {
4854
+ // ( types-object [, selector] )
4855
+ for ( type in types ) {
4856
+ this.off( type, selector, types[ type ] );
4857
+ }
4858
+ return this;
4859
+ }
4860
+ if ( selector === false || typeof selector === "function" ) {
4861
+ // ( types [, fn] )
4862
+ fn = selector;
4863
+ selector = undefined;
4864
+ }
4865
+ if ( fn === false ) {
4866
+ fn = returnFalse;
4867
+ }
4868
+ return this.each(function() {
4869
+ jQuery.event.remove( this, types, fn, selector );
4870
+ });
4871
+ },
4872
+
4873
+ trigger: function( type, data ) {
4874
+ return this.each(function() {
4875
+ jQuery.event.trigger( type, data, this );
4876
+ });
4877
+ },
4878
+ triggerHandler: function( type, data ) {
4879
+ var elem = this[0];
4880
+ if ( elem ) {
4881
+ return jQuery.event.trigger( type, data, elem, true );
4882
+ }
4883
+ }
4884
+ });
4885
+
4886
+
4887
+ var
4888
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
4889
+ rtagName = /<([\w:]+)/,
4890
+ rhtml = /<|&#?\w+;/,
4891
+ rnoInnerhtml = /<(?:script|style|link)/i,
4892
+ // checked="checked" or checked
4893
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
4894
+ rscriptType = /^$|\/(?:java|ecma)script/i,
4895
+ rscriptTypeMasked = /^true\/(.*)/,
4896
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
4897
+
4898
+ // We have to close these tags to support XHTML (#13200)
4899
+ wrapMap = {
4900
+
4901
+ // Support: IE 9
4902
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
4903
+
4904
+ thead: [ 1, "<table>", "</table>" ],
4905
+ col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
4906
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
4907
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
4908
+
4909
+ _default: [ 0, "", "" ]
4910
+ };
4911
+
4912
+ // Support: IE 9
4913
+ wrapMap.optgroup = wrapMap.option;
4914
+
4915
+ wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
4916
+ wrapMap.th = wrapMap.td;
4917
+
4918
+ // Support: 1.x compatibility
4919
+ // Manipulating tables requires a tbody
4920
+ function manipulationTarget( elem, content ) {
4921
+ return jQuery.nodeName( elem, "table" ) &&
4922
+ jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
4923
+
4924
+ elem.getElementsByTagName("tbody")[0] ||
4925
+ elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
4926
+ elem;
4927
+ }
4928
+
4929
+ // Replace/restore the type attribute of script elements for safe DOM manipulation
4930
+ function disableScript( elem ) {
4931
+ elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type;
4932
+ return elem;
4933
+ }
4934
+ function restoreScript( elem ) {
4935
+ var match = rscriptTypeMasked.exec( elem.type );
4936
+
4937
+ if ( match ) {
4938
+ elem.type = match[ 1 ];
4939
+ } else {
4940
+ elem.removeAttribute("type");
4941
+ }
4942
+
4943
+ return elem;
4944
+ }
4945
+
4946
+ // Mark scripts as having already been evaluated
4947
+ function setGlobalEval( elems, refElements ) {
4948
+ var i = 0,
4949
+ l = elems.length;
4950
+
4951
+ for ( ; i < l; i++ ) {
4952
+ data_priv.set(
4953
+ elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" )
4954
+ );
4955
+ }
4956
+ }
4957
+
4958
+ function cloneCopyEvent( src, dest ) {
4959
+ var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
4960
+
4961
+ if ( dest.nodeType !== 1 ) {
4962
+ return;
4963
+ }
4964
+
4965
+ // 1. Copy private data: events, handlers, etc.
4966
+ if ( data_priv.hasData( src ) ) {
4967
+ pdataOld = data_priv.access( src );
4968
+ pdataCur = data_priv.set( dest, pdataOld );
4969
+ events = pdataOld.events;
4970
+
4971
+ if ( events ) {
4972
+ delete pdataCur.handle;
4973
+ pdataCur.events = {};
4974
+
4975
+ for ( type in events ) {
4976
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
4977
+ jQuery.event.add( dest, type, events[ type ][ i ] );
4978
+ }
4979
+ }
4980
+ }
4981
+ }
4982
+
4983
+ // 2. Copy user data
4984
+ if ( data_user.hasData( src ) ) {
4985
+ udataOld = data_user.access( src );
4986
+ udataCur = jQuery.extend( {}, udataOld );
4987
+
4988
+ data_user.set( dest, udataCur );
4989
+ }
4990
+ }
4991
+
4992
+ function getAll( context, tag ) {
4993
+ var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) :
4994
+ context.querySelectorAll ? context.querySelectorAll( tag || "*" ) :
4995
+ [];
4996
+
4997
+ return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
4998
+ jQuery.merge( [ context ], ret ) :
4999
+ ret;
5000
+ }
5001
+
5002
+ // Support: IE >= 9
5003
+ function fixInput( src, dest ) {
5004
+ var nodeName = dest.nodeName.toLowerCase();
5005
+
5006
+ // Fails to persist the checked state of a cloned checkbox or radio button.
5007
+ if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
5008
+ dest.checked = src.checked;
5009
+
5010
+ // Fails to return the selected option to the default selected state when cloning options
5011
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
5012
+ dest.defaultValue = src.defaultValue;
5013
+ }
5014
+ }
5015
+
5016
+ jQuery.extend({
5017
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
5018
+ var i, l, srcElements, destElements,
5019
+ clone = elem.cloneNode( true ),
5020
+ inPage = jQuery.contains( elem.ownerDocument, elem );
5021
+
5022
+ // Support: IE >= 9
5023
+ // Fix Cloning issues
5024
+ if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
5025
+ !jQuery.isXMLDoc( elem ) ) {
5026
+
5027
+ // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
5028
+ destElements = getAll( clone );
5029
+ srcElements = getAll( elem );
5030
+
5031
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
5032
+ fixInput( srcElements[ i ], destElements[ i ] );
5033
+ }
5034
+ }
5035
+
5036
+ // Copy the events from the original to the clone
5037
+ if ( dataAndEvents ) {
5038
+ if ( deepDataAndEvents ) {
5039
+ srcElements = srcElements || getAll( elem );
5040
+ destElements = destElements || getAll( clone );
5041
+
5042
+ for ( i = 0, l = srcElements.length; i < l; i++ ) {
5043
+ cloneCopyEvent( srcElements[ i ], destElements[ i ] );
5044
+ }
5045
+ } else {
5046
+ cloneCopyEvent( elem, clone );
5047
+ }
5048
+ }
5049
+
5050
+ // Preserve script evaluation history
5051
+ destElements = getAll( clone, "script" );
5052
+ if ( destElements.length > 0 ) {
5053
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
5054
+ }
5055
+
5056
+ // Return the cloned set
5057
+ return clone;
5058
+ },
5059
+
5060
+ buildFragment: function( elems, context, scripts, selection ) {
5061
+ var elem, tmp, tag, wrap, contains, j,
5062
+ fragment = context.createDocumentFragment(),
5063
+ nodes = [],
5064
+ i = 0,
5065
+ l = elems.length;
5066
+
5067
+ for ( ; i < l; i++ ) {
5068
+ elem = elems[ i ];
5069
+
5070
+ if ( elem || elem === 0 ) {
5071
+
5072
+ // Add nodes directly
5073
+ if ( jQuery.type( elem ) === "object" ) {
5074
+ // Support: QtWebKit
5075
+ // jQuery.merge because push.apply(_, arraylike) throws
5076
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
5077
+
5078
+ // Convert non-html into a text node
5079
+ } else if ( !rhtml.test( elem ) ) {
5080
+ nodes.push( context.createTextNode( elem ) );
5081
+
5082
+ // Convert html into DOM nodes
5083
+ } else {
5084
+ tmp = tmp || fragment.appendChild( context.createElement("div") );
5085
+
5086
+ // Deserialize a standard representation
5087
+ tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
5088
+ wrap = wrapMap[ tag ] || wrapMap._default;
5089
+ tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ];
5090
+
5091
+ // Descend through wrappers to the right content
5092
+ j = wrap[ 0 ];
5093
+ while ( j-- ) {
5094
+ tmp = tmp.lastChild;
5095
+ }
5096
+
5097
+ // Support: QtWebKit
5098
+ // jQuery.merge because push.apply(_, arraylike) throws
5099
+ jQuery.merge( nodes, tmp.childNodes );
5100
+
5101
+ // Remember the top-level container
5102
+ tmp = fragment.firstChild;
5103
+
5104
+ // Fixes #12346
5105
+ // Support: Webkit, IE
5106
+ tmp.textContent = "";
5107
+ }
5108
+ }
5109
+ }
5110
+
5111
+ // Remove wrapper from fragment
5112
+ fragment.textContent = "";
5113
+
5114
+ i = 0;
5115
+ while ( (elem = nodes[ i++ ]) ) {
5116
+
5117
+ // #4087 - If origin and destination elements are the same, and this is
5118
+ // that element, do not do anything
5119
+ if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
5120
+ continue;
5121
+ }
5122
+
5123
+ contains = jQuery.contains( elem.ownerDocument, elem );
5124
+
5125
+ // Append to fragment
5126
+ tmp = getAll( fragment.appendChild( elem ), "script" );
5127
+
5128
+ // Preserve script evaluation history
5129
+ if ( contains ) {
5130
+ setGlobalEval( tmp );
5131
+ }
5132
+
5133
+ // Capture executables
5134
+ if ( scripts ) {
5135
+ j = 0;
5136
+ while ( (elem = tmp[ j++ ]) ) {
5137
+ if ( rscriptType.test( elem.type || "" ) ) {
5138
+ scripts.push( elem );
5139
+ }
5140
+ }
5141
+ }
5142
+ }
5143
+
5144
+ return fragment;
5145
+ },
5146
+
5147
+ cleanData: function( elems ) {
5148
+ var data, elem, type, key,
5149
+ special = jQuery.event.special,
5150
+ i = 0;
5151
+
5152
+ for ( ; (elem = elems[ i ]) !== undefined; i++ ) {
5153
+ if ( jQuery.acceptData( elem ) ) {
5154
+ key = elem[ data_priv.expando ];
5155
+
5156
+ if ( key && (data = data_priv.cache[ key ]) ) {
5157
+ if ( data.events ) {
5158
+ for ( type in data.events ) {
5159
+ if ( special[ type ] ) {
5160
+ jQuery.event.remove( elem, type );
5161
+
5162
+ // This is a shortcut to avoid jQuery.event.remove's overhead
5163
+ } else {
5164
+ jQuery.removeEvent( elem, type, data.handle );
5165
+ }
5166
+ }
5167
+ }
5168
+ if ( data_priv.cache[ key ] ) {
5169
+ // Discard any remaining `private` data
5170
+ delete data_priv.cache[ key ];
5171
+ }
5172
+ }
5173
+ }
5174
+ // Discard any remaining `user` data
5175
+ delete data_user.cache[ elem[ data_user.expando ] ];
5176
+ }
5177
+ }
5178
+ });
5179
+
5180
+ jQuery.fn.extend({
5181
+ text: function( value ) {
5182
+ return access( this, function( value ) {
5183
+ return value === undefined ?
5184
+ jQuery.text( this ) :
5185
+ this.empty().each(function() {
5186
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
5187
+ this.textContent = value;
5188
+ }
5189
+ });
5190
+ }, null, value, arguments.length );
5191
+ },
5192
+
5193
+ append: function() {
5194
+ return this.domManip( arguments, function( elem ) {
5195
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
5196
+ var target = manipulationTarget( this, elem );
5197
+ target.appendChild( elem );
5198
+ }
5199
+ });
5200
+ },
5201
+
5202
+ prepend: function() {
5203
+ return this.domManip( arguments, function( elem ) {
5204
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
5205
+ var target = manipulationTarget( this, elem );
5206
+ target.insertBefore( elem, target.firstChild );
5207
+ }
5208
+ });
5209
+ },
5210
+
5211
+ before: function() {
5212
+ return this.domManip( arguments, function( elem ) {
5213
+ if ( this.parentNode ) {
5214
+ this.parentNode.insertBefore( elem, this );
5215
+ }
5216
+ });
5217
+ },
5218
+
5219
+ after: function() {
5220
+ return this.domManip( arguments, function( elem ) {
5221
+ if ( this.parentNode ) {
5222
+ this.parentNode.insertBefore( elem, this.nextSibling );
5223
+ }
5224
+ });
5225
+ },
5226
+
5227
+ remove: function( selector, keepData /* Internal Use Only */ ) {
5228
+ var elem,
5229
+ elems = selector ? jQuery.filter( selector, this ) : this,
5230
+ i = 0;
5231
+
5232
+ for ( ; (elem = elems[i]) != null; i++ ) {
5233
+ if ( !keepData && elem.nodeType === 1 ) {
5234
+ jQuery.cleanData( getAll( elem ) );
5235
+ }
5236
+
5237
+ if ( elem.parentNode ) {
5238
+ if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
5239
+ setGlobalEval( getAll( elem, "script" ) );
5240
+ }
5241
+ elem.parentNode.removeChild( elem );
5242
+ }
5243
+ }
5244
+
5245
+ return this;
5246
+ },
5247
+
5248
+ empty: function() {
5249
+ var elem,
5250
+ i = 0;
5251
+
5252
+ for ( ; (elem = this[i]) != null; i++ ) {
5253
+ if ( elem.nodeType === 1 ) {
5254
+
5255
+ // Prevent memory leaks
5256
+ jQuery.cleanData( getAll( elem, false ) );
5257
+
5258
+ // Remove any remaining nodes
5259
+ elem.textContent = "";
5260
+ }
5261
+ }
5262
+
5263
+ return this;
5264
+ },
5265
+
5266
+ clone: function( dataAndEvents, deepDataAndEvents ) {
5267
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
5268
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
5269
+
5270
+ return this.map(function() {
5271
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
5272
+ });
5273
+ },
5274
+
5275
+ html: function( value ) {
5276
+ return access( this, function( value ) {
5277
+ var elem = this[ 0 ] || {},
5278
+ i = 0,
5279
+ l = this.length;
5280
+
5281
+ if ( value === undefined && elem.nodeType === 1 ) {
5282
+ return elem.innerHTML;
5283
+ }
5284
+
5285
+ // See if we can take a shortcut and just use innerHTML
5286
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
5287
+ !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
5288
+
5289
+ value = value.replace( rxhtmlTag, "<$1></$2>" );
5290
+
5291
+ try {
5292
+ for ( ; i < l; i++ ) {
5293
+ elem = this[ i ] || {};
5294
+
5295
+ // Remove element nodes and prevent memory leaks
5296
+ if ( elem.nodeType === 1 ) {
5297
+ jQuery.cleanData( getAll( elem, false ) );
5298
+ elem.innerHTML = value;
5299
+ }
5300
+ }
5301
+
5302
+ elem = 0;
5303
+
5304
+ // If using innerHTML throws an exception, use the fallback method
5305
+ } catch( e ) {}
5306
+ }
5307
+
5308
+ if ( elem ) {
5309
+ this.empty().append( value );
5310
+ }
5311
+ }, null, value, arguments.length );
5312
+ },
5313
+
5314
+ replaceWith: function() {
5315
+ var arg = arguments[ 0 ];
5316
+
5317
+ // Make the changes, replacing each context element with the new content
5318
+ this.domManip( arguments, function( elem ) {
5319
+ arg = this.parentNode;
5320
+
5321
+ jQuery.cleanData( getAll( this ) );
5322
+
5323
+ if ( arg ) {
5324
+ arg.replaceChild( elem, this );
5325
+ }
5326
+ });
5327
+
5328
+ // Force removal if there was no new content (e.g., from empty arguments)
5329
+ return arg && (arg.length || arg.nodeType) ? this : this.remove();
5330
+ },
5331
+
5332
+ detach: function( selector ) {
5333
+ return this.remove( selector, true );
5334
+ },
5335
+
5336
+ domManip: function( args, callback ) {
5337
+
5338
+ // Flatten any nested arrays
5339
+ args = concat.apply( [], args );
5340
+
5341
+ var fragment, first, scripts, hasScripts, node, doc,
5342
+ i = 0,
5343
+ l = this.length,
5344
+ set = this,
5345
+ iNoClone = l - 1,
5346
+ value = args[ 0 ],
5347
+ isFunction = jQuery.isFunction( value );
5348
+
5349
+ // We can't cloneNode fragments that contain checked, in WebKit
5350
+ if ( isFunction ||
5351
+ ( l > 1 && typeof value === "string" &&
5352
+ !support.checkClone && rchecked.test( value ) ) ) {
5353
+ return this.each(function( index ) {
5354
+ var self = set.eq( index );
5355
+ if ( isFunction ) {
5356
+ args[ 0 ] = value.call( this, index, self.html() );
5357
+ }
5358
+ self.domManip( args, callback );
5359
+ });
5360
+ }
5361
+
5362
+ if ( l ) {
5363
+ fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
5364
+ first = fragment.firstChild;
5365
+
5366
+ if ( fragment.childNodes.length === 1 ) {
5367
+ fragment = first;
5368
+ }
5369
+
5370
+ if ( first ) {
5371
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
5372
+ hasScripts = scripts.length;
5373
+
5374
+ // Use the original fragment for the last item instead of the first because it can end up
5375
+ // being emptied incorrectly in certain situations (#8070).
5376
+ for ( ; i < l; i++ ) {
5377
+ node = fragment;
5378
+
5379
+ if ( i !== iNoClone ) {
5380
+ node = jQuery.clone( node, true, true );
5381
+
5382
+ // Keep references to cloned scripts for later restoration
5383
+ if ( hasScripts ) {
5384
+ // Support: QtWebKit
5385
+ // jQuery.merge because push.apply(_, arraylike) throws
5386
+ jQuery.merge( scripts, getAll( node, "script" ) );
5387
+ }
5388
+ }
5389
+
5390
+ callback.call( this[ i ], node, i );
5391
+ }
5392
+
5393
+ if ( hasScripts ) {
5394
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
5395
+
5396
+ // Reenable scripts
5397
+ jQuery.map( scripts, restoreScript );
5398
+
5399
+ // Evaluate executable scripts on first document insertion
5400
+ for ( i = 0; i < hasScripts; i++ ) {
5401
+ node = scripts[ i ];
5402
+ if ( rscriptType.test( node.type || "" ) &&
5403
+ !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
5404
+
5405
+ if ( node.src ) {
5406
+ // Optional AJAX dependency, but won't run scripts if not present
5407
+ if ( jQuery._evalUrl ) {
5408
+ jQuery._evalUrl( node.src );
5409
+ }
5410
+ } else {
5411
+ jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
5412
+ }
5413
+ }
5414
+ }
5415
+ }
5416
+ }
5417
+ }
5418
+
5419
+ return this;
5420
+ }
5421
+ });
5422
+
5423
+ jQuery.each({
5424
+ appendTo: "append",
5425
+ prependTo: "prepend",
5426
+ insertBefore: "before",
5427
+ insertAfter: "after",
5428
+ replaceAll: "replaceWith"
5429
+ }, function( name, original ) {
5430
+ jQuery.fn[ name ] = function( selector ) {
5431
+ var elems,
5432
+ ret = [],
5433
+ insert = jQuery( selector ),
5434
+ last = insert.length - 1,
5435
+ i = 0;
5436
+
5437
+ for ( ; i <= last; i++ ) {
5438
+ elems = i === last ? this : this.clone( true );
5439
+ jQuery( insert[ i ] )[ original ]( elems );
5440
+
5441
+ // Support: QtWebKit
5442
+ // .get() because push.apply(_, arraylike) throws
5443
+ push.apply( ret, elems.get() );
5444
+ }
5445
+
5446
+ return this.pushStack( ret );
5447
+ };
5448
+ });
5449
+
5450
+
5451
+ var iframe,
5452
+ elemdisplay = {};
5453
+
5454
+ /**
5455
+ * Retrieve the actual display of a element
5456
+ * @param {String} name nodeName of the element
5457
+ * @param {Object} doc Document object
5458
+ */
5459
+ // Called only from within defaultDisplay
5460
+ function actualDisplay( name, doc ) {
5461
+ var style,
5462
+ elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
5463
+
5464
+ // getDefaultComputedStyle might be reliably used only on attached element
5465
+ display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
5466
+
5467
+ // Use of this method is a temporary fix (more like optmization) until something better comes along,
5468
+ // since it was removed from specification and supported only in FF
5469
+ style.display : jQuery.css( elem[ 0 ], "display" );
5470
+
5471
+ // We don't have any data stored on the element,
5472
+ // so use "detach" method as fast way to get rid of the element
5473
+ elem.detach();
5474
+
5475
+ return display;
5476
+ }
5477
+
5478
+ /**
5479
+ * Try to determine the default display value of an element
5480
+ * @param {String} nodeName
5481
+ */
5482
+ function defaultDisplay( nodeName ) {
5483
+ var doc = document,
5484
+ display = elemdisplay[ nodeName ];
5485
+
5486
+ if ( !display ) {
5487
+ display = actualDisplay( nodeName, doc );
5488
+
5489
+ // If the simple way fails, read from inside an iframe
5490
+ if ( display === "none" || !display ) {
5491
+
5492
+ // Use the already-created iframe if possible
5493
+ iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement );
5494
+
5495
+ // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
5496
+ doc = iframe[ 0 ].contentDocument;
5497
+
5498
+ // Support: IE
5499
+ doc.write();
5500
+ doc.close();
5501
+
5502
+ display = actualDisplay( nodeName, doc );
5503
+ iframe.detach();
5504
+ }
5505
+
5506
+ // Store the correct default display
5507
+ elemdisplay[ nodeName ] = display;
5508
+ }
5509
+
5510
+ return display;
5511
+ }
5512
+ var rmargin = (/^margin/);
5513
+
5514
+ var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
5515
+
5516
+ var getStyles = function( elem ) {
5517
+ return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
5518
+ };
5519
+
5520
+
5521
+
5522
+ function curCSS( elem, name, computed ) {
5523
+ var width, minWidth, maxWidth, ret,
5524
+ style = elem.style;
5525
+
5526
+ computed = computed || getStyles( elem );
5527
+
5528
+ // Support: IE9
5529
+ // getPropertyValue is only needed for .css('filter') in IE9, see #12537
5530
+ if ( computed ) {
5531
+ ret = computed.getPropertyValue( name ) || computed[ name ];
5532
+ }
5533
+
5534
+ if ( computed ) {
5535
+
5536
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
5537
+ ret = jQuery.style( elem, name );
5538
+ }
5539
+
5540
+ // Support: iOS < 6
5541
+ // A tribute to the "awesome hack by Dean Edwards"
5542
+ // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
5543
+ // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
5544
+ if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
5545
+
5546
+ // Remember the original values
5547
+ width = style.width;
5548
+ minWidth = style.minWidth;
5549
+ maxWidth = style.maxWidth;
5550
+
5551
+ // Put in the new values to get a computed value out
5552
+ style.minWidth = style.maxWidth = style.width = ret;
5553
+ ret = computed.width;
5554
+
5555
+ // Revert the changed values
5556
+ style.width = width;
5557
+ style.minWidth = minWidth;
5558
+ style.maxWidth = maxWidth;
5559
+ }
5560
+ }
5561
+
5562
+ return ret !== undefined ?
5563
+ // Support: IE
5564
+ // IE returns zIndex value as an integer.
5565
+ ret + "" :
5566
+ ret;
5567
+ }
5568
+
5569
+
5570
+ function addGetHookIf( conditionFn, hookFn ) {
5571
+ // Define the hook, we'll check on the first run if it's really needed.
5572
+ return {
5573
+ get: function() {
5574
+ if ( conditionFn() ) {
5575
+ // Hook not needed (or it's not possible to use it due to missing dependency),
5576
+ // remove it.
5577
+ // Since there are no other hooks for marginRight, remove the whole object.
5578
+ delete this.get;
5579
+ return;
5580
+ }
5581
+
5582
+ // Hook needed; redefine it so that the support test is not executed again.
5583
+
5584
+ return (this.get = hookFn).apply( this, arguments );
5585
+ }
5586
+ };
5587
+ }
5588
+
5589
+
5590
+ (function() {
5591
+ var pixelPositionVal, boxSizingReliableVal,
5592
+ docElem = document.documentElement,
5593
+ container = document.createElement( "div" ),
5594
+ div = document.createElement( "div" );
5595
+
5596
+ if ( !div.style ) {
5597
+ return;
5598
+ }
5599
+
5600
+ div.style.backgroundClip = "content-box";
5601
+ div.cloneNode( true ).style.backgroundClip = "";
5602
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
5603
+
5604
+ container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" +
5605
+ "position:absolute";
5606
+ container.appendChild( div );
5607
+
5608
+ // Executing both pixelPosition & boxSizingReliable tests require only one layout
5609
+ // so they're executed at the same time to save the second computation.
5610
+ function computePixelPositionAndBoxSizingReliable() {
5611
+ div.style.cssText =
5612
+ // Support: Firefox<29, Android 2.3
5613
+ // Vendor-prefix box-sizing
5614
+ "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
5615
+ "box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
5616
+ "border:1px;padding:1px;width:4px;position:absolute";
5617
+ div.innerHTML = "";
5618
+ docElem.appendChild( container );
5619
+
5620
+ var divStyle = window.getComputedStyle( div, null );
5621
+ pixelPositionVal = divStyle.top !== "1%";
5622
+ boxSizingReliableVal = divStyle.width === "4px";
5623
+
5624
+ docElem.removeChild( container );
5625
+ }
5626
+
5627
+ // Support: node.js jsdom
5628
+ // Don't assume that getComputedStyle is a property of the global object
5629
+ if ( window.getComputedStyle ) {
5630
+ jQuery.extend( support, {
5631
+ pixelPosition: function() {
5632
+ // This test is executed only once but we still do memoizing
5633
+ // since we can use the boxSizingReliable pre-computing.
5634
+ // No need to check if the test was already performed, though.
5635
+ computePixelPositionAndBoxSizingReliable();
5636
+ return pixelPositionVal;
5637
+ },
5638
+ boxSizingReliable: function() {
5639
+ if ( boxSizingReliableVal == null ) {
5640
+ computePixelPositionAndBoxSizingReliable();
5641
+ }
5642
+ return boxSizingReliableVal;
5643
+ },
5644
+ reliableMarginRight: function() {
5645
+ // Support: Android 2.3
5646
+ // Check if div with explicit width and no margin-right incorrectly
5647
+ // gets computed margin-right based on width of container. (#3333)
5648
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
5649
+ // This support function is only executed once so no memoizing is needed.
5650
+ var ret,
5651
+ marginDiv = div.appendChild( document.createElement( "div" ) );
5652
+
5653
+ // Reset CSS: box-sizing; display; margin; border; padding
5654
+ marginDiv.style.cssText = div.style.cssText =
5655
+ // Support: Firefox<29, Android 2.3
5656
+ // Vendor-prefix box-sizing
5657
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
5658
+ "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
5659
+ marginDiv.style.marginRight = marginDiv.style.width = "0";
5660
+ div.style.width = "1px";
5661
+ docElem.appendChild( container );
5662
+
5663
+ ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );
5664
+
5665
+ docElem.removeChild( container );
5666
+
5667
+ return ret;
5668
+ }
5669
+ });
5670
+ }
5671
+ })();
5672
+
5673
+
5674
+ // A method for quickly swapping in/out CSS properties to get correct calculations.
5675
+ jQuery.swap = function( elem, options, callback, args ) {
5676
+ var ret, name,
5677
+ old = {};
5678
+
5679
+ // Remember the old values, and insert the new ones
5680
+ for ( name in options ) {
5681
+ old[ name ] = elem.style[ name ];
5682
+ elem.style[ name ] = options[ name ];
5683
+ }
5684
+
5685
+ ret = callback.apply( elem, args || [] );
5686
+
5687
+ // Revert the old values
5688
+ for ( name in options ) {
5689
+ elem.style[ name ] = old[ name ];
5690
+ }
5691
+
5692
+ return ret;
5693
+ };
5694
+
5695
+
5696
+ var
5697
+ // swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
5698
+ // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
5699
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
5700
+ rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
5701
+ rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ),
5702
+
5703
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
5704
+ cssNormalTransform = {
5705
+ letterSpacing: "0",
5706
+ fontWeight: "400"
5707
+ },
5708
+
5709
+ cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
5710
+
5711
+ // return a css property mapped to a potentially vendor prefixed property
5712
+ function vendorPropName( style, name ) {
5713
+
5714
+ // shortcut for names that are not vendor prefixed
5715
+ if ( name in style ) {
5716
+ return name;
5717
+ }
5718
+
5719
+ // check for vendor prefixed names
5720
+ var capName = name[0].toUpperCase() + name.slice(1),
5721
+ origName = name,
5722
+ i = cssPrefixes.length;
5723
+
5724
+ while ( i-- ) {
5725
+ name = cssPrefixes[ i ] + capName;
5726
+ if ( name in style ) {
5727
+ return name;
5728
+ }
5729
+ }
5730
+
5731
+ return origName;
5732
+ }
5733
+
5734
+ function setPositiveNumber( elem, value, subtract ) {
5735
+ var matches = rnumsplit.exec( value );
5736
+ return matches ?
5737
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
5738
+ Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
5739
+ value;
5740
+ }
5741
+
5742
+ function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
5743
+ var i = extra === ( isBorderBox ? "border" : "content" ) ?
5744
+ // If we already have the right measurement, avoid augmentation
5745
+ 4 :
5746
+ // Otherwise initialize for horizontal or vertical properties
5747
+ name === "width" ? 1 : 0,
5748
+
5749
+ val = 0;
5750
+
5751
+ for ( ; i < 4; i += 2 ) {
5752
+ // both box models exclude margin, so add it if we want it
5753
+ if ( extra === "margin" ) {
5754
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
5755
+ }
5756
+
5757
+ if ( isBorderBox ) {
5758
+ // border-box includes padding, so remove it if we want content
5759
+ if ( extra === "content" ) {
5760
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
5761
+ }
5762
+
5763
+ // at this point, extra isn't border nor margin, so remove border
5764
+ if ( extra !== "margin" ) {
5765
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
5766
+ }
5767
+ } else {
5768
+ // at this point, extra isn't content, so add padding
5769
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
5770
+
5771
+ // at this point, extra isn't content nor padding, so add border
5772
+ if ( extra !== "padding" ) {
5773
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
5774
+ }
5775
+ }
5776
+ }
5777
+
5778
+ return val;
5779
+ }
5780
+
5781
+ function getWidthOrHeight( elem, name, extra ) {
5782
+
5783
+ // Start with offset property, which is equivalent to the border-box value
5784
+ var valueIsBorderBox = true,
5785
+ val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
5786
+ styles = getStyles( elem ),
5787
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
5788
+
5789
+ // some non-html elements return undefined for offsetWidth, so check for null/undefined
5790
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
5791
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
5792
+ if ( val <= 0 || val == null ) {
5793
+ // Fall back to computed then uncomputed css if necessary
5794
+ val = curCSS( elem, name, styles );
5795
+ if ( val < 0 || val == null ) {
5796
+ val = elem.style[ name ];
5797
+ }
5798
+
5799
+ // Computed unit is not pixels. Stop here and return.
5800
+ if ( rnumnonpx.test(val) ) {
5801
+ return val;
5802
+ }
5803
+
5804
+ // we need the check for style in case a browser which returns unreliable values
5805
+ // for getComputedStyle silently falls back to the reliable elem.style
5806
+ valueIsBorderBox = isBorderBox &&
5807
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
5808
+
5809
+ // Normalize "", auto, and prepare for extra
5810
+ val = parseFloat( val ) || 0;
5811
+ }
5812
+
5813
+ // use the active box-sizing model to add/subtract irrelevant styles
5814
+ return ( val +
5815
+ augmentWidthOrHeight(
5816
+ elem,
5817
+ name,
5818
+ extra || ( isBorderBox ? "border" : "content" ),
5819
+ valueIsBorderBox,
5820
+ styles
5821
+ )
5822
+ ) + "px";
5823
+ }
5824
+
5825
+ function showHide( elements, show ) {
5826
+ var display, elem, hidden,
5827
+ values = [],
5828
+ index = 0,
5829
+ length = elements.length;
5830
+
5831
+ for ( ; index < length; index++ ) {
5832
+ elem = elements[ index ];
5833
+ if ( !elem.style ) {
5834
+ continue;
5835
+ }
5836
+
5837
+ values[ index ] = data_priv.get( elem, "olddisplay" );
5838
+ display = elem.style.display;
5839
+ if ( show ) {
5840
+ // Reset the inline display of this element to learn if it is
5841
+ // being hidden by cascaded rules or not
5842
+ if ( !values[ index ] && display === "none" ) {
5843
+ elem.style.display = "";
5844
+ }
5845
+
5846
+ // Set elements which have been overridden with display: none
5847
+ // in a stylesheet to whatever the default browser style is
5848
+ // for such an element
5849
+ if ( elem.style.display === "" && isHidden( elem ) ) {
5850
+ values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) );
5851
+ }
5852
+ } else {
5853
+ hidden = isHidden( elem );
5854
+
5855
+ if ( display !== "none" || !hidden ) {
5856
+ data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
5857
+ }
5858
+ }
5859
+ }
5860
+
5861
+ // Set the display of most of the elements in a second loop
5862
+ // to avoid the constant reflow
5863
+ for ( index = 0; index < length; index++ ) {
5864
+ elem = elements[ index ];
5865
+ if ( !elem.style ) {
5866
+ continue;
5867
+ }
5868
+ if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
5869
+ elem.style.display = show ? values[ index ] || "" : "none";
5870
+ }
5871
+ }
5872
+
5873
+ return elements;
5874
+ }
5875
+
5876
+ jQuery.extend({
5877
+ // Add in style property hooks for overriding the default
5878
+ // behavior of getting and setting a style property
5879
+ cssHooks: {
5880
+ opacity: {
5881
+ get: function( elem, computed ) {
5882
+ if ( computed ) {
5883
+ // We should always get a number back from opacity
5884
+ var ret = curCSS( elem, "opacity" );
5885
+ return ret === "" ? "1" : ret;
5886
+ }
5887
+ }
5888
+ }
5889
+ },
5890
+
5891
+ // Don't automatically add "px" to these possibly-unitless properties
5892
+ cssNumber: {
5893
+ "columnCount": true,
5894
+ "fillOpacity": true,
5895
+ "flexGrow": true,
5896
+ "flexShrink": true,
5897
+ "fontWeight": true,
5898
+ "lineHeight": true,
5899
+ "opacity": true,
5900
+ "order": true,
5901
+ "orphans": true,
5902
+ "widows": true,
5903
+ "zIndex": true,
5904
+ "zoom": true
5905
+ },
5906
+
5907
+ // Add in properties whose names you wish to fix before
5908
+ // setting or getting the value
5909
+ cssProps: {
5910
+ // normalize float css property
5911
+ "float": "cssFloat"
5912
+ },
5913
+
5914
+ // Get and set the style property on a DOM Node
5915
+ style: function( elem, name, value, extra ) {
5916
+ // Don't set styles on text and comment nodes
5917
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
5918
+ return;
5919
+ }
5920
+
5921
+ // Make sure that we're working with the right name
5922
+ var ret, type, hooks,
5923
+ origName = jQuery.camelCase( name ),
5924
+ style = elem.style;
5925
+
5926
+ name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
5927
+
5928
+ // gets hook for the prefixed version
5929
+ // followed by the unprefixed version
5930
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
5931
+
5932
+ // Check if we're setting a value
5933
+ if ( value !== undefined ) {
5934
+ type = typeof value;
5935
+
5936
+ // convert relative number strings (+= or -=) to relative numbers. #7345
5937
+ if ( type === "string" && (ret = rrelNum.exec( value )) ) {
5938
+ value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
5939
+ // Fixes bug #9237
5940
+ type = "number";
5941
+ }
5942
+
5943
+ // Make sure that null and NaN values aren't set. See: #7116
5944
+ if ( value == null || value !== value ) {
5945
+ return;
5946
+ }
5947
+
5948
+ // If a number was passed in, add 'px' to the (except for certain CSS properties)
5949
+ if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
5950
+ value += "px";
5951
+ }
5952
+
5953
+ // Fixes #8908, it can be done more correctly by specifying setters in cssHooks,
5954
+ // but it would mean to define eight (for every problematic property) identical functions
5955
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
5956
+ style[ name ] = "inherit";
5957
+ }
5958
+
5959
+ // If a hook was provided, use that value, otherwise just set the specified value
5960
+ if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
5961
+ style[ name ] = value;
5962
+ }
5963
+
5964
+ } else {
5965
+ // If a hook was provided get the non-computed value from there
5966
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
5967
+ return ret;
5968
+ }
5969
+
5970
+ // Otherwise just get the value from the style object
5971
+ return style[ name ];
5972
+ }
5973
+ },
5974
+
5975
+ css: function( elem, name, extra, styles ) {
5976
+ var val, num, hooks,
5977
+ origName = jQuery.camelCase( name );
5978
+
5979
+ // Make sure that we're working with the right name
5980
+ name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
5981
+
5982
+ // gets hook for the prefixed version
5983
+ // followed by the unprefixed version
5984
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
5985
+
5986
+ // If a hook was provided get the computed value from there
5987
+ if ( hooks && "get" in hooks ) {
5988
+ val = hooks.get( elem, true, extra );
5989
+ }
5990
+
5991
+ // Otherwise, if a way to get the computed value exists, use that
5992
+ if ( val === undefined ) {
5993
+ val = curCSS( elem, name, styles );
5994
+ }
5995
+
5996
+ //convert "normal" to computed value
5997
+ if ( val === "normal" && name in cssNormalTransform ) {
5998
+ val = cssNormalTransform[ name ];
5999
+ }
6000
+
6001
+ // Return, converting to number if forced or a qualifier was provided and val looks numeric
6002
+ if ( extra === "" || extra ) {
6003
+ num = parseFloat( val );
6004
+ return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
6005
+ }
6006
+ return val;
6007
+ }
6008
+ });
6009
+
6010
+ jQuery.each([ "height", "width" ], function( i, name ) {
6011
+ jQuery.cssHooks[ name ] = {
6012
+ get: function( elem, computed, extra ) {
6013
+ if ( computed ) {
6014
+ // certain elements can have dimension info if we invisibly show them
6015
+ // however, it must have a current display style that would benefit from this
6016
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
6017
+ jQuery.swap( elem, cssShow, function() {
6018
+ return getWidthOrHeight( elem, name, extra );
6019
+ }) :
6020
+ getWidthOrHeight( elem, name, extra );
6021
+ }
6022
+ },
6023
+
6024
+ set: function( elem, value, extra ) {
6025
+ var styles = extra && getStyles( elem );
6026
+ return setPositiveNumber( elem, value, extra ?
6027
+ augmentWidthOrHeight(
6028
+ elem,
6029
+ name,
6030
+ extra,
6031
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6032
+ styles
6033
+ ) : 0
6034
+ );
6035
+ }
6036
+ };
6037
+ });
6038
+
6039
+ // Support: Android 2.3
6040
+ jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
6041
+ function( elem, computed ) {
6042
+ if ( computed ) {
6043
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
6044
+ // Work around by temporarily setting element display to inline-block
6045
+ return jQuery.swap( elem, { "display": "inline-block" },
6046
+ curCSS, [ elem, "marginRight" ] );
6047
+ }
6048
+ }
6049
+ );
6050
+
6051
+ // These hooks are used by animate to expand properties
6052
+ jQuery.each({
6053
+ margin: "",
6054
+ padding: "",
6055
+ border: "Width"
6056
+ }, function( prefix, suffix ) {
6057
+ jQuery.cssHooks[ prefix + suffix ] = {
6058
+ expand: function( value ) {
6059
+ var i = 0,
6060
+ expanded = {},
6061
+
6062
+ // assumes a single number if not a string
6063
+ parts = typeof value === "string" ? value.split(" ") : [ value ];
6064
+
6065
+ for ( ; i < 4; i++ ) {
6066
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
6067
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
6068
+ }
6069
+
6070
+ return expanded;
6071
+ }
6072
+ };
6073
+
6074
+ if ( !rmargin.test( prefix ) ) {
6075
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
6076
+ }
6077
+ });
6078
+
6079
+ jQuery.fn.extend({
6080
+ css: function( name, value ) {
6081
+ return access( this, function( elem, name, value ) {
6082
+ var styles, len,
6083
+ map = {},
6084
+ i = 0;
6085
+
6086
+ if ( jQuery.isArray( name ) ) {
6087
+ styles = getStyles( elem );
6088
+ len = name.length;
6089
+
6090
+ for ( ; i < len; i++ ) {
6091
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
6092
+ }
6093
+
6094
+ return map;
6095
+ }
6096
+
6097
+ return value !== undefined ?
6098
+ jQuery.style( elem, name, value ) :
6099
+ jQuery.css( elem, name );
6100
+ }, name, value, arguments.length > 1 );
6101
+ },
6102
+ show: function() {
6103
+ return showHide( this, true );
6104
+ },
6105
+ hide: function() {
6106
+ return showHide( this );
6107
+ },
6108
+ toggle: function( state ) {
6109
+ if ( typeof state === "boolean" ) {
6110
+ return state ? this.show() : this.hide();
6111
+ }
6112
+
6113
+ return this.each(function() {
6114
+ if ( isHidden( this ) ) {
6115
+ jQuery( this ).show();
6116
+ } else {
6117
+ jQuery( this ).hide();
6118
+ }
6119
+ });
6120
+ }
6121
+ });
6122
+
6123
+
6124
+ function Tween( elem, options, prop, end, easing ) {
6125
+ return new Tween.prototype.init( elem, options, prop, end, easing );
6126
+ }
6127
+ jQuery.Tween = Tween;
6128
+
6129
+ Tween.prototype = {
6130
+ constructor: Tween,
6131
+ init: function( elem, options, prop, end, easing, unit ) {
6132
+ this.elem = elem;
6133
+ this.prop = prop;
6134
+ this.easing = easing || "swing";
6135
+ this.options = options;
6136
+ this.start = this.now = this.cur();
6137
+ this.end = end;
6138
+ this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
6139
+ },
6140
+ cur: function() {
6141
+ var hooks = Tween.propHooks[ this.prop ];
6142
+
6143
+ return hooks && hooks.get ?
6144
+ hooks.get( this ) :
6145
+ Tween.propHooks._default.get( this );
6146
+ },
6147
+ run: function( percent ) {
6148
+ var eased,
6149
+ hooks = Tween.propHooks[ this.prop ];
6150
+
6151
+ if ( this.options.duration ) {
6152
+ this.pos = eased = jQuery.easing[ this.easing ](
6153
+ percent, this.options.duration * percent, 0, 1, this.options.duration
6154
+ );
6155
+ } else {
6156
+ this.pos = eased = percent;
6157
+ }
6158
+ this.now = ( this.end - this.start ) * eased + this.start;
6159
+
6160
+ if ( this.options.step ) {
6161
+ this.options.step.call( this.elem, this.now, this );
6162
+ }
6163
+
6164
+ if ( hooks && hooks.set ) {
6165
+ hooks.set( this );
6166
+ } else {
6167
+ Tween.propHooks._default.set( this );
6168
+ }
6169
+ return this;
6170
+ }
6171
+ };
6172
+
6173
+ Tween.prototype.init.prototype = Tween.prototype;
6174
+
6175
+ Tween.propHooks = {
6176
+ _default: {
6177
+ get: function( tween ) {
6178
+ var result;
6179
+
6180
+ if ( tween.elem[ tween.prop ] != null &&
6181
+ (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
6182
+ return tween.elem[ tween.prop ];
6183
+ }
6184
+
6185
+ // passing an empty string as a 3rd parameter to .css will automatically
6186
+ // attempt a parseFloat and fallback to a string if the parse fails
6187
+ // so, simple values such as "10px" are parsed to Float.
6188
+ // complex values such as "rotate(1rad)" are returned as is.
6189
+ result = jQuery.css( tween.elem, tween.prop, "" );
6190
+ // Empty strings, null, undefined and "auto" are converted to 0.
6191
+ return !result || result === "auto" ? 0 : result;
6192
+ },
6193
+ set: function( tween ) {
6194
+ // use step hook for back compat - use cssHook if its there - use .style if its
6195
+ // available and use plain properties where available
6196
+ if ( jQuery.fx.step[ tween.prop ] ) {
6197
+ jQuery.fx.step[ tween.prop ]( tween );
6198
+ } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
6199
+ jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
6200
+ } else {
6201
+ tween.elem[ tween.prop ] = tween.now;
6202
+ }
6203
+ }
6204
+ }
6205
+ };
6206
+
6207
+ // Support: IE9
6208
+ // Panic based approach to setting things on disconnected nodes
6209
+
6210
+ Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
6211
+ set: function( tween ) {
6212
+ if ( tween.elem.nodeType && tween.elem.parentNode ) {
6213
+ tween.elem[ tween.prop ] = tween.now;
6214
+ }
6215
+ }
6216
+ };
6217
+
6218
+ jQuery.easing = {
6219
+ linear: function( p ) {
6220
+ return p;
6221
+ },
6222
+ swing: function( p ) {
6223
+ return 0.5 - Math.cos( p * Math.PI ) / 2;
6224
+ }
6225
+ };
6226
+
6227
+ jQuery.fx = Tween.prototype.init;
6228
+
6229
+ // Back Compat <1.8 extension point
6230
+ jQuery.fx.step = {};
6231
+
6232
+
6233
+
6234
+
6235
+ var
6236
+ fxNow, timerId,
6237
+ rfxtypes = /^(?:toggle|show|hide)$/,
6238
+ rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
6239
+ rrun = /queueHooks$/,
6240
+ animationPrefilters = [ defaultPrefilter ],
6241
+ tweeners = {
6242
+ "*": [ function( prop, value ) {
6243
+ var tween = this.createTween( prop, value ),
6244
+ target = tween.cur(),
6245
+ parts = rfxnum.exec( value ),
6246
+ unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
6247
+
6248
+ // Starting value computation is required for potential unit mismatches
6249
+ start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
6250
+ rfxnum.exec( jQuery.css( tween.elem, prop ) ),
6251
+ scale = 1,
6252
+ maxIterations = 20;
6253
+
6254
+ if ( start && start[ 3 ] !== unit ) {
6255
+ // Trust units reported by jQuery.css
6256
+ unit = unit || start[ 3 ];
6257
+
6258
+ // Make sure we update the tween properties later on
6259
+ parts = parts || [];
6260
+
6261
+ // Iteratively approximate from a nonzero starting point
6262
+ start = +target || 1;
6263
+
6264
+ do {
6265
+ // If previous iteration zeroed out, double until we get *something*
6266
+ // Use a string for doubling factor so we don't accidentally see scale as unchanged below
6267
+ scale = scale || ".5";
6268
+
6269
+ // Adjust and apply
6270
+ start = start / scale;
6271
+ jQuery.style( tween.elem, prop, start + unit );
6272
+
6273
+ // Update scale, tolerating zero or NaN from tween.cur()
6274
+ // And breaking the loop if scale is unchanged or perfect, or if we've just had enough
6275
+ } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
6276
+ }
6277
+
6278
+ // Update tween properties
6279
+ if ( parts ) {
6280
+ start = tween.start = +start || +target || 0;
6281
+ tween.unit = unit;
6282
+ // If a +=/-= token was provided, we're doing a relative animation
6283
+ tween.end = parts[ 1 ] ?
6284
+ start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
6285
+ +parts[ 2 ];
6286
+ }
6287
+
6288
+ return tween;
6289
+ } ]
6290
+ };
6291
+
6292
+ // Animations created synchronously will run synchronously
6293
+ function createFxNow() {
6294
+ setTimeout(function() {
6295
+ fxNow = undefined;
6296
+ });
6297
+ return ( fxNow = jQuery.now() );
6298
+ }
6299
+
6300
+ // Generate parameters to create a standard animation
6301
+ function genFx( type, includeWidth ) {
6302
+ var which,
6303
+ i = 0,
6304
+ attrs = { height: type };
6305
+
6306
+ // if we include width, step value is 1 to do all cssExpand values,
6307
+ // if we don't include width, step value is 2 to skip over Left and Right
6308
+ includeWidth = includeWidth ? 1 : 0;
6309
+ for ( ; i < 4 ; i += 2 - includeWidth ) {
6310
+ which = cssExpand[ i ];
6311
+ attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
6312
+ }
6313
+
6314
+ if ( includeWidth ) {
6315
+ attrs.opacity = attrs.width = type;
6316
+ }
6317
+
6318
+ return attrs;
6319
+ }
6320
+
6321
+ function createTween( value, prop, animation ) {
6322
+ var tween,
6323
+ collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
6324
+ index = 0,
6325
+ length = collection.length;
6326
+ for ( ; index < length; index++ ) {
6327
+ if ( (tween = collection[ index ].call( animation, prop, value )) ) {
6328
+
6329
+ // we're done with this property
6330
+ return tween;
6331
+ }
6332
+ }
6333
+ }
6334
+
6335
+ function defaultPrefilter( elem, props, opts ) {
6336
+ /* jshint validthis: true */
6337
+ var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
6338
+ anim = this,
6339
+ orig = {},
6340
+ style = elem.style,
6341
+ hidden = elem.nodeType && isHidden( elem ),
6342
+ dataShow = data_priv.get( elem, "fxshow" );
6343
+
6344
+ // handle queue: false promises
6345
+ if ( !opts.queue ) {
6346
+ hooks = jQuery._queueHooks( elem, "fx" );
6347
+ if ( hooks.unqueued == null ) {
6348
+ hooks.unqueued = 0;
6349
+ oldfire = hooks.empty.fire;
6350
+ hooks.empty.fire = function() {
6351
+ if ( !hooks.unqueued ) {
6352
+ oldfire();
6353
+ }
6354
+ };
6355
+ }
6356
+ hooks.unqueued++;
6357
+
6358
+ anim.always(function() {
6359
+ // doing this makes sure that the complete handler will be called
6360
+ // before this completes
6361
+ anim.always(function() {
6362
+ hooks.unqueued--;
6363
+ if ( !jQuery.queue( elem, "fx" ).length ) {
6364
+ hooks.empty.fire();
6365
+ }
6366
+ });
6367
+ });
6368
+ }
6369
+
6370
+ // height/width overflow pass
6371
+ if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
6372
+ // Make sure that nothing sneaks out
6373
+ // Record all 3 overflow attributes because IE9-10 do not
6374
+ // change the overflow attribute when overflowX and
6375
+ // overflowY are set to the same value
6376
+ opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
6377
+
6378
+ // Set display property to inline-block for height/width
6379
+ // animations on inline elements that are having width/height animated
6380
+ display = jQuery.css( elem, "display" );
6381
+
6382
+ // Test default display if display is currently "none"
6383
+ checkDisplay = display === "none" ?
6384
+ data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
6385
+
6386
+ if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
6387
+ style.display = "inline-block";
6388
+ }
6389
+ }
6390
+
6391
+ if ( opts.overflow ) {
6392
+ style.overflow = "hidden";
6393
+ anim.always(function() {
6394
+ style.overflow = opts.overflow[ 0 ];
6395
+ style.overflowX = opts.overflow[ 1 ];
6396
+ style.overflowY = opts.overflow[ 2 ];
6397
+ });
6398
+ }
6399
+
6400
+ // show/hide pass
6401
+ for ( prop in props ) {
6402
+ value = props[ prop ];
6403
+ if ( rfxtypes.exec( value ) ) {
6404
+ delete props[ prop ];
6405
+ toggle = toggle || value === "toggle";
6406
+ if ( value === ( hidden ? "hide" : "show" ) ) {
6407
+
6408
+ // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden
6409
+ if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
6410
+ hidden = true;
6411
+ } else {
6412
+ continue;
6413
+ }
6414
+ }
6415
+ orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
6416
+
6417
+ // Any non-fx value stops us from restoring the original display value
6418
+ } else {
6419
+ display = undefined;
6420
+ }
6421
+ }
6422
+
6423
+ if ( !jQuery.isEmptyObject( orig ) ) {
6424
+ if ( dataShow ) {
6425
+ if ( "hidden" in dataShow ) {
6426
+ hidden = dataShow.hidden;
6427
+ }
6428
+ } else {
6429
+ dataShow = data_priv.access( elem, "fxshow", {} );
6430
+ }
6431
+
6432
+ // store state if its toggle - enables .stop().toggle() to "reverse"
6433
+ if ( toggle ) {
6434
+ dataShow.hidden = !hidden;
6435
+ }
6436
+ if ( hidden ) {
6437
+ jQuery( elem ).show();
6438
+ } else {
6439
+ anim.done(function() {
6440
+ jQuery( elem ).hide();
6441
+ });
6442
+ }
6443
+ anim.done(function() {
6444
+ var prop;
6445
+
6446
+ data_priv.remove( elem, "fxshow" );
6447
+ for ( prop in orig ) {
6448
+ jQuery.style( elem, prop, orig[ prop ] );
6449
+ }
6450
+ });
6451
+ for ( prop in orig ) {
6452
+ tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
6453
+
6454
+ if ( !( prop in dataShow ) ) {
6455
+ dataShow[ prop ] = tween.start;
6456
+ if ( hidden ) {
6457
+ tween.end = tween.start;
6458
+ tween.start = prop === "width" || prop === "height" ? 1 : 0;
6459
+ }
6460
+ }
6461
+ }
6462
+
6463
+ // If this is a noop like .hide().hide(), restore an overwritten display value
6464
+ } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
6465
+ style.display = display;
6466
+ }
6467
+ }
6468
+
6469
+ function propFilter( props, specialEasing ) {
6470
+ var index, name, easing, value, hooks;
6471
+
6472
+ // camelCase, specialEasing and expand cssHook pass
6473
+ for ( index in props ) {
6474
+ name = jQuery.camelCase( index );
6475
+ easing = specialEasing[ name ];
6476
+ value = props[ index ];
6477
+ if ( jQuery.isArray( value ) ) {
6478
+ easing = value[ 1 ];
6479
+ value = props[ index ] = value[ 0 ];
6480
+ }
6481
+
6482
+ if ( index !== name ) {
6483
+ props[ name ] = value;
6484
+ delete props[ index ];
6485
+ }
6486
+
6487
+ hooks = jQuery.cssHooks[ name ];
6488
+ if ( hooks && "expand" in hooks ) {
6489
+ value = hooks.expand( value );
6490
+ delete props[ name ];
6491
+
6492
+ // not quite $.extend, this wont overwrite keys already present.
6493
+ // also - reusing 'index' from above because we have the correct "name"
6494
+ for ( index in value ) {
6495
+ if ( !( index in props ) ) {
6496
+ props[ index ] = value[ index ];
6497
+ specialEasing[ index ] = easing;
6498
+ }
6499
+ }
6500
+ } else {
6501
+ specialEasing[ name ] = easing;
6502
+ }
6503
+ }
6504
+ }
6505
+
6506
+ function Animation( elem, properties, options ) {
6507
+ var result,
6508
+ stopped,
6509
+ index = 0,
6510
+ length = animationPrefilters.length,
6511
+ deferred = jQuery.Deferred().always( function() {
6512
+ // don't match elem in the :animated selector
6513
+ delete tick.elem;
6514
+ }),
6515
+ tick = function() {
6516
+ if ( stopped ) {
6517
+ return false;
6518
+ }
6519
+ var currentTime = fxNow || createFxNow(),
6520
+ remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
6521
+ // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
6522
+ temp = remaining / animation.duration || 0,
6523
+ percent = 1 - temp,
6524
+ index = 0,
6525
+ length = animation.tweens.length;
6526
+
6527
+ for ( ; index < length ; index++ ) {
6528
+ animation.tweens[ index ].run( percent );
6529
+ }
6530
+
6531
+ deferred.notifyWith( elem, [ animation, percent, remaining ]);
6532
+
6533
+ if ( percent < 1 && length ) {
6534
+ return remaining;
6535
+ } else {
6536
+ deferred.resolveWith( elem, [ animation ] );
6537
+ return false;
6538
+ }
6539
+ },
6540
+ animation = deferred.promise({
6541
+ elem: elem,
6542
+ props: jQuery.extend( {}, properties ),
6543
+ opts: jQuery.extend( true, { specialEasing: {} }, options ),
6544
+ originalProperties: properties,
6545
+ originalOptions: options,
6546
+ startTime: fxNow || createFxNow(),
6547
+ duration: options.duration,
6548
+ tweens: [],
6549
+ createTween: function( prop, end ) {
6550
+ var tween = jQuery.Tween( elem, animation.opts, prop, end,
6551
+ animation.opts.specialEasing[ prop ] || animation.opts.easing );
6552
+ animation.tweens.push( tween );
6553
+ return tween;
6554
+ },
6555
+ stop: function( gotoEnd ) {
6556
+ var index = 0,
6557
+ // if we are going to the end, we want to run all the tweens
6558
+ // otherwise we skip this part
6559
+ length = gotoEnd ? animation.tweens.length : 0;
6560
+ if ( stopped ) {
6561
+ return this;
6562
+ }
6563
+ stopped = true;
6564
+ for ( ; index < length ; index++ ) {
6565
+ animation.tweens[ index ].run( 1 );
6566
+ }
6567
+
6568
+ // resolve when we played the last frame
6569
+ // otherwise, reject
6570
+ if ( gotoEnd ) {
6571
+ deferred.resolveWith( elem, [ animation, gotoEnd ] );
6572
+ } else {
6573
+ deferred.rejectWith( elem, [ animation, gotoEnd ] );
6574
+ }
6575
+ return this;
6576
+ }
6577
+ }),
6578
+ props = animation.props;
6579
+
6580
+ propFilter( props, animation.opts.specialEasing );
6581
+
6582
+ for ( ; index < length ; index++ ) {
6583
+ result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
6584
+ if ( result ) {
6585
+ return result;
6586
+ }
6587
+ }
6588
+
6589
+ jQuery.map( props, createTween, animation );
6590
+
6591
+ if ( jQuery.isFunction( animation.opts.start ) ) {
6592
+ animation.opts.start.call( elem, animation );
6593
+ }
6594
+
6595
+ jQuery.fx.timer(
6596
+ jQuery.extend( tick, {
6597
+ elem: elem,
6598
+ anim: animation,
6599
+ queue: animation.opts.queue
6600
+ })
6601
+ );
6602
+
6603
+ // attach callbacks from options
6604
+ return animation.progress( animation.opts.progress )
6605
+ .done( animation.opts.done, animation.opts.complete )
6606
+ .fail( animation.opts.fail )
6607
+ .always( animation.opts.always );
6608
+ }
6609
+
6610
+ jQuery.Animation = jQuery.extend( Animation, {
6611
+
6612
+ tweener: function( props, callback ) {
6613
+ if ( jQuery.isFunction( props ) ) {
6614
+ callback = props;
6615
+ props = [ "*" ];
6616
+ } else {
6617
+ props = props.split(" ");
6618
+ }
6619
+
6620
+ var prop,
6621
+ index = 0,
6622
+ length = props.length;
6623
+
6624
+ for ( ; index < length ; index++ ) {
6625
+ prop = props[ index ];
6626
+ tweeners[ prop ] = tweeners[ prop ] || [];
6627
+ tweeners[ prop ].unshift( callback );
6628
+ }
6629
+ },
6630
+
6631
+ prefilter: function( callback, prepend ) {
6632
+ if ( prepend ) {
6633
+ animationPrefilters.unshift( callback );
6634
+ } else {
6635
+ animationPrefilters.push( callback );
6636
+ }
6637
+ }
6638
+ });
6639
+
6640
+ jQuery.speed = function( speed, easing, fn ) {
6641
+ var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
6642
+ complete: fn || !fn && easing ||
6643
+ jQuery.isFunction( speed ) && speed,
6644
+ duration: speed,
6645
+ easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
6646
+ };
6647
+
6648
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
6649
+ opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
6650
+
6651
+ // normalize opt.queue - true/undefined/null -> "fx"
6652
+ if ( opt.queue == null || opt.queue === true ) {
6653
+ opt.queue = "fx";
6654
+ }
6655
+
6656
+ // Queueing
6657
+ opt.old = opt.complete;
6658
+
6659
+ opt.complete = function() {
6660
+ if ( jQuery.isFunction( opt.old ) ) {
6661
+ opt.old.call( this );
6662
+ }
6663
+
6664
+ if ( opt.queue ) {
6665
+ jQuery.dequeue( this, opt.queue );
6666
+ }
6667
+ };
6668
+
6669
+ return opt;
6670
+ };
6671
+
6672
+ jQuery.fn.extend({
6673
+ fadeTo: function( speed, to, easing, callback ) {
6674
+
6675
+ // show any hidden elements after setting opacity to 0
6676
+ return this.filter( isHidden ).css( "opacity", 0 ).show()
6677
+
6678
+ // animate to the value specified
6679
+ .end().animate({ opacity: to }, speed, easing, callback );
6680
+ },
6681
+ animate: function( prop, speed, easing, callback ) {
6682
+ var empty = jQuery.isEmptyObject( prop ),
6683
+ optall = jQuery.speed( speed, easing, callback ),
6684
+ doAnimation = function() {
6685
+ // Operate on a copy of prop so per-property easing won't be lost
6686
+ var anim = Animation( this, jQuery.extend( {}, prop ), optall );
6687
+
6688
+ // Empty animations, or finishing resolves immediately
6689
+ if ( empty || data_priv.get( this, "finish" ) ) {
6690
+ anim.stop( true );
6691
+ }
6692
+ };
6693
+ doAnimation.finish = doAnimation;
6694
+
6695
+ return empty || optall.queue === false ?
6696
+ this.each( doAnimation ) :
6697
+ this.queue( optall.queue, doAnimation );
6698
+ },
6699
+ stop: function( type, clearQueue, gotoEnd ) {
6700
+ var stopQueue = function( hooks ) {
6701
+ var stop = hooks.stop;
6702
+ delete hooks.stop;
6703
+ stop( gotoEnd );
6704
+ };
6705
+
6706
+ if ( typeof type !== "string" ) {
6707
+ gotoEnd = clearQueue;
6708
+ clearQueue = type;
6709
+ type = undefined;
6710
+ }
6711
+ if ( clearQueue && type !== false ) {
6712
+ this.queue( type || "fx", [] );
6713
+ }
6714
+
6715
+ return this.each(function() {
6716
+ var dequeue = true,
6717
+ index = type != null && type + "queueHooks",
6718
+ timers = jQuery.timers,
6719
+ data = data_priv.get( this );
6720
+
6721
+ if ( index ) {
6722
+ if ( data[ index ] && data[ index ].stop ) {
6723
+ stopQueue( data[ index ] );
6724
+ }
6725
+ } else {
6726
+ for ( index in data ) {
6727
+ if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
6728
+ stopQueue( data[ index ] );
6729
+ }
6730
+ }
6731
+ }
6732
+
6733
+ for ( index = timers.length; index--; ) {
6734
+ if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
6735
+ timers[ index ].anim.stop( gotoEnd );
6736
+ dequeue = false;
6737
+ timers.splice( index, 1 );
6738
+ }
6739
+ }
6740
+
6741
+ // start the next in the queue if the last step wasn't forced
6742
+ // timers currently will call their complete callbacks, which will dequeue
6743
+ // but only if they were gotoEnd
6744
+ if ( dequeue || !gotoEnd ) {
6745
+ jQuery.dequeue( this, type );
6746
+ }
6747
+ });
6748
+ },
6749
+ finish: function( type ) {
6750
+ if ( type !== false ) {
6751
+ type = type || "fx";
6752
+ }
6753
+ return this.each(function() {
6754
+ var index,
6755
+ data = data_priv.get( this ),
6756
+ queue = data[ type + "queue" ],
6757
+ hooks = data[ type + "queueHooks" ],
6758
+ timers = jQuery.timers,
6759
+ length = queue ? queue.length : 0;
6760
+
6761
+ // enable finishing flag on private data
6762
+ data.finish = true;
6763
+
6764
+ // empty the queue first
6765
+ jQuery.queue( this, type, [] );
6766
+
6767
+ if ( hooks && hooks.stop ) {
6768
+ hooks.stop.call( this, true );
6769
+ }
6770
+
6771
+ // look for any active animations, and finish them
6772
+ for ( index = timers.length; index--; ) {
6773
+ if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
6774
+ timers[ index ].anim.stop( true );
6775
+ timers.splice( index, 1 );
6776
+ }
6777
+ }
6778
+
6779
+ // look for any animations in the old queue and finish them
6780
+ for ( index = 0; index < length; index++ ) {
6781
+ if ( queue[ index ] && queue[ index ].finish ) {
6782
+ queue[ index ].finish.call( this );
6783
+ }
6784
+ }
6785
+
6786
+ // turn off finishing flag
6787
+ delete data.finish;
6788
+ });
6789
+ }
6790
+ });
6791
+
6792
+ jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
6793
+ var cssFn = jQuery.fn[ name ];
6794
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
6795
+ return speed == null || typeof speed === "boolean" ?
6796
+ cssFn.apply( this, arguments ) :
6797
+ this.animate( genFx( name, true ), speed, easing, callback );
6798
+ };
6799
+ });
6800
+
6801
+ // Generate shortcuts for custom animations
6802
+ jQuery.each({
6803
+ slideDown: genFx("show"),
6804
+ slideUp: genFx("hide"),
6805
+ slideToggle: genFx("toggle"),
6806
+ fadeIn: { opacity: "show" },
6807
+ fadeOut: { opacity: "hide" },
6808
+ fadeToggle: { opacity: "toggle" }
6809
+ }, function( name, props ) {
6810
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
6811
+ return this.animate( props, speed, easing, callback );
6812
+ };
6813
+ });
6814
+
6815
+ jQuery.timers = [];
6816
+ jQuery.fx.tick = function() {
6817
+ var timer,
6818
+ i = 0,
6819
+ timers = jQuery.timers;
6820
+
6821
+ fxNow = jQuery.now();
6822
+
6823
+ for ( ; i < timers.length; i++ ) {
6824
+ timer = timers[ i ];
6825
+ // Checks the timer has not already been removed
6826
+ if ( !timer() && timers[ i ] === timer ) {
6827
+ timers.splice( i--, 1 );
6828
+ }
6829
+ }
6830
+
6831
+ if ( !timers.length ) {
6832
+ jQuery.fx.stop();
6833
+ }
6834
+ fxNow = undefined;
6835
+ };
6836
+
6837
+ jQuery.fx.timer = function( timer ) {
6838
+ jQuery.timers.push( timer );
6839
+ if ( timer() ) {
6840
+ jQuery.fx.start();
6841
+ } else {
6842
+ jQuery.timers.pop();
6843
+ }
6844
+ };
6845
+
6846
+ jQuery.fx.interval = 13;
6847
+
6848
+ jQuery.fx.start = function() {
6849
+ if ( !timerId ) {
6850
+ timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
6851
+ }
6852
+ };
6853
+
6854
+ jQuery.fx.stop = function() {
6855
+ clearInterval( timerId );
6856
+ timerId = null;
6857
+ };
6858
+
6859
+ jQuery.fx.speeds = {
6860
+ slow: 600,
6861
+ fast: 200,
6862
+ // Default speed
6863
+ _default: 400
6864
+ };
6865
+
6866
+
6867
+ // Based off of the plugin by Clint Helfers, with permission.
6868
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
6869
+ jQuery.fn.delay = function( time, type ) {
6870
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
6871
+ type = type || "fx";
6872
+
6873
+ return this.queue( type, function( next, hooks ) {
6874
+ var timeout = setTimeout( next, time );
6875
+ hooks.stop = function() {
6876
+ clearTimeout( timeout );
6877
+ };
6878
+ });
6879
+ };
6880
+
6881
+
6882
+ (function() {
6883
+ var input = document.createElement( "input" ),
6884
+ select = document.createElement( "select" ),
6885
+ opt = select.appendChild( document.createElement( "option" ) );
6886
+
6887
+ input.type = "checkbox";
6888
+
6889
+ // Support: iOS 5.1, Android 4.x, Android 2.3
6890
+ // Check the default checkbox/radio value ("" on old WebKit; "on" elsewhere)
6891
+ support.checkOn = input.value !== "";
6892
+
6893
+ // Must access the parent to make an option select properly
6894
+ // Support: IE9, IE10
6895
+ support.optSelected = opt.selected;
6896
+
6897
+ // Make sure that the options inside disabled selects aren't marked as disabled
6898
+ // (WebKit marks them as disabled)
6899
+ select.disabled = true;
6900
+ support.optDisabled = !opt.disabled;
6901
+
6902
+ // Check if an input maintains its value after becoming a radio
6903
+ // Support: IE9, IE10
6904
+ input = document.createElement( "input" );
6905
+ input.value = "t";
6906
+ input.type = "radio";
6907
+ support.radioValue = input.value === "t";
6908
+ })();
6909
+
6910
+
6911
+ var nodeHook, boolHook,
6912
+ attrHandle = jQuery.expr.attrHandle;
6913
+
6914
+ jQuery.fn.extend({
6915
+ attr: function( name, value ) {
6916
+ return access( this, jQuery.attr, name, value, arguments.length > 1 );
6917
+ },
6918
+
6919
+ removeAttr: function( name ) {
6920
+ return this.each(function() {
6921
+ jQuery.removeAttr( this, name );
6922
+ });
6923
+ }
6924
+ });
6925
+
6926
+ jQuery.extend({
6927
+ attr: function( elem, name, value ) {
6928
+ var hooks, ret,
6929
+ nType = elem.nodeType;
6930
+
6931
+ // don't get/set attributes on text, comment and attribute nodes
6932
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
6933
+ return;
6934
+ }
6935
+
6936
+ // Fallback to prop when attributes are not supported
6937
+ if ( typeof elem.getAttribute === strundefined ) {
6938
+ return jQuery.prop( elem, name, value );
6939
+ }
6940
+
6941
+ // All attributes are lowercase
6942
+ // Grab necessary hook if one is defined
6943
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
6944
+ name = name.toLowerCase();
6945
+ hooks = jQuery.attrHooks[ name ] ||
6946
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
6947
+ }
6948
+
6949
+ if ( value !== undefined ) {
6950
+
6951
+ if ( value === null ) {
6952
+ jQuery.removeAttr( elem, name );
6953
+
6954
+ } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
6955
+ return ret;
6956
+
6957
+ } else {
6958
+ elem.setAttribute( name, value + "" );
6959
+ return value;
6960
+ }
6961
+
6962
+ } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
6963
+ return ret;
6964
+
6965
+ } else {
6966
+ ret = jQuery.find.attr( elem, name );
6967
+
6968
+ // Non-existent attributes return null, we normalize to undefined
6969
+ return ret == null ?
6970
+ undefined :
6971
+ ret;
6972
+ }
6973
+ },
6974
+
6975
+ removeAttr: function( elem, value ) {
6976
+ var name, propName,
6977
+ i = 0,
6978
+ attrNames = value && value.match( rnotwhite );
6979
+
6980
+ if ( attrNames && elem.nodeType === 1 ) {
6981
+ while ( (name = attrNames[i++]) ) {
6982
+ propName = jQuery.propFix[ name ] || name;
6983
+
6984
+ // Boolean attributes get special treatment (#10870)
6985
+ if ( jQuery.expr.match.bool.test( name ) ) {
6986
+ // Set corresponding property to false
6987
+ elem[ propName ] = false;
6988
+ }
6989
+
6990
+ elem.removeAttribute( name );
6991
+ }
6992
+ }
6993
+ },
6994
+
6995
+ attrHooks: {
6996
+ type: {
6997
+ set: function( elem, value ) {
6998
+ if ( !support.radioValue && value === "radio" &&
6999
+ jQuery.nodeName( elem, "input" ) ) {
7000
+ // Setting the type on a radio button after the value resets the value in IE6-9
7001
+ // Reset value to default in case type is set after value during creation
7002
+ var val = elem.value;
7003
+ elem.setAttribute( "type", value );
7004
+ if ( val ) {
7005
+ elem.value = val;
7006
+ }
7007
+ return value;
7008
+ }
7009
+ }
7010
+ }
7011
+ }
7012
+ });
7013
+
7014
+ // Hooks for boolean attributes
7015
+ boolHook = {
7016
+ set: function( elem, value, name ) {
7017
+ if ( value === false ) {
7018
+ // Remove boolean attributes when set to false
7019
+ jQuery.removeAttr( elem, name );
7020
+ } else {
7021
+ elem.setAttribute( name, name );
7022
+ }
7023
+ return name;
7024
+ }
7025
+ };
7026
+ jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
7027
+ var getter = attrHandle[ name ] || jQuery.find.attr;
7028
+
7029
+ attrHandle[ name ] = function( elem, name, isXML ) {
7030
+ var ret, handle;
7031
+ if ( !isXML ) {
7032
+ // Avoid an infinite loop by temporarily removing this function from the getter
7033
+ handle = attrHandle[ name ];
7034
+ attrHandle[ name ] = ret;
7035
+ ret = getter( elem, name, isXML ) != null ?
7036
+ name.toLowerCase() :
7037
+ null;
7038
+ attrHandle[ name ] = handle;
7039
+ }
7040
+ return ret;
7041
+ };
7042
+ });
7043
+
7044
+
7045
+
7046
+
7047
+ var rfocusable = /^(?:input|select|textarea|button)$/i;
7048
+
7049
+ jQuery.fn.extend({
7050
+ prop: function( name, value ) {
7051
+ return access( this, jQuery.prop, name, value, arguments.length > 1 );
7052
+ },
7053
+
7054
+ removeProp: function( name ) {
7055
+ return this.each(function() {
7056
+ delete this[ jQuery.propFix[ name ] || name ];
7057
+ });
7058
+ }
7059
+ });
7060
+
7061
+ jQuery.extend({
7062
+ propFix: {
7063
+ "for": "htmlFor",
7064
+ "class": "className"
7065
+ },
7066
+
7067
+ prop: function( elem, name, value ) {
7068
+ var ret, hooks, notxml,
7069
+ nType = elem.nodeType;
7070
+
7071
+ // don't get/set properties on text, comment and attribute nodes
7072
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
7073
+ return;
7074
+ }
7075
+
7076
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
7077
+
7078
+ if ( notxml ) {
7079
+ // Fix name and attach hooks
7080
+ name = jQuery.propFix[ name ] || name;
7081
+ hooks = jQuery.propHooks[ name ];
7082
+ }
7083
+
7084
+ if ( value !== undefined ) {
7085
+ return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
7086
+ ret :
7087
+ ( elem[ name ] = value );
7088
+
7089
+ } else {
7090
+ return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
7091
+ ret :
7092
+ elem[ name ];
7093
+ }
7094
+ },
7095
+
7096
+ propHooks: {
7097
+ tabIndex: {
7098
+ get: function( elem ) {
7099
+ return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ?
7100
+ elem.tabIndex :
7101
+ -1;
7102
+ }
7103
+ }
7104
+ }
7105
+ });
7106
+
7107
+ // Support: IE9+
7108
+ // Selectedness for an option in an optgroup can be inaccurate
7109
+ if ( !support.optSelected ) {
7110
+ jQuery.propHooks.selected = {
7111
+ get: function( elem ) {
7112
+ var parent = elem.parentNode;
7113
+ if ( parent && parent.parentNode ) {
7114
+ parent.parentNode.selectedIndex;
7115
+ }
7116
+ return null;
7117
+ }
7118
+ };
7119
+ }
7120
+
7121
+ jQuery.each([
7122
+ "tabIndex",
7123
+ "readOnly",
7124
+ "maxLength",
7125
+ "cellSpacing",
7126
+ "cellPadding",
7127
+ "rowSpan",
7128
+ "colSpan",
7129
+ "useMap",
7130
+ "frameBorder",
7131
+ "contentEditable"
7132
+ ], function() {
7133
+ jQuery.propFix[ this.toLowerCase() ] = this;
7134
+ });
7135
+
7136
+
7137
+
7138
+
7139
+ var rclass = /[\t\r\n\f]/g;
7140
+
7141
+ jQuery.fn.extend({
7142
+ addClass: function( value ) {
7143
+ var classes, elem, cur, clazz, j, finalValue,
7144
+ proceed = typeof value === "string" && value,
7145
+ i = 0,
7146
+ len = this.length;
7147
+
7148
+ if ( jQuery.isFunction( value ) ) {
7149
+ return this.each(function( j ) {
7150
+ jQuery( this ).addClass( value.call( this, j, this.className ) );
7151
+ });
7152
+ }
7153
+
7154
+ if ( proceed ) {
7155
+ // The disjunction here is for better compressibility (see removeClass)
7156
+ classes = ( value || "" ).match( rnotwhite ) || [];
7157
+
7158
+ for ( ; i < len; i++ ) {
7159
+ elem = this[ i ];
7160
+ cur = elem.nodeType === 1 && ( elem.className ?
7161
+ ( " " + elem.className + " " ).replace( rclass, " " ) :
7162
+ " "
7163
+ );
7164
+
7165
+ if ( cur ) {
7166
+ j = 0;
7167
+ while ( (clazz = classes[j++]) ) {
7168
+ if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
7169
+ cur += clazz + " ";
7170
+ }
7171
+ }
7172
+
7173
+ // only assign if different to avoid unneeded rendering.
7174
+ finalValue = jQuery.trim( cur );
7175
+ if ( elem.className !== finalValue ) {
7176
+ elem.className = finalValue;
7177
+ }
7178
+ }
7179
+ }
7180
+ }
7181
+
7182
+ return this;
7183
+ },
7184
+
7185
+ removeClass: function( value ) {
7186
+ var classes, elem, cur, clazz, j, finalValue,
7187
+ proceed = arguments.length === 0 || typeof value === "string" && value,
7188
+ i = 0,
7189
+ len = this.length;
7190
+
7191
+ if ( jQuery.isFunction( value ) ) {
7192
+ return this.each(function( j ) {
7193
+ jQuery( this ).removeClass( value.call( this, j, this.className ) );
7194
+ });
7195
+ }
7196
+ if ( proceed ) {
7197
+ classes = ( value || "" ).match( rnotwhite ) || [];
7198
+
7199
+ for ( ; i < len; i++ ) {
7200
+ elem = this[ i ];
7201
+ // This expression is here for better compressibility (see addClass)
7202
+ cur = elem.nodeType === 1 && ( elem.className ?
7203
+ ( " " + elem.className + " " ).replace( rclass, " " ) :
7204
+ ""
7205
+ );
7206
+
7207
+ if ( cur ) {
7208
+ j = 0;
7209
+ while ( (clazz = classes[j++]) ) {
7210
+ // Remove *all* instances
7211
+ while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
7212
+ cur = cur.replace( " " + clazz + " ", " " );
7213
+ }
7214
+ }
7215
+
7216
+ // only assign if different to avoid unneeded rendering.
7217
+ finalValue = value ? jQuery.trim( cur ) : "";
7218
+ if ( elem.className !== finalValue ) {
7219
+ elem.className = finalValue;
7220
+ }
7221
+ }
7222
+ }
7223
+ }
7224
+
7225
+ return this;
7226
+ },
7227
+
7228
+ toggleClass: function( value, stateVal ) {
7229
+ var type = typeof value;
7230
+
7231
+ if ( typeof stateVal === "boolean" && type === "string" ) {
7232
+ return stateVal ? this.addClass( value ) : this.removeClass( value );
7233
+ }
7234
+
7235
+ if ( jQuery.isFunction( value ) ) {
7236
+ return this.each(function( i ) {
7237
+ jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
7238
+ });
7239
+ }
7240
+
7241
+ return this.each(function() {
7242
+ if ( type === "string" ) {
7243
+ // toggle individual class names
7244
+ var className,
7245
+ i = 0,
7246
+ self = jQuery( this ),
7247
+ classNames = value.match( rnotwhite ) || [];
7248
+
7249
+ while ( (className = classNames[ i++ ]) ) {
7250
+ // check each className given, space separated list
7251
+ if ( self.hasClass( className ) ) {
7252
+ self.removeClass( className );
7253
+ } else {
7254
+ self.addClass( className );
7255
+ }
7256
+ }
7257
+
7258
+ // Toggle whole class name
7259
+ } else if ( type === strundefined || type === "boolean" ) {
7260
+ if ( this.className ) {
7261
+ // store className if set
7262
+ data_priv.set( this, "__className__", this.className );
7263
+ }
7264
+
7265
+ // If the element has a class name or if we're passed "false",
7266
+ // then remove the whole classname (if there was one, the above saved it).
7267
+ // Otherwise bring back whatever was previously saved (if anything),
7268
+ // falling back to the empty string if nothing was stored.
7269
+ this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || "";
7270
+ }
7271
+ });
7272
+ },
7273
+
7274
+ hasClass: function( selector ) {
7275
+ var className = " " + selector + " ",
7276
+ i = 0,
7277
+ l = this.length;
7278
+ for ( ; i < l; i++ ) {
7279
+ if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
7280
+ return true;
7281
+ }
7282
+ }
7283
+
7284
+ return false;
7285
+ }
7286
+ });
7287
+
7288
+
7289
+
7290
+
7291
+ var rreturn = /\r/g;
7292
+
7293
+ jQuery.fn.extend({
7294
+ val: function( value ) {
7295
+ var hooks, ret, isFunction,
7296
+ elem = this[0];
7297
+
7298
+ if ( !arguments.length ) {
7299
+ if ( elem ) {
7300
+ hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
7301
+
7302
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
7303
+ return ret;
7304
+ }
7305
+
7306
+ ret = elem.value;
7307
+
7308
+ return typeof ret === "string" ?
7309
+ // handle most common string cases
7310
+ ret.replace(rreturn, "") :
7311
+ // handle cases where value is null/undef or number
7312
+ ret == null ? "" : ret;
7313
+ }
7314
+
7315
+ return;
7316
+ }
7317
+
7318
+ isFunction = jQuery.isFunction( value );
7319
+
7320
+ return this.each(function( i ) {
7321
+ var val;
7322
+
7323
+ if ( this.nodeType !== 1 ) {
7324
+ return;
7325
+ }
7326
+
7327
+ if ( isFunction ) {
7328
+ val = value.call( this, i, jQuery( this ).val() );
7329
+ } else {
7330
+ val = value;
7331
+ }
7332
+
7333
+ // Treat null/undefined as ""; convert numbers to string
7334
+ if ( val == null ) {
7335
+ val = "";
7336
+
7337
+ } else if ( typeof val === "number" ) {
7338
+ val += "";
7339
+
7340
+ } else if ( jQuery.isArray( val ) ) {
7341
+ val = jQuery.map( val, function( value ) {
7342
+ return value == null ? "" : value + "";
7343
+ });
7344
+ }
7345
+
7346
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
7347
+
7348
+ // If set returns undefined, fall back to normal setting
7349
+ if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
7350
+ this.value = val;
7351
+ }
7352
+ });
7353
+ }
7354
+ });
7355
+
7356
+ jQuery.extend({
7357
+ valHooks: {
7358
+ option: {
7359
+ get: function( elem ) {
7360
+ var val = jQuery.find.attr( elem, "value" );
7361
+ return val != null ?
7362
+ val :
7363
+ // Support: IE10-11+
7364
+ // option.text throws exceptions (#14686, #14858)
7365
+ jQuery.trim( jQuery.text( elem ) );
7366
+ }
7367
+ },
7368
+ select: {
7369
+ get: function( elem ) {
7370
+ var value, option,
7371
+ options = elem.options,
7372
+ index = elem.selectedIndex,
7373
+ one = elem.type === "select-one" || index < 0,
7374
+ values = one ? null : [],
7375
+ max = one ? index + 1 : options.length,
7376
+ i = index < 0 ?
7377
+ max :
7378
+ one ? index : 0;
7379
+
7380
+ // Loop through all the selected options
7381
+ for ( ; i < max; i++ ) {
7382
+ option = options[ i ];
7383
+
7384
+ // IE6-9 doesn't update selected after form reset (#2551)
7385
+ if ( ( option.selected || i === index ) &&
7386
+ // Don't return options that are disabled or in a disabled optgroup
7387
+ ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) &&
7388
+ ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
7389
+
7390
+ // Get the specific value for the option
7391
+ value = jQuery( option ).val();
7392
+
7393
+ // We don't need an array for one selects
7394
+ if ( one ) {
7395
+ return value;
7396
+ }
7397
+
7398
+ // Multi-Selects return an array
7399
+ values.push( value );
7400
+ }
7401
+ }
7402
+
7403
+ return values;
7404
+ },
7405
+
7406
+ set: function( elem, value ) {
7407
+ var optionSet, option,
7408
+ options = elem.options,
7409
+ values = jQuery.makeArray( value ),
7410
+ i = options.length;
7411
+
7412
+ while ( i-- ) {
7413
+ option = options[ i ];
7414
+ if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) {
7415
+ optionSet = true;
7416
+ }
7417
+ }
7418
+
7419
+ // force browsers to behave consistently when non-matching value is set
7420
+ if ( !optionSet ) {
7421
+ elem.selectedIndex = -1;
7422
+ }
7423
+ return values;
7424
+ }
7425
+ }
7426
+ }
7427
+ });
7428
+
7429
+ // Radios and checkboxes getter/setter
7430
+ jQuery.each([ "radio", "checkbox" ], function() {
7431
+ jQuery.valHooks[ this ] = {
7432
+ set: function( elem, value ) {
7433
+ if ( jQuery.isArray( value ) ) {
7434
+ return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
7435
+ }
7436
+ }
7437
+ };
7438
+ if ( !support.checkOn ) {
7439
+ jQuery.valHooks[ this ].get = function( elem ) {
7440
+ // Support: Webkit
7441
+ // "" is returned instead of "on" if a value isn't specified
7442
+ return elem.getAttribute("value") === null ? "on" : elem.value;
7443
+ };
7444
+ }
7445
+ });
7446
+
7447
+
7448
+
7449
+
7450
+ // Return jQuery for attributes-only inclusion
7451
+
7452
+
7453
+ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
7454
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
7455
+ "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
7456
+
7457
+ // Handle event binding
7458
+ jQuery.fn[ name ] = function( data, fn ) {
7459
+ return arguments.length > 0 ?
7460
+ this.on( name, null, data, fn ) :
7461
+ this.trigger( name );
7462
+ };
7463
+ });
7464
+
7465
+ jQuery.fn.extend({
7466
+ hover: function( fnOver, fnOut ) {
7467
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
7468
+ },
7469
+
7470
+ bind: function( types, data, fn ) {
7471
+ return this.on( types, null, data, fn );
7472
+ },
7473
+ unbind: function( types, fn ) {
7474
+ return this.off( types, null, fn );
7475
+ },
7476
+
7477
+ delegate: function( selector, types, data, fn ) {
7478
+ return this.on( types, selector, data, fn );
7479
+ },
7480
+ undelegate: function( selector, types, fn ) {
7481
+ // ( namespace ) or ( selector, types [, fn] )
7482
+ return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
7483
+ }
7484
+ });
7485
+
7486
+
7487
+ var nonce = jQuery.now();
7488
+
7489
+ var rquery = (/\?/);
7490
+
7491
+
7492
+
7493
+ // Support: Android 2.3
7494
+ // Workaround failure to string-cast null input
7495
+ jQuery.parseJSON = function( data ) {
7496
+ return JSON.parse( data + "" );
7497
+ };
7498
+
7499
+
7500
+ // Cross-browser xml parsing
7501
+ jQuery.parseXML = function( data ) {
7502
+ var xml, tmp;
7503
+ if ( !data || typeof data !== "string" ) {
7504
+ return null;
7505
+ }
7506
+
7507
+ // Support: IE9
7508
+ try {
7509
+ tmp = new DOMParser();
7510
+ xml = tmp.parseFromString( data, "text/xml" );
7511
+ } catch ( e ) {
7512
+ xml = undefined;
7513
+ }
7514
+
7515
+ if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
7516
+ jQuery.error( "Invalid XML: " + data );
7517
+ }
7518
+ return xml;
7519
+ };
7520
+
7521
+
7522
+ var
7523
+ // Document location
7524
+ ajaxLocParts,
7525
+ ajaxLocation,
7526
+
7527
+ rhash = /#.*$/,
7528
+ rts = /([?&])_=[^&]*/,
7529
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
7530
+ // #7653, #8125, #8152: local protocol detection
7531
+ rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
7532
+ rnoContent = /^(?:GET|HEAD)$/,
7533
+ rprotocol = /^\/\//,
7534
+ rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
7535
+
7536
+ /* Prefilters
7537
+ * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
7538
+ * 2) These are called:
7539
+ * - BEFORE asking for a transport
7540
+ * - AFTER param serialization (s.data is a string if s.processData is true)
7541
+ * 3) key is the dataType
7542
+ * 4) the catchall symbol "*" can be used
7543
+ * 5) execution will start with transport dataType and THEN continue down to "*" if needed
7544
+ */
7545
+ prefilters = {},
7546
+
7547
+ /* Transports bindings
7548
+ * 1) key is the dataType
7549
+ * 2) the catchall symbol "*" can be used
7550
+ * 3) selection will start with transport dataType and THEN go to "*" if needed
7551
+ */
7552
+ transports = {},
7553
+
7554
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
7555
+ allTypes = "*/".concat("*");
7556
+
7557
+ // #8138, IE may throw an exception when accessing
7558
+ // a field from window.location if document.domain has been set
7559
+ try {
7560
+ ajaxLocation = location.href;
7561
+ } catch( e ) {
7562
+ // Use the href attribute of an A element
7563
+ // since IE will modify it given document.location
7564
+ ajaxLocation = document.createElement( "a" );
7565
+ ajaxLocation.href = "";
7566
+ ajaxLocation = ajaxLocation.href;
7567
+ }
7568
+
7569
+ // Segment location into parts
7570
+ ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
7571
+
7572
+ // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
7573
+ function addToPrefiltersOrTransports( structure ) {
7574
+
7575
+ // dataTypeExpression is optional and defaults to "*"
7576
+ return function( dataTypeExpression, func ) {
7577
+
7578
+ if ( typeof dataTypeExpression !== "string" ) {
7579
+ func = dataTypeExpression;
7580
+ dataTypeExpression = "*";
7581
+ }
7582
+
7583
+ var dataType,
7584
+ i = 0,
7585
+ dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
7586
+
7587
+ if ( jQuery.isFunction( func ) ) {
7588
+ // For each dataType in the dataTypeExpression
7589
+ while ( (dataType = dataTypes[i++]) ) {
7590
+ // Prepend if requested
7591
+ if ( dataType[0] === "+" ) {
7592
+ dataType = dataType.slice( 1 ) || "*";
7593
+ (structure[ dataType ] = structure[ dataType ] || []).unshift( func );
7594
+
7595
+ // Otherwise append
7596
+ } else {
7597
+ (structure[ dataType ] = structure[ dataType ] || []).push( func );
7598
+ }
7599
+ }
7600
+ }
7601
+ };
7602
+ }
7603
+
7604
+ // Base inspection function for prefilters and transports
7605
+ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
7606
+
7607
+ var inspected = {},
7608
+ seekingTransport = ( structure === transports );
7609
+
7610
+ function inspect( dataType ) {
7611
+ var selected;
7612
+ inspected[ dataType ] = true;
7613
+ jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
7614
+ var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
7615
+ if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
7616
+ options.dataTypes.unshift( dataTypeOrTransport );
7617
+ inspect( dataTypeOrTransport );
7618
+ return false;
7619
+ } else if ( seekingTransport ) {
7620
+ return !( selected = dataTypeOrTransport );
7621
+ }
7622
+ });
7623
+ return selected;
7624
+ }
7625
+
7626
+ return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
7627
+ }
7628
+
7629
+ // A special extend for ajax options
7630
+ // that takes "flat" options (not to be deep extended)
7631
+ // Fixes #9887
7632
+ function ajaxExtend( target, src ) {
7633
+ var key, deep,
7634
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
7635
+
7636
+ for ( key in src ) {
7637
+ if ( src[ key ] !== undefined ) {
7638
+ ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
7639
+ }
7640
+ }
7641
+ if ( deep ) {
7642
+ jQuery.extend( true, target, deep );
7643
+ }
7644
+
7645
+ return target;
7646
+ }
7647
+
7648
+ /* Handles responses to an ajax request:
7649
+ * - finds the right dataType (mediates between content-type and expected dataType)
7650
+ * - returns the corresponding response
7651
+ */
7652
+ function ajaxHandleResponses( s, jqXHR, responses ) {
7653
+
7654
+ var ct, type, finalDataType, firstDataType,
7655
+ contents = s.contents,
7656
+ dataTypes = s.dataTypes;
7657
+
7658
+ // Remove auto dataType and get content-type in the process
7659
+ while ( dataTypes[ 0 ] === "*" ) {
7660
+ dataTypes.shift();
7661
+ if ( ct === undefined ) {
7662
+ ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
7663
+ }
7664
+ }
7665
+
7666
+ // Check if we're dealing with a known content-type
7667
+ if ( ct ) {
7668
+ for ( type in contents ) {
7669
+ if ( contents[ type ] && contents[ type ].test( ct ) ) {
7670
+ dataTypes.unshift( type );
7671
+ break;
7672
+ }
7673
+ }
7674
+ }
7675
+
7676
+ // Check to see if we have a response for the expected dataType
7677
+ if ( dataTypes[ 0 ] in responses ) {
7678
+ finalDataType = dataTypes[ 0 ];
7679
+ } else {
7680
+ // Try convertible dataTypes
7681
+ for ( type in responses ) {
7682
+ if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
7683
+ finalDataType = type;
7684
+ break;
7685
+ }
7686
+ if ( !firstDataType ) {
7687
+ firstDataType = type;
7688
+ }
7689
+ }
7690
+ // Or just use first one
7691
+ finalDataType = finalDataType || firstDataType;
7692
+ }
7693
+
7694
+ // If we found a dataType
7695
+ // We add the dataType to the list if needed
7696
+ // and return the corresponding response
7697
+ if ( finalDataType ) {
7698
+ if ( finalDataType !== dataTypes[ 0 ] ) {
7699
+ dataTypes.unshift( finalDataType );
7700
+ }
7701
+ return responses[ finalDataType ];
7702
+ }
7703
+ }
7704
+
7705
+ /* Chain conversions given the request and the original response
7706
+ * Also sets the responseXXX fields on the jqXHR instance
7707
+ */
7708
+ function ajaxConvert( s, response, jqXHR, isSuccess ) {
7709
+ var conv2, current, conv, tmp, prev,
7710
+ converters = {},
7711
+ // Work with a copy of dataTypes in case we need to modify it for conversion
7712
+ dataTypes = s.dataTypes.slice();
7713
+
7714
+ // Create converters map with lowercased keys
7715
+ if ( dataTypes[ 1 ] ) {
7716
+ for ( conv in s.converters ) {
7717
+ converters[ conv.toLowerCase() ] = s.converters[ conv ];
7718
+ }
7719
+ }
7720
+
7721
+ current = dataTypes.shift();
7722
+
7723
+ // Convert to each sequential dataType
7724
+ while ( current ) {
7725
+
7726
+ if ( s.responseFields[ current ] ) {
7727
+ jqXHR[ s.responseFields[ current ] ] = response;
7728
+ }
7729
+
7730
+ // Apply the dataFilter if provided
7731
+ if ( !prev && isSuccess && s.dataFilter ) {
7732
+ response = s.dataFilter( response, s.dataType );
7733
+ }
7734
+
7735
+ prev = current;
7736
+ current = dataTypes.shift();
7737
+
7738
+ if ( current ) {
7739
+
7740
+ // There's only work to do if current dataType is non-auto
7741
+ if ( current === "*" ) {
7742
+
7743
+ current = prev;
7744
+
7745
+ // Convert response if prev dataType is non-auto and differs from current
7746
+ } else if ( prev !== "*" && prev !== current ) {
7747
+
7748
+ // Seek a direct converter
7749
+ conv = converters[ prev + " " + current ] || converters[ "* " + current ];
7750
+
7751
+ // If none found, seek a pair
7752
+ if ( !conv ) {
7753
+ for ( conv2 in converters ) {
7754
+
7755
+ // If conv2 outputs current
7756
+ tmp = conv2.split( " " );
7757
+ if ( tmp[ 1 ] === current ) {
7758
+
7759
+ // If prev can be converted to accepted input
7760
+ conv = converters[ prev + " " + tmp[ 0 ] ] ||
7761
+ converters[ "* " + tmp[ 0 ] ];
7762
+ if ( conv ) {
7763
+ // Condense equivalence converters
7764
+ if ( conv === true ) {
7765
+ conv = converters[ conv2 ];
7766
+
7767
+ // Otherwise, insert the intermediate dataType
7768
+ } else if ( converters[ conv2 ] !== true ) {
7769
+ current = tmp[ 0 ];
7770
+ dataTypes.unshift( tmp[ 1 ] );
7771
+ }
7772
+ break;
7773
+ }
7774
+ }
7775
+ }
7776
+ }
7777
+
7778
+ // Apply converter (if not an equivalence)
7779
+ if ( conv !== true ) {
7780
+
7781
+ // Unless errors are allowed to bubble, catch and return them
7782
+ if ( conv && s[ "throws" ] ) {
7783
+ response = conv( response );
7784
+ } else {
7785
+ try {
7786
+ response = conv( response );
7787
+ } catch ( e ) {
7788
+ return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
7789
+ }
7790
+ }
7791
+ }
7792
+ }
7793
+ }
7794
+ }
7795
+
7796
+ return { state: "success", data: response };
7797
+ }
7798
+
7799
+ jQuery.extend({
7800
+
7801
+ // Counter for holding the number of active queries
7802
+ active: 0,
7803
+
7804
+ // Last-Modified header cache for next request
7805
+ lastModified: {},
7806
+ etag: {},
7807
+
7808
+ ajaxSettings: {
7809
+ url: ajaxLocation,
7810
+ type: "GET",
7811
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
7812
+ global: true,
7813
+ processData: true,
7814
+ async: true,
7815
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
7816
+ /*
7817
+ timeout: 0,
7818
+ data: null,
7819
+ dataType: null,
7820
+ username: null,
7821
+ password: null,
7822
+ cache: null,
7823
+ throws: false,
7824
+ traditional: false,
7825
+ headers: {},
7826
+ */
7827
+
7828
+ accepts: {
7829
+ "*": allTypes,
7830
+ text: "text/plain",
7831
+ html: "text/html",
7832
+ xml: "application/xml, text/xml",
7833
+ json: "application/json, text/javascript"
7834
+ },
7835
+
7836
+ contents: {
7837
+ xml: /xml/,
7838
+ html: /html/,
7839
+ json: /json/
7840
+ },
7841
+
7842
+ responseFields: {
7843
+ xml: "responseXML",
7844
+ text: "responseText",
7845
+ json: "responseJSON"
7846
+ },
7847
+
7848
+ // Data converters
7849
+ // Keys separate source (or catchall "*") and destination types with a single space
7850
+ converters: {
7851
+
7852
+ // Convert anything to text
7853
+ "* text": String,
7854
+
7855
+ // Text to html (true = no transformation)
7856
+ "text html": true,
7857
+
7858
+ // Evaluate text as a json expression
7859
+ "text json": jQuery.parseJSON,
7860
+
7861
+ // Parse text as xml
7862
+ "text xml": jQuery.parseXML
7863
+ },
7864
+
7865
+ // For options that shouldn't be deep extended:
7866
+ // you can add your own custom options here if
7867
+ // and when you create one that shouldn't be
7868
+ // deep extended (see ajaxExtend)
7869
+ flatOptions: {
7870
+ url: true,
7871
+ context: true
7872
+ }
7873
+ },
7874
+
7875
+ // Creates a full fledged settings object into target
7876
+ // with both ajaxSettings and settings fields.
7877
+ // If target is omitted, writes into ajaxSettings.
7878
+ ajaxSetup: function( target, settings ) {
7879
+ return settings ?
7880
+
7881
+ // Building a settings object
7882
+ ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
7883
+
7884
+ // Extending ajaxSettings
7885
+ ajaxExtend( jQuery.ajaxSettings, target );
7886
+ },
7887
+
7888
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
7889
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
7890
+
7891
+ // Main method
7892
+ ajax: function( url, options ) {
7893
+
7894
+ // If url is an object, simulate pre-1.5 signature
7895
+ if ( typeof url === "object" ) {
7896
+ options = url;
7897
+ url = undefined;
7898
+ }
7899
+
7900
+ // Force options to be an object
7901
+ options = options || {};
7902
+
7903
+ var transport,
7904
+ // URL without anti-cache param
7905
+ cacheURL,
7906
+ // Response headers
7907
+ responseHeadersString,
7908
+ responseHeaders,
7909
+ // timeout handle
7910
+ timeoutTimer,
7911
+ // Cross-domain detection vars
7912
+ parts,
7913
+ // To know if global events are to be dispatched
7914
+ fireGlobals,
7915
+ // Loop variable
7916
+ i,
7917
+ // Create the final options object
7918
+ s = jQuery.ajaxSetup( {}, options ),
7919
+ // Callbacks context
7920
+ callbackContext = s.context || s,
7921
+ // Context for global events is callbackContext if it is a DOM node or jQuery collection
7922
+ globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
7923
+ jQuery( callbackContext ) :
7924
+ jQuery.event,
7925
+ // Deferreds
7926
+ deferred = jQuery.Deferred(),
7927
+ completeDeferred = jQuery.Callbacks("once memory"),
7928
+ // Status-dependent callbacks
7929
+ statusCode = s.statusCode || {},
7930
+ // Headers (they are sent all at once)
7931
+ requestHeaders = {},
7932
+ requestHeadersNames = {},
7933
+ // The jqXHR state
7934
+ state = 0,
7935
+ // Default abort message
7936
+ strAbort = "canceled",
7937
+ // Fake xhr
7938
+ jqXHR = {
7939
+ readyState: 0,
7940
+
7941
+ // Builds headers hashtable if needed
7942
+ getResponseHeader: function( key ) {
7943
+ var match;
7944
+ if ( state === 2 ) {
7945
+ if ( !responseHeaders ) {
7946
+ responseHeaders = {};
7947
+ while ( (match = rheaders.exec( responseHeadersString )) ) {
7948
+ responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
7949
+ }
7950
+ }
7951
+ match = responseHeaders[ key.toLowerCase() ];
7952
+ }
7953
+ return match == null ? null : match;
7954
+ },
7955
+
7956
+ // Raw string
7957
+ getAllResponseHeaders: function() {
7958
+ return state === 2 ? responseHeadersString : null;
7959
+ },
7960
+
7961
+ // Caches the header
7962
+ setRequestHeader: function( name, value ) {
7963
+ var lname = name.toLowerCase();
7964
+ if ( !state ) {
7965
+ name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
7966
+ requestHeaders[ name ] = value;
7967
+ }
7968
+ return this;
7969
+ },
7970
+
7971
+ // Overrides response content-type header
7972
+ overrideMimeType: function( type ) {
7973
+ if ( !state ) {
7974
+ s.mimeType = type;
7975
+ }
7976
+ return this;
7977
+ },
7978
+
7979
+ // Status-dependent callbacks
7980
+ statusCode: function( map ) {
7981
+ var code;
7982
+ if ( map ) {
7983
+ if ( state < 2 ) {
7984
+ for ( code in map ) {
7985
+ // Lazy-add the new callback in a way that preserves old ones
7986
+ statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
7987
+ }
7988
+ } else {
7989
+ // Execute the appropriate callbacks
7990
+ jqXHR.always( map[ jqXHR.status ] );
7991
+ }
7992
+ }
7993
+ return this;
7994
+ },
7995
+
7996
+ // Cancel the request
7997
+ abort: function( statusText ) {
7998
+ var finalText = statusText || strAbort;
7999
+ if ( transport ) {
8000
+ transport.abort( finalText );
8001
+ }
8002
+ done( 0, finalText );
8003
+ return this;
8004
+ }
8005
+ };
8006
+
8007
+ // Attach deferreds
8008
+ deferred.promise( jqXHR ).complete = completeDeferred.add;
8009
+ jqXHR.success = jqXHR.done;
8010
+ jqXHR.error = jqXHR.fail;
8011
+
8012
+ // Remove hash character (#7531: and string promotion)
8013
+ // Add protocol if not provided (prefilters might expect it)
8014
+ // Handle falsy url in the settings object (#10093: consistency with old signature)
8015
+ // We also use the url parameter if available
8016
+ s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" )
8017
+ .replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
8018
+
8019
+ // Alias method option to type as per ticket #12004
8020
+ s.type = options.method || options.type || s.method || s.type;
8021
+
8022
+ // Extract dataTypes list
8023
+ s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
8024
+
8025
+ // A cross-domain request is in order when we have a protocol:host:port mismatch
8026
+ if ( s.crossDomain == null ) {
8027
+ parts = rurl.exec( s.url.toLowerCase() );
8028
+ s.crossDomain = !!( parts &&
8029
+ ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
8030
+ ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
8031
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
8032
+ );
8033
+ }
8034
+
8035
+ // Convert data if not already a string
8036
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
8037
+ s.data = jQuery.param( s.data, s.traditional );
8038
+ }
8039
+
8040
+ // Apply prefilters
8041
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
8042
+
8043
+ // If request was aborted inside a prefilter, stop there
8044
+ if ( state === 2 ) {
8045
+ return jqXHR;
8046
+ }
8047
+
8048
+ // We can fire global events as of now if asked to
8049
+ fireGlobals = s.global;
8050
+
8051
+ // Watch for a new set of requests
8052
+ if ( fireGlobals && jQuery.active++ === 0 ) {
8053
+ jQuery.event.trigger("ajaxStart");
8054
+ }
8055
+
8056
+ // Uppercase the type
8057
+ s.type = s.type.toUpperCase();
8058
+
8059
+ // Determine if request has content
8060
+ s.hasContent = !rnoContent.test( s.type );
8061
+
8062
+ // Save the URL in case we're toying with the If-Modified-Since
8063
+ // and/or If-None-Match header later on
8064
+ cacheURL = s.url;
8065
+
8066
+ // More options handling for requests with no content
8067
+ if ( !s.hasContent ) {
8068
+
8069
+ // If data is available, append data to url
8070
+ if ( s.data ) {
8071
+ cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
8072
+ // #9682: remove data so that it's not used in an eventual retry
8073
+ delete s.data;
8074
+ }
8075
+
8076
+ // Add anti-cache in url if needed
8077
+ if ( s.cache === false ) {
8078
+ s.url = rts.test( cacheURL ) ?
8079
+
8080
+ // If there is already a '_' parameter, set its value
8081
+ cacheURL.replace( rts, "$1_=" + nonce++ ) :
8082
+
8083
+ // Otherwise add one to the end
8084
+ cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
8085
+ }
8086
+ }
8087
+
8088
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
8089
+ if ( s.ifModified ) {
8090
+ if ( jQuery.lastModified[ cacheURL ] ) {
8091
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
8092
+ }
8093
+ if ( jQuery.etag[ cacheURL ] ) {
8094
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
8095
+ }
8096
+ }
8097
+
8098
+ // Set the correct header, if data is being sent
8099
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
8100
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
8101
+ }
8102
+
8103
+ // Set the Accepts header for the server, depending on the dataType
8104
+ jqXHR.setRequestHeader(
8105
+ "Accept",
8106
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
8107
+ s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
8108
+ s.accepts[ "*" ]
8109
+ );
8110
+
8111
+ // Check for headers option
8112
+ for ( i in s.headers ) {
8113
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
8114
+ }
8115
+
8116
+ // Allow custom headers/mimetypes and early abort
8117
+ if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
8118
+ // Abort if not done already and return
8119
+ return jqXHR.abort();
8120
+ }
8121
+
8122
+ // aborting is no longer a cancellation
8123
+ strAbort = "abort";
8124
+
8125
+ // Install callbacks on deferreds
8126
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
8127
+ jqXHR[ i ]( s[ i ] );
8128
+ }
8129
+
8130
+ // Get transport
8131
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
8132
+
8133
+ // If no transport, we auto-abort
8134
+ if ( !transport ) {
8135
+ done( -1, "No Transport" );
8136
+ } else {
8137
+ jqXHR.readyState = 1;
8138
+
8139
+ // Send global event
8140
+ if ( fireGlobals ) {
8141
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
8142
+ }
8143
+ // Timeout
8144
+ if ( s.async && s.timeout > 0 ) {
8145
+ timeoutTimer = setTimeout(function() {
8146
+ jqXHR.abort("timeout");
8147
+ }, s.timeout );
8148
+ }
8149
+
8150
+ try {
8151
+ state = 1;
8152
+ transport.send( requestHeaders, done );
8153
+ } catch ( e ) {
8154
+ // Propagate exception as error if not done
8155
+ if ( state < 2 ) {
8156
+ done( -1, e );
8157
+ // Simply rethrow otherwise
8158
+ } else {
8159
+ throw e;
8160
+ }
8161
+ }
8162
+ }
8163
+
8164
+ // Callback for when everything is done
8165
+ function done( status, nativeStatusText, responses, headers ) {
8166
+ var isSuccess, success, error, response, modified,
8167
+ statusText = nativeStatusText;
8168
+
8169
+ // Called once
8170
+ if ( state === 2 ) {
8171
+ return;
8172
+ }
8173
+
8174
+ // State is "done" now
8175
+ state = 2;
8176
+
8177
+ // Clear timeout if it exists
8178
+ if ( timeoutTimer ) {
8179
+ clearTimeout( timeoutTimer );
8180
+ }
8181
+
8182
+ // Dereference transport for early garbage collection
8183
+ // (no matter how long the jqXHR object will be used)
8184
+ transport = undefined;
8185
+
8186
+ // Cache response headers
8187
+ responseHeadersString = headers || "";
8188
+
8189
+ // Set readyState
8190
+ jqXHR.readyState = status > 0 ? 4 : 0;
8191
+
8192
+ // Determine if successful
8193
+ isSuccess = status >= 200 && status < 300 || status === 304;
8194
+
8195
+ // Get response data
8196
+ if ( responses ) {
8197
+ response = ajaxHandleResponses( s, jqXHR, responses );
8198
+ }
8199
+
8200
+ // Convert no matter what (that way responseXXX fields are always set)
8201
+ response = ajaxConvert( s, response, jqXHR, isSuccess );
8202
+
8203
+ // If successful, handle type chaining
8204
+ if ( isSuccess ) {
8205
+
8206
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
8207
+ if ( s.ifModified ) {
8208
+ modified = jqXHR.getResponseHeader("Last-Modified");
8209
+ if ( modified ) {
8210
+ jQuery.lastModified[ cacheURL ] = modified;
8211
+ }
8212
+ modified = jqXHR.getResponseHeader("etag");
8213
+ if ( modified ) {
8214
+ jQuery.etag[ cacheURL ] = modified;
8215
+ }
8216
+ }
8217
+
8218
+ // if no content
8219
+ if ( status === 204 || s.type === "HEAD" ) {
8220
+ statusText = "nocontent";
8221
+
8222
+ // if not modified
8223
+ } else if ( status === 304 ) {
8224
+ statusText = "notmodified";
8225
+
8226
+ // If we have data, let's convert it
8227
+ } else {
8228
+ statusText = response.state;
8229
+ success = response.data;
8230
+ error = response.error;
8231
+ isSuccess = !error;
8232
+ }
8233
+ } else {
8234
+ // We extract error from statusText
8235
+ // then normalize statusText and status for non-aborts
8236
+ error = statusText;
8237
+ if ( status || !statusText ) {
8238
+ statusText = "error";
8239
+ if ( status < 0 ) {
8240
+ status = 0;
8241
+ }
8242
+ }
8243
+ }
8244
+
8245
+ // Set data for the fake xhr object
8246
+ jqXHR.status = status;
8247
+ jqXHR.statusText = ( nativeStatusText || statusText ) + "";
8248
+
8249
+ // Success/Error
8250
+ if ( isSuccess ) {
8251
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
8252
+ } else {
8253
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
8254
+ }
8255
+
8256
+ // Status-dependent callbacks
8257
+ jqXHR.statusCode( statusCode );
8258
+ statusCode = undefined;
8259
+
8260
+ if ( fireGlobals ) {
8261
+ globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
8262
+ [ jqXHR, s, isSuccess ? success : error ] );
8263
+ }
8264
+
8265
+ // Complete
8266
+ completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
8267
+
8268
+ if ( fireGlobals ) {
8269
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
8270
+ // Handle the global AJAX counter
8271
+ if ( !( --jQuery.active ) ) {
8272
+ jQuery.event.trigger("ajaxStop");
8273
+ }
8274
+ }
8275
+ }
8276
+
8277
+ return jqXHR;
8278
+ },
8279
+
8280
+ getJSON: function( url, data, callback ) {
8281
+ return jQuery.get( url, data, callback, "json" );
8282
+ },
8283
+
8284
+ getScript: function( url, callback ) {
8285
+ return jQuery.get( url, undefined, callback, "script" );
8286
+ }
8287
+ });
8288
+
8289
+ jQuery.each( [ "get", "post" ], function( i, method ) {
8290
+ jQuery[ method ] = function( url, data, callback, type ) {
8291
+ // shift arguments if data argument was omitted
8292
+ if ( jQuery.isFunction( data ) ) {
8293
+ type = type || callback;
8294
+ callback = data;
8295
+ data = undefined;
8296
+ }
8297
+
8298
+ return jQuery.ajax({
8299
+ url: url,
8300
+ type: method,
8301
+ dataType: type,
8302
+ data: data,
8303
+ success: callback
8304
+ });
8305
+ };
8306
+ });
8307
+
8308
+ // Attach a bunch of functions for handling common AJAX events
8309
+ jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
8310
+ jQuery.fn[ type ] = function( fn ) {
8311
+ return this.on( type, fn );
8312
+ };
8313
+ });
8314
+
8315
+
8316
+ jQuery._evalUrl = function( url ) {
8317
+ return jQuery.ajax({
8318
+ url: url,
8319
+ type: "GET",
8320
+ dataType: "script",
8321
+ async: false,
8322
+ global: false,
8323
+ "throws": true
8324
+ });
8325
+ };
8326
+
8327
+
8328
+ jQuery.fn.extend({
8329
+ wrapAll: function( html ) {
8330
+ var wrap;
8331
+
8332
+ if ( jQuery.isFunction( html ) ) {
8333
+ return this.each(function( i ) {
8334
+ jQuery( this ).wrapAll( html.call(this, i) );
8335
+ });
8336
+ }
8337
+
8338
+ if ( this[ 0 ] ) {
8339
+
8340
+ // The elements to wrap the target around
8341
+ wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
8342
+
8343
+ if ( this[ 0 ].parentNode ) {
8344
+ wrap.insertBefore( this[ 0 ] );
8345
+ }
8346
+
8347
+ wrap.map(function() {
8348
+ var elem = this;
8349
+
8350
+ while ( elem.firstElementChild ) {
8351
+ elem = elem.firstElementChild;
8352
+ }
8353
+
8354
+ return elem;
8355
+ }).append( this );
8356
+ }
8357
+
8358
+ return this;
8359
+ },
8360
+
8361
+ wrapInner: function( html ) {
8362
+ if ( jQuery.isFunction( html ) ) {
8363
+ return this.each(function( i ) {
8364
+ jQuery( this ).wrapInner( html.call(this, i) );
8365
+ });
8366
+ }
8367
+
8368
+ return this.each(function() {
8369
+ var self = jQuery( this ),
8370
+ contents = self.contents();
8371
+
8372
+ if ( contents.length ) {
8373
+ contents.wrapAll( html );
8374
+
8375
+ } else {
8376
+ self.append( html );
8377
+ }
8378
+ });
8379
+ },
8380
+
8381
+ wrap: function( html ) {
8382
+ var isFunction = jQuery.isFunction( html );
8383
+
8384
+ return this.each(function( i ) {
8385
+ jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
8386
+ });
8387
+ },
8388
+
8389
+ unwrap: function() {
8390
+ return this.parent().each(function() {
8391
+ if ( !jQuery.nodeName( this, "body" ) ) {
8392
+ jQuery( this ).replaceWith( this.childNodes );
8393
+ }
8394
+ }).end();
8395
+ }
8396
+ });
8397
+
8398
+
8399
+ jQuery.expr.filters.hidden = function( elem ) {
8400
+ // Support: Opera <= 12.12
8401
+ // Opera reports offsetWidths and offsetHeights less than zero on some elements
8402
+ return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
8403
+ };
8404
+ jQuery.expr.filters.visible = function( elem ) {
8405
+ return !jQuery.expr.filters.hidden( elem );
8406
+ };
8407
+
8408
+
8409
+
8410
+
8411
+ var r20 = /%20/g,
8412
+ rbracket = /\[\]$/,
8413
+ rCRLF = /\r?\n/g,
8414
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
8415
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
8416
+
8417
+ function buildParams( prefix, obj, traditional, add ) {
8418
+ var name;
8419
+
8420
+ if ( jQuery.isArray( obj ) ) {
8421
+ // Serialize array item.
8422
+ jQuery.each( obj, function( i, v ) {
8423
+ if ( traditional || rbracket.test( prefix ) ) {
8424
+ // Treat each array item as a scalar.
8425
+ add( prefix, v );
8426
+
8427
+ } else {
8428
+ // Item is non-scalar (array or object), encode its numeric index.
8429
+ buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
8430
+ }
8431
+ });
8432
+
8433
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
8434
+ // Serialize object item.
8435
+ for ( name in obj ) {
8436
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
8437
+ }
8438
+
8439
+ } else {
8440
+ // Serialize scalar item.
8441
+ add( prefix, obj );
8442
+ }
8443
+ }
8444
+
8445
+ // Serialize an array of form elements or a set of
8446
+ // key/values into a query string
8447
+ jQuery.param = function( a, traditional ) {
8448
+ var prefix,
8449
+ s = [],
8450
+ add = function( key, value ) {
8451
+ // If value is a function, invoke it and return its value
8452
+ value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
8453
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
8454
+ };
8455
+
8456
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
8457
+ if ( traditional === undefined ) {
8458
+ traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
8459
+ }
8460
+
8461
+ // If an array was passed in, assume that it is an array of form elements.
8462
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
8463
+ // Serialize the form elements
8464
+ jQuery.each( a, function() {
8465
+ add( this.name, this.value );
8466
+ });
8467
+
8468
+ } else {
8469
+ // If traditional, encode the "old" way (the way 1.3.2 or older
8470
+ // did it), otherwise encode params recursively.
8471
+ for ( prefix in a ) {
8472
+ buildParams( prefix, a[ prefix ], traditional, add );
8473
+ }
8474
+ }
8475
+
8476
+ // Return the resulting serialization
8477
+ return s.join( "&" ).replace( r20, "+" );
8478
+ };
8479
+
8480
+ jQuery.fn.extend({
8481
+ serialize: function() {
8482
+ return jQuery.param( this.serializeArray() );
8483
+ },
8484
+ serializeArray: function() {
8485
+ return this.map(function() {
8486
+ // Can add propHook for "elements" to filter or add form elements
8487
+ var elements = jQuery.prop( this, "elements" );
8488
+ return elements ? jQuery.makeArray( elements ) : this;
8489
+ })
8490
+ .filter(function() {
8491
+ var type = this.type;
8492
+
8493
+ // Use .is( ":disabled" ) so that fieldset[disabled] works
8494
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
8495
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
8496
+ ( this.checked || !rcheckableType.test( type ) );
8497
+ })
8498
+ .map(function( i, elem ) {
8499
+ var val = jQuery( this ).val();
8500
+
8501
+ return val == null ?
8502
+ null :
8503
+ jQuery.isArray( val ) ?
8504
+ jQuery.map( val, function( val ) {
8505
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
8506
+ }) :
8507
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
8508
+ }).get();
8509
+ }
8510
+ });
8511
+
8512
+
8513
+ jQuery.ajaxSettings.xhr = function() {
8514
+ try {
8515
+ return new XMLHttpRequest();
8516
+ } catch( e ) {}
8517
+ };
8518
+
8519
+ var xhrId = 0,
8520
+ xhrCallbacks = {},
8521
+ xhrSuccessStatus = {
8522
+ // file protocol always yields status code 0, assume 200
8523
+ 0: 200,
8524
+ // Support: IE9
8525
+ // #1450: sometimes IE returns 1223 when it should be 204
8526
+ 1223: 204
8527
+ },
8528
+ xhrSupported = jQuery.ajaxSettings.xhr();
8529
+
8530
+ // Support: IE9
8531
+ // Open requests must be manually aborted on unload (#5280)
8532
+ if ( window.ActiveXObject ) {
8533
+ jQuery( window ).on( "unload", function() {
8534
+ for ( var key in xhrCallbacks ) {
8535
+ xhrCallbacks[ key ]();
8536
+ }
8537
+ });
8538
+ }
8539
+
8540
+ support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
8541
+ support.ajax = xhrSupported = !!xhrSupported;
8542
+
8543
+ jQuery.ajaxTransport(function( options ) {
8544
+ var callback;
8545
+
8546
+ // Cross domain only allowed if supported through XMLHttpRequest
8547
+ if ( support.cors || xhrSupported && !options.crossDomain ) {
8548
+ return {
8549
+ send: function( headers, complete ) {
8550
+ var i,
8551
+ xhr = options.xhr(),
8552
+ id = ++xhrId;
8553
+
8554
+ xhr.open( options.type, options.url, options.async, options.username, options.password );
8555
+
8556
+ // Apply custom fields if provided
8557
+ if ( options.xhrFields ) {
8558
+ for ( i in options.xhrFields ) {
8559
+ xhr[ i ] = options.xhrFields[ i ];
8560
+ }
8561
+ }
8562
+
8563
+ // Override mime type if needed
8564
+ if ( options.mimeType && xhr.overrideMimeType ) {
8565
+ xhr.overrideMimeType( options.mimeType );
8566
+ }
8567
+
8568
+ // X-Requested-With header
8569
+ // For cross-domain requests, seeing as conditions for a preflight are
8570
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
8571
+ // (it can always be set on a per-request basis or even using ajaxSetup)
8572
+ // For same-domain requests, won't change header if already provided.
8573
+ if ( !options.crossDomain && !headers["X-Requested-With"] ) {
8574
+ headers["X-Requested-With"] = "XMLHttpRequest";
8575
+ }
8576
+
8577
+ // Set headers
8578
+ for ( i in headers ) {
8579
+ xhr.setRequestHeader( i, headers[ i ] );
8580
+ }
8581
+
8582
+ // Callback
8583
+ callback = function( type ) {
8584
+ return function() {
8585
+ if ( callback ) {
8586
+ delete xhrCallbacks[ id ];
8587
+ callback = xhr.onload = xhr.onerror = null;
8588
+
8589
+ if ( type === "abort" ) {
8590
+ xhr.abort();
8591
+ } else if ( type === "error" ) {
8592
+ complete(
8593
+ // file: protocol always yields status 0; see #8605, #14207
8594
+ xhr.status,
8595
+ xhr.statusText
8596
+ );
8597
+ } else {
8598
+ complete(
8599
+ xhrSuccessStatus[ xhr.status ] || xhr.status,
8600
+ xhr.statusText,
8601
+ // Support: IE9
8602
+ // Accessing binary-data responseText throws an exception
8603
+ // (#11426)
8604
+ typeof xhr.responseText === "string" ? {
8605
+ text: xhr.responseText
8606
+ } : undefined,
8607
+ xhr.getAllResponseHeaders()
8608
+ );
8609
+ }
8610
+ }
8611
+ };
8612
+ };
8613
+
8614
+ // Listen to events
8615
+ xhr.onload = callback();
8616
+ xhr.onerror = callback("error");
8617
+
8618
+ // Create the abort callback
8619
+ callback = xhrCallbacks[ id ] = callback("abort");
8620
+
8621
+ try {
8622
+ // Do send the request (this may raise an exception)
8623
+ xhr.send( options.hasContent && options.data || null );
8624
+ } catch ( e ) {
8625
+ // #14683: Only rethrow if this hasn't been notified as an error yet
8626
+ if ( callback ) {
8627
+ throw e;
8628
+ }
8629
+ }
8630
+ },
8631
+
8632
+ abort: function() {
8633
+ if ( callback ) {
8634
+ callback();
8635
+ }
8636
+ }
8637
+ };
8638
+ }
8639
+ });
8640
+
8641
+
8642
+
8643
+
8644
+ // Install script dataType
8645
+ jQuery.ajaxSetup({
8646
+ accepts: {
8647
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
8648
+ },
8649
+ contents: {
8650
+ script: /(?:java|ecma)script/
8651
+ },
8652
+ converters: {
8653
+ "text script": function( text ) {
8654
+ jQuery.globalEval( text );
8655
+ return text;
8656
+ }
8657
+ }
8658
+ });
8659
+
8660
+ // Handle cache's special case and crossDomain
8661
+ jQuery.ajaxPrefilter( "script", function( s ) {
8662
+ if ( s.cache === undefined ) {
8663
+ s.cache = false;
8664
+ }
8665
+ if ( s.crossDomain ) {
8666
+ s.type = "GET";
8667
+ }
8668
+ });
8669
+
8670
+ // Bind script tag hack transport
8671
+ jQuery.ajaxTransport( "script", function( s ) {
8672
+ // This transport only deals with cross domain requests
8673
+ if ( s.crossDomain ) {
8674
+ var script, callback;
8675
+ return {
8676
+ send: function( _, complete ) {
8677
+ script = jQuery("<script>").prop({
8678
+ async: true,
8679
+ charset: s.scriptCharset,
8680
+ src: s.url
8681
+ }).on(
8682
+ "load error",
8683
+ callback = function( evt ) {
8684
+ script.remove();
8685
+ callback = null;
8686
+ if ( evt ) {
8687
+ complete( evt.type === "error" ? 404 : 200, evt.type );
8688
+ }
8689
+ }
8690
+ );
8691
+ document.head.appendChild( script[ 0 ] );
8692
+ },
8693
+ abort: function() {
8694
+ if ( callback ) {
8695
+ callback();
8696
+ }
8697
+ }
8698
+ };
8699
+ }
8700
+ });
8701
+
8702
+
8703
+
8704
+
8705
+ var oldCallbacks = [],
8706
+ rjsonp = /(=)\?(?=&|$)|\?\?/;
8707
+
8708
+ // Default jsonp settings
8709
+ jQuery.ajaxSetup({
8710
+ jsonp: "callback",
8711
+ jsonpCallback: function() {
8712
+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
8713
+ this[ callback ] = true;
8714
+ return callback;
8715
+ }
8716
+ });
8717
+
8718
+ // Detect, normalize options and install callbacks for jsonp requests
8719
+ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
8720
+
8721
+ var callbackName, overwritten, responseContainer,
8722
+ jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
8723
+ "url" :
8724
+ typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
8725
+ );
8726
+
8727
+ // Handle iff the expected data type is "jsonp" or we have a parameter to set
8728
+ if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
8729
+
8730
+ // Get callback name, remembering preexisting value associated with it
8731
+ callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
8732
+ s.jsonpCallback() :
8733
+ s.jsonpCallback;
8734
+
8735
+ // Insert callback into url or form data
8736
+ if ( jsonProp ) {
8737
+ s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
8738
+ } else if ( s.jsonp !== false ) {
8739
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
8740
+ }
8741
+
8742
+ // Use data converter to retrieve json after script execution
8743
+ s.converters["script json"] = function() {
8744
+ if ( !responseContainer ) {
8745
+ jQuery.error( callbackName + " was not called" );
8746
+ }
8747
+ return responseContainer[ 0 ];
8748
+ };
8749
+
8750
+ // force json dataType
8751
+ s.dataTypes[ 0 ] = "json";
8752
+
8753
+ // Install callback
8754
+ overwritten = window[ callbackName ];
8755
+ window[ callbackName ] = function() {
8756
+ responseContainer = arguments;
8757
+ };
8758
+
8759
+ // Clean-up function (fires after converters)
8760
+ jqXHR.always(function() {
8761
+ // Restore preexisting value
8762
+ window[ callbackName ] = overwritten;
8763
+
8764
+ // Save back as free
8765
+ if ( s[ callbackName ] ) {
8766
+ // make sure that re-using the options doesn't screw things around
8767
+ s.jsonpCallback = originalSettings.jsonpCallback;
8768
+
8769
+ // save the callback name for future use
8770
+ oldCallbacks.push( callbackName );
8771
+ }
8772
+
8773
+ // Call if it was a function and we have a response
8774
+ if ( responseContainer && jQuery.isFunction( overwritten ) ) {
8775
+ overwritten( responseContainer[ 0 ] );
8776
+ }
8777
+
8778
+ responseContainer = overwritten = undefined;
8779
+ });
8780
+
8781
+ // Delegate to script
8782
+ return "script";
8783
+ }
8784
+ });
8785
+
8786
+
8787
+
8788
+
8789
+ // data: string of html
8790
+ // context (optional): If specified, the fragment will be created in this context, defaults to document
8791
+ // keepScripts (optional): If true, will include scripts passed in the html string
8792
+ jQuery.parseHTML = function( data, context, keepScripts ) {
8793
+ if ( !data || typeof data !== "string" ) {
8794
+ return null;
8795
+ }
8796
+ if ( typeof context === "boolean" ) {
8797
+ keepScripts = context;
8798
+ context = false;
8799
+ }
8800
+ context = context || document;
8801
+
8802
+ var parsed = rsingleTag.exec( data ),
8803
+ scripts = !keepScripts && [];
8804
+
8805
+ // Single tag
8806
+ if ( parsed ) {
8807
+ return [ context.createElement( parsed[1] ) ];
8808
+ }
8809
+
8810
+ parsed = jQuery.buildFragment( [ data ], context, scripts );
8811
+
8812
+ if ( scripts && scripts.length ) {
8813
+ jQuery( scripts ).remove();
8814
+ }
8815
+
8816
+ return jQuery.merge( [], parsed.childNodes );
8817
+ };
8818
+
8819
+
8820
+ // Keep a copy of the old load method
8821
+ var _load = jQuery.fn.load;
8822
+
8823
+ /**
8824
+ * Load a url into a page
8825
+ */
8826
+ jQuery.fn.load = function( url, params, callback ) {
8827
+ if ( typeof url !== "string" && _load ) {
8828
+ return _load.apply( this, arguments );
8829
+ }
8830
+
8831
+ var selector, type, response,
8832
+ self = this,
8833
+ off = url.indexOf(" ");
8834
+
8835
+ if ( off >= 0 ) {
8836
+ selector = jQuery.trim( url.slice( off ) );
8837
+ url = url.slice( 0, off );
8838
+ }
8839
+
8840
+ // If it's a function
8841
+ if ( jQuery.isFunction( params ) ) {
8842
+
8843
+ // We assume that it's the callback
8844
+ callback = params;
8845
+ params = undefined;
8846
+
8847
+ // Otherwise, build a param string
8848
+ } else if ( params && typeof params === "object" ) {
8849
+ type = "POST";
8850
+ }
8851
+
8852
+ // If we have elements to modify, make the request
8853
+ if ( self.length > 0 ) {
8854
+ jQuery.ajax({
8855
+ url: url,
8856
+
8857
+ // if "type" variable is undefined, then "GET" method will be used
8858
+ type: type,
8859
+ dataType: "html",
8860
+ data: params
8861
+ }).done(function( responseText ) {
8862
+
8863
+ // Save response for use in complete callback
8864
+ response = arguments;
8865
+
8866
+ self.html( selector ?
8867
+
8868
+ // If a selector was specified, locate the right elements in a dummy div
8869
+ // Exclude scripts to avoid IE 'Permission Denied' errors
8870
+ jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
8871
+
8872
+ // Otherwise use the full result
8873
+ responseText );
8874
+
8875
+ }).complete( callback && function( jqXHR, status ) {
8876
+ self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
8877
+ });
8878
+ }
8879
+
8880
+ return this;
8881
+ };
8882
+
8883
+
8884
+
8885
+
8886
+ jQuery.expr.filters.animated = function( elem ) {
8887
+ return jQuery.grep(jQuery.timers, function( fn ) {
8888
+ return elem === fn.elem;
8889
+ }).length;
8890
+ };
8891
+
8892
+
8893
+
8894
+
8895
+ var docElem = window.document.documentElement;
8896
+
8897
+ /**
8898
+ * Gets a window from an element
8899
+ */
8900
+ function getWindow( elem ) {
8901
+ return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
8902
+ }
8903
+
8904
+ jQuery.offset = {
8905
+ setOffset: function( elem, options, i ) {
8906
+ var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
8907
+ position = jQuery.css( elem, "position" ),
8908
+ curElem = jQuery( elem ),
8909
+ props = {};
8910
+
8911
+ // Set position first, in-case top/left are set even on static elem
8912
+ if ( position === "static" ) {
8913
+ elem.style.position = "relative";
8914
+ }
8915
+
8916
+ curOffset = curElem.offset();
8917
+ curCSSTop = jQuery.css( elem, "top" );
8918
+ curCSSLeft = jQuery.css( elem, "left" );
8919
+ calculatePosition = ( position === "absolute" || position === "fixed" ) &&
8920
+ ( curCSSTop + curCSSLeft ).indexOf("auto") > -1;
8921
+
8922
+ // Need to be able to calculate position if either top or left is auto and position is either absolute or fixed
8923
+ if ( calculatePosition ) {
8924
+ curPosition = curElem.position();
8925
+ curTop = curPosition.top;
8926
+ curLeft = curPosition.left;
8927
+
8928
+ } else {
8929
+ curTop = parseFloat( curCSSTop ) || 0;
8930
+ curLeft = parseFloat( curCSSLeft ) || 0;
8931
+ }
8932
+
8933
+ if ( jQuery.isFunction( options ) ) {
8934
+ options = options.call( elem, i, curOffset );
8935
+ }
8936
+
8937
+ if ( options.top != null ) {
8938
+ props.top = ( options.top - curOffset.top ) + curTop;
8939
+ }
8940
+ if ( options.left != null ) {
8941
+ props.left = ( options.left - curOffset.left ) + curLeft;
8942
+ }
8943
+
8944
+ if ( "using" in options ) {
8945
+ options.using.call( elem, props );
8946
+
8947
+ } else {
8948
+ curElem.css( props );
8949
+ }
8950
+ }
8951
+ };
8952
+
8953
+ jQuery.fn.extend({
8954
+ offset: function( options ) {
8955
+ if ( arguments.length ) {
8956
+ return options === undefined ?
8957
+ this :
8958
+ this.each(function( i ) {
8959
+ jQuery.offset.setOffset( this, options, i );
8960
+ });
8961
+ }
8962
+
8963
+ var docElem, win,
8964
+ elem = this[ 0 ],
8965
+ box = { top: 0, left: 0 },
8966
+ doc = elem && elem.ownerDocument;
8967
+
8968
+ if ( !doc ) {
8969
+ return;
8970
+ }
8971
+
8972
+ docElem = doc.documentElement;
8973
+
8974
+ // Make sure it's not a disconnected DOM node
8975
+ if ( !jQuery.contains( docElem, elem ) ) {
8976
+ return box;
8977
+ }
8978
+
8979
+ // If we don't have gBCR, just use 0,0 rather than error
8980
+ // BlackBerry 5, iOS 3 (original iPhone)
8981
+ if ( typeof elem.getBoundingClientRect !== strundefined ) {
8982
+ box = elem.getBoundingClientRect();
8983
+ }
8984
+ win = getWindow( doc );
8985
+ return {
8986
+ top: box.top + win.pageYOffset - docElem.clientTop,
8987
+ left: box.left + win.pageXOffset - docElem.clientLeft
8988
+ };
8989
+ },
8990
+
8991
+ position: function() {
8992
+ if ( !this[ 0 ] ) {
8993
+ return;
8994
+ }
8995
+
8996
+ var offsetParent, offset,
8997
+ elem = this[ 0 ],
8998
+ parentOffset = { top: 0, left: 0 };
8999
+
9000
+ // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
9001
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
9002
+ // We assume that getBoundingClientRect is available when computed position is fixed
9003
+ offset = elem.getBoundingClientRect();
9004
+
9005
+ } else {
9006
+ // Get *real* offsetParent
9007
+ offsetParent = this.offsetParent();
9008
+
9009
+ // Get correct offsets
9010
+ offset = this.offset();
9011
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
9012
+ parentOffset = offsetParent.offset();
9013
+ }
9014
+
9015
+ // Add offsetParent borders
9016
+ parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
9017
+ parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
9018
+ }
9019
+
9020
+ // Subtract parent offsets and element margins
9021
+ return {
9022
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
9023
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
9024
+ };
9025
+ },
9026
+
9027
+ offsetParent: function() {
9028
+ return this.map(function() {
9029
+ var offsetParent = this.offsetParent || docElem;
9030
+
9031
+ while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) {
9032
+ offsetParent = offsetParent.offsetParent;
9033
+ }
9034
+
9035
+ return offsetParent || docElem;
9036
+ });
9037
+ }
9038
+ });
9039
+
9040
+ // Create scrollLeft and scrollTop methods
9041
+ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
9042
+ var top = "pageYOffset" === prop;
9043
+
9044
+ jQuery.fn[ method ] = function( val ) {
9045
+ return access( this, function( elem, method, val ) {
9046
+ var win = getWindow( elem );
9047
+
9048
+ if ( val === undefined ) {
9049
+ return win ? win[ prop ] : elem[ method ];
9050
+ }
9051
+
9052
+ if ( win ) {
9053
+ win.scrollTo(
9054
+ !top ? val : window.pageXOffset,
9055
+ top ? val : window.pageYOffset
9056
+ );
9057
+
9058
+ } else {
9059
+ elem[ method ] = val;
9060
+ }
9061
+ }, method, val, arguments.length, null );
9062
+ };
9063
+ });
9064
+
9065
+ // Add the top/left cssHooks using jQuery.fn.position
9066
+ // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
9067
+ // getComputedStyle returns percent when specified for top/left/bottom/right
9068
+ // rather than make the css module depend on the offset module, we just check for it here
9069
+ jQuery.each( [ "top", "left" ], function( i, prop ) {
9070
+ jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
9071
+ function( elem, computed ) {
9072
+ if ( computed ) {
9073
+ computed = curCSS( elem, prop );
9074
+ // if curCSS returns percentage, fallback to offset
9075
+ return rnumnonpx.test( computed ) ?
9076
+ jQuery( elem ).position()[ prop ] + "px" :
9077
+ computed;
9078
+ }
9079
+ }
9080
+ );
9081
+ });
9082
+
9083
+
9084
+ // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
9085
+ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
9086
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
9087
+ // margin is only for outerHeight, outerWidth
9088
+ jQuery.fn[ funcName ] = function( margin, value ) {
9089
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
9090
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
9091
+
9092
+ return access( this, function( elem, type, value ) {
9093
+ var doc;
9094
+
9095
+ if ( jQuery.isWindow( elem ) ) {
9096
+ // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
9097
+ // isn't a whole lot we can do. See pull request at this URL for discussion:
9098
+ // https://github.com/jquery/jquery/pull/764
9099
+ return elem.document.documentElement[ "client" + name ];
9100
+ }
9101
+
9102
+ // Get document width or height
9103
+ if ( elem.nodeType === 9 ) {
9104
+ doc = elem.documentElement;
9105
+
9106
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
9107
+ // whichever is greatest
9108
+ return Math.max(
9109
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
9110
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
9111
+ doc[ "client" + name ]
9112
+ );
9113
+ }
9114
+
9115
+ return value === undefined ?
9116
+ // Get width or height on the element, requesting but not forcing parseFloat
9117
+ jQuery.css( elem, type, extra ) :
9118
+
9119
+ // Set width or height on the element
9120
+ jQuery.style( elem, type, value, extra );
9121
+ }, type, chainable ? margin : undefined, chainable, null );
9122
+ };
9123
+ });
9124
+ });
9125
+
9126
+
9127
+ // The number of elements contained in the matched element set
9128
+ jQuery.fn.size = function() {
9129
+ return this.length;
9130
+ };
9131
+
9132
+ jQuery.fn.andSelf = jQuery.fn.addBack;
9133
+
9134
+
9135
+
9136
+
9137
+ // Register as a named AMD module, since jQuery can be concatenated with other
9138
+ // files that may use define, but not via a proper concatenation script that
9139
+ // understands anonymous AMD modules. A named AMD is safest and most robust
9140
+ // way to register. Lowercase jquery is used because AMD module names are
9141
+ // derived from file names, and jQuery is normally delivered in a lowercase
9142
+ // file name. Do this after creating the global so that if an AMD module wants
9143
+ // to call noConflict to hide this version of jQuery, it will work.
9144
+
9145
+ // Note that for maximum portability, libraries that are not jQuery should
9146
+ // declare themselves as anonymous modules, and avoid setting a global if an
9147
+ // AMD loader is present. jQuery is a special case. For more information, see
9148
+ // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
9149
+
9150
+ if ( typeof define === "function" && define.amd ) {
9151
+ define( "jquery", [], function() {
9152
+ return jQuery;
9153
+ });
9154
+ }
9155
+
9156
+
9157
+
9158
+
9159
+ var
9160
+ // Map over jQuery in case of overwrite
9161
+ _jQuery = window.jQuery,
9162
+
9163
+ // Map over the $ in case of overwrite
9164
+ _$ = window.$;
9165
+
9166
+ jQuery.noConflict = function( deep ) {
9167
+ if ( window.$ === jQuery ) {
9168
+ window.$ = _$;
9169
+ }
9170
+
9171
+ if ( deep && window.jQuery === jQuery ) {
9172
+ window.jQuery = _jQuery;
9173
+ }
9174
+
9175
+ return jQuery;
9176
+ };
9177
+
9178
+ // Expose jQuery and $ identifiers, even in
9179
+ // AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
9180
+ // and CommonJS for browser emulators (#13566)
9181
+ if ( typeof noGlobal === strundefined ) {
9182
+ window.jQuery = window.$ = jQuery;
9183
+ }
9184
+
9185
+
9186
+
9187
+
9188
+ return jQuery;
9189
+
9190
+ }));
js/jquery.js ADDED
@@ -0,0 +1,10147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery Compat JavaScript Library v3.0.0-pre 7cd9a363229c6ec1ceaa4debf49ee3eb20d97761
3
+ * http://jquery.com/
4
+ *
5
+ * Includes Sizzle.js
6
+ * http://sizzlejs.com/
7
+ *
8
+ * Copyright jQuery Foundation and other contributors
9
+ * Released under the MIT license
10
+ * http://jquery.org/license
11
+ *
12
+ * Date: 2015-02-19T08:52Z
13
+ */
14
+
15
+ (function( global, factory ) {
16
+
17
+ if ( typeof module === "object" && typeof module.exports === "object" ) {
18
+ // For CommonJS and CommonJS-like environments where a proper window is present,
19
+ // execute the factory and get jQuery
20
+ // For environments that do not inherently posses a window with a document
21
+ // (such as Node.js), expose a jQuery-making factory as module.exports
22
+ // This accentuates the need for the creation of a real window
23
+ // e.g. var jQuery = require("jquery")(window);
24
+ // See ticket #14549 for more info
25
+ module.exports = global.document ?
26
+ factory( global, true ) :
27
+ function( w ) {
28
+ if ( !w.document ) {
29
+ throw new Error( "jQuery requires a window with a document" );
30
+ }
31
+ return factory( w );
32
+ };
33
+ } else {
34
+ factory( global );
35
+ }
36
+
37
+ // Pass this if window is not defined yet
38
+ }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
39
+
40
+ // Can't do this because several apps including ASP.NET trace
41
+ // the stack via arguments.caller.callee and Firefox dies if
42
+ // you try to trace through "use strict" call chains. (#13335)
43
+ // Support: Firefox 18+
44
+ //
45
+ var deletedIds = [];
46
+
47
+ var slice = deletedIds.slice;
48
+
49
+ var concat = deletedIds.concat;
50
+
51
+ var push = deletedIds.push;
52
+
53
+ var indexOf = deletedIds.indexOf;
54
+
55
+ var class2type = {};
56
+
57
+ var toString = class2type.toString;
58
+
59
+ var hasOwn = class2type.hasOwnProperty;
60
+
61
+ var support = {};
62
+
63
+
64
+
65
+ var
66
+ version = "3.0.0-pre 7cd9a363229c6ec1ceaa4debf49ee3eb20d97761",
67
+
68
+ // Define a local copy of jQuery
69
+ jQuery = function( selector, context ) {
70
+ // The jQuery object is actually just the init constructor 'enhanced'
71
+ // Need init if jQuery is called (just allow error to be thrown if not included)
72
+ return new jQuery.fn.init( selector, context );
73
+ },
74
+
75
+ // Support: Android<4.1, IE<9
76
+ // Make sure we trim BOM and NBSP
77
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
78
+
79
+ // Matches dashed string for camelizing
80
+ rmsPrefix = /^-ms-/,
81
+ rdashAlpha = /-([\da-z])/gi,
82
+
83
+ // Used by jQuery.camelCase as callback to replace()
84
+ fcamelCase = function( all, letter ) {
85
+ return letter.toUpperCase();
86
+ };
87
+
88
+ jQuery.fn = jQuery.prototype = {
89
+ // The current version of jQuery being used
90
+ jquery: version,
91
+
92
+ constructor: jQuery,
93
+
94
+ // The default length of a jQuery object is 0
95
+ length: 0,
96
+
97
+ toArray: function() {
98
+ return slice.call( this );
99
+ },
100
+
101
+ // Get the Nth element in the matched element set OR
102
+ // Get the whole matched element set as a clean array
103
+ get: function( num ) {
104
+ return num != null ?
105
+
106
+ // Return just the one element from the set
107
+ ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
108
+
109
+ // Return all the elements in a clean array
110
+ slice.call( this );
111
+ },
112
+
113
+ // Take an array of elements and push it onto the stack
114
+ // (returning the new matched element set)
115
+ pushStack: function( elems ) {
116
+
117
+ // Build a new jQuery matched element set
118
+ var ret = jQuery.merge( this.constructor(), elems );
119
+
120
+ // Add the old object onto the stack (as a reference)
121
+ ret.prevObject = this;
122
+
123
+ // Return the newly-formed element set
124
+ return ret;
125
+ },
126
+
127
+ // Execute a callback for every element in the matched set.
128
+ each: function( callback ) {
129
+ return jQuery.each( this, callback );
130
+ },
131
+
132
+ map: function( callback ) {
133
+ return this.pushStack( jQuery.map(this, function( elem, i ) {
134
+ return callback.call( elem, i, elem );
135
+ }));
136
+ },
137
+
138
+ slice: function() {
139
+ return this.pushStack( slice.apply( this, arguments ) );
140
+ },
141
+
142
+ first: function() {
143
+ return this.eq( 0 );
144
+ },
145
+
146
+ last: function() {
147
+ return this.eq( -1 );
148
+ },
149
+
150
+ eq: function( i ) {
151
+ var len = this.length,
152
+ j = +i + ( i < 0 ? len : 0 );
153
+ return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
154
+ },
155
+
156
+ end: function() {
157
+ return this.prevObject || this.constructor(null);
158
+ },
159
+
160
+ // For internal use only.
161
+ // Behaves like an Array's method, not like a jQuery method.
162
+ push: push,
163
+ sort: deletedIds.sort,
164
+ splice: deletedIds.splice
165
+ };
166
+
167
+ jQuery.extend = jQuery.fn.extend = function() {
168
+ var src, copyIsArray, copy, name, options, clone,
169
+ target = arguments[0] || {},
170
+ i = 1,
171
+ length = arguments.length,
172
+ deep = false;
173
+
174
+ // Handle a deep copy situation
175
+ if ( typeof target === "boolean" ) {
176
+ deep = target;
177
+
178
+ // skip the boolean and the target
179
+ target = arguments[ i ] || {};
180
+ i++;
181
+ }
182
+
183
+ // Handle case when target is a string or something (possible in deep copy)
184
+ if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
185
+ target = {};
186
+ }
187
+
188
+ // extend jQuery itself if only one argument is passed
189
+ if ( i === length ) {
190
+ target = this;
191
+ i--;
192
+ }
193
+
194
+ for ( ; i < length; i++ ) {
195
+ // Only deal with non-null/undefined values
196
+ if ( (options = arguments[ i ]) != null ) {
197
+ // Extend the base object
198
+ for ( name in options ) {
199
+ src = target[ name ];
200
+ copy = options[ name ];
201
+
202
+ // Prevent never-ending loop
203
+ if ( target === copy ) {
204
+ continue;
205
+ }
206
+
207
+ // Recurse if we're merging plain objects or arrays
208
+ if ( deep && copy && ( jQuery.isPlainObject(copy) ||
209
+ (copyIsArray = jQuery.isArray(copy)) ) ) {
210
+
211
+ if ( copyIsArray ) {
212
+ copyIsArray = false;
213
+ clone = src && jQuery.isArray(src) ? src : [];
214
+
215
+ } else {
216
+ clone = src && jQuery.isPlainObject(src) ? src : {};
217
+ }
218
+
219
+ // Never move original objects, clone them
220
+ target[ name ] = jQuery.extend( deep, clone, copy );
221
+
222
+ // Don't bring in undefined values
223
+ } else if ( copy !== undefined ) {
224
+ target[ name ] = copy;
225
+ }
226
+ }
227
+ }
228
+ }
229
+
230
+ // Return the modified object
231
+ return target;
232
+ };
233
+
234
+ jQuery.extend({
235
+ // Unique for each copy of jQuery on the page
236
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
237
+
238
+ // Assume jQuery is ready without the ready module
239
+ isReady: true,
240
+
241
+ error: function( msg ) {
242
+ throw new Error( msg );
243
+ },
244
+
245
+ noop: function() {},
246
+
247
+ // See test/unit/core.js for details concerning isFunction.
248
+ // Since version 1.3, DOM methods and functions like alert
249
+ // aren't supported. They return false on IE (#2968).
250
+ isFunction: function( obj ) {
251
+ return jQuery.type(obj) === "function";
252
+ },
253
+
254
+ isArray: Array.isArray || function( obj ) {
255
+ return jQuery.type(obj) === "array";
256
+ },
257
+
258
+ isWindow: function( obj ) {
259
+ /* jshint eqeqeq: false */
260
+ return obj != null && obj == obj.window;
261
+ },
262
+
263
+ isNumeric: function( obj ) {
264
+ // parseFloat NaNs numeric-cast false positives (null|true|false|"")
265
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
266
+ // subtraction forces infinities to NaN
267
+ // adding 1 corrects loss of precision from parseFloat (#15100)
268
+ return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;
269
+ },
270
+
271
+ isEmptyObject: function( obj ) {
272
+ var name;
273
+ for ( name in obj ) {
274
+ return false;
275
+ }
276
+ return true;
277
+ },
278
+
279
+ isPlainObject: function( obj ) {
280
+ var key;
281
+
282
+ // Must be an Object.
283
+ // Because of IE, we also have to check the presence of the constructor property.
284
+ // Make sure that DOM nodes and window objects don't pass through, as well
285
+ if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
286
+ return false;
287
+ }
288
+
289
+ try {
290
+ // Not own constructor property must be Object
291
+ if ( obj.constructor &&
292
+ !hasOwn.call(obj, "constructor") &&
293
+ !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
294
+ return false;
295
+ }
296
+ } catch ( e ) {
297
+ // IE8,9 Will throw exceptions on certain host objects #9897
298
+ return false;
299
+ }
300
+
301
+ // Support: IE<9
302
+ // Handle iteration over inherited properties before own properties.
303
+ if ( support.ownLast ) {
304
+ for ( key in obj ) {
305
+ return hasOwn.call( obj, key );
306
+ }
307
+ }
308
+
309
+ // Own properties are enumerated firstly, so to speed up,
310
+ // if last one is own, then all properties are own.
311
+ for ( key in obj ) {}
312
+
313
+ return key === undefined || hasOwn.call( obj, key );
314
+ },
315
+
316
+ type: function( obj ) {
317
+ if ( obj == null ) {
318
+ return obj + "";
319
+ }
320
+ return typeof obj === "object" || typeof obj === "function" ?
321
+ class2type[ toString.call(obj) ] || "object" :
322
+ typeof obj;
323
+ },
324
+
325
+ // Evaluates a script in a global context
326
+ globalEval: function( data ) {
327
+ // Inspired by code by Andrea Giammarchi
328
+ // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
329
+ var head = document.head || jQuery( "head" )[ 0 ] || document.documentElement,
330
+ script = document.createElement( "script" );
331
+
332
+ script.text = data;
333
+
334
+ head.appendChild( script );
335
+ head.removeChild( script );
336
+ },
337
+
338
+ // Convert dashed to camelCase; used by the css and data modules
339
+ // Microsoft forgot to hump their vendor prefix (#9572)
340
+ camelCase: function( string ) {
341
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
342
+ },
343
+
344
+ nodeName: function( elem, name ) {
345
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
346
+ },
347
+
348
+ each: function( obj, callback ) {
349
+ var i = 0,
350
+ length = obj.length,
351
+ isArray = isArraylike( obj );
352
+
353
+ if ( isArray ) {
354
+ for ( ; i < length; i++ ) {
355
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
356
+ break;
357
+ }
358
+ }
359
+ } else {
360
+ for ( i in obj ) {
361
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
362
+ break;
363
+ }
364
+ }
365
+ }
366
+
367
+ return obj;
368
+ },
369
+
370
+ // Support: Android<4.1, IE<9
371
+ trim: function( text ) {
372
+ return text == null ?
373
+ "" :
374
+ ( text + "" ).replace( rtrim, "" );
375
+ },
376
+
377
+ // results is for internal usage only
378
+ makeArray: function( arr, results ) {
379
+ var ret = results || [];
380
+
381
+ if ( arr != null ) {
382
+ if ( isArraylike( Object(arr) ) ) {
383
+ jQuery.merge( ret,
384
+ typeof arr === "string" ?
385
+ [ arr ] : arr
386
+ );
387
+ } else {
388
+ push.call( ret, arr );
389
+ }
390
+ }
391
+
392
+ return ret;
393
+ },
394
+
395
+ inArray: function( elem, arr, i ) {
396
+ var len;
397
+
398
+ if ( arr ) {
399
+ if ( indexOf ) {
400
+ return indexOf.call( arr, elem, i );
401
+ }
402
+
403
+ len = arr.length;
404
+ i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
405
+
406
+ for ( ; i < len; i++ ) {
407
+ // Skip accessing in sparse arrays
408
+ if ( i in arr && arr[ i ] === elem ) {
409
+ return i;
410
+ }
411
+ }
412
+ }
413
+
414
+ return -1;
415
+ },
416
+
417
+ merge: function( first, second ) {
418
+ var len = +second.length,
419
+ j = 0,
420
+ i = first.length;
421
+
422
+ while ( j < len ) {
423
+ first[ i++ ] = second[ j++ ];
424
+ }
425
+
426
+ // Support: IE<9
427
+ // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)
428
+ if ( len !== len ) {
429
+ while ( second[j] !== undefined ) {
430
+ first[ i++ ] = second[ j++ ];
431
+ }
432
+ }
433
+
434
+ first.length = i;
435
+
436
+ return first;
437
+ },
438
+
439
+ grep: function( elems, callback, invert ) {
440
+ var callbackInverse,
441
+ matches = [],
442
+ i = 0,
443
+ length = elems.length,
444
+ callbackExpect = !invert;
445
+
446
+ // Go through the array, only saving the items
447
+ // that pass the validator function
448
+ for ( ; i < length; i++ ) {
449
+ callbackInverse = !callback( elems[ i ], i );
450
+ if ( callbackInverse !== callbackExpect ) {
451
+ matches.push( elems[ i ] );
452
+ }
453
+ }
454
+
455
+ return matches;
456
+ },
457
+
458
+ // arg is for internal usage only
459
+ map: function( elems, callback, arg ) {
460
+ var value,
461
+ i = 0,
462
+ length = elems.length,
463
+ isArray = isArraylike( elems ),
464
+ ret = [];
465
+
466
+ // Go through the array, translating each of the items to their new values
467
+ if ( isArray ) {
468
+ for ( ; i < length; i++ ) {
469
+ value = callback( elems[ i ], i, arg );
470
+
471
+ if ( value != null ) {
472
+ ret.push( value );
473
+ }
474
+ }
475
+
476
+ // Go through every key on the object,
477
+ } else {
478
+ for ( i in elems ) {
479
+ value = callback( elems[ i ], i, arg );
480
+
481
+ if ( value != null ) {
482
+ ret.push( value );
483
+ }
484
+ }
485
+ }
486
+
487
+ // Flatten any nested arrays
488
+ return concat.apply( [], ret );
489
+ },
490
+
491
+ // A global GUID counter for objects
492
+ guid: 1,
493
+
494
+ // Bind a function to a context, optionally partially applying any
495
+ // arguments.
496
+ proxy: function( fn, context ) {
497
+ var args, proxy, tmp;
498
+
499
+ if ( typeof context === "string" ) {
500
+ tmp = fn[ context ];
501
+ context = fn;
502
+ fn = tmp;
503
+ }
504
+
505
+ // Quick check to determine if target is callable, in the spec
506
+ // this throws a TypeError, but we will just return undefined.
507
+ if ( !jQuery.isFunction( fn ) ) {
508
+ return undefined;
509
+ }
510
+
511
+ // Simulated bind
512
+ args = slice.call( arguments, 2 );
513
+ proxy = function() {
514
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
515
+ };
516
+
517
+ // Set the guid of unique handler to the same of original handler, so it can be removed
518
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
519
+
520
+ return proxy;
521
+ },
522
+
523
+ now: function() {
524
+ return +( new Date() );
525
+ },
526
+
527
+ // jQuery.support is not used in Core but other projects attach their
528
+ // properties to it so it needs to exist.
529
+ support: support
530
+ });
531
+
532
+ // Populate the class2type map
533
+ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),
534
+ function(i, name) {
535
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
536
+ });
537
+
538
+ function isArraylike( obj ) {
539
+ var length = obj.length,
540
+ type = jQuery.type( obj );
541
+
542
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
543
+ return false;
544
+ }
545
+
546
+ if ( obj.nodeType === 1 && length ) {
547
+ return true;
548
+ }
549
+
550
+ return type === "array" || length === 0 ||
551
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
552
+ }
553
+ var Sizzle =
554
+ /*!
555
+ * Sizzle CSS Selector Engine v2.1.1
556
+ * http://sizzlejs.com/
557
+ *
558
+ * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
559
+ * Released under the MIT license
560
+ * http://jquery.org/license
561
+ *
562
+ * Date: 2014-12-15
563
+ */
564
+ (function( window ) {
565
+
566
+ var i,
567
+ support,
568
+ Expr,
569
+ getText,
570
+ isXML,
571
+ tokenize,
572
+ compile,
573
+ select,
574
+ outermostContext,
575
+ sortInput,
576
+ hasDuplicate,
577
+
578
+ // Local document vars
579
+ setDocument,
580
+ document,
581
+ docElem,
582
+ documentIsHTML,
583
+ rbuggyQSA,
584
+ rbuggyMatches,
585
+ matches,
586
+ contains,
587
+
588
+ // Instance-specific data
589
+ expando = "sizzle" + 1 * new Date(),
590
+ preferredDoc = window.document,
591
+ dirruns = 0,
592
+ done = 0,
593
+ classCache = createCache(),
594
+ tokenCache = createCache(),
595
+ compilerCache = createCache(),
596
+ sortOrder = function( a, b ) {
597
+ if ( a === b ) {
598
+ hasDuplicate = true;
599
+ }
600
+ return 0;
601
+ },
602
+
603
+ // General-purpose constants
604
+ MAX_NEGATIVE = 1 << 31,
605
+
606
+ // Instance methods
607
+ hasOwn = ({}).hasOwnProperty,
608
+ arr = [],
609
+ pop = arr.pop,
610
+ push_native = arr.push,
611
+ push = arr.push,
612
+ slice = arr.slice,
613
+ // Use a stripped-down indexOf as it's faster than native
614
+ // http://jsperf.com/thor-indexof-vs-for/5
615
+ indexOf = function( list, elem ) {
616
+ var i = 0,
617
+ len = list.length;
618
+ for ( ; i < len; i++ ) {
619
+ if ( list[i] === elem ) {
620
+ return i;
621
+ }
622
+ }
623
+ return -1;
624
+ },
625
+
626
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
627
+
628
+ // Regular expressions
629
+
630
+ // http://www.w3.org/TR/css3-selectors/#whitespace
631
+ whitespace = "[\\x20\\t\\r\\n\\f]",
632
+
633
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
634
+ identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
635
+
636
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
637
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
638
+ // Operator (capture 2)
639
+ "*([*^$|!~]?=)" + whitespace +
640
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
641
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
642
+ "*\\]",
643
+
644
+ pseudos = ":(" + identifier + ")(?:\\((" +
645
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
646
+ // 1. quoted (capture 3; capture 4 or capture 5)
647
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
648
+ // 2. simple (capture 6)
649
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
650
+ // 3. anything else (capture 2)
651
+ ".*" +
652
+ ")\\)|)",
653
+
654
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
655
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
656
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
657
+
658
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
659
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
660
+
661
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
662
+
663
+ rpseudo = new RegExp( pseudos ),
664
+ ridentifier = new RegExp( "^" + identifier + "$" ),
665
+
666
+ matchExpr = {
667
+ "ID": new RegExp( "^#(" + identifier + ")" ),
668
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
669
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
670
+ "ATTR": new RegExp( "^" + attributes ),
671
+ "PSEUDO": new RegExp( "^" + pseudos ),
672
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
673
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
674
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
675
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
676
+ // For use in libraries implementing .is()
677
+ // We use this for POS matching in `select`
678
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
679
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
680
+ },
681
+
682
+ rinputs = /^(?:input|select|textarea|button)$/i,
683
+ rheader = /^h\d$/i,
684
+
685
+ rnative = /^[^{]+\{\s*\[native \w/,
686
+
687
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
688
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
689
+
690
+ rsibling = /[+~]/,
691
+ rescape = /'|\\/g,
692
+
693
+ // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
694
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
695
+ funescape = function( _, escaped, escapedWhitespace ) {
696
+ var high = "0x" + escaped - 0x10000;
697
+ // NaN means non-codepoint
698
+ // Support: Firefox<24
699
+ // Workaround erroneous numeric interpretation of +"0x"
700
+ return high !== high || escapedWhitespace ?
701
+ escaped :
702
+ high < 0 ?
703
+ // BMP codepoint
704
+ String.fromCharCode( high + 0x10000 ) :
705
+ // Supplemental Plane codepoint (surrogate pair)
706
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
707
+ },
708
+
709
+ // Used for iframes
710
+ // See setDocument()
711
+ // Removing the function wrapper causes a "Permission Denied"
712
+ // error in IE
713
+ unloadHandler = function() {
714
+ setDocument();
715
+ };
716
+
717
+ // Optimize for push.apply( _, NodeList )
718
+ try {
719
+ push.apply(
720
+ (arr = slice.call( preferredDoc.childNodes )),
721
+ preferredDoc.childNodes
722
+ );
723
+ // Support: Android<4.0
724
+ // Detect silently failing push.apply
725
+ arr[ preferredDoc.childNodes.length ].nodeType;
726
+ } catch ( e ) {
727
+ push = { apply: arr.length ?
728
+
729
+ // Leverage slice if possible
730
+ function( target, els ) {
731
+ push_native.apply( target, slice.call(els) );
732
+ } :
733
+
734
+ // Support: IE<9
735
+ // Otherwise append directly
736
+ function( target, els ) {
737
+ var j = target.length,
738
+ i = 0;
739
+ // Can't trust NodeList.length
740
+ while ( (target[j++] = els[i++]) ) {}
741
+ target.length = j - 1;
742
+ }
743
+ };
744
+ }
745
+
746
+ function Sizzle( selector, context, results, seed ) {
747
+ var match, elem, m, nodeType,
748
+ // QSA vars
749
+ i, groups, old, nid, newContext, newSelector;
750
+
751
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
752
+ setDocument( context );
753
+ }
754
+
755
+ context = context || document;
756
+ results = results || [];
757
+
758
+ if ( !selector || typeof selector !== "string" ) {
759
+ return results;
760
+ }
761
+
762
+ if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 && nodeType !== 11 ) {
763
+ return [];
764
+ }
765
+
766
+ if ( documentIsHTML && !seed ) {
767
+
768
+ // Try to shortcut find operations when possible (e.g., not under DocumentFragment)
769
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
770
+ // Speed-up: Sizzle("#ID")
771
+ if ( (m = match[1]) ) {
772
+ if ( nodeType === 9 ) {
773
+ elem = context.getElementById( m );
774
+ // Check parentNode to catch when Blackberry 4.6 returns
775
+ // nodes that are no longer in the document (jQuery #6963)
776
+ if ( elem && elem.parentNode ) {
777
+ // Handle the case where IE, Opera, and Webkit return items
778
+ // by name instead of ID
779
+ if ( elem.id === m ) {
780
+ results.push( elem );
781
+ return results;
782
+ }
783
+ } else {
784
+ return results;
785
+ }
786
+ } else {
787
+ // Context is not a document
788
+ if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
789
+ contains( context, elem ) && elem.id === m ) {
790
+ results.push( elem );
791
+ return results;
792
+ }
793
+ }
794
+
795
+ // Speed-up: Sizzle("TAG")
796
+ } else if ( match[2] ) {
797
+ push.apply( results, context.getElementsByTagName( selector ) );
798
+ return results;
799
+
800
+ // Speed-up: Sizzle(".CLASS")
801
+ } else if ( (m = match[3]) && support.getElementsByClassName ) {
802
+ push.apply( results, context.getElementsByClassName( m ) );
803
+ return results;
804
+ }
805
+ }
806
+
807
+ // QSA path
808
+ if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
809
+ nid = old = expando;
810
+ newContext = context;
811
+ newSelector = nodeType !== 1 && selector;
812
+
813
+ // qSA works strangely on Element-rooted queries
814
+ // We can work around this by specifying an extra ID on the root
815
+ // and working up from there (Thanks to Andrew Dupont for the technique)
816
+ // IE 8 doesn't work on object elements
817
+ if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
818
+ groups = tokenize( selector );
819
+
820
+ if ( (old = context.getAttribute("id")) ) {
821
+ nid = old.replace( rescape, "\\$&" );
822
+ } else {
823
+ context.setAttribute( "id", nid );
824
+ }
825
+ nid = "[id='" + nid + "'] ";
826
+
827
+ i = groups.length;
828
+ while ( i-- ) {
829
+ groups[i] = nid + toSelector( groups[i] );
830
+ }
831
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
832
+ newSelector = groups.join(",");
833
+ }
834
+
835
+ if ( newSelector ) {
836
+ try {
837
+ push.apply( results,
838
+ newContext.querySelectorAll( newSelector )
839
+ );
840
+ return results;
841
+ } catch(qsaError) {
842
+ } finally {
843
+ if ( !old ) {
844
+ context.removeAttribute("id");
845
+ }
846
+ }
847
+ }
848
+ }
849
+ }
850
+
851
+ // All others
852
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
853
+ }
854
+
855
+ /**
856
+ * Create key-value caches of limited size
857
+ * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
858
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
859
+ * deleting the oldest entry
860
+ */
861
+ function createCache() {
862
+ var keys = [];
863
+
864
+ function cache( key, value ) {
865
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
866
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
867
+ // Only keep the most recent entries
868
+ delete cache[ keys.shift() ];
869
+ }
870
+ return (cache[ key + " " ] = value);
871
+ }
872
+ return cache;
873
+ }
874
+
875
+ /**
876
+ * Mark a function for special use by Sizzle
877
+ * @param {Function} fn The function to mark
878
+ */
879
+ function markFunction( fn ) {
880
+ fn[ expando ] = true;
881
+ return fn;
882
+ }
883
+
884
+ /**
885
+ * Support testing using an element
886
+ * @param {Function} fn Passed the created div and expects a boolean result
887
+ */
888
+ function assert( fn ) {
889
+ var div = document.createElement("div");
890
+
891
+ try {
892
+ return !!fn( div );
893
+ } catch (e) {
894
+ return false;
895
+ } finally {
896
+ // Remove from its parent by default
897
+ if ( div.parentNode ) {
898
+ div.parentNode.removeChild( div );
899
+ }
900
+ // release memory in IE
901
+ div = null;
902
+ }
903
+ }
904
+
905
+ /**
906
+ * Adds the same handler for all of the specified attrs
907
+ * @param {String} attrs Pipe-separated list of attributes
908
+ * @param {Function} handler The method that will be applied
909
+ */
910
+ function addHandle( attrs, handler ) {
911
+ var arr = attrs.split("|"),
912
+ i = attrs.length;
913
+
914
+ while ( i-- ) {
915
+ Expr.attrHandle[ arr[i] ] = handler;
916
+ }
917
+ }
918
+
919
+ /**
920
+ * Checks document order of two siblings
921
+ * @param {Element} a
922
+ * @param {Element} b
923
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
924
+ */
925
+ function siblingCheck( a, b ) {
926
+ var cur = b && a,
927
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
928
+ ( ~b.sourceIndex || MAX_NEGATIVE ) -
929
+ ( ~a.sourceIndex || MAX_NEGATIVE );
930
+
931
+ // Use IE sourceIndex if available on both nodes
932
+ if ( diff ) {
933
+ return diff;
934
+ }
935
+
936
+ // Check if b follows a
937
+ if ( cur ) {
938
+ while ( (cur = cur.nextSibling) ) {
939
+ if ( cur === b ) {
940
+ return -1;
941
+ }
942
+ }
943
+ }
944
+
945
+ return a ? 1 : -1;
946
+ }
947
+
948
+ /**
949
+ * Returns a function to use in pseudos for input types
950
+ * @param {String} type
951
+ */
952
+ function createInputPseudo( type ) {
953
+ return function( elem ) {
954
+ var name = elem.nodeName.toLowerCase();
955
+ return name === "input" && elem.type === type;
956
+ };
957
+ }
958
+
959
+ /**
960
+ * Returns a function to use in pseudos for buttons
961
+ * @param {String} type
962
+ */
963
+ function createButtonPseudo( type ) {
964
+ return function( elem ) {
965
+ var name = elem.nodeName.toLowerCase();
966
+ return (name === "input" || name === "button") && elem.type === type;
967
+ };
968
+ }
969
+
970
+ /**
971
+ * Returns a function to use in pseudos for positionals
972
+ * @param {Function} fn
973
+ */
974
+ function createPositionalPseudo( fn ) {
975
+ return markFunction(function( argument ) {
976
+ argument = +argument;
977
+ return markFunction(function( seed, matches ) {
978
+ var j,
979
+ matchIndexes = fn( [], seed.length, argument ),
980
+ i = matchIndexes.length;
981
+
982
+ // Match elements found at the specified indexes
983
+ while ( i-- ) {
984
+ if ( seed[ (j = matchIndexes[i]) ] ) {
985
+ seed[j] = !(matches[j] = seed[j]);
986
+ }
987
+ }
988
+ });
989
+ });
990
+ }
991
+
992
+ /**
993
+ * Checks a node for validity as a Sizzle context
994
+ * @param {Element|Object=} context
995
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
996
+ */
997
+ function testContext( context ) {
998
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
999
+ }
1000
+
1001
+ // Expose support vars for convenience
1002
+ support = Sizzle.support = {};
1003
+
1004
+ /**
1005
+ * Detects XML nodes
1006
+ * @param {Element|Object} elem An element or a document
1007
+ * @returns {Boolean} True iff elem is a non-HTML XML node
1008
+ */
1009
+ isXML = Sizzle.isXML = function( elem ) {
1010
+ // documentElement is verified for cases where it doesn't yet exist
1011
+ // (such as loading iframes in IE - #4833)
1012
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
1013
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
1014
+ };
1015
+
1016
+ /**
1017
+ * Sets document-related variables once based on the current document
1018
+ * @param {Element|Object} [doc] An element or document object to use to set the document
1019
+ * @returns {Object} Returns the current document
1020
+ */
1021
+ setDocument = Sizzle.setDocument = function( node ) {
1022
+ var hasCompare, parent,
1023
+ doc = node ? node.ownerDocument || node : preferredDoc;
1024
+
1025
+ // If no document and documentElement is available, return
1026
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
1027
+ return document;
1028
+ }
1029
+
1030
+ // Set our document
1031
+ document = doc;
1032
+ docElem = doc.documentElement;
1033
+ parent = doc.defaultView;
1034
+
1035
+ // Support: IE>8
1036
+ // If iframe document is assigned to "document" variable and if iframe has been reloaded,
1037
+ // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
1038
+ // IE6-8 do not support the defaultView property so parent will be undefined
1039
+ if ( parent && parent !== parent.top ) {
1040
+ // IE11 does not have attachEvent, so all must suffer
1041
+ if ( parent.addEventListener ) {
1042
+ parent.addEventListener( "unload", unloadHandler, false );
1043
+ } else if ( parent.attachEvent ) {
1044
+ parent.attachEvent( "onunload", unloadHandler );
1045
+ }
1046
+ }
1047
+
1048
+ /* Support tests
1049
+ ---------------------------------------------------------------------- */
1050
+ documentIsHTML = !isXML( doc );
1051
+
1052
+ /* Attributes
1053
+ ---------------------------------------------------------------------- */
1054
+
1055
+ // Support: IE<8
1056
+ // Verify that getAttribute really returns attributes and not properties
1057
+ // (excepting IE8 booleans)
1058
+ support.attributes = assert(function( div ) {
1059
+ div.className = "i";
1060
+ return !div.getAttribute("className");
1061
+ });
1062
+
1063
+ /* getElement(s)By*
1064
+ ---------------------------------------------------------------------- */
1065
+
1066
+ // Check if getElementsByTagName("*") returns only elements
1067
+ support.getElementsByTagName = assert(function( div ) {
1068
+ div.appendChild( doc.createComment("") );
1069
+ return !div.getElementsByTagName("*").length;
1070
+ });
1071
+
1072
+ // Support: IE<9
1073
+ support.getElementsByClassName = rnative.test( doc.getElementsByClassName );
1074
+
1075
+ // Support: IE<10
1076
+ // Check if getElementById returns elements by name
1077
+ // The broken getElementById methods don't pick up programatically-set names,
1078
+ // so use a roundabout getElementsByName test
1079
+ support.getById = assert(function( div ) {
1080
+ docElem.appendChild( div ).id = expando;
1081
+ return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
1082
+ });
1083
+
1084
+ // ID find and filter
1085
+ if ( support.getById ) {
1086
+ Expr.find["ID"] = function( id, context ) {
1087
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
1088
+ var m = context.getElementById( id );
1089
+ // Check parentNode to catch when Blackberry 4.6 returns
1090
+ // nodes that are no longer in the document #6963
1091
+ return m && m.parentNode ? [ m ] : [];
1092
+ }
1093
+ };
1094
+ Expr.filter["ID"] = function( id ) {
1095
+ var attrId = id.replace( runescape, funescape );
1096
+ return function( elem ) {
1097
+ return elem.getAttribute("id") === attrId;
1098
+ };
1099
+ };
1100
+ } else {
1101
+ // Support: IE6/7
1102
+ // getElementById is not reliable as a find shortcut
1103
+ delete Expr.find["ID"];
1104
+
1105
+ Expr.filter["ID"] = function( id ) {
1106
+ var attrId = id.replace( runescape, funescape );
1107
+ return function( elem ) {
1108
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
1109
+ return node && node.value === attrId;
1110
+ };
1111
+ };
1112
+ }
1113
+
1114
+ // Tag
1115
+ Expr.find["TAG"] = support.getElementsByTagName ?
1116
+ function( tag, context ) {
1117
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
1118
+ return context.getElementsByTagName( tag );
1119
+
1120
+ // DocumentFragment nodes don't have gEBTN
1121
+ } else if ( support.qsa ) {
1122
+ return context.querySelectorAll( tag );
1123
+ }
1124
+ } :
1125
+
1126
+ function( tag, context ) {
1127
+ var elem,
1128
+ tmp = [],
1129
+ i = 0,
1130
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
1131
+ results = context.getElementsByTagName( tag );
1132
+
1133
+ // Filter out possible comments
1134
+ if ( tag === "*" ) {
1135
+ while ( (elem = results[i++]) ) {
1136
+ if ( elem.nodeType === 1 ) {
1137
+ tmp.push( elem );
1138
+ }
1139
+ }
1140
+
1141
+ return tmp;
1142
+ }
1143
+ return results;
1144
+ };
1145
+
1146
+ // Class
1147
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
1148
+ if ( documentIsHTML ) {
1149
+ return context.getElementsByClassName( className );
1150
+ }
1151
+ };
1152
+
1153
+ /* QSA/matchesSelector
1154
+ ---------------------------------------------------------------------- */
1155
+
1156
+ // QSA and matchesSelector support
1157
+
1158
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
1159
+ rbuggyMatches = [];
1160
+
1161
+ // qSa(:focus) reports false when true (Chrome 21)
1162
+ // We allow this because of a bug in IE8/9 that throws an error
1163
+ // whenever `document.activeElement` is accessed on an iframe
1164
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
1165
+ // See http://bugs.jquery.com/ticket/13378
1166
+ rbuggyQSA = [];
1167
+
1168
+ if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
1169
+ // Build QSA regex
1170
+ // Regex strategy adopted from Diego Perini
1171
+ assert(function( div ) {
1172
+ // Select is set to empty string on purpose
1173
+ // This is to test IE's treatment of not explicitly
1174
+ // setting a boolean content attribute,
1175
+ // since its presence should be enough
1176
+ // http://bugs.jquery.com/ticket/12359
1177
+ docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
1178
+ "<select id='" + expando + "-\f]' msallowcapture=''>" +
1179
+ "<option selected=''></option></select>";
1180
+
1181
+ // Support: IE8, Opera 11-12.16
1182
+ // Nothing should be selected when empty strings follow ^= or $= or *=
1183
+ // The test attribute must be unknown in Opera but "safe" for WinRT
1184
+ // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
1185
+ if ( div.querySelectorAll("[msallowcapture^='']").length ) {
1186
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
1187
+ }
1188
+
1189
+ // Support: IE8
1190
+ // Boolean attributes and "value" are not treated correctly
1191
+ if ( !div.querySelectorAll("[selected]").length ) {
1192
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
1193
+ }
1194
+
1195
+ // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+
1196
+ if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
1197
+ rbuggyQSA.push("~=");
1198
+ }
1199
+
1200
+ // Webkit/Opera - :checked should return selected option elements
1201
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1202
+ // IE8 throws error here and will not see later tests
1203
+ if ( !div.querySelectorAll(":checked").length ) {
1204
+ rbuggyQSA.push(":checked");
1205
+ }
1206
+
1207
+ // Support: Safari 8+, iOS 8+
1208
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
1209
+ // In-page `selector#id sibing-combinator selector` fails
1210
+ if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
1211
+ rbuggyQSA.push(".#.+[+~]");
1212
+ }
1213
+ });
1214
+
1215
+ assert(function( div ) {
1216
+ // Support: Windows 8 Native Apps
1217
+ // The type and name attributes are restricted during .innerHTML assignment
1218
+ var input = doc.createElement("input");
1219
+ input.setAttribute( "type", "hidden" );
1220
+ div.appendChild( input ).setAttribute( "name", "D" );
1221
+
1222
+ // Support: IE8
1223
+ // Enforce case-sensitivity of name attribute
1224
+ if ( div.querySelectorAll("[name=d]").length ) {
1225
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
1226
+ }
1227
+
1228
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
1229
+ // IE8 throws error here and will not see later tests
1230
+ if ( !div.querySelectorAll(":enabled").length ) {
1231
+ rbuggyQSA.push( ":enabled", ":disabled" );
1232
+ }
1233
+
1234
+ // Opera 10-11 does not throw on post-comma invalid pseudos
1235
+ div.querySelectorAll("*,:x");
1236
+ rbuggyQSA.push(",.*:");
1237
+ });
1238
+ }
1239
+
1240
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
1241
+ docElem.webkitMatchesSelector ||
1242
+ docElem.mozMatchesSelector ||
1243
+ docElem.oMatchesSelector ||
1244
+ docElem.msMatchesSelector) )) ) {
1245
+
1246
+ assert(function( div ) {
1247
+ // Check to see if it's possible to do matchesSelector
1248
+ // on a disconnected node (IE 9)
1249
+ support.disconnectedMatch = matches.call( div, "div" );
1250
+
1251
+ // This should fail with an exception
1252
+ // Gecko does not error, returns false instead
1253
+ matches.call( div, "[s!='']:x" );
1254
+ rbuggyMatches.push( "!=", pseudos );
1255
+ });
1256
+ }
1257
+
1258
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
1259
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
1260
+
1261
+ /* Contains
1262
+ ---------------------------------------------------------------------- */
1263
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
1264
+
1265
+ // Element contains another
1266
+ // Purposefully does not implement inclusive descendent
1267
+ // As in, an element does not contain itself
1268
+ contains = hasCompare || rnative.test( docElem.contains ) ?
1269
+ function( a, b ) {
1270
+ var adown = a.nodeType === 9 ? a.documentElement : a,
1271
+ bup = b && b.parentNode;
1272
+ return a === bup || !!( bup && bup.nodeType === 1 && (
1273
+ adown.contains ?
1274
+ adown.contains( bup ) :
1275
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
1276
+ ));
1277
+ } :
1278
+ function( a, b ) {
1279
+ if ( b ) {
1280
+ while ( (b = b.parentNode) ) {
1281
+ if ( b === a ) {
1282
+ return true;
1283
+ }
1284
+ }
1285
+ }
1286
+ return false;
1287
+ };
1288
+
1289
+ /* Sorting
1290
+ ---------------------------------------------------------------------- */
1291
+
1292
+ // Document order sorting
1293
+ sortOrder = hasCompare ?
1294
+ function( a, b ) {
1295
+
1296
+ // Flag for duplicate removal
1297
+ if ( a === b ) {
1298
+ hasDuplicate = true;
1299
+ return 0;
1300
+ }
1301
+
1302
+ // Sort on method existence if only one input has compareDocumentPosition
1303
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
1304
+ if ( compare ) {
1305
+ return compare;
1306
+ }
1307
+
1308
+ // Calculate position if both inputs belong to the same document
1309
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
1310
+ a.compareDocumentPosition( b ) :
1311
+
1312
+ // Otherwise we know they are disconnected
1313
+ 1;
1314
+
1315
+ // Disconnected nodes
1316
+ if ( compare & 1 ||
1317
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
1318
+
1319
+ // Choose the first element that is related to our preferred document
1320
+ if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
1321
+ return -1;
1322
+ }
1323
+ if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
1324
+ return 1;
1325
+ }
1326
+
1327
+ // Maintain original order
1328
+ return sortInput ?
1329
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
1330
+ 0;
1331
+ }
1332
+
1333
+ return compare & 4 ? -1 : 1;
1334
+ } :
1335
+ function( a, b ) {
1336
+ // Exit early if the nodes are identical
1337
+ if ( a === b ) {
1338
+ hasDuplicate = true;
1339
+ return 0;
1340
+ }
1341
+
1342
+ var cur,
1343
+ i = 0,
1344
+ aup = a.parentNode,
1345
+ bup = b.parentNode,
1346
+ ap = [ a ],
1347
+ bp = [ b ];
1348
+
1349
+ // Parentless nodes are either documents or disconnected
1350
+ if ( !aup || !bup ) {
1351
+ return a === doc ? -1 :
1352
+ b === doc ? 1 :
1353
+ aup ? -1 :
1354
+ bup ? 1 :
1355
+ sortInput ?
1356
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
1357
+ 0;
1358
+
1359
+ // If the nodes are siblings, we can do a quick check
1360
+ } else if ( aup === bup ) {
1361
+ return siblingCheck( a, b );
1362
+ }
1363
+
1364
+ // Otherwise we need full lists of their ancestors for comparison
1365
+ cur = a;
1366
+ while ( (cur = cur.parentNode) ) {
1367
+ ap.unshift( cur );
1368
+ }
1369
+ cur = b;
1370
+ while ( (cur = cur.parentNode) ) {
1371
+ bp.unshift( cur );
1372
+ }
1373
+
1374
+ // Walk down the tree looking for a discrepancy
1375
+ while ( ap[i] === bp[i] ) {
1376
+ i++;
1377
+ }
1378
+
1379
+ return i ?
1380
+ // Do a sibling check if the nodes have a common ancestor
1381
+ siblingCheck( ap[i], bp[i] ) :
1382
+
1383
+ // Otherwise nodes in our document sort first
1384
+ ap[i] === preferredDoc ? -1 :
1385
+ bp[i] === preferredDoc ? 1 :
1386
+ 0;
1387
+ };
1388
+
1389
+ return doc;
1390
+ };
1391
+
1392
+ Sizzle.matches = function( expr, elements ) {
1393
+ return Sizzle( expr, null, null, elements );
1394
+ };
1395
+
1396
+ Sizzle.matchesSelector = function( elem, expr ) {
1397
+ // Set document vars if needed
1398
+ if ( ( elem.ownerDocument || elem ) !== document ) {
1399
+ setDocument( elem );
1400
+ }
1401
+
1402
+ // Make sure that attribute selectors are quoted
1403
+ expr = expr.replace( rattributeQuotes, "='$1']" );
1404
+
1405
+ if ( support.matchesSelector && documentIsHTML &&
1406
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
1407
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
1408
+
1409
+ try {
1410
+ var ret = matches.call( elem, expr );
1411
+
1412
+ // IE 9's matchesSelector returns false on disconnected nodes
1413
+ if ( ret || support.disconnectedMatch ||
1414
+ // As well, disconnected nodes are said to be in a document
1415
+ // fragment in IE 9
1416
+ elem.document && elem.document.nodeType !== 11 ) {
1417
+ return ret;
1418
+ }
1419
+ } catch (e) {}
1420
+ }
1421
+
1422
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
1423
+ };
1424
+
1425
+ Sizzle.contains = function( context, elem ) {
1426
+ // Set document vars if needed
1427
+ if ( ( context.ownerDocument || context ) !== document ) {
1428
+ setDocument( context );
1429
+ }
1430
+ return contains( context, elem );
1431
+ };
1432
+
1433
+ Sizzle.attr = function( elem, name ) {
1434
+ // Set document vars if needed
1435
+ if ( ( elem.ownerDocument || elem ) !== document ) {
1436
+ setDocument( elem );
1437
+ }
1438
+
1439
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
1440
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
1441
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
1442
+ fn( elem, name, !documentIsHTML ) :
1443
+ undefined;
1444
+
1445
+ return val !== undefined ?
1446
+ val :
1447
+ support.attributes || !documentIsHTML ?
1448
+ elem.getAttribute( name ) :
1449
+ (val = elem.getAttributeNode(name)) && val.specified ?
1450
+ val.value :
1451
+ null;
1452
+ };
1453
+
1454
+ Sizzle.error = function( msg ) {
1455
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
1456
+ };
1457
+
1458
+ /**
1459
+ * Document sorting and removing duplicates
1460
+ * @param {ArrayLike} results
1461
+ */
1462
+ Sizzle.uniqueSort = function( results ) {
1463
+ var elem,
1464
+ duplicates = [],
1465
+ j = 0,
1466
+ i = 0;
1467
+
1468
+ // Unless we *know* we can detect duplicates, assume their presence
1469
+ hasDuplicate = !support.detectDuplicates;
1470
+ sortInput = !support.sortStable && results.slice( 0 );
1471
+ results.sort( sortOrder );
1472
+
1473
+ if ( hasDuplicate ) {
1474
+ while ( (elem = results[i++]) ) {
1475
+ if ( elem === results[ i ] ) {
1476
+ j = duplicates.push( i );
1477
+ }
1478
+ }
1479
+ while ( j-- ) {
1480
+ results.splice( duplicates[ j ], 1 );
1481
+ }
1482
+ }
1483
+
1484
+ // Clear input after sorting to release objects
1485
+ // See https://github.com/jquery/sizzle/pull/225
1486
+ sortInput = null;
1487
+
1488
+ return results;
1489
+ };
1490
+
1491
+ /**
1492
+ * Utility function for retrieving the text value of an array of DOM nodes
1493
+ * @param {Array|Element} elem
1494
+ */
1495
+ getText = Sizzle.getText = function( elem ) {
1496
+ var node,
1497
+ ret = "",
1498
+ i = 0,
1499
+ nodeType = elem.nodeType;
1500
+
1501
+ if ( !nodeType ) {
1502
+ // If no nodeType, this is expected to be an array
1503
+ while ( (node = elem[i++]) ) {
1504
+ // Do not traverse comment nodes
1505
+ ret += getText( node );
1506
+ }
1507
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
1508
+ // Use textContent for elements
1509
+ // innerText usage removed for consistency of new lines (jQuery #11153)
1510
+ if ( typeof elem.textContent === "string" ) {
1511
+ return elem.textContent;
1512
+ } else {
1513
+ // Traverse its children
1514
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1515
+ ret += getText( elem );
1516
+ }
1517
+ }
1518
+ } else if ( nodeType === 3 || nodeType === 4 ) {
1519
+ return elem.nodeValue;
1520
+ }
1521
+ // Do not include comment or processing instruction nodes
1522
+
1523
+ return ret;
1524
+ };
1525
+
1526
+ Expr = Sizzle.selectors = {
1527
+
1528
+ // Can be adjusted by the user
1529
+ cacheLength: 50,
1530
+
1531
+ createPseudo: markFunction,
1532
+
1533
+ match: matchExpr,
1534
+
1535
+ attrHandle: {},
1536
+
1537
+ find: {},
1538
+
1539
+ relative: {
1540
+ ">": { dir: "parentNode", first: true },
1541
+ " ": { dir: "parentNode" },
1542
+ "+": { dir: "previousSibling", first: true },
1543
+ "~": { dir: "previousSibling" }
1544
+ },
1545
+
1546
+ preFilter: {
1547
+ "ATTR": function( match ) {
1548
+ match[1] = match[1].replace( runescape, funescape );
1549
+
1550
+ // Move the given value to match[3] whether quoted or unquoted
1551
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
1552
+
1553
+ if ( match[2] === "~=" ) {
1554
+ match[3] = " " + match[3] + " ";
1555
+ }
1556
+
1557
+ return match.slice( 0, 4 );
1558
+ },
1559
+
1560
+ "CHILD": function( match ) {
1561
+ /* matches from matchExpr["CHILD"]
1562
+ 1 type (only|nth|...)
1563
+ 2 what (child|of-type)
1564
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
1565
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
1566
+ 5 sign of xn-component
1567
+ 6 x of xn-component
1568
+ 7 sign of y-component
1569
+ 8 y of y-component
1570
+ */
1571
+ match[1] = match[1].toLowerCase();
1572
+
1573
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
1574
+ // nth-* requires argument
1575
+ if ( !match[3] ) {
1576
+ Sizzle.error( match[0] );
1577
+ }
1578
+
1579
+ // numeric x and y parameters for Expr.filter.CHILD
1580
+ // remember that false/true cast respectively to 0/1
1581
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
1582
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
1583
+
1584
+ // other types prohibit arguments
1585
+ } else if ( match[3] ) {
1586
+ Sizzle.error( match[0] );
1587
+ }
1588
+
1589
+ return match;
1590
+ },
1591
+
1592
+ "PSEUDO": function( match ) {
1593
+ var excess,
1594
+ unquoted = !match[6] && match[2];
1595
+
1596
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
1597
+ return null;
1598
+ }
1599
+
1600
+ // Accept quoted arguments as-is
1601
+ if ( match[3] ) {
1602
+ match[2] = match[4] || match[5] || "";
1603
+
1604
+ // Strip excess characters from unquoted arguments
1605
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
1606
+ // Get excess from tokenize (recursively)
1607
+ (excess = tokenize( unquoted, true )) &&
1608
+ // advance to the next closing parenthesis
1609
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
1610
+
1611
+ // excess is a negative index
1612
+ match[0] = match[0].slice( 0, excess );
1613
+ match[2] = unquoted.slice( 0, excess );
1614
+ }
1615
+
1616
+ // Return only captures needed by the pseudo filter method (type and argument)
1617
+ return match.slice( 0, 3 );
1618
+ }
1619
+ },
1620
+
1621
+ filter: {
1622
+
1623
+ "TAG": function( nodeNameSelector ) {
1624
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
1625
+ return nodeNameSelector === "*" ?
1626
+ function() { return true; } :
1627
+ function( elem ) {
1628
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
1629
+ };
1630
+ },
1631
+
1632
+ "CLASS": function( className ) {
1633
+ var pattern = classCache[ className + " " ];
1634
+
1635
+ return pattern ||
1636
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
1637
+ classCache( className, function( elem ) {
1638
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
1639
+ });
1640
+ },
1641
+
1642
+ "ATTR": function( name, operator, check ) {
1643
+ return function( elem ) {
1644
+ var result = Sizzle.attr( elem, name );
1645
+
1646
+ if ( result == null ) {
1647
+ return operator === "!=";
1648
+ }
1649
+ if ( !operator ) {
1650
+ return true;
1651
+ }
1652
+
1653
+ result += "";
1654
+
1655
+ return operator === "=" ? result === check :
1656
+ operator === "!=" ? result !== check :
1657
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
1658
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
1659
+ operator === "$=" ? check && result.slice( -check.length ) === check :
1660
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
1661
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
1662
+ false;
1663
+ };
1664
+ },
1665
+
1666
+ "CHILD": function( type, what, argument, first, last ) {
1667
+ var simple = type.slice( 0, 3 ) !== "nth",
1668
+ forward = type.slice( -4 ) !== "last",
1669
+ ofType = what === "of-type";
1670
+
1671
+ return first === 1 && last === 0 ?
1672
+
1673
+ // Shortcut for :nth-*(n)
1674
+ function( elem ) {
1675
+ return !!elem.parentNode;
1676
+ } :
1677
+
1678
+ function( elem, context, xml ) {
1679
+ var cache, outerCache, node, diff, nodeIndex, start,
1680
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
1681
+ parent = elem.parentNode,
1682
+ name = ofType && elem.nodeName.toLowerCase(),
1683
+ useCache = !xml && !ofType;
1684
+
1685
+ if ( parent ) {
1686
+
1687
+ // :(first|last|only)-(child|of-type)
1688
+ if ( simple ) {
1689
+ while ( dir ) {
1690
+ node = elem;
1691
+ while ( (node = node[ dir ]) ) {
1692
+ if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
1693
+ return false;
1694
+ }
1695
+ }
1696
+ // Reverse direction for :only-* (if we haven't yet done so)
1697
+ start = dir = type === "only" && !start && "nextSibling";
1698
+ }
1699
+ return true;
1700
+ }
1701
+
1702
+ start = [ forward ? parent.firstChild : parent.lastChild ];
1703
+
1704
+ // non-xml :nth-child(...) stores cache data on `parent`
1705
+ if ( forward && useCache ) {
1706
+ // Seek `elem` from a previously-cached index
1707
+ outerCache = parent[ expando ] || (parent[ expando ] = {});
1708
+ cache = outerCache[ type ] || [];
1709
+ nodeIndex = cache[0] === dirruns && cache[1];
1710
+ diff = cache[0] === dirruns && cache[2];
1711
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
1712
+
1713
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1714
+
1715
+ // Fallback to seeking `elem` from the start
1716
+ (diff = nodeIndex = 0) || start.pop()) ) {
1717
+
1718
+ // When found, cache indexes on `parent` and break
1719
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
1720
+ outerCache[ type ] = [ dirruns, nodeIndex, diff ];
1721
+ break;
1722
+ }
1723
+ }
1724
+
1725
+ // Use previously-cached element index if available
1726
+ } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
1727
+ diff = cache[1];
1728
+
1729
+ // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
1730
+ } else {
1731
+ // Use the same loop as above to seek `elem` from the start
1732
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1733
+ (diff = nodeIndex = 0) || start.pop()) ) {
1734
+
1735
+ if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
1736
+ // Cache the index of each encountered element
1737
+ if ( useCache ) {
1738
+ (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
1739
+ }
1740
+
1741
+ if ( node === elem ) {
1742
+ break;
1743
+ }
1744
+ }
1745
+ }
1746
+ }
1747
+
1748
+ // Incorporate the offset, then check against cycle size
1749
+ diff -= last;
1750
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
1751
+ }
1752
+ };
1753
+ },
1754
+
1755
+ "PSEUDO": function( pseudo, argument ) {
1756
+ // pseudo-class names are case-insensitive
1757
+ // http://www.w3.org/TR/selectors/#pseudo-classes
1758
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
1759
+ // Remember that setFilters inherits from pseudos
1760
+ var args,
1761
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
1762
+ Sizzle.error( "unsupported pseudo: " + pseudo );
1763
+
1764
+ // The user may use createPseudo to indicate that
1765
+ // arguments are needed to create the filter function
1766
+ // just as Sizzle does
1767
+ if ( fn[ expando ] ) {
1768
+ return fn( argument );
1769
+ }
1770
+
1771
+ // But maintain support for old signatures
1772
+ if ( fn.length > 1 ) {
1773
+ args = [ pseudo, pseudo, "", argument ];
1774
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
1775
+ markFunction(function( seed, matches ) {
1776
+ var idx,
1777
+ matched = fn( seed, argument ),
1778
+ i = matched.length;
1779
+ while ( i-- ) {
1780
+ idx = indexOf( seed, matched[i] );
1781
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
1782
+ }
1783
+ }) :
1784
+ function( elem ) {
1785
+ return fn( elem, 0, args );
1786
+ };
1787
+ }
1788
+
1789
+ return fn;
1790
+ }
1791
+ },
1792
+
1793
+ pseudos: {
1794
+ // Potentially complex pseudos
1795
+ "not": markFunction(function( selector ) {
1796
+ // Trim the selector passed to compile
1797
+ // to avoid treating leading and trailing
1798
+ // spaces as combinators
1799
+ var input = [],
1800
+ results = [],
1801
+ matcher = compile( selector.replace( rtrim, "$1" ) );
1802
+
1803
+ return matcher[ expando ] ?
1804
+ markFunction(function( seed, matches, context, xml ) {
1805
+ var elem,
1806
+ unmatched = matcher( seed, null, xml, [] ),
1807
+ i = seed.length;
1808
+
1809
+ // Match elements unmatched by `matcher`
1810
+ while ( i-- ) {
1811
+ if ( (elem = unmatched[i]) ) {
1812
+ seed[i] = !(matches[i] = elem);
1813
+ }
1814
+ }
1815
+ }) :
1816
+ function( elem, context, xml ) {
1817
+ input[0] = elem;
1818
+ matcher( input, null, xml, results );
1819
+ // Don't keep the element (issue #299)
1820
+ input[0] = null;
1821
+ return !results.pop();
1822
+ };
1823
+ }),
1824
+
1825
+ "has": markFunction(function( selector ) {
1826
+ return function( elem ) {
1827
+ return Sizzle( selector, elem ).length > 0;
1828
+ };
1829
+ }),
1830
+
1831
+ "contains": markFunction(function( text ) {
1832
+ text = text.replace( runescape, funescape );
1833
+ return function( elem ) {
1834
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
1835
+ };
1836
+ }),
1837
+
1838
+ // "Whether an element is represented by a :lang() selector
1839
+ // is based solely on the element's language value
1840
+ // being equal to the identifier C,
1841
+ // or beginning with the identifier C immediately followed by "-".
1842
+ // The matching of C against the element's language value is performed case-insensitively.
1843
+ // The identifier C does not have to be a valid language name."
1844
+ // http://www.w3.org/TR/selectors/#lang-pseudo
1845
+ "lang": markFunction( function( lang ) {
1846
+ // lang value must be a valid identifier
1847
+ if ( !ridentifier.test(lang || "") ) {
1848
+ Sizzle.error( "unsupported lang: " + lang );
1849
+ }
1850
+ lang = lang.replace( runescape, funescape ).toLowerCase();
1851
+ return function( elem ) {
1852
+ var elemLang;
1853
+ do {
1854
+ if ( (elemLang = documentIsHTML ?
1855
+ elem.lang :
1856
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
1857
+
1858
+ elemLang = elemLang.toLowerCase();
1859
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
1860
+ }
1861
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
1862
+ return false;
1863
+ };
1864
+ }),
1865
+
1866
+ // Miscellaneous
1867
+ "target": function( elem ) {
1868
+ var hash = window.location && window.location.hash;
1869
+ return hash && hash.slice( 1 ) === elem.id;
1870
+ },
1871
+
1872
+ "root": function( elem ) {
1873
+ return elem === docElem;
1874
+ },
1875
+
1876
+ "focus": function( elem ) {
1877
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
1878
+ },
1879
+
1880
+ // Boolean properties
1881
+ "enabled": function( elem ) {
1882
+ return elem.disabled === false;
1883
+ },
1884
+
1885
+ "disabled": function( elem ) {
1886
+ return elem.disabled === true;
1887
+ },
1888
+
1889
+ "checked": function( elem ) {
1890
+ // In CSS3, :checked should return both checked and selected elements
1891
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1892
+ var nodeName = elem.nodeName.toLowerCase();
1893
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
1894
+ },
1895
+
1896
+ "selected": function( elem ) {
1897
+ // Accessing this property makes selected-by-default
1898
+ // options in Safari work properly
1899
+ if ( elem.parentNode ) {
1900
+ elem.parentNode.selectedIndex;
1901
+ }
1902
+
1903
+ return elem.selected === true;
1904
+ },
1905
+
1906
+ // Contents
1907
+ "empty": function( elem ) {
1908
+ // http://www.w3.org/TR/selectors/#empty-pseudo
1909
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
1910
+ // but not by others (comment: 8; processing instruction: 7; etc.)
1911
+ // nodeType < 6 works because attributes (2) do not appear as children
1912
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1913
+ if ( elem.nodeType < 6 ) {
1914
+ return false;
1915
+ }
1916
+ }
1917
+ return true;
1918
+ },
1919
+
1920
+ "parent": function( elem ) {
1921
+ return !Expr.pseudos["empty"]( elem );
1922
+ },
1923
+
1924
+ // Element/input types
1925
+ "header": function( elem ) {
1926
+ return rheader.test( elem.nodeName );
1927
+ },
1928
+
1929
+ "input": function( elem ) {
1930
+ return rinputs.test( elem.nodeName );
1931
+ },
1932
+
1933
+ "button": function( elem ) {
1934
+ var name = elem.nodeName.toLowerCase();
1935
+ return name === "input" && elem.type === "button" || name === "button";
1936
+ },
1937
+
1938
+ "text": function( elem ) {
1939
+ var attr;
1940
+ return elem.nodeName.toLowerCase() === "input" &&
1941
+ elem.type === "text" &&
1942
+
1943
+ // Support: IE<8
1944
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
1945
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
1946
+ },
1947
+
1948
+ // Position-in-collection
1949
+ "first": createPositionalPseudo(function() {
1950
+ return [ 0 ];
1951
+ }),
1952
+
1953
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
1954
+ return [ length - 1 ];
1955
+ }),
1956
+
1957
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
1958
+ return [ argument < 0 ? argument + length : argument ];
1959
+ }),
1960
+
1961
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
1962
+ var i = 0;
1963
+ for ( ; i < length; i += 2 ) {
1964
+ matchIndexes.push( i );
1965
+ }
1966
+ return matchIndexes;
1967
+ }),
1968
+
1969
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
1970
+ var i = 1;
1971
+ for ( ; i < length; i += 2 ) {
1972
+ matchIndexes.push( i );
1973
+ }
1974
+ return matchIndexes;
1975
+ }),
1976
+
1977
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1978
+ var i = argument < 0 ? argument + length : argument;
1979
+ for ( ; --i >= 0; ) {
1980
+ matchIndexes.push( i );
1981
+ }
1982
+ return matchIndexes;
1983
+ }),
1984
+
1985
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1986
+ var i = argument < 0 ? argument + length : argument;
1987
+ for ( ; ++i < length; ) {
1988
+ matchIndexes.push( i );
1989
+ }
1990
+ return matchIndexes;
1991
+ })
1992
+ }
1993
+ };
1994
+
1995
+ Expr.pseudos["nth"] = Expr.pseudos["eq"];
1996
+
1997
+ // Add button/input type pseudos
1998
+ for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
1999
+ Expr.pseudos[ i ] = createInputPseudo( i );
2000
+ }
2001
+ for ( i in { submit: true, reset: true } ) {
2002
+ Expr.pseudos[ i ] = createButtonPseudo( i );
2003
+ }
2004
+
2005
+ // Easy API for creating new setFilters
2006
+ function setFilters() {}
2007
+ setFilters.prototype = Expr.filters = Expr.pseudos;
2008
+ Expr.setFilters = new setFilters();
2009
+
2010
+ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
2011
+ var matched, match, tokens, type,
2012
+ soFar, groups, preFilters,
2013
+ cached = tokenCache[ selector + " " ];
2014
+
2015
+ if ( cached ) {
2016
+ return parseOnly ? 0 : cached.slice( 0 );
2017
+ }
2018
+
2019
+ soFar = selector;
2020
+ groups = [];
2021
+ preFilters = Expr.preFilter;
2022
+
2023
+ while ( soFar ) {
2024
+
2025
+ // Comma and first run
2026
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
2027
+ if ( match ) {
2028
+ // Don't consume trailing commas as valid
2029
+ soFar = soFar.slice( match[0].length ) || soFar;
2030
+ }
2031
+ groups.push( (tokens = []) );
2032
+ }
2033
+
2034
+ matched = false;
2035
+
2036
+ // Combinators
2037
+ if ( (match = rcombinators.exec( soFar )) ) {
2038
+ matched = match.shift();
2039
+ tokens.push({
2040
+ value: matched,
2041
+ // Cast descendant combinators to space
2042
+ type: match[0].replace( rtrim, " " )
2043
+ });
2044
+ soFar = soFar.slice( matched.length );
2045
+ }
2046
+
2047
+ // Filters
2048
+ for ( type in Expr.filter ) {
2049
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
2050
+ (match = preFilters[ type ]( match ))) ) {
2051
+ matched = match.shift();
2052
+ tokens.push({
2053
+ value: matched,
2054
+ type: type,
2055
+ matches: match
2056
+ });
2057
+ soFar = soFar.slice( matched.length );
2058
+ }
2059
+ }
2060
+
2061
+ if ( !matched ) {
2062
+ break;
2063
+ }
2064
+ }
2065
+
2066
+ // Return the length of the invalid excess
2067
+ // if we're just parsing
2068
+ // Otherwise, throw an error or return tokens
2069
+ return parseOnly ?
2070
+ soFar.length :
2071
+ soFar ?
2072
+ Sizzle.error( selector ) :
2073
+ // Cache the tokens
2074
+ tokenCache( selector, groups ).slice( 0 );
2075
+ };
2076
+
2077
+ function toSelector( tokens ) {
2078
+ var i = 0,
2079
+ len = tokens.length,
2080
+ selector = "";
2081
+ for ( ; i < len; i++ ) {
2082
+ selector += tokens[i].value;
2083
+ }
2084
+ return selector;
2085
+ }
2086
+
2087
+ function addCombinator( matcher, combinator, base ) {
2088
+ var dir = combinator.dir,
2089
+ checkNonElements = base && dir === "parentNode",
2090
+ doneName = done++;
2091
+
2092
+ return combinator.first ?
2093
+ // Check against closest ancestor/preceding element
2094
+ function( elem, context, xml ) {
2095
+ while ( (elem = elem[ dir ]) ) {
2096
+ if ( elem.nodeType === 1 || checkNonElements ) {
2097
+ return matcher( elem, context, xml );
2098
+ }
2099
+ }
2100
+ } :
2101
+
2102
+ // Check against all ancestor/preceding elements
2103
+ function( elem, context, xml ) {
2104
+ var oldCache, outerCache,
2105
+ newCache = [ dirruns, doneName ];
2106
+
2107
+ // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
2108
+ if ( xml ) {
2109
+ while ( (elem = elem[ dir ]) ) {
2110
+ if ( elem.nodeType === 1 || checkNonElements ) {
2111
+ if ( matcher( elem, context, xml ) ) {
2112
+ return true;
2113
+ }
2114
+ }
2115
+ }
2116
+ } else {
2117
+ while ( (elem = elem[ dir ]) ) {
2118
+ if ( elem.nodeType === 1 || checkNonElements ) {
2119
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
2120
+ if ( (oldCache = outerCache[ dir ]) &&
2121
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
2122
+
2123
+ // Assign to newCache so results back-propagate to previous elements
2124
+ return (newCache[ 2 ] = oldCache[ 2 ]);
2125
+ } else {
2126
+ // Reuse newcache so results back-propagate to previous elements
2127
+ outerCache[ dir ] = newCache;
2128
+
2129
+ // A match means we're done; a fail means we have to keep checking
2130
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
2131
+ return true;
2132
+ }
2133
+ }
2134
+ }
2135
+ }
2136
+ }
2137
+ };
2138
+ }
2139
+
2140
+ function elementMatcher( matchers ) {
2141
+ return matchers.length > 1 ?
2142
+ function( elem, context, xml ) {
2143
+ var i = matchers.length;
2144
+ while ( i-- ) {
2145
+ if ( !matchers[i]( elem, context, xml ) ) {
2146
+ return false;
2147
+ }
2148
+ }
2149
+ return true;
2150
+ } :
2151
+ matchers[0];
2152
+ }
2153
+
2154
+ function multipleContexts( selector, contexts, results ) {
2155
+ var i = 0,
2156
+ len = contexts.length;
2157
+ for ( ; i < len; i++ ) {
2158
+ Sizzle( selector, contexts[i], results );
2159
+ }
2160
+ return results;
2161
+ }
2162
+
2163
+ function condense( unmatched, map, filter, context, xml ) {
2164
+ var elem,
2165
+ newUnmatched = [],
2166
+ i = 0,
2167
+ len = unmatched.length,
2168
+ mapped = map != null;
2169
+
2170
+ for ( ; i < len; i++ ) {
2171
+ if ( (elem = unmatched[i]) ) {
2172
+ if ( !filter || filter( elem, context, xml ) ) {
2173
+ newUnmatched.push( elem );
2174
+ if ( mapped ) {
2175
+ map.push( i );
2176
+ }
2177
+ }
2178
+ }
2179
+ }
2180
+
2181
+ return newUnmatched;
2182
+ }
2183
+
2184
+ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
2185
+ if ( postFilter && !postFilter[ expando ] ) {
2186
+ postFilter = setMatcher( postFilter );
2187
+ }
2188
+ if ( postFinder && !postFinder[ expando ] ) {
2189
+ postFinder = setMatcher( postFinder, postSelector );
2190
+ }
2191
+ return markFunction(function( seed, results, context, xml ) {
2192
+ var temp, i, elem,
2193
+ preMap = [],
2194
+ postMap = [],
2195
+ preexisting = results.length,
2196
+
2197
+ // Get initial elements from seed or context
2198
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
2199
+
2200
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
2201
+ matcherIn = preFilter && ( seed || !selector ) ?
2202
+ condense( elems, preMap, preFilter, context, xml ) :
2203
+ elems,
2204
+
2205
+ matcherOut = matcher ?
2206
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
2207
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
2208
+
2209
+ // ...intermediate processing is necessary
2210
+ [] :
2211
+
2212
+ // ...otherwise use results directly
2213
+ results :
2214
+ matcherIn;
2215
+
2216
+ // Find primary matches
2217
+ if ( matcher ) {
2218
+ matcher( matcherIn, matcherOut, context, xml );
2219
+ }
2220
+
2221
+ // Apply postFilter
2222
+ if ( postFilter ) {
2223
+ temp = condense( matcherOut, postMap );
2224
+ postFilter( temp, [], context, xml );
2225
+
2226
+ // Un-match failing elements by moving them back to matcherIn
2227
+ i = temp.length;
2228
+ while ( i-- ) {
2229
+ if ( (elem = temp[i]) ) {
2230
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
2231
+ }
2232
+ }
2233
+ }
2234
+
2235
+ if ( seed ) {
2236
+ if ( postFinder || preFilter ) {
2237
+ if ( postFinder ) {
2238
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
2239
+ temp = [];
2240
+ i = matcherOut.length;
2241
+ while ( i-- ) {
2242
+ if ( (elem = matcherOut[i]) ) {
2243
+ // Restore matcherIn since elem is not yet a final match
2244
+ temp.push( (matcherIn[i] = elem) );
2245
+ }
2246
+ }
2247
+ postFinder( null, (matcherOut = []), temp, xml );
2248
+ }
2249
+
2250
+ // Move matched elements from seed to results to keep them synchronized
2251
+ i = matcherOut.length;
2252
+ while ( i-- ) {
2253
+ if ( (elem = matcherOut[i]) &&
2254
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
2255
+
2256
+ seed[temp] = !(results[temp] = elem);
2257
+ }
2258
+ }
2259
+ }
2260
+
2261
+ // Add elements to results, through postFinder if defined
2262
+ } else {
2263
+ matcherOut = condense(
2264
+ matcherOut === results ?
2265
+ matcherOut.splice( preexisting, matcherOut.length ) :
2266
+ matcherOut
2267
+ );
2268
+ if ( postFinder ) {
2269
+ postFinder( null, results, matcherOut, xml );
2270
+ } else {
2271
+ push.apply( results, matcherOut );
2272
+ }
2273
+ }
2274
+ });
2275
+ }
2276
+
2277
+ function matcherFromTokens( tokens ) {
2278
+ var checkContext, matcher, j,
2279
+ len = tokens.length,
2280
+ leadingRelative = Expr.relative[ tokens[0].type ],
2281
+ implicitRelative = leadingRelative || Expr.relative[" "],
2282
+ i = leadingRelative ? 1 : 0,
2283
+
2284
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
2285
+ matchContext = addCombinator( function( elem ) {
2286
+ return elem === checkContext;
2287
+ }, implicitRelative, true ),
2288
+ matchAnyContext = addCombinator( function( elem ) {
2289
+ return indexOf( checkContext, elem ) > -1;
2290
+ }, implicitRelative, true ),
2291
+ matchers = [ function( elem, context, xml ) {
2292
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
2293
+ (checkContext = context).nodeType ?
2294
+ matchContext( elem, context, xml ) :
2295
+ matchAnyContext( elem, context, xml ) );
2296
+ // Avoid hanging onto element (issue #299)
2297
+ checkContext = null;
2298
+ return ret;
2299
+ } ];
2300
+
2301
+ for ( ; i < len; i++ ) {
2302
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
2303
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
2304
+ } else {
2305
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
2306
+
2307
+ // Return special upon seeing a positional matcher
2308
+ if ( matcher[ expando ] ) {
2309
+ // Find the next relative operator (if any) for proper handling
2310
+ j = ++i;
2311
+ for ( ; j < len; j++ ) {
2312
+ if ( Expr.relative[ tokens[j].type ] ) {
2313
+ break;
2314
+ }
2315
+ }
2316
+ return setMatcher(
2317
+ i > 1 && elementMatcher( matchers ),
2318
+ i > 1 && toSelector(
2319
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
2320
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
2321
+ ).replace( rtrim, "$1" ),
2322
+ matcher,
2323
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
2324
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
2325
+ j < len && toSelector( tokens )
2326
+ );
2327
+ }
2328
+ matchers.push( matcher );
2329
+ }
2330
+ }
2331
+
2332
+ return elementMatcher( matchers );
2333
+ }
2334
+
2335
+ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
2336
+ var bySet = setMatchers.length > 0,
2337
+ byElement = elementMatchers.length > 0,
2338
+ superMatcher = function( seed, context, xml, results, outermost ) {
2339
+ var elem, j, matcher,
2340
+ matchedCount = 0,
2341
+ i = "0",
2342
+ unmatched = seed && [],
2343
+ setMatched = [],
2344
+ contextBackup = outermostContext,
2345
+ // We must always have either seed elements or outermost context
2346
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
2347
+ // Use integer dirruns iff this is the outermost matcher
2348
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
2349
+ len = elems.length;
2350
+
2351
+ if ( outermost ) {
2352
+ outermostContext = context !== document && context;
2353
+ }
2354
+
2355
+ // Add elements passing elementMatchers directly to results
2356
+ // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
2357
+ // Support: IE<9, Safari
2358
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
2359
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
2360
+ if ( byElement && elem ) {
2361
+ j = 0;
2362
+ while ( (matcher = elementMatchers[j++]) ) {
2363
+ if ( matcher( elem, context, xml ) ) {
2364
+ results.push( elem );
2365
+ break;
2366
+ }
2367
+ }
2368
+ if ( outermost ) {
2369
+ dirruns = dirrunsUnique;
2370
+ }
2371
+ }
2372
+
2373
+ // Track unmatched elements for set filters
2374
+ if ( bySet ) {
2375
+ // They will have gone through all possible matchers
2376
+ if ( (elem = !matcher && elem) ) {
2377
+ matchedCount--;
2378
+ }
2379
+
2380
+ // Lengthen the array for every element, matched or not
2381
+ if ( seed ) {
2382
+ unmatched.push( elem );
2383
+ }
2384
+ }
2385
+ }
2386
+
2387
+ // Apply set filters to unmatched elements
2388
+ matchedCount += i;
2389
+ if ( bySet && i !== matchedCount ) {
2390
+ j = 0;
2391
+ while ( (matcher = setMatchers[j++]) ) {
2392
+ matcher( unmatched, setMatched, context, xml );
2393
+ }
2394
+
2395
+ if ( seed ) {
2396
+ // Reintegrate element matches to eliminate the need for sorting
2397
+ if ( matchedCount > 0 ) {
2398
+ while ( i-- ) {
2399
+ if ( !(unmatched[i] || setMatched[i]) ) {
2400
+ setMatched[i] = pop.call( results );
2401
+ }
2402
+ }
2403
+ }
2404
+
2405
+ // Discard index placeholder values to get only actual matches
2406
+ setMatched = condense( setMatched );
2407
+ }
2408
+
2409
+ // Add matches to results
2410
+ push.apply( results, setMatched );
2411
+
2412
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
2413
+ if ( outermost && !seed && setMatched.length > 0 &&
2414
+ ( matchedCount + setMatchers.length ) > 1 ) {
2415
+
2416
+ Sizzle.uniqueSort( results );
2417
+ }
2418
+ }
2419
+
2420
+ // Override manipulation of globals by nested matchers
2421
+ if ( outermost ) {
2422
+ dirruns = dirrunsUnique;
2423
+ outermostContext = contextBackup;
2424
+ }
2425
+
2426
+ return unmatched;
2427
+ };
2428
+
2429
+ return bySet ?
2430
+ markFunction( superMatcher ) :
2431
+ superMatcher;
2432
+ }
2433
+
2434
+ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
2435
+ var i,
2436
+ setMatchers = [],
2437
+ elementMatchers = [],
2438
+ cached = compilerCache[ selector + " " ];
2439
+
2440
+ if ( !cached ) {
2441
+ // Generate a function of recursive functions that can be used to check each element
2442
+ if ( !match ) {
2443
+ match = tokenize( selector );
2444
+ }
2445
+ i = match.length;
2446
+ while ( i-- ) {
2447
+ cached = matcherFromTokens( match[i] );
2448
+ if ( cached[ expando ] ) {
2449
+ setMatchers.push( cached );
2450
+ } else {
2451
+ elementMatchers.push( cached );
2452
+ }
2453
+ }
2454
+
2455
+ // Cache the compiled function
2456
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
2457
+
2458
+ // Save selector and tokenization
2459
+ cached.selector = selector;
2460
+ }
2461
+ return cached;
2462
+ };
2463
+
2464
+ /**
2465
+ * A low-level selection function that works with Sizzle's compiled
2466
+ * selector functions
2467
+ * @param {String|Function} selector A selector or a pre-compiled
2468
+ * selector function built with Sizzle.compile
2469
+ * @param {Element} context
2470
+ * @param {Array} [results]
2471
+ * @param {Array} [seed] A set of elements to match against
2472
+ */
2473
+ select = Sizzle.select = function( selector, context, results, seed ) {
2474
+ var i, tokens, token, type, find,
2475
+ compiled = typeof selector === "function" && selector,
2476
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
2477
+
2478
+ results = results || [];
2479
+
2480
+ // Try to minimize operations if there is no seed and only one group
2481
+ if ( match.length === 1 ) {
2482
+
2483
+ // Take a shortcut and set the context if the root selector is an ID
2484
+ tokens = match[0] = match[0].slice( 0 );
2485
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2486
+ support.getById && context.nodeType === 9 && documentIsHTML &&
2487
+ Expr.relative[ tokens[1].type ] ) {
2488
+
2489
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2490
+ if ( !context ) {
2491
+ return results;
2492
+
2493
+ // Precompiled matchers will still verify ancestry, so step up a level
2494
+ } else if ( compiled ) {
2495
+ context = context.parentNode;
2496
+ }
2497
+
2498
+ selector = selector.slice( tokens.shift().value.length );
2499
+ }
2500
+
2501
+ // Fetch a seed set for right-to-left matching
2502
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2503
+ while ( i-- ) {
2504
+ token = tokens[i];
2505
+
2506
+ // Abort if we hit a combinator
2507
+ if ( Expr.relative[ (type = token.type) ] ) {
2508
+ break;
2509
+ }
2510
+ if ( (find = Expr.find[ type ]) ) {
2511
+ // Search, expanding context for leading sibling combinators
2512
+ if ( (seed = find(
2513
+ token.matches[0].replace( runescape, funescape ),
2514
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2515
+ )) ) {
2516
+
2517
+ // If seed is empty or no tokens remain, we can return early
2518
+ tokens.splice( i, 1 );
2519
+ selector = seed.length && toSelector( tokens );
2520
+ if ( !selector ) {
2521
+ push.apply( results, seed );
2522
+ return results;
2523
+ }
2524
+
2525
+ break;
2526
+ }
2527
+ }
2528
+ }
2529
+ }
2530
+
2531
+ // Compile and execute a filtering function if one is not provided
2532
+ // Provide `match` to avoid retokenization if we modified the selector above
2533
+ ( compiled || compile( selector, match ) )(
2534
+ seed,
2535
+ context,
2536
+ !documentIsHTML,
2537
+ results,
2538
+ rsibling.test( selector ) && testContext( context.parentNode ) || context
2539
+ );
2540
+ return results;
2541
+ };
2542
+
2543
+ // One-time assignments
2544
+
2545
+ // Sort stability
2546
+ support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
2547
+
2548
+ // Support: Chrome 14-35+
2549
+ // Always assume duplicates if they aren't passed to the comparison function
2550
+ support.detectDuplicates = !!hasDuplicate;
2551
+
2552
+ // Initialize against the default document
2553
+ setDocument();
2554
+
2555
+ // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
2556
+ // Detached nodes confoundingly follow *each other*
2557
+ support.sortDetached = assert(function( div1 ) {
2558
+ // Should return 1, but returns 4 (following)
2559
+ return div1.compareDocumentPosition( document.createElement("div") ) & 1;
2560
+ });
2561
+
2562
+ // Support: IE<8
2563
+ // Prevent attribute/property "interpolation"
2564
+ // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
2565
+ if ( !assert(function( div ) {
2566
+ div.innerHTML = "<a href='#'></a>";
2567
+ return div.firstChild.getAttribute("href") === "#" ;
2568
+ }) ) {
2569
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
2570
+ if ( !isXML ) {
2571
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
2572
+ }
2573
+ });
2574
+ }
2575
+
2576
+ // Support: IE<9
2577
+ // Use defaultValue in place of getAttribute("value")
2578
+ if ( !support.attributes || !assert(function( div ) {
2579
+ div.innerHTML = "<input/>";
2580
+ div.firstChild.setAttribute( "value", "" );
2581
+ return div.firstChild.getAttribute( "value" ) === "";
2582
+ }) ) {
2583
+ addHandle( "value", function( elem, name, isXML ) {
2584
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
2585
+ return elem.defaultValue;
2586
+ }
2587
+ });
2588
+ }
2589
+
2590
+ // Support: IE<9
2591
+ // Use getAttributeNode to fetch booleans when getAttribute lies
2592
+ if ( !assert(function( div ) {
2593
+ return div.getAttribute("disabled") == null;
2594
+ }) ) {
2595
+ addHandle( booleans, function( elem, name, isXML ) {
2596
+ var val;
2597
+ if ( !isXML ) {
2598
+ return elem[ name ] === true ? name.toLowerCase() :
2599
+ (val = elem.getAttributeNode( name )) && val.specified ?
2600
+ val.value :
2601
+ null;
2602
+ }
2603
+ });
2604
+ }
2605
+
2606
+ return Sizzle;
2607
+
2608
+ })( window );
2609
+
2610
+
2611
+
2612
+ jQuery.find = Sizzle;
2613
+ jQuery.expr = Sizzle.selectors;
2614
+ jQuery.expr[":"] = jQuery.expr.pseudos;
2615
+ jQuery.unique = Sizzle.uniqueSort;
2616
+ jQuery.text = Sizzle.getText;
2617
+ jQuery.isXMLDoc = Sizzle.isXML;
2618
+ jQuery.contains = Sizzle.contains;
2619
+
2620
+
2621
+
2622
+ var rneedsContext = jQuery.expr.match.needsContext;
2623
+
2624
+ var rsingleTag = (/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/);
2625
+
2626
+
2627
+
2628
+ var risSimple = /^.[^:#\[\.,]*$/;
2629
+
2630
+ // Implement the identical functionality for filter and not
2631
+ function winnow( elements, qualifier, not ) {
2632
+ if ( jQuery.isFunction( qualifier ) ) {
2633
+ return jQuery.grep( elements, function( elem, i ) {
2634
+ /* jshint -W018 */
2635
+ return !!qualifier.call( elem, i, elem ) !== not;
2636
+ });
2637
+
2638
+ }
2639
+
2640
+ if ( qualifier.nodeType ) {
2641
+ return jQuery.grep( elements, function( elem ) {
2642
+ return ( elem === qualifier ) !== not;
2643
+ });
2644
+
2645
+ }
2646
+
2647
+ if ( typeof qualifier === "string" ) {
2648
+ if ( risSimple.test( qualifier ) ) {
2649
+ return jQuery.filter( qualifier, elements, not );
2650
+ }
2651
+
2652
+ qualifier = jQuery.filter( qualifier, elements );
2653
+ }
2654
+
2655
+ return jQuery.grep( elements, function( elem ) {
2656
+ return ( jQuery.inArray( elem, qualifier ) > -1 ) !== not;
2657
+ });
2658
+ }
2659
+
2660
+ jQuery.filter = function( expr, elems, not ) {
2661
+ var elem = elems[ 0 ];
2662
+
2663
+ if ( not ) {
2664
+ expr = ":not(" + expr + ")";
2665
+ }
2666
+
2667
+ return elems.length === 1 && elem.nodeType === 1 ?
2668
+ jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
2669
+ jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
2670
+ return elem.nodeType === 1;
2671
+ }));
2672
+ };
2673
+
2674
+ jQuery.fn.extend({
2675
+ find: function( selector ) {
2676
+ var i,
2677
+ ret = [],
2678
+ self = this,
2679
+ len = self.length;
2680
+
2681
+ if ( typeof selector !== "string" ) {
2682
+ return this.pushStack( jQuery( selector ).filter(function() {
2683
+ for ( i = 0; i < len; i++ ) {
2684
+ if ( jQuery.contains( self[ i ], this ) ) {
2685
+ return true;
2686
+ }
2687
+ }
2688
+ }) );
2689
+ }
2690
+
2691
+ for ( i = 0; i < len; i++ ) {
2692
+ jQuery.find( selector, self[ i ], ret );
2693
+ }
2694
+
2695
+ return this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
2696
+ },
2697
+ filter: function( selector ) {
2698
+ return this.pushStack( winnow(this, selector || [], false) );
2699
+ },
2700
+ not: function( selector ) {
2701
+ return this.pushStack( winnow(this, selector || [], true) );
2702
+ },
2703
+ is: function( selector ) {
2704
+ return !!winnow(
2705
+ this,
2706
+
2707
+ // If this is a positional/relative selector, check membership in the returned set
2708
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
2709
+ typeof selector === "string" && rneedsContext.test( selector ) ?
2710
+ jQuery( selector ) :
2711
+ selector || [],
2712
+ false
2713
+ ).length;
2714
+ }
2715
+ });
2716
+
2717
+
2718
+ // Initialize a jQuery object
2719
+
2720
+
2721
+ // A central reference to the root jQuery(document)
2722
+ var rootjQuery,
2723
+
2724
+ // Use the correct document accordingly with window argument (sandbox)
2725
+ document = window.document,
2726
+
2727
+ // A simple way to check for HTML strings
2728
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
2729
+ // Strict HTML recognition (#11290: must start with <)
2730
+ // Shortcut simple #id case for speed
2731
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
2732
+
2733
+ init = jQuery.fn.init = function( selector, context ) {
2734
+ var match, elem;
2735
+
2736
+ // HANDLE: $(""), $(null), $(undefined), $(false)
2737
+ if ( !selector ) {
2738
+ return this;
2739
+ }
2740
+
2741
+ // Handle HTML strings
2742
+ if ( typeof selector === "string" ) {
2743
+ if ( selector[ 0 ] === "<" &&
2744
+ selector[ selector.length - 1 ] === ">" &&
2745
+ selector.length >= 3 ) {
2746
+
2747
+ // Assume that strings that start and end with <> are HTML and skip the regex check
2748
+ match = [ null, selector, null ];
2749
+
2750
+ } else {
2751
+ match = rquickExpr.exec( selector );
2752
+ }
2753
+
2754
+ // Match html or make sure no context is specified for #id
2755
+ if ( match && (match[1] || !context) ) {
2756
+
2757
+ // HANDLE: $(html) -> $(array)
2758
+ if ( match[1] ) {
2759
+ context = context instanceof jQuery ? context[0] : context;
2760
+
2761
+ // scripts is true for back-compat
2762
+ // Intentionally let the error be thrown if parseHTML is not present
2763
+ jQuery.merge( this, jQuery.parseHTML(
2764
+ match[1],
2765
+ context && context.nodeType ? context.ownerDocument || context : document,
2766
+ true
2767
+ ) );
2768
+
2769
+ // HANDLE: $(html, props)
2770
+ if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
2771
+ for ( match in context ) {
2772
+ // Properties of context are called as methods if possible
2773
+ if ( jQuery.isFunction( this[ match ] ) ) {
2774
+ this[ match ]( context[ match ] );
2775
+
2776
+ // ...and otherwise set as attributes
2777
+ } else {
2778
+ this.attr( match, context[ match ] );
2779
+ }
2780
+ }
2781
+ }
2782
+
2783
+ return this;
2784
+
2785
+ // HANDLE: $(#id)
2786
+ } else {
2787
+ elem = document.getElementById( match[2] );
2788
+
2789
+ if ( elem ) {
2790
+ // Inject the element directly into the jQuery object
2791
+ this[0] = elem;
2792
+ this.length = 1;
2793
+ }
2794
+ return this;
2795
+ }
2796
+
2797
+ // HANDLE: $(expr, $(...))
2798
+ } else if ( !context || context.jquery ) {
2799
+ return ( context || rootjQuery ).find( selector );
2800
+
2801
+ // HANDLE: $(expr, context)
2802
+ // (which is just equivalent to: $(context).find(expr)
2803
+ } else {
2804
+ return this.constructor( context ).find( selector );
2805
+ }
2806
+
2807
+ // HANDLE: $(DOMElement)
2808
+ } else if ( selector.nodeType ) {
2809
+ this[0] = selector;
2810
+ this.length = 1;
2811
+ return this;
2812
+
2813
+ // HANDLE: $(function)
2814
+ // Shortcut for document ready
2815
+ } else if ( jQuery.isFunction( selector ) ) {
2816
+ return typeof rootjQuery.ready !== "undefined" ?
2817
+ rootjQuery.ready( selector ) :
2818
+ // Execute immediately if ready is not present
2819
+ selector( jQuery );
2820
+ }
2821
+
2822
+ return jQuery.makeArray( selector, this );
2823
+ };
2824
+
2825
+ // Give the init function the jQuery prototype for later instantiation
2826
+ init.prototype = jQuery.fn;
2827
+
2828
+ // Initialize central reference
2829
+ rootjQuery = jQuery( document );
2830
+
2831
+
2832
+ var rparentsprev = /^(?:parents|prev(?:Until|All))/,
2833
+ // methods guaranteed to produce a unique set when starting from a unique set
2834
+ guaranteedUnique = {
2835
+ children: true,
2836
+ contents: true,
2837
+ next: true,
2838
+ prev: true
2839
+ };
2840
+
2841
+ jQuery.extend({
2842
+ dir: function( elem, dir, until ) {
2843
+ var matched = [],
2844
+ cur = elem[ dir ];
2845
+
2846
+ while ( cur && cur.nodeType !== 9 &&
2847
+ (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
2848
+
2849
+ if ( cur.nodeType === 1 ) {
2850
+ matched.push( cur );
2851
+ }
2852
+ cur = cur[dir];
2853
+ }
2854
+ return matched;
2855
+ },
2856
+
2857
+ sibling: function( n, elem ) {
2858
+ var r = [];
2859
+
2860
+ for ( ; n; n = n.nextSibling ) {
2861
+ if ( n.nodeType === 1 && n !== elem ) {
2862
+ r.push( n );
2863
+ }
2864
+ }
2865
+
2866
+ return r;
2867
+ }
2868
+ });
2869
+
2870
+ jQuery.fn.extend({
2871
+ has: function( target ) {
2872
+ var i,
2873
+ targets = jQuery( target, this ),
2874
+ len = targets.length;
2875
+
2876
+ return this.filter(function() {
2877
+ for ( i = 0; i < len; i++ ) {
2878
+ if ( jQuery.contains( this, targets[i] ) ) {
2879
+ return true;
2880
+ }
2881
+ }
2882
+ });
2883
+ },
2884
+
2885
+ closest: function( selectors, context ) {
2886
+ var cur,
2887
+ i = 0,
2888
+ l = this.length,
2889
+ matched = [],
2890
+ pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
2891
+ jQuery( selectors, context || this.context ) :
2892
+ 0;
2893
+
2894
+ for ( ; i < l; i++ ) {
2895
+ for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
2896
+ // Always skip document fragments
2897
+ if ( cur.nodeType < 11 && (pos ?
2898
+ pos.index(cur) > -1 :
2899
+
2900
+ // Don't pass non-elements to Sizzle
2901
+ cur.nodeType === 1 &&
2902
+ jQuery.find.matchesSelector(cur, selectors)) ) {
2903
+
2904
+ matched.push( cur );
2905
+ break;
2906
+ }
2907
+ }
2908
+ }
2909
+
2910
+ return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
2911
+ },
2912
+
2913
+ // Determine the position of an element within
2914
+ // the matched set of elements
2915
+ index: function( elem ) {
2916
+
2917
+ // No argument, return index in parent
2918
+ if ( !elem ) {
2919
+ return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;
2920
+ }
2921
+
2922
+ // index in selector
2923
+ if ( typeof elem === "string" ) {
2924
+ return jQuery.inArray( this[0], jQuery( elem ) );
2925
+ }
2926
+
2927
+ // Locate the position of the desired element
2928
+ return jQuery.inArray(
2929
+ // If it receives a jQuery object, the first element is used
2930
+ elem.jquery ? elem[0] : elem, this );
2931
+ },
2932
+
2933
+ add: function( selector, context ) {
2934
+ return this.pushStack(
2935
+ jQuery.unique(
2936
+ jQuery.merge( this.get(), jQuery( selector, context ) )
2937
+ )
2938
+ );
2939
+ },
2940
+
2941
+ addBack: function( selector ) {
2942
+ return this.add( selector == null ?
2943
+ this.prevObject : this.prevObject.filter(selector)
2944
+ );
2945
+ }
2946
+ });
2947
+
2948
+ function sibling( cur, dir ) {
2949
+ do {
2950
+ cur = cur[ dir ];
2951
+ } while ( cur && cur.nodeType !== 1 );
2952
+
2953
+ return cur;
2954
+ }
2955
+
2956
+ jQuery.each({
2957
+ parent: function( elem ) {
2958
+ var parent = elem.parentNode;
2959
+ return parent && parent.nodeType !== 11 ? parent : null;
2960
+ },
2961
+ parents: function( elem ) {
2962
+ return jQuery.dir( elem, "parentNode" );
2963
+ },
2964
+ parentsUntil: function( elem, i, until ) {
2965
+ return jQuery.dir( elem, "parentNode", until );
2966
+ },
2967
+ next: function( elem ) {
2968
+ return sibling( elem, "nextSibling" );
2969
+ },
2970
+ prev: function( elem ) {
2971
+ return sibling( elem, "previousSibling" );
2972
+ },
2973
+ nextAll: function( elem ) {
2974
+ return jQuery.dir( elem, "nextSibling" );
2975
+ },
2976
+ prevAll: function( elem ) {
2977
+ return jQuery.dir( elem, "previousSibling" );
2978
+ },
2979
+ nextUntil: function( elem, i, until ) {
2980
+ return jQuery.dir( elem, "nextSibling", until );
2981
+ },
2982
+ prevUntil: function( elem, i, until ) {
2983
+ return jQuery.dir( elem, "previousSibling", until );
2984
+ },
2985
+ siblings: function( elem ) {
2986
+ return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
2987
+ },
2988
+ children: function( elem ) {
2989
+ return jQuery.sibling( elem.firstChild );
2990
+ },
2991
+ contents: function( elem ) {
2992
+ return elem.contentDocument || jQuery.merge( [], elem.childNodes );
2993
+ }
2994
+ }, function( name, fn ) {
2995
+ jQuery.fn[ name ] = function( until, selector ) {
2996
+ var ret = jQuery.map( this, fn, until );
2997
+
2998
+ if ( name.slice( -5 ) !== "Until" ) {
2999
+ selector = until;
3000
+ }
3001
+
3002
+ if ( selector && typeof selector === "string" ) {
3003
+ ret = jQuery.filter( selector, ret );
3004
+ }
3005
+
3006
+ if ( this.length > 1 ) {
3007
+ // Remove duplicates
3008
+ if ( !guaranteedUnique[ name ] ) {
3009
+ ret = jQuery.unique( ret );
3010
+ }
3011
+
3012
+ // Reverse order for parents* and prev-derivatives
3013
+ if ( rparentsprev.test( name ) ) {
3014
+ ret = ret.reverse();
3015
+ }
3016
+ }
3017
+
3018
+ return this.pushStack( ret );
3019
+ };
3020
+ });
3021
+ var rnotwhite = (/\S+/g);
3022
+
3023
+
3024
+
3025
+ // Convert String-formatted options into Object-formatted ones
3026
+ function createOptions( options ) {
3027
+ var object = {};
3028
+ jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
3029
+ object[ flag ] = true;
3030
+ });
3031
+ return object;
3032
+ }
3033
+
3034
+ /*
3035
+ * Create a callback list using the following parameters:
3036
+ *
3037
+ * options: an optional list of space-separated options that will change how
3038
+ * the callback list behaves or a more traditional option object
3039
+ *
3040
+ * By default a callback list will act like an event callback list and can be
3041
+ * "fired" multiple times.
3042
+ *
3043
+ * Possible options:
3044
+ *
3045
+ * once: will ensure the callback list can only be fired once (like a Deferred)
3046
+ *
3047
+ * memory: will keep track of previous values and will call any callback added
3048
+ * after the list has been fired right away with the latest "memorized"
3049
+ * values (like a Deferred)
3050
+ *
3051
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
3052
+ *
3053
+ * stopOnFalse: interrupt callings when a callback returns false
3054
+ *
3055
+ */
3056
+ jQuery.Callbacks = function( options ) {
3057
+
3058
+ // Convert options from String-formatted to Object-formatted if needed
3059
+ // (we check in cache first)
3060
+ options = typeof options === "string" ?
3061
+ createOptions( options ) :
3062
+ jQuery.extend( {}, options );
3063
+
3064
+ var // Flag to know if list is currently firing
3065
+ firing,
3066
+ // Last fire value for non-forgettable lists
3067
+ memory,
3068
+ // Flag to know if list was already fired
3069
+ fired,
3070
+ // Flag to prevent firing
3071
+ locked,
3072
+ // Actual callback list
3073
+ list = [],
3074
+ // Queue of execution data for repeatable lists
3075
+ queue = [],
3076
+ // Index of currently firing callback (modified by add/remove as needed)
3077
+ firingIndex = -1,
3078
+ // Fire callbacks
3079
+ fire = function() {
3080
+
3081
+ // Enforce single-firing
3082
+ locked = options.once;
3083
+
3084
+ // Execute callbacks for all pending executions,
3085
+ // respecting firingIndex overrides and runtime changes
3086
+ fired = firing = true;
3087
+ for ( ; queue.length; firingIndex = -1 ) {
3088
+ memory = queue.shift();
3089
+ while ( ++firingIndex < list.length ) {
3090
+
3091
+ // Run callback and check for early termination
3092
+ if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
3093
+ options.stopOnFalse ) {
3094
+
3095
+ // Jump to end and forget the data so .add doesn't re-fire
3096
+ firingIndex = list.length;
3097
+ memory = false;
3098
+ }
3099
+ }
3100
+ }
3101
+
3102
+ // Forget the data if we're done with it
3103
+ if ( !options.memory ) {
3104
+ memory = false;
3105
+ }
3106
+
3107
+ firing = false;
3108
+
3109
+ // Clean up if we're done firing for good
3110
+ if ( locked ) {
3111
+
3112
+ // Keep an empty list if we have data for future add calls
3113
+ if ( memory ) {
3114
+ list = [];
3115
+
3116
+ // Otherwise, this object is spent
3117
+ } else {
3118
+ list = "";
3119
+ }
3120
+ }
3121
+ },
3122
+
3123
+ // Actual Callbacks object
3124
+ self = {
3125
+
3126
+ // Add a callback or a collection of callbacks to the list
3127
+ add: function() {
3128
+ if ( list ) {
3129
+
3130
+ // If we have memory from a past run, we should fire after adding
3131
+ if ( memory && !firing ) {
3132
+ firingIndex = list.length - 1;
3133
+ queue.push( memory );
3134
+ }
3135
+
3136
+ (function add( args ) {
3137
+ jQuery.each( args, function( _, arg ) {
3138
+ if ( jQuery.isFunction( arg ) ) {
3139
+ if ( !options.unique || !self.has( arg ) ) {
3140
+ list.push( arg );
3141
+ }
3142
+ } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
3143
+ // Inspect recursively
3144
+ add( arg );
3145
+ }
3146
+ });
3147
+ })( arguments );
3148
+
3149
+ if ( memory && !firing ) {
3150
+ fire();
3151
+ }
3152
+ }
3153
+ return this;
3154
+ },
3155
+
3156
+ // Remove a callback from the list
3157
+ remove: function() {
3158
+ jQuery.each( arguments, function( _, arg ) {
3159
+ var index;
3160
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
3161
+ list.splice( index, 1 );
3162
+
3163
+ // Handle firing indexes
3164
+ if ( index <= firingIndex ) {
3165
+ firingIndex--;
3166
+ }
3167
+ }
3168
+ });
3169
+ return this;
3170
+ },
3171
+
3172
+ // Check if a given callback is in the list.
3173
+ // If no argument is given, return whether or not list has callbacks attached.
3174
+ has: function( fn ) {
3175
+ return fn ?
3176
+ jQuery.inArray( fn, list ) > -1 :
3177
+ list.length > 0;
3178
+ },
3179
+
3180
+ // Remove all callbacks from the list
3181
+ empty: function() {
3182
+ if ( list ) {
3183
+ list = [];
3184
+ }
3185
+ return this;
3186
+ },
3187
+
3188
+ // Disable .fire and .add
3189
+ // Abort any current/pending executions
3190
+ // Clear all callbacks and values
3191
+ disable: function() {
3192
+ locked = queue = [];
3193
+ list = memory = "";
3194
+ return this;
3195
+ },
3196
+ disabled: function() {
3197
+ return !list;
3198
+ },
3199
+
3200
+ // Disable .fire
3201
+ // Also disable .add unless we have memory (since it would have no effect)
3202
+ // Abort any pending executions
3203
+ lock: function() {
3204
+ locked = queue = [];
3205
+ if ( !memory && !firing ) {
3206
+ list = memory = "";
3207
+ }
3208
+ return this;
3209
+ },
3210
+ locked: function() {
3211
+ return !!locked;
3212
+ },
3213
+
3214
+ // Call all callbacks with the given context and arguments
3215
+ fireWith: function( context, args ) {
3216
+ if ( !locked ) {
3217
+ args = args || [];
3218
+ args = [ context, args.slice ? args.slice() : args ];
3219
+ queue.push( args );
3220
+ if ( !firing ) {
3221
+ fire();
3222
+ }
3223
+ }
3224
+ return this;
3225
+ },
3226
+
3227
+ // Call all the callbacks with the given arguments
3228
+ fire: function() {
3229
+ self.fireWith( this, arguments );
3230
+ return this;
3231
+ },
3232
+
3233
+ // To know if the callbacks have already been called at least once
3234
+ fired: function() {
3235
+ return !!fired;
3236
+ }
3237
+ };
3238
+
3239
+ return self;
3240
+ };
3241
+
3242
+
3243
+ jQuery.extend({
3244
+
3245
+ Deferred: function( func ) {
3246
+ var tuples = [
3247
+ // action, add listener, listener list, final state
3248
+ [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
3249
+ [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
3250
+ [ "notify", "progress", jQuery.Callbacks("memory") ]
3251
+ ],
3252
+ state = "pending",
3253
+ promise = {
3254
+ state: function() {
3255
+ return state;
3256
+ },
3257
+ always: function() {
3258
+ deferred.done( arguments ).fail( arguments );
3259
+ return this;
3260
+ },
3261
+ then: function( /* fnDone, fnFail, fnProgress */ ) {
3262
+ var fns = arguments;
3263
+ return jQuery.Deferred(function( newDefer ) {
3264
+ jQuery.each( tuples, function( i, tuple ) {
3265
+ var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
3266
+ // deferred[ done | fail | progress ] for forwarding actions to newDefer
3267
+ deferred[ tuple[1] ](function() {
3268
+ var returned = fn && fn.apply( this, arguments );
3269
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
3270
+ returned.promise()
3271
+ .done( newDefer.resolve )
3272
+ .fail( newDefer.reject )
3273
+ .progress( newDefer.notify );
3274
+ } else {
3275
+ newDefer[ tuple[ 0 ] + "With" ](
3276
+ this === promise ? newDefer.promise() : this,
3277
+ fn ? [ returned ] : arguments
3278
+ );
3279
+ }
3280
+ });
3281
+ });
3282
+ fns = null;
3283
+ }).promise();
3284
+ },
3285
+ // Get a promise for this deferred
3286
+ // If obj is provided, the promise aspect is added to the object
3287
+ promise: function( obj ) {
3288
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
3289
+ }
3290
+ },
3291
+ deferred = {};
3292
+
3293
+ // Keep pipe for back-compat
3294
+ promise.pipe = promise.then;
3295
+
3296
+ // Add list-specific methods
3297
+ jQuery.each( tuples, function( i, tuple ) {
3298
+ var list = tuple[ 2 ],
3299
+ stateString = tuple[ 3 ];
3300
+
3301
+ // promise[ done | fail | progress ] = list.add
3302
+ promise[ tuple[1] ] = list.add;
3303
+
3304
+ // Handle state
3305
+ if ( stateString ) {
3306
+ list.add(function() {
3307
+ // state = [ resolved | rejected ]
3308
+ state = stateString;
3309
+
3310
+ // [ reject_list | resolve_list ].disable; progress_list.lock
3311
+ }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
3312
+ }
3313
+
3314
+ // deferred[ resolve | reject | notify ]
3315
+ deferred[ tuple[0] ] = function() {
3316
+ deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
3317
+ return this;
3318
+ };
3319
+ deferred[ tuple[0] + "With" ] = list.fireWith;
3320
+ });
3321
+
3322
+ // Make the deferred a promise
3323
+ promise.promise( deferred );
3324
+
3325
+ // Call given func if any
3326
+ if ( func ) {
3327
+ func.call( deferred, deferred );
3328
+ }
3329
+
3330
+ // All done!
3331
+ return deferred;
3332
+ },
3333
+
3334
+ // Deferred helper
3335
+ when: function( subordinate /* , ..., subordinateN */ ) {
3336
+ var i = 0,
3337
+ resolveValues = slice.call( arguments ),
3338
+ length = resolveValues.length,
3339
+
3340
+ // the count of uncompleted subordinates
3341
+ remaining = length !== 1 ||
3342
+ ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
3343
+
3344
+ // the master Deferred.
3345
+ // If resolveValues consist of only a single Deferred, just use that.
3346
+ deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
3347
+
3348
+ // Update function for both resolve and progress values
3349
+ updateFunc = function( i, contexts, values ) {
3350
+ return function( value ) {
3351
+ contexts[ i ] = this;
3352
+ values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
3353
+ if ( values === progressValues ) {
3354
+ deferred.notifyWith( contexts, values );
3355
+
3356
+ } else if ( !(--remaining) ) {
3357
+ deferred.resolveWith( contexts, values );
3358
+ }
3359
+ };
3360
+ },
3361
+
3362
+ progressValues, progressContexts, resolveContexts;
3363
+
3364
+ // add listeners to Deferred subordinates; treat others as resolved
3365
+ if ( length > 1 ) {
3366
+ progressValues = new Array( length );
3367
+ progressContexts = new Array( length );
3368
+ resolveContexts = new Array( length );
3369
+ for ( ; i < length; i++ ) {
3370
+ if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
3371
+ resolveValues[ i ].promise()
3372
+ .progress( updateFunc( i, progressContexts, progressValues ) )
3373
+ .done( updateFunc( i, resolveContexts, resolveValues ) )
3374
+ .fail( deferred.reject );
3375
+ } else {
3376
+ --remaining;
3377
+ }
3378
+ }
3379
+ }
3380
+
3381
+ // if we're not waiting on anything, resolve the master
3382
+ if ( !remaining ) {
3383
+ deferred.resolveWith( resolveContexts, resolveValues );
3384
+ }
3385
+
3386
+ return deferred.promise();
3387
+ }
3388
+ });
3389
+
3390
+
3391
+ // The deferred used on DOM ready
3392
+ var readyList;
3393
+
3394
+ jQuery.fn.ready = function( fn ) {
3395
+ // Add the callback
3396
+ jQuery.ready.promise().done( fn );
3397
+
3398
+ return this;
3399
+ };
3400
+
3401
+ jQuery.extend({
3402
+ // Is the DOM ready to be used? Set to true once it occurs.
3403
+ isReady: false,
3404
+
3405
+ // A counter to track how many items to wait for before
3406
+ // the ready event fires. See #6781
3407
+ readyWait: 1,
3408
+
3409
+ // Hold (or release) the ready event
3410
+ holdReady: function( hold ) {
3411
+ if ( hold ) {
3412
+ jQuery.readyWait++;
3413
+ } else {
3414
+ jQuery.ready( true );
3415
+ }
3416
+ },
3417
+
3418
+ // Handle when the DOM is ready
3419
+ ready: function( wait ) {
3420
+
3421
+ // Abort if there are pending holds or we're already ready
3422
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
3423
+ return;
3424
+ }
3425
+
3426
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
3427
+ if ( !document.body ) {
3428
+ return setTimeout( jQuery.ready );
3429
+ }
3430
+
3431
+ // Remember that the DOM is ready
3432
+ jQuery.isReady = true;
3433
+
3434
+ // If a normal DOM Ready event fired, decrement, and wait if need be
3435
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
3436
+ return;
3437
+ }
3438
+
3439
+ // If there are functions bound, to execute
3440
+ readyList.resolveWith( document, [ jQuery ] );
3441
+
3442
+ // Trigger any bound ready events
3443
+ if ( jQuery.fn.triggerHandler ) {
3444
+ jQuery( document ).triggerHandler( "ready" );
3445
+ jQuery( document ).off( "ready" );
3446
+ }
3447
+ }
3448
+ });
3449
+
3450
+ /**
3451
+ * Clean-up method for dom ready events
3452
+ */
3453
+ function detach() {
3454
+ if ( document.addEventListener ) {
3455
+ document.removeEventListener( "DOMContentLoaded", completed, false );
3456
+ window.removeEventListener( "load", completed, false );
3457
+
3458
+ // Support: IE<9
3459
+ } else {
3460
+ document.detachEvent( "onreadystatechange", completed );
3461
+ window.detachEvent( "onload", completed );
3462
+ }
3463
+ }
3464
+
3465
+ /**
3466
+ * The ready event handler and self cleanup method
3467
+ */
3468
+ function completed() {
3469
+ // readyState === "complete" is good enough for us to call the dom ready in oldIE
3470
+ if ( document.addEventListener ||
3471
+ event.type === "load" ||
3472
+ document.readyState === "complete" ) {
3473
+
3474
+ detach();
3475
+ jQuery.ready();
3476
+ }
3477
+ }
3478
+
3479
+ jQuery.ready.promise = function( obj ) {
3480
+ if ( !readyList ) {
3481
+
3482
+ readyList = jQuery.Deferred();
3483
+
3484
+ // Catch cases where $(document).ready() is called
3485
+ // after the browser event has already occurred.
3486
+ // we once tried to use readyState "interactive" here,
3487
+ // but it caused issues like the one
3488
+ // discovered by ChrisS here:
3489
+ // http://bugs.jquery.com/ticket/12282#comment:15
3490
+ if ( document.readyState === "complete" ) {
3491
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
3492
+ setTimeout( jQuery.ready );
3493
+
3494
+ // Standards-based browsers support DOMContentLoaded
3495
+ } else if ( document.addEventListener ) {
3496
+ // Use the handy event callback
3497
+ document.addEventListener( "DOMContentLoaded", completed, false );
3498
+
3499
+ // A fallback to window.onload, that will always work
3500
+ window.addEventListener( "load", completed, false );
3501
+
3502
+ // Support: IE<9
3503
+ // If IE event model is used
3504
+ } else {
3505
+ // Ensure firing before onload, maybe late but safe also for iframes
3506
+ document.attachEvent( "onreadystatechange", completed );
3507
+
3508
+ // A fallback to window.onload, that will always work
3509
+ window.attachEvent( "onload", completed );
3510
+ }
3511
+ }
3512
+ return readyList.promise( obj );
3513
+ };
3514
+
3515
+ // Kick off the DOM ready check even if the user does not
3516
+ jQuery.ready.promise();
3517
+
3518
+
3519
+
3520
+
3521
+ // Support: IE<9
3522
+ // Iteration over object's inherited properties before its own
3523
+ var i;
3524
+ for ( i in jQuery( support ) ) {
3525
+ break;
3526
+ }
3527
+ support.ownLast = i !== "0";
3528
+
3529
+ // Note: most support tests are defined in their respective modules.
3530
+
3531
+
3532
+
3533
+
3534
+ (function() {
3535
+ var div = document.createElement( "div" );
3536
+
3537
+ // Support: IE<9
3538
+ support.deleteExpando = true;
3539
+ try {
3540
+ delete div.test;
3541
+ } catch ( e ) {
3542
+ support.deleteExpando = false;
3543
+ }
3544
+
3545
+ // Null elements to avoid leaks in IE.
3546
+ div = null;
3547
+ })();
3548
+
3549
+
3550
+ /**
3551
+ * Determines whether an object can have data
3552
+ */
3553
+ jQuery.acceptData = function( elem ) {
3554
+ var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ],
3555
+ nodeType = +elem.nodeType || 1;
3556
+
3557
+ // Do not set data on non-element DOM nodes because it will not be cleared (#8335).
3558
+ return nodeType !== 1 && nodeType !== 9 ?
3559
+ false :
3560
+
3561
+ // Nodes accept data unless otherwise specified; rejection can be conditional
3562
+ !noData || noData !== true && elem.getAttribute("classid") === noData;
3563
+ };
3564
+
3565
+
3566
+ var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
3567
+ rmultiDash = /([A-Z])/g;
3568
+
3569
+ function dataAttr( elem, key, data ) {
3570
+ // If nothing was found internally, try to fetch any
3571
+ // data from the HTML5 data-* attribute
3572
+ if ( data === undefined && elem.nodeType === 1 ) {
3573
+
3574
+ var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
3575
+
3576
+ data = elem.getAttribute( name );
3577
+
3578
+ if ( typeof data === "string" ) {
3579
+ try {
3580
+ data = data === "true" ? true :
3581
+ data === "false" ? false :
3582
+ data === "null" ? null :
3583
+ // Only convert to a number if it doesn't change the string
3584
+ +data + "" === data ? +data :
3585
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
3586
+ data;
3587
+ } catch ( e ) {}
3588
+
3589
+ // Make sure we set the data so it isn't changed later
3590
+ jQuery.data( elem, key, data );
3591
+
3592
+ } else {
3593
+ data = undefined;
3594
+ }
3595
+ }
3596
+
3597
+ return data;
3598
+ }
3599
+
3600
+ // checks a cache object for emptiness
3601
+ function isEmptyDataObject( obj ) {
3602
+ var name;
3603
+ for ( name in obj ) {
3604
+
3605
+ // if the public data object is empty, the private is still empty
3606
+ if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
3607
+ continue;
3608
+ }
3609
+ if ( name !== "toJSON" ) {
3610
+ return false;
3611
+ }
3612
+ }
3613
+
3614
+ return true;
3615
+ }
3616
+
3617
+ function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
3618
+ if ( !jQuery.acceptData( elem ) ) {
3619
+ return;
3620
+ }
3621
+
3622
+ var ret, thisCache,
3623
+ internalKey = jQuery.expando,
3624
+
3625
+ // We have to handle DOM nodes and JS objects differently because IE6-7
3626
+ // can't GC object references properly across the DOM-JS boundary
3627
+ isNode = elem.nodeType,
3628
+
3629
+ // Only DOM nodes need the global jQuery cache; JS object data is
3630
+ // attached directly to the object so GC can occur automatically
3631
+ cache = isNode ? jQuery.cache : elem,
3632
+
3633
+ // Only defining an ID for JS objects if its cache already exists allows
3634
+ // the code to shortcut on the same path as a DOM node with no cache
3635
+ id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
3636
+
3637
+ // Avoid doing any more work than we need to when trying to get data on an
3638
+ // object that has no data at all
3639
+ if ( (!id || !cache[id] || (!pvt && !cache[id].data)) &&
3640
+ data === undefined && typeof name === "string" ) {
3641
+ return;
3642
+ }
3643
+
3644
+ if ( !id ) {
3645
+ // Only DOM nodes need a new unique ID for each element since their data
3646
+ // ends up in the global cache
3647
+ if ( isNode ) {
3648
+ id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
3649
+ } else {
3650
+ id = internalKey;
3651
+ }
3652
+ }
3653
+
3654
+ if ( !cache[ id ] ) {
3655
+ // Avoid exposing jQuery metadata on plain JS objects when the object
3656
+ // is serialized using JSON.stringify
3657
+ cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
3658
+ }
3659
+
3660
+ // An object can be passed to jQuery.data instead of a key/value pair; this gets
3661
+ // shallow copied over onto the existing cache
3662
+ if ( typeof name === "object" || typeof name === "function" ) {
3663
+ if ( pvt ) {
3664
+ cache[ id ] = jQuery.extend( cache[ id ], name );
3665
+ } else {
3666
+ cache[ id ].data = jQuery.extend( cache[ id ].data, name );
3667
+ }
3668
+ }
3669
+
3670
+ thisCache = cache[ id ];
3671
+
3672
+ // jQuery data() is stored in a separate object inside the object's internal data
3673
+ // cache in order to avoid key collisions between internal data and user-defined
3674
+ // data.
3675
+ if ( !pvt ) {
3676
+ if ( !thisCache.data ) {
3677
+ thisCache.data = {};
3678
+ }
3679
+
3680
+ thisCache = thisCache.data;
3681
+ }
3682
+
3683
+ if ( data !== undefined ) {
3684
+ thisCache[ jQuery.camelCase( name ) ] = data;
3685
+ }
3686
+
3687
+ // Check for both converted-to-camel and non-converted data property names
3688
+ // If a data property was specified
3689
+ if ( typeof name === "string" ) {
3690
+
3691
+ // First Try to find as-is property data
3692
+ ret = thisCache[ name ];
3693
+
3694
+ // Test for null|undefined property data
3695
+ if ( ret == null ) {
3696
+
3697
+ // Try to find the camelCased property
3698
+ ret = thisCache[ jQuery.camelCase( name ) ];
3699
+ }
3700
+ } else {
3701
+ ret = thisCache;
3702
+ }
3703
+
3704
+ return ret;
3705
+ }
3706
+
3707
+ function internalRemoveData( elem, name, pvt ) {
3708
+ if ( !jQuery.acceptData( elem ) ) {
3709
+ return;
3710
+ }
3711
+
3712
+ var thisCache, i,
3713
+ isNode = elem.nodeType,
3714
+
3715
+ // See jQuery.data for more information
3716
+ cache = isNode ? jQuery.cache : elem,
3717
+ id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
3718
+
3719
+ // If there is already no cache entry for this object, there is no
3720
+ // purpose in continuing
3721
+ if ( !cache[ id ] ) {
3722
+ return;
3723
+ }
3724
+
3725
+ if ( name ) {
3726
+
3727
+ thisCache = pvt ? cache[ id ] : cache[ id ].data;
3728
+
3729
+ if ( thisCache ) {
3730
+
3731
+ // Support array or space separated string names for data keys
3732
+ if ( !jQuery.isArray( name ) ) {
3733
+
3734
+ // try the string as a key before any manipulation
3735
+ if ( name in thisCache ) {
3736
+ name = [ name ];
3737
+ } else {
3738
+
3739
+ // split the camel cased version by spaces unless a key with the spaces exists
3740
+ name = jQuery.camelCase( name );
3741
+ if ( name in thisCache ) {
3742
+ name = [ name ];
3743
+ } else {
3744
+ name = name.split(" ");
3745
+ }
3746
+ }
3747
+ } else {
3748
+ // If "name" is an array of keys...
3749
+ // When data is initially created, via ("key", "val") signature,
3750
+ // keys will be converted to camelCase.
3751
+ // Since there is no way to tell _how_ a key was added, remove
3752
+ // both plain key and camelCase key. #12786
3753
+ // This will only penalize the array argument path.
3754
+ name = name.concat( jQuery.map( name, jQuery.camelCase ) );
3755
+ }
3756
+
3757
+ i = name.length;
3758
+ while ( i-- ) {
3759
+ delete thisCache[ name[i] ];
3760
+ }
3761
+
3762
+ // If there is no data left in the cache, we want to continue
3763
+ // and let the cache object itself get destroyed
3764
+ if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {
3765
+ return;
3766
+ }
3767
+ }
3768
+ }
3769
+
3770
+ // See jQuery.data for more information
3771
+ if ( !pvt ) {
3772
+ delete cache[ id ].data;
3773
+
3774
+ // Don't destroy the parent cache unless the internal data object
3775
+ // had been the only thing left in it
3776
+ if ( !isEmptyDataObject( cache[ id ] ) ) {
3777
+ return;
3778
+ }
3779
+ }
3780
+
3781
+ // Destroy the cache
3782
+ if ( isNode ) {
3783
+ jQuery.cleanData( [ elem ], true );
3784
+
3785
+ // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
3786
+ /* jshint eqeqeq: false */
3787
+ } else if ( support.deleteExpando || cache != cache.window ) {
3788
+ /* jshint eqeqeq: true */
3789
+ delete cache[ id ];
3790
+
3791
+ // When all else fails, undefined
3792
+ } else {
3793
+ cache[ id ] = undefined;
3794
+ }
3795
+ }
3796
+
3797
+ jQuery.extend({
3798
+ cache: {},
3799
+
3800
+ // The following elements (space-suffixed to avoid Object.prototype collisions)
3801
+ // throw uncatchable exceptions if you attempt to set expando properties
3802
+ noData: {
3803
+ "applet ": true,
3804
+ "embed ": true,
3805
+ // ...but Flash objects (which have this classid) *can* handle expandos
3806
+ "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
3807
+ },
3808
+
3809
+ hasData: function( elem ) {
3810
+ elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
3811
+ return !!elem && !isEmptyDataObject( elem );
3812
+ },
3813
+
3814
+ data: function( elem, name, data ) {
3815
+ return internalData( elem, name, data );
3816
+ },
3817
+
3818
+ removeData: function( elem, name ) {
3819
+ return internalRemoveData( elem, name );
3820
+ },
3821
+
3822
+ // For internal use only.
3823
+ _data: function( elem, name, data ) {
3824
+ return internalData( elem, name, data, true );
3825
+ },
3826
+
3827
+ _removeData: function( elem, name ) {
3828
+ return internalRemoveData( elem, name, true );
3829
+ }
3830
+ });
3831
+
3832
+ jQuery.fn.extend({
3833
+ data: function( key, value ) {
3834
+ var i, name, data,
3835
+ elem = this[0],
3836
+ attrs = elem && elem.attributes;
3837
+
3838
+ // Special expections of .data basically thwart jQuery.access,
3839
+ // so implement the relevant behavior ourselves
3840
+
3841
+ // Gets all values
3842
+ if ( key === undefined ) {
3843
+ if ( this.length ) {
3844
+ data = jQuery.data( elem );
3845
+
3846
+ if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
3847
+ i = attrs.length;
3848
+ while ( i-- ) {
3849
+
3850
+ // Support: IE11+
3851
+ // The attrs elements can be null (#14894)
3852
+ if ( attrs[ i ] ) {
3853
+ name = attrs[ i ].name;
3854
+ if ( name.indexOf( "data-" ) === 0 ) {
3855
+ name = jQuery.camelCase( name.slice(5) );
3856
+ dataAttr( elem, name, data[ name ] );
3857
+ }
3858
+ }
3859
+ }
3860
+